@dxos/util 0.3.10 → 0.3.11-main.bd26370

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.
@@ -16,7 +16,7 @@ var createBinder = (obj) => ({
16
16
 
17
17
  // packages/common/util/src/bitfield.ts
18
18
  import { invariant } from "@dxos/invariant";
19
- var __dxlog_file = "/home/circleci/project/packages/common/util/src/bitfield.ts";
19
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/common/util/src/bitfield.ts";
20
20
  var BitField = class _BitField {
21
21
  static get(data, idx) {
22
22
  const bit = data[idx >> 3] >> 7 - idx % 8 & 1;
@@ -86,7 +86,7 @@ var BitField = class _BitField {
86
86
 
87
87
  // packages/common/util/src/callback.ts
88
88
  import { invariant as invariant2 } from "@dxos/invariant";
89
- var __dxlog_file2 = "/home/circleci/project/packages/common/util/src/callback.ts";
89
+ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/common/util/src/callback.ts";
90
90
  var Callback = class {
91
91
  call(...args) {
92
92
  invariant2(this._callback, "Callback not set", {
@@ -689,6 +689,8 @@ var arrayToBuffer = (array) => {
689
689
  var bufferToArray = (buffer) => {
690
690
  return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
691
691
  };
692
+ var stringToArray = (string) => bufferToArray(Buffer.from(string, "hex"));
693
+ var arrayToString = (array) => arrayToBuffer(array).toString("hex");
692
694
 
693
695
  // packages/common/util/src/json.ts
694
696
  var MAX_DEPTH = 5;
@@ -1174,6 +1176,7 @@ export {
1174
1176
  accessBy,
1175
1177
  arrayMove,
1176
1178
  arrayToBuffer,
1179
+ arrayToString,
1177
1180
  arraysEqual,
1178
1181
  boolGuard,
1179
1182
  bufferToArray,
@@ -1218,6 +1221,7 @@ export {
1218
1221
  safariCheck,
1219
1222
  safeInstanceof,
1220
1223
  safeParseInt,
1224
+ stringToArray,
1221
1225
  stripUndefinedValues,
1222
1226
  sum,
1223
1227
  tracer
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/binder.ts", "../../../src/bitfield.ts", "../../../src/callback.ts", "../../../src/complex.ts", "../../../src/defer-function.ts", "../../../src/entry.ts", "../../../src/human-hash.ts", "../../../src/interval.ts", "../../../src/json.ts", "../../../src/uint8array.ts", "../../../src/map.ts", "../../../src/order.ts", "../../../src/platform.ts", "../../../src/random.ts", "../../../src/range.ts", "../../../src/reducers.ts", "../../../src/safe-instanceof.ts", "../../../src/sort.ts", "../../../src/tracer.ts", "../../../src/types.ts", "../../../src/instance-id.ts", "../../../src/sum.ts", "../../../src/for-each-async.ts", "../../../src/weak.ts"],
4
- "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport util from 'node:util';\n\n/**\n * Function binder replaces pify.\n */\n// TODO(burdon): Replace pify everywhere.\nexport const createBinder = (obj: any) => ({\n fn: (fn: Function) => fn.bind(obj),\n async: (fn: Function) => util.promisify(fn.bind(obj)),\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\n\n/**\n * Bitfield encodes indices from MSB to LSB.\n * Index 0 is the MSB of the first byte.\n *\n *\n * #0 #1 #2 #3\n * 01010101 11110000 00001111 01010101\n * ^ ^\n * MSB LSB\n */\nexport class BitField {\n static get(data: Uint8Array, idx: number): boolean {\n const bit = (data[idx >> 3] >> (7 - (idx % 8))) & 0x1;\n return !!bit;\n }\n\n static set(data: Uint8Array, idx: number, value: boolean) {\n if (value) {\n data[idx >> 3] = data[idx >> 3] | (1 << (7 - (idx % 8)));\n } else {\n data[idx >> 3] = data[idx >> 3] & ~(1 << (7 - (idx % 8)));\n }\n }\n\n /**\n * [start; end)\n */\n static count(data: Uint8Array, begin: number, end: number): number {\n let count = 0;\n for (let i = begin; i < end; i++) {\n const bit = (data[i >> 3] >> (7 - (i % 8))) & 0x1;\n count += bit;\n }\n return count;\n }\n\n static invert(data: Uint8Array): Uint8Array {\n const result = new Uint8Array(data.length);\n for (let i = 0; i < data.length; i++) {\n result[i] = ~data[i];\n }\n return result;\n }\n\n static and(first: Uint8Array, second: Uint8Array) {\n invariant(first.length === second.length, 'Bitfields must be of the same length');\n const result = new Uint8Array(first.length);\n for (let i = 0; i < first.length; i++) {\n result[i] = first[i] & second[i];\n }\n return result;\n }\n\n static findIndexes(data: Uint8Array, opts: { start?: number; end?: number; value?: boolean } = {}): number[] {\n const { start = 0, end = data.length * 8, value = true } = opts;\n\n const result = [];\n\n for (let i = start; i < end; i++) {\n if (BitField.get(data, i) === value) {\n result.push(i);\n }\n }\n return result;\n }\n\n static ones(count: number): Uint8Array {\n const res = new Uint8Array(Math.ceil(Math.ceil(count) / 8)).fill(0xff);\n\n // Note: We need to calculate last byte of bitfield.\n const bitInLastByte = Math.ceil(count % 8);\n res[res.length - 1] = 0xff << (8 - bitInLastByte);\n\n return res;\n }\n\n static zeros(count: number): Uint8Array {\n return new Uint8Array(Math.ceil(Math.ceil(count) / 8)).fill(0);\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\n\n/**\n * Represents a callback that can be set once.\n *\n * Common usage is dependency injection.\n * In contrast to events, callbacks can only have one handler,\n * are executed synchronously,\n * and can return results.\n */\n// TODO(burdon): Move to @dxos/async.\nexport class Callback<T extends (...args: any[]) => any> {\n private _callback: T | undefined;\n\n public call(...args: Parameters<T>): ReturnType<T> {\n invariant(this._callback, 'Callback not set');\n return this._callback(...args);\n }\n\n public callIfSet(...args: Parameters<T>): ReturnType<T> | undefined {\n return this._callback?.(...args);\n }\n\n public set(callback: T) {\n invariant(!this._callback, 'Callback already set');\n this._callback = callback;\n }\n\n public isSet() {\n return !!this._callback;\n }\n}\n\nexport type SetCallbacks<T> = { handlers: Set<T> };\n\n/**\n * Create a fan-out callback handler.\n * NOTE: Methods cannot return values.\n */\nexport const createSetDispatch = <T extends {}>({ handlers }: SetCallbacks<T>) => {\n type Obj = { [i: string | symbol]: any };\n return new Proxy<any>(\n {\n handlers,\n },\n {\n get: (target: Obj, prop) => {\n return (...args: any[]) => {\n handlers.forEach((handler: Obj) => {\n const method = handler[prop];\n if (method) {\n method.apply(handler, args);\n }\n });\n };\n },\n },\n );\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport { inspectObject, raise } from '@dxos/debug';\n\nexport type Primitive = string | number | boolean | null | undefined;\n\nexport type PrimitiveProjection<T> = (value: T) => Primitive;\n\nconst MAX_SERIALIZATION_LENGTH = 10;\n\n/**\n * A set implementation that can hold complex values (like Buffer).\n *\n * The user must provide a projection function which returns a primitive\n * representation of the complex value. This function must be 1-to-1 mapping.\n *\n * Look at `../complex.test.ts` for usage examples.\n */\nexport class ComplexSet<T> implements Set<T> {\n private readonly _values = new Map<Primitive, T>();\n\n // prettier-ignore\n constructor(\n private readonly _projection: PrimitiveProjection<T>,\n values?: Iterable<T> | null,\n ) {\n if (values) {\n for (const value of values) {\n this.add(value);\n }\n }\n }\n\n toString() {\n return inspectObject(this);\n }\n\n toJSON() {\n return this._values.size > MAX_SERIALIZATION_LENGTH\n ? { size: this._values.size }\n : Array.from(this._values.values());\n }\n\n [inspect.custom]() {\n return inspectObject(this);\n }\n\n add(value: T): this {\n this._values.set(this._projection(value), value);\n return this;\n }\n\n clear(): void {\n this._values.clear();\n }\n\n delete(value: T): boolean {\n return this._values.delete(this._projection(value));\n }\n\n forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._values.forEach((value) => callbackfn(value, value, this));\n }\n\n has(value: T): boolean {\n return this._values.has(this._projection(value));\n }\n\n get size(): number {\n return this._values.size;\n }\n\n [Symbol.iterator](): IterableIterator<T> {\n return this._values.values();\n }\n\n *entries(): IterableIterator<[T, T]> {\n for (const value of this._values.values()) {\n yield [value, value];\n }\n }\n\n keys(): IterableIterator<T> {\n return this[Symbol.iterator]();\n }\n\n values(): IterableIterator<T> {\n return this[Symbol.iterator]();\n }\n\n get [Symbol.toStringTag](): string {\n return 'ComplexSet';\n }\n}\n\nexport type ComplexSetConstructor<T> = new (values?: Iterable<T> | null) => ComplexSet<T>;\n\n/**\n * Create a subclass of ComplexSet with predefined projection function.\n */\nexport const makeSet = <T>(projection: PrimitiveProjection<T>): ComplexSetConstructor<T> => {\n return class BoundComplexSet extends ComplexSet<T> {\n constructor(values?: Iterable<T> | null) {\n super(projection, values);\n }\n };\n};\n\n/**\n * A map implementation that can hold complex values (like Buffer) as keys.\n * The user must provide a projection function for map keys which returns a primitive\n * representation of the complex value. This function must be 1-to-1 mapping.\n * Look at `../complex.test.ts` for usage examples.\n */\nexport class ComplexMap<K, V> implements Map<K, V> {\n private readonly _keys = new Map<Primitive, K>();\n private readonly _values = new Map<Primitive, V>();\n\n // prettier-ignore\n constructor(\n private readonly _keyProjection: PrimitiveProjection<K>,\n entries?: readonly (readonly [K, V])[] | null,\n ) {\n if (entries) {\n for (const [key, value] of entries) {\n this.set(key, value);\n }\n }\n }\n\n toString() {\n return inspectObject(this);\n }\n\n toJSON() {\n return this._values.size > MAX_SERIALIZATION_LENGTH\n ? { size: this._values.size }\n : Array.from(this._values.values());\n }\n\n [inspect.custom]() {\n return inspectObject(this);\n }\n\n clear(): void {\n this._keys.clear();\n this._values.clear();\n }\n\n delete(key: K): boolean {\n const keyDeleted = this._keys.delete(this._keyProjection(key));\n const valueDeleted = this._values.delete(this._keyProjection(key));\n return keyDeleted || valueDeleted;\n }\n\n forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._keys.forEach((key, primitive) =>\n callbackfn(this._values.get(primitive) ?? raise(new Error('Map corrupted.')), key, this),\n );\n }\n\n get(key: K): V | undefined {\n return this._values.get(this._keyProjection(key));\n }\n\n has(key: K): boolean {\n return this._keys.has(this._keyProjection(key));\n }\n\n set(key: K, value: V): this {\n const primitive = this._keyProjection(key);\n this._keys.set(primitive, key);\n this._values.set(primitive, value);\n return this;\n }\n\n get size(): number {\n return this._keys.size;\n }\n\n *[Symbol.iterator](): IterableIterator<[K, V]> {\n for (const [primitive, key] of this._keys) {\n const value = this._values.get(primitive) ?? raise(new Error('Map corrupted.'));\n yield [key, value];\n }\n }\n\n entries(): IterableIterator<[K, V]> {\n return this[Symbol.iterator]();\n }\n\n keys(): IterableIterator<K> {\n return this._keys.values();\n }\n\n values(): IterableIterator<V> {\n return this._values.values();\n }\n\n get [Symbol.toStringTag](): string {\n return 'ComplexMap';\n }\n}\n\nexport type ComplexMapConstructor<K> = new <V>(entries?: readonly (readonly [K, V])[] | null) => ComplexMap<K, V>;\n\n/**\n * Create a subclass of ComplexMap with predefined key projection function.\n */\nexport const makeMap = <K>(keyProjection: PrimitiveProjection<K>): ComplexMapConstructor<K> =>\n class BoundComplexMap<V> extends ComplexMap<K, V> {\n constructor(entries?: readonly (readonly [K, V])[] | null) {\n super(keyProjection, entries);\n }\n };\n", "/**\n * Wraps a function provider in a function that will defer the execution of the provided function.\n *\n * Example:\n *\n * ```typescript\n * const fn = deferFunction(() => impl);\n *\n * // Impl can be defined after the usage.\n * const impl = () => {\n * console.log('Hello World!')\n * }\n * ```\n */\n//\n// Copyright 2022 DXOS.org\n//\n\nexport const deferFunction =\n <T extends (...args: any[]) => any>(fnProvider: () => T) =>\n (...args: Parameters<T>): ReturnType<T> =>\n fnProvider()(...args);\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Inspired by https://doc.rust-lang.org/std/collections/struct.HashMap.html#method.entry\n */\nexport const entry = <K, V>(map: Map<K, V>, key: K): MapEntry<K, V, undefined> => new MapEntry(map, key);\n\nexport class MapEntry<K, V, U> {\n /**\n * @internal\n */\n // prettier-ignore\n constructor(\n private readonly _map: Map<K, V>,\n private readonly _key: K,\n ) {}\n\n get key(): K {\n return this._key;\n }\n\n get value(): V | U {\n return this._map.get(this._key) as V | U;\n }\n\n orInsert(value: V): MapEntry<K, V, never> {\n if (!this._map.has(this._key)) {\n this._map.set(this._key, value);\n }\n return this as any;\n }\n\n deep<K1, V1>(this: MapEntry<K, Map<K1, V1>, Map<K1, V1>>, key: K1): MapEntry<K1, V1, undefined> {\n return entry(this.value, key);\n }\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { PublicKey, type PublicKeyLike } from '@dxos/keys';\n\n// From https://github.com/SEBv15/humanhash/blob/166c1a6f70d854fe6767cdd76be1237112d4eaf1/index.js\n\nconst DEFAULT_WORDLIST = [\n 'ack',\n 'alabama',\n 'alanine',\n 'alaska',\n 'alpha',\n 'angel',\n 'apart',\n 'april',\n 'arizona',\n 'arkansas',\n 'artist',\n 'asparagus',\n 'aspen',\n 'august',\n 'autumn',\n 'avocado',\n 'bacon',\n 'bakerloo',\n 'batman',\n 'beer',\n 'berlin',\n 'beryllium',\n 'black',\n 'blossom',\n 'blue',\n 'bluebird',\n 'bravo',\n 'bulldog',\n 'burger',\n 'butter',\n 'california',\n 'carbon',\n 'cardinal',\n 'carolina',\n 'carpet',\n 'cat',\n 'ceiling',\n 'charlie',\n 'chicken',\n 'coffee',\n 'cola',\n 'cold',\n 'colorado',\n 'comet',\n 'connecticut',\n 'crazy',\n 'cup',\n 'dakota',\n 'december',\n 'delaware',\n 'delta',\n 'diet',\n 'don',\n 'double',\n 'early',\n 'earth',\n 'east',\n 'echo',\n 'edward',\n 'eight',\n 'eighteen',\n 'eleven',\n 'emma',\n 'enemy',\n 'equal',\n 'failed',\n 'fanta',\n 'fifteen',\n 'fillet',\n 'finch',\n 'fish',\n 'five',\n 'fix',\n 'floor',\n 'florida',\n 'football',\n 'four',\n 'fourteen',\n 'foxtrot',\n 'freddie',\n 'friend',\n 'fruit',\n 'gee',\n 'georgia',\n 'glucose',\n 'golf',\n 'green',\n 'grey',\n 'hamper',\n 'happy',\n 'harry',\n 'hawaii',\n 'helium',\n 'high',\n 'hot',\n 'hotel',\n 'hydrogen',\n 'idaho',\n 'illinois',\n 'india',\n 'indigo',\n 'ink',\n 'iowa',\n 'island',\n 'item',\n 'jersey',\n 'jig',\n 'johnny',\n 'juliet',\n 'july',\n 'jupiter',\n 'kansas',\n 'kentucky',\n 'kilo',\n 'king',\n 'kitten',\n 'lactose',\n 'lake',\n 'lamp',\n 'lemon',\n 'leopard',\n 'lima',\n 'lion',\n 'lithium',\n 'london',\n 'louisiana',\n 'low',\n 'magazine',\n 'magnesium',\n 'maine',\n 'mango',\n 'march',\n 'mars',\n 'maryland',\n 'massachusetts',\n 'may',\n 'mexico',\n 'michigan',\n 'mike',\n 'minnesota',\n 'mirror',\n 'mississippi',\n 'missouri',\n 'mobile',\n 'mockingbird',\n 'monkey',\n 'montana',\n 'moon',\n 'mountain',\n 'muppet',\n 'music',\n 'nebraska',\n 'neptune',\n 'network',\n 'nevada',\n 'nine',\n 'nineteen',\n 'nitrogen',\n 'north',\n 'november',\n 'nuts',\n 'october',\n 'ohio',\n 'oklahoma',\n 'one',\n 'orange',\n 'oranges',\n 'oregon',\n 'oscar',\n 'oven',\n 'oxygen',\n 'papa',\n 'paris',\n 'pasta',\n 'pennsylvania',\n 'pip',\n 'pizza',\n 'pluto',\n 'potato',\n 'princess',\n 'purple',\n 'quebec',\n 'queen',\n 'quiet',\n 'red',\n 'river',\n 'robert',\n 'robin',\n 'romeo',\n 'rugby',\n 'sad',\n 'salami',\n 'saturn',\n 'september',\n 'seven',\n 'seventeen',\n 'shade',\n 'sierra',\n 'single',\n 'sink',\n 'six',\n 'sixteen',\n 'skylark',\n 'snake',\n 'social',\n 'sodium',\n 'solar',\n 'south',\n 'spaghetti',\n 'speaker',\n 'spring',\n 'stairway',\n 'steak',\n 'stream',\n 'summer',\n 'sweet',\n 'table',\n 'tango',\n 'ten',\n 'tennessee',\n 'tennis',\n 'texas',\n 'thirteen',\n 'three',\n 'timing',\n 'triple',\n 'twelve',\n 'twenty',\n 'two',\n 'uncle',\n 'undress',\n 'uniform',\n 'uranus',\n 'utah',\n 'vegan',\n 'venus',\n 'vermont',\n 'victor',\n 'video',\n 'violet',\n 'virginia',\n 'washington',\n 'west',\n 'whiskey',\n 'white',\n 'william',\n 'winner',\n 'winter',\n 'wisconsin',\n 'wolfram',\n 'wyoming',\n 'xray',\n 'yankee',\n 'yellow',\n 'zebra',\n 'zulu',\n];\n\n/**\n * humanhash: Human-readable representations of digests.\n */\nexport class HumanHasher {\n /**\n * Transforms hex digests to human-readable strings.\n *\n * The format of these strings will look something like:\n * `victor-bacon-zulu-lima`. The output is obtained by compressing the input\n * digest to a fixed number of bytes, then mapping those bytes to one of 256\n * words. A default wordlist is provided, but you can override this if you\n * prefer.\n * As long as you use the same wordlist, the output will be consistent (i.e.\n * the same digest will always render the same representation).\n *\n * @param wordlist A list of exactly 256 words to choose from\n */\n constructor(private readonly wordlist = DEFAULT_WORDLIST) {\n if (wordlist.length !== 256) {\n throw new Error('Wordlist must have exactly 256 items');\n }\n this.wordlist = wordlist;\n }\n\n /**\n * Humanize a given hexadecimal digest.\n *\n * Change the number of words output by specifying `words`. Change the\n * word separator with `separator`.\n *\n * @param hexdigest A string of hexadecimal characters to humanize\n * @param words How many words to output (more = safer)\n * @param separator The string used to seperate the words\n */\n humanize(hexdigest: string, words = 4, separator = '-') {\n const pairs = hexdigest.match(/(..?)/g);\n if (!pairs) {\n throw new Error('');\n }\n\n const bytes = pairs.map((x) => parseInt(x, 16));\n const compressed = this._compress(bytes, words);\n\n return compressed.map((x) => this.wordlist[x]).join(separator);\n }\n\n /**\n * Compress a list of byte values to a fixed target length.\n *\n * @param bytes A list of bytes (numbers from 0-254)\n * @param target The number of bytes to return / compress to\n */\n _compress(bytes: number[], target: number) {\n const length = bytes.length;\n if (target > length) {\n throw new Error('Fewer input bytes than requested output');\n }\n\n // Calculate the segment size (divide and round down)\n const segSize = (length / target) >> 0;\n\n // Split 'bytes' array into 'target' number of segments.\n const segments = [];\n for (let i = 0; i < segSize * target; i += segSize) {\n segments.push(bytes.slice(i, i + segSize));\n }\n\n // Catch any left-over bytes in the last segment.\n segments[segments.length - 1] = segments[segments.length - 1].concat(bytes.slice(target * segSize));\n\n const checksums = segments.map((x) => x.reduce((acc, curr) => acc ^ curr));\n return checksums;\n }\n}\n\nconst hasher = new HumanHasher();\n\nexport const humanize = (value: PublicKeyLike): string => {\n if (value instanceof Buffer || value instanceof Uint8Array || value instanceof ArrayBuffer) {\n value = PublicKey.stringify(value);\n } else if (value instanceof PublicKey) {\n value = value.toHex();\n }\n\n return hasher.humanize(value);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\n/**\n * Runs the callback in an exponentially increasing interval.\n * @returns Callback to clear the interval.\n */\nexport const exponentialBackoffInterval = (cb: () => void, initialInterval: number): (() => void) => {\n let interval = initialInterval;\n const repeat = () => {\n cb();\n interval *= 2;\n timeoutId = setTimeout(repeat, interval);\n };\n\n let timeoutId = setTimeout(repeat, interval);\n return () => clearTimeout(timeoutId);\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport { PublicKey } from '@dxos/keys';\n\nimport { humanize } from './human-hash';\nimport { arrayToBuffer } from './uint8array';\n\nconst MAX_DEPTH = 5;\n\n/**\n * JSON.stringify replacer.\n */\nexport function jsonReplacer(this: any, key: string, value: any): any {\n // TODO(burdon): Why is this represented as `{ type: 'Buffer', data }`.\n if (value !== null && typeof value === 'object' && typeof value[inspect.custom] === 'function') {\n return value[inspect.custom]();\n }\n\n if (value !== null && typeof value === 'object' && value.type === 'Buffer' && Array.isArray(value.data)) {\n if (value.data.length === 32) {\n const key = Buffer.from(value.data);\n return `[${humanize(key)}]:[${PublicKey.stringify(key)}]`;\n } else {\n return Buffer.from(value.data).toString('hex');\n }\n }\n\n // TODO(burdon): Option.\n // code if (Array.isArray(value)) {\n // code return value.length;\n // code } else {\n return value;\n // code }\n}\n\n/**\n * Recursively converts an object into a JSON-compatible object.\n */\nexport const jsonify = (value: any, depth = 0, visitedObjects = new WeakSet<any>()): any => {\n if (depth > MAX_DEPTH) {\n return null;\n } else if (typeof value === 'function') {\n return null;\n } else if (typeof value === 'object' && value !== null) {\n if (visitedObjects.has(value)) {\n return null;\n }\n visitedObjects.add(value);\n\n try {\n if (value instanceof Uint8Array) {\n return arrayToBuffer(value).toString('hex');\n } else if (Array.isArray(value)) {\n return value.map((x) => jsonify(x, depth + 1, visitedObjects));\n } else if (typeof value.toJSON === 'function') {\n return value.toJSON();\n } else {\n const res: any = {};\n for (const key of Object.keys(value)) {\n res[key] = jsonify(value[key], depth + 1, visitedObjects);\n }\n return res;\n }\n } finally {\n visitedObjects.delete(value);\n }\n } else {\n return value;\n }\n};\n\nexport type JsonKeyOptions = {\n truncate?: boolean;\n humanize?: boolean;\n};\n\nexport const jsonKeyReplacer =\n (options: JsonKeyOptions = {}) =>\n (key: string, value: any) => {\n if (typeof value === 'string') {\n const key = PublicKey.fromHex(value);\n if (key.toHex() === value) {\n // TODO(burdon): Remove humanize.\n return options.humanize ? humanize(key) : options.truncate ? key.truncate() : key.toHex();\n }\n }\n\n return value;\n };\n", "//\n// Copyright 2021 DXOS.org\n//\n\nexport const arraysEqual = (a: Uint8Array, b: Uint8Array): boolean => {\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * Non-copying conversion of Uint8Array to Buffer.\n * The resulting buffer will share the same allocated memory as the Uint8Array.\n */\nexport const arrayToBuffer = (array: Uint8Array): Buffer => {\n return Buffer.from(array.buffer, array.byteOffset, array.byteLength);\n};\n\n/**\n * Non-copying conversion of Buffer to Uint8Array.\n * The resulting Uint8Array will share the same allocated memory as the Buffer.\n */\nexport const bufferToArray = (buffer: Buffer): Uint8Array => {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\n/**\n * Get or set map value.\n */\nexport const defaultMap = <K, V>(map: Map<K, V>, key: K, def: V | (() => V)) => {\n let value = map.get(key);\n if (value === undefined) {\n value = typeof def === 'function' ? (def as () => V)() : def;\n map.set(key, value);\n }\n\n return value;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport type IdOrder = string[];\n\ntype ObjectOrderAccumulator<T> = { objects: T[]; ids: Set<string> };\n\n/**\n * Uses an array of string id’s to order a map of objects, returning an array of those objects. Objects not listed by\n * the array of id’s occur later in the resulting array of objects based on the map’s key order.\n * @param objectMap\n * @param order\n */\nexport const inferObjectOrder = <T = any>(objectMap: Record<string, T>, order: IdOrder = []): T[] => {\n const orderedObjects = order.reduce(\n (acc, id) => {\n if (id in objectMap) {\n acc.objects.push(objectMap[id]);\n acc.ids.add(id);\n }\n return acc;\n },\n { objects: [], ids: new Set() } as ObjectOrderAccumulator<T>,\n );\n const { objects } = Object.keys(objectMap).reduce((acc, id) => {\n if (!acc.ids.has(id)) {\n acc.objects.push(objectMap[id]);\n }\n return acc;\n }, orderedObjects);\n return objects;\n};\n\n/**\n * Uses an array of string id’s to order a map of objects, returning a new map with the keys in the prescribed order.\n * Objects not listed by the array of id’s occur later in the resulting array of objects based on the map’s key order.\n * @param objectMap\n * @param order\n */\nexport const inferRecordOrder = <T = any>(objectMap: Record<string, T>, order: IdOrder = []): Record<string, T> => {\n return Object.assign(\n order\n .filter((id) => id in objectMap)\n .reduce((acc: Record<string, null>, id) => {\n acc[id] = null;\n return acc;\n }, {}),\n objectMap,\n );\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\n// NOTE: `!=` is required.\nexport const isNode = () => typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\n\n/* eslint-disable */\n\n// From https://stackoverflow.com/a/11381730/2804332.\nexport const mobileAndTabletCheck = () => {\n let check = false;\n ((a) => { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0,4))) { check = true; } })(navigator.userAgent || navigator.vendor || (window as any).opera);\n return check;\n};\n\n/* eslint-enable */\n\n// From https://stackoverflow.com/a/9039885\nexport const iosCheck = () => {\n return (\n ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||\n // iPad on iOS 13 detection\n (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n );\n};\n\n// From https://stackoverflow.com/a/23522755/2804332\nexport const safariCheck = () =>\n typeof navigator !== 'undefined' && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n", "//\n// Copyright 2021 DXOS.org\n//\n\n// TODO(burdon): Random class utility.\n// TODO(burdon): Make object { min, max }.\nexport const randomInt = (max: number, min: number) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nexport const range = (n: number) => Array.from(Array(n).keys());\n\nexport const rangeFromTo = (from: number, to: number) => range(to - from).map((i) => i + from);\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// TODO(burdon): Factor out.\n// TODO(burdon): Consider mathjs for variance, standard deviations, etc.\n// https://www.npmjs.com/package/mathjs\n\nimport { defaultMap } from './map';\n\nexport type Accessor<T, V> = string | ((value: T) => V);\n\nexport const accessBy = <T, V>(value: T, accessor: Accessor<T, V>) =>\n typeof accessor === 'function' ? accessor(value) : (value as Record<any, any>)[accessor];\n\nexport const median = (values: number[]) => {\n const mid = Math.floor(values.length / 2);\n if (values.length % 2 === 1) {\n return values[mid];\n } else {\n return (values[mid - 1] + values[mid]) / 2;\n }\n};\n\n// TODO(burdon): Value Proto.\nexport type NumericalValues = {\n min?: number;\n max?: number;\n mean?: number;\n median?: number;\n total: number;\n count: number;\n};\n\n/**\n * Returns an array of unique values.\n */\nexport const numericalValues = <T>(values: T[], accessor: Accessor<T, number>) => {\n const result: NumericalValues = { total: 0, count: 0 };\n\n const sorted: number[] = values\n .map((value) => {\n const v = accessBy(value, accessor);\n if (v === undefined || isNaN(v)) {\n return undefined;\n }\n\n result.total += v;\n if (result.min === undefined || v < result.min) {\n result.min = v;\n }\n if (result.max === undefined || v > result.max) {\n result.max = v;\n }\n\n return v;\n })\n .filter((value) => value !== undefined)\n .sort((a, b) => a! - b!) as number[];\n\n if (sorted.length) {\n Object.assign(result, {\n count: sorted.length,\n mean: result.total / sorted.length,\n median: median(sorted),\n });\n }\n\n return result;\n};\n\n/**\n * Returns an array of unique values.\n */\nexport const reduceSet = <T, V>(values: T[], accessor: Accessor<T, V>): Set<V> => {\n return values.reduce((values, value) => {\n const v = accessBy(value, accessor);\n values.add(v);\n return values;\n }, new Set<V>());\n};\n\n/**\n * Returns an object containing values grouped by the given key accessor.\n */\nexport const reduceGroupBy = <T, K>(values: T[], accessor: Accessor<T, K>): Map<K, T[]> => {\n return values.reduce((values, value) => {\n const key = accessBy(value, accessor);\n defaultMap(values, key, []).push(value);\n return values;\n }, new Map<K, T[]>());\n};\n\n/**\n * Generic composable reducer interface.\n */\nexport interface Reducer<T, S> {\n /**\n * Get initial state.\n */\n initialState(): S;\n\n /**\n * Apply event to state.\n */\n reduce(state: S, event: T): S;\n}\n\n/**\n * Applies the reducer to the array of values.\n */\nexport const reduceSeries = <T, S>(reducer: Reducer<T, S>, events: T[]): S => {\n const state = reducer.initialState();\n for (const event of events) {\n reducer.reduce(state, event);\n }\n\n return state;\n};\n\n/**\n * Reducer to group values.\n */\nexport const createGroupReducer = <T, S>(\n groupBy: (value: T) => string,\n sub: Reducer<T, S>,\n): Reducer<T, Record<string, S>> => ({\n initialState: () => ({}),\n reduce: (state: Record<string, S>, event: T) => {\n const key = groupBy(event);\n state[key] = sub.reduce(state[key] ?? sub.initialState(), event);\n return state;\n },\n});\n\nexport type TimeRecord = { timestamp: Date | number | string };\nexport type TimeBucket = { start: number; period: number; count: number };\n\nexport const getDate = (value: Date | number | string): Date => (value instanceof Date ? value : new Date(value));\n\n/**\n * Reducer to group by time period.\n */\nexport const createBucketReducer = <T extends TimeRecord>(period: number): Reducer<T, TimeBucket[]> => ({\n initialState: () => [],\n reduce: (series: TimeBucket[], event: T) => {\n const timestamp = getDate(event.timestamp);\n let bucket: TimeBucket = series[series.length - 1];\n if (!bucket || bucket.start + period < timestamp.getTime()) {\n bucket = { start: timestamp.getTime(), period, count: 0 };\n series.push(bucket);\n }\n\n bucket.count++;\n return series;\n },\n});\n", "//\n// Copyright 2022 DXOS.org\n//\n\nconst instanceTag = Symbol('instanceTag');\n\n/**\n * Makes instanceof work correctly even if the class definition was duplicated (e.g. when bundling).\n * The comparison is done by comparing the tag passed to this function.\n *\n * Example:\n *\n * ```typescript\n * @safeInstanceof('Tagged')\n * class Tagged {}\n * ```\n */\nexport const safeInstanceof =\n (tag: string): ClassDecorator =>\n (target: any) => {\n target.prototype[instanceTag] = tag;\n\n Object.defineProperty(target.prototype, Symbol.hasInstance, {\n value: (instance: any) => instance?.[instanceTag] === tag,\n });\n\n Object.defineProperty(target, Symbol.hasInstance, {\n value: (instance: any) => instance?.[instanceTag] === tag,\n });\n };\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// TODO(burdon): Unique.\n// TODO(burdon): Options for undefined to end.\n\ntype Compare<T> = (a: T, b: T) => number;\n\nexport const compareScalar =\n (inc = true) =>\n (a: any, b: any) =>\n (inc ? 1 : -1) * (a < b ? -1 : a > b ? 1 : 0);\n\nexport const compareString =\n (inc = true, caseInsensitive = true) =>\n (a: string, b: string) => {\n if (caseInsensitive) {\n a = a?.toLowerCase();\n b = b?.toLowerCase();\n }\n return (inc ? 1 : -1) * (a < b ? -1 : a > b ? 1 : 0);\n };\n\nexport const compareObject =\n <T extends Record<string, any>>(prop: string, sorter: Compare<any>, inc = true): Compare<any> =>\n (a: T, b: T) =>\n (inc ? 1 : -1) * sorter(a[prop], b[prop]);\n\nexport const compareMulti =\n <T extends Record<string, any>>(sorters: Compare<T>[]) =>\n (a: T, b: T) => {\n const sort = (i = 0): number => {\n const s = sorters[i](a, b);\n if (s === 0 && i < sorters.length - 1) {\n return sort(i + 1);\n } else {\n return s;\n }\n };\n\n return sort();\n };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { defaultMap } from './map';\n\n/**\n * Tracer events form a graph.\n */\nexport type Event = {\n id: string;\n timestamp: number; // ms.\n duration?: number; // ms (float).\n value?: any;\n};\n\n/**\n * Event sink.\n */\n// TODO(burdon): Reconcile with log.trace.\nexport class Tracer {\n private readonly _events = new Map<string, Event[]>();\n\n private _recording = false;\n\n // TODO(burdon): Start/stop methods for recording data? By id?\n // Alternatively, enable subscriptions to track/compute series.\n\n // TODO(burdon): Hierarchical traces?\n\n get recording() {\n return this._recording;\n }\n\n keys() {\n return Array.from(this._events.keys());\n }\n\n get(id: string, filter?: Record<string, any>): Event[] | undefined {\n const events = this._events.get(id);\n if (filter) {\n return events?.filter((event) => Object.entries(filter).every(([key, value]) => event?.value[key] === value));\n }\n\n return events;\n }\n\n clear() {\n this._events.clear();\n }\n\n start() {\n this._recording = true;\n return this;\n }\n\n stop() {\n this._recording = false;\n return this;\n }\n\n emit(id: string, value?: any) {\n this._post(this._createEvent(id, value));\n }\n\n mark(id: string, value?: any): { start: number; end: () => void } {\n const event = this._createEvent(id, value);\n const start = performance.now();\n return {\n start,\n end: () => {\n event.duration = performance.now() - start;\n this._post(event);\n },\n };\n }\n\n private _createEvent(id: string, value?: any): Event {\n const event: Event = { id, timestamp: Date.now() };\n if (value !== undefined) {\n event.value = value;\n }\n\n return event;\n }\n\n private _post(event: Event) {\n if (this._recording) {\n defaultMap(this._events, event.id, []).push(event);\n }\n }\n}\n\n// TODO(burdon): Factor out (move to @dxos/log?)\n// TODO(burdon): Global singleton (e.g., `trace()`) or part of client services?\nexport const tracer = new Tracer();\n", "//\n// Copyright 2020 DXOS.org\n//\n\nexport const boolGuard = <T>(value: T | null | undefined): value is T => Boolean(value);\n\nexport type AsyncCallback<T> = (param: T) => Promise<void>;\n\nexport type Provider<T> = () => T;\n\nexport type MaybePromise<T> = T | Promise<T>;\n\nexport const isNotNullOrUndefined = <T>(x: T): x is Exclude<T, null | undefined> => x != null;\n\n/**\n * Use with filter chaining instead of filter(Boolean) to preserve type.\n * NOTE: To filter by type:\n * items.filter((item: any): item is RangeSet<Decoration> => item instanceof RangeSet)\n */\nexport const nonNullable = <T>(value: T): value is NonNullable<T> => value !== null && value !== undefined;\n\n/**\n * All types that evaluate to false when cast to a boolean.\n */\nexport type Falsy = false | 0 | '' | null | undefined;\n\n/**\n * A function returning a value or a value itself.\n */\nexport type MaybeFunction<T> = T | (() => T);\n\n/**\n * Get value from a provider.\n */\nexport const getAsyncValue = async <T>(value: MaybeFunction<MaybePromise<T>>): Promise<T> => {\n if (typeof value === 'function') {\n return (value as Function)();\n } else {\n return value;\n }\n};\n\nexport type MakeOptional<Type, Key extends keyof Type> = Omit<Type, Key> & Partial<Pick<Type, Key>>;\n\n/**\n * Remove keys with undefined values.\n */\nexport const stripUndefinedValues = <T extends { [index: string]: any }>(obj: T): T => {\n if (typeof obj === 'object') {\n Object.keys(obj).forEach((key) => {\n const value = obj[key];\n if (value === undefined) {\n delete obj[key];\n } else if (value !== null && typeof value === 'object') {\n stripUndefinedValues(value); // TODO(burdon): Test recursion.\n }\n });\n }\n\n return obj;\n};\n\n/**\n * Swap position of element within array.\n */\nexport const arrayMove = <T>(array: T[], from: number, to: number): Array<T> => {\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n return array;\n};\n\nexport const safeParseInt = (value: string | undefined, defaultValue?: number) => {\n try {\n const n = parseInt(value ?? '');\n return isNaN(n) ? defaultValue : n;\n } catch (err) {\n return defaultValue;\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { defaultMap } from './map';\n\nconst symbol = Symbol.for('dxos.instance-contexts');\n\nconst instanceContexts = ((globalThis as any)[symbol] ??= new WeakMap<\n any,\n {\n nextId: number;\n instanceIds: WeakMap<any, number>;\n }\n>());\n\n/**\n * Returns a unique instance id for a given object.\n * Ids are generated as incrementing numbers.\n * Ids are only unique within the scope of a given prototype.\n * Instances of different classes may have the same id.\n */\nexport const getPrototypeSpecificInstanceId = (instance: any): number => {\n const prototype = Object.getPrototypeOf(instance);\n const instanceCtx = defaultMap(instanceContexts as any, prototype, () => ({\n nextId: 0,\n instanceIds: new WeakMap(),\n }));\n\n let id = instanceCtx.instanceIds.get(instance);\n if (id === undefined) {\n id = instanceCtx.nextId++;\n instanceCtx.instanceIds.set(instance, id);\n }\n\n return id;\n};\n\nexport const getDebugName = (instance: any): string => {\n const prototype = Object.getPrototypeOf(instance);\n return `${prototype.constructor.name}#${getPrototypeSpecificInstanceId(instance)}`;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const sum = (values: number[]) => values.reduce((a, b) => a + b, 0);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const forEachAsync = <T>(items: T[], fn: (item: T, idx: number) => Promise<void>) => Promise.all(items.map(fn));\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Weak dictionary. It is a map that holds weak references to its values and allows garbage collection of values and keys.\n */\nexport class WeakDictionary<K, V extends object> implements Map<K, V> {\n private readonly _internal = new Map<K, WeakRef<V>>();\n private readonly _finalization = new FinalizationRegistry((cleanUpCallback: () => void) => {\n cleanUpCallback();\n });\n\n constructor(entries?: [K, V][]) {\n this._internal = new Map(entries?.map(([key, value]) => [key, new WeakRef(value)]));\n entries?.forEach(([key, value]) => this._register(key, value));\n }\n\n *entries(): IterableIterator<[K, V]> {\n for (const [key, value] of this._internal) {\n yield [key, value.deref()!];\n }\n }\n\n keys(): IterableIterator<K> {\n return this._internal.keys();\n }\n\n *values(): IterableIterator<V> {\n for (const value of this._internal.values()) {\n const deref = value.deref();\n if (!deref) {\n continue;\n }\n yield deref;\n }\n }\n\n *[Symbol.iterator](): IterableIterator<[K, V]> {\n for (const [key, value] of this._internal) {\n yield [key, value.deref()!];\n }\n }\n\n get [Symbol.toStringTag](): string {\n return 'WeakDictionary';\n }\n\n get size(): number {\n return this._internal.size;\n }\n\n get(key: K): V | undefined {\n return this._internal.get(key)?.deref();\n }\n\n set(key: K, value: V): this {\n this._internal.set(key, new WeakRef(value));\n this._register(key, value);\n return this;\n }\n\n has(key: K): boolean {\n return this._internal.has(key) && this._internal.get(key)!.deref() !== undefined;\n }\n\n delete(key: K): boolean {\n const value = this._internal.get(key)?.deref();\n if (value) {\n this._unregister(value);\n }\n return this._internal.delete(key);\n }\n\n clear(): void {\n this._internal.forEach((value) => {\n const v = value.deref();\n if (v) {\n this._unregister(v);\n }\n });\n\n this._internal.clear();\n }\n\n forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._internal.forEach((value, key) => {\n const v = value.deref();\n if (v) {\n callbackfn(v, key, this);\n }\n });\n }\n\n private _register(key: K, value: V) {\n this._finalization.register(\n value,\n () => {\n this._internal.delete(key);\n },\n value,\n );\n }\n\n private _unregister(value: V) {\n this._finalization.unregister(value);\n }\n}\n"],
5
- "mappings": "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A;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAC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",
6
- "names": ["util", "createBinder", "obj", "fn", "bind", "async", "util", "promisify", "invariant", "BitField", "get", "data", "idx", "bit", "set", "value", "count", "begin", "end", "i", "invert", "result", "Uint8Array", "length", "and", "first", "second", "findIndexes", "opts", "start", "push", "ones", "res", "Math", "ceil", "fill", "bitInLastByte", "zeros", "invariant", "Callback", "call", "args", "_callback", "callIfSet", "set", "callback", "isSet", "createSetDispatch", "handlers", "Proxy", "get", "target", "prop", "forEach", "handler", "method", "apply", "inspect", "inspectObject", "raise", "MAX_SERIALIZATION_LENGTH", "ComplexSet", "constructor", "_projection", "values", "_values", "Map", "value", "add", "toString", "inspectObject", "toJSON", "size", "Array", "from", "inspect", "custom", "set", "clear", "delete", "forEach", "callbackfn", "thisArg", "bind", "has", "Symbol", "iterator", "entries", "keys", "toStringTag", "makeSet", "projection", "BoundComplexSet", "ComplexMap", "_keyProjection", "_keys", "key", "keyDeleted", "valueDeleted", "primitive", "get", "raise", "Error", "makeMap", "keyProjection", "BoundComplexMap", "deferFunction", "fnProvider", "args", "entry", "map", "key", "MapEntry", "constructor", "_map", "_key", "value", "get", "orInsert", "has", "set", "deep", "PublicKey", "DEFAULT_WORDLIST", "HumanHasher", "constructor", "wordlist", "length", "Error", "humanize", "hexdigest", "words", "separator", "pairs", "match", "bytes", "map", "x", "parseInt", "compressed", "_compress", "join", "target", "segSize", "segments", "i", "push", "slice", "concat", "checksums", "reduce", "acc", "curr", "hasher", "value", "Buffer", "Uint8Array", "ArrayBuffer", "PublicKey", "stringify", "toHex", "exponentialBackoffInterval", "cb", "initialInterval", "interval", "repeat", "timeoutId", "setTimeout", "clearTimeout", "inspect", "PublicKey", "arraysEqual", "a", "b", "length", "i", "arrayToBuffer", "array", "Buffer", "from", "buffer", "byteOffset", "byteLength", "bufferToArray", "Uint8Array", "MAX_DEPTH", "jsonReplacer", "key", "value", "inspect", "custom", "type", "Array", "isArray", "data", "length", "Buffer", "from", "humanize", "PublicKey", "stringify", "toString", "jsonify", "depth", "visitedObjects", "WeakSet", "has", "add", "Uint8Array", "arrayToBuffer", "map", "x", "toJSON", "res", "Object", "keys", "delete", "jsonKeyReplacer", "options", "fromHex", "toHex", "truncate", "defaultMap", "map", "key", "def", "value", "get", "undefined", "set", "inferObjectOrder", "objectMap", "order", "orderedObjects", "reduce", "acc", "id", "objects", "push", "ids", "add", "Set", "Object", "keys", "has", "inferRecordOrder", "assign", "filter", "isNode", "process", "versions", "node", "mobileAndTabletCheck", "check", "a", "test", "substr", "navigator", "userAgent", "vendor", "window", "opera", "iosCheck", "includes", "platform", "document", "safariCheck", "randomInt", "max", "min", "Math", "ceil", "floor", "random", "range", "n", "Array", "from", "keys", "rangeFromTo", "to", "map", "i", "accessBy", "value", "accessor", "median", "values", "mid", "Math", "floor", "length", "numericalValues", "result", "total", "count", "sorted", "map", "v", "undefined", "isNaN", "min", "max", "filter", "sort", "a", "b", "Object", "assign", "mean", "reduceSet", "reduce", "add", "Set", "reduceGroupBy", "key", "defaultMap", "push", "Map", "reduceSeries", "reducer", "events", "state", "initialState", "event", "createGroupReducer", "groupBy", "sub", "getDate", "Date", "createBucketReducer", "period", "series", "timestamp", "bucket", "start", "getTime", "instanceTag", "Symbol", "safeInstanceof", "tag", "target", "prototype", "Object", "defineProperty", "hasInstance", "value", "instance", "compareScalar", "inc", "a", "b", "compareString", "caseInsensitive", "toLowerCase", "compareObject", "prop", "sorter", "compareMulti", "sorters", "sort", "i", "s", "length", "Tracer", "_events", "Map", "_recording", "recording", "keys", "Array", "from", "get", "id", "filter", "events", "event", "Object", "entries", "every", "key", "value", "clear", "start", "stop", "emit", "_post", "_createEvent", "mark", "performance", "now", "end", "duration", "timestamp", "Date", "undefined", "defaultMap", "push", "tracer", "boolGuard", "value", "Boolean", "isNotNullOrUndefined", "x", "nonNullable", "undefined", "getAsyncValue", "stripUndefinedValues", "obj", "Object", "keys", "forEach", "key", "arrayMove", "array", "from", "to", "splice", "length", "safeParseInt", "defaultValue", "n", "parseInt", "isNaN", "err", "symbol", "Symbol", "for", "instanceContexts", "globalThis", "WeakMap", "getPrototypeSpecificInstanceId", "instance", "prototype", "Object", "getPrototypeOf", "instanceCtx", "defaultMap", "nextId", "instanceIds", "id", "get", "undefined", "set", "getDebugName", "constructor", "name", "sum", "values", "reduce", "a", "b", "forEachAsync", "items", "fn", "Promise", "all", "map", "WeakDictionary", "constructor", "entries", "_internal", "Map", "_finalization", "FinalizationRegistry", "cleanUpCallback", "map", "key", "value", "WeakRef", "forEach", "_register", "deref", "keys", "values", "Symbol", "iterator", "toStringTag", "size", "get", "set", "has", "undefined", "delete", "_unregister", "clear", "v", "callbackfn", "thisArg", "bind", "register", "unregister"]
4
+ "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport util from 'node:util';\n\n/**\n * Function binder replaces pify.\n */\n// TODO(burdon): Replace pify everywhere.\nexport const createBinder = (obj: any) => ({\n fn: (fn: Function) => fn.bind(obj),\n async: (fn: Function) => util.promisify(fn.bind(obj)),\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\n\n/**\n * Bitfield encodes indices from MSB to LSB.\n * Index 0 is the MSB of the first byte.\n *\n *\n * #0 #1 #2 #3\n * 01010101 11110000 00001111 01010101\n * ^ ^\n * MSB LSB\n */\nexport class BitField {\n static get(data: Uint8Array, idx: number): boolean {\n const bit = (data[idx >> 3] >> (7 - (idx % 8))) & 0x1;\n return !!bit;\n }\n\n static set(data: Uint8Array, idx: number, value: boolean) {\n if (value) {\n data[idx >> 3] = data[idx >> 3] | (1 << (7 - (idx % 8)));\n } else {\n data[idx >> 3] = data[idx >> 3] & ~(1 << (7 - (idx % 8)));\n }\n }\n\n /**\n * [start; end)\n */\n static count(data: Uint8Array, begin: number, end: number): number {\n let count = 0;\n for (let i = begin; i < end; i++) {\n const bit = (data[i >> 3] >> (7 - (i % 8))) & 0x1;\n count += bit;\n }\n return count;\n }\n\n static invert(data: Uint8Array): Uint8Array {\n const result = new Uint8Array(data.length);\n for (let i = 0; i < data.length; i++) {\n result[i] = ~data[i];\n }\n return result;\n }\n\n static and(first: Uint8Array, second: Uint8Array) {\n invariant(first.length === second.length, 'Bitfields must be of the same length');\n const result = new Uint8Array(first.length);\n for (let i = 0; i < first.length; i++) {\n result[i] = first[i] & second[i];\n }\n return result;\n }\n\n static findIndexes(data: Uint8Array, opts: { start?: number; end?: number; value?: boolean } = {}): number[] {\n const { start = 0, end = data.length * 8, value = true } = opts;\n\n const result = [];\n\n for (let i = start; i < end; i++) {\n if (BitField.get(data, i) === value) {\n result.push(i);\n }\n }\n return result;\n }\n\n static ones(count: number): Uint8Array {\n const res = new Uint8Array(Math.ceil(Math.ceil(count) / 8)).fill(0xff);\n\n // Note: We need to calculate last byte of bitfield.\n const bitInLastByte = Math.ceil(count % 8);\n res[res.length - 1] = 0xff << (8 - bitInLastByte);\n\n return res;\n }\n\n static zeros(count: number): Uint8Array {\n return new Uint8Array(Math.ceil(Math.ceil(count) / 8)).fill(0);\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\n\n/**\n * Represents a callback that can be set once.\n *\n * Common usage is dependency injection.\n * In contrast to events, callbacks can only have one handler,\n * are executed synchronously,\n * and can return results.\n */\n// TODO(burdon): Move to @dxos/async.\nexport class Callback<T extends (...args: any[]) => any> {\n private _callback: T | undefined;\n\n public call(...args: Parameters<T>): ReturnType<T> {\n invariant(this._callback, 'Callback not set');\n return this._callback(...args);\n }\n\n public callIfSet(...args: Parameters<T>): ReturnType<T> | undefined {\n return this._callback?.(...args);\n }\n\n public set(callback: T) {\n invariant(!this._callback, 'Callback already set');\n this._callback = callback;\n }\n\n public isSet() {\n return !!this._callback;\n }\n}\n\nexport type SetCallbacks<T> = { handlers: Set<T> };\n\n/**\n * Create a fan-out callback handler.\n * NOTE: Methods cannot return values.\n */\nexport const createSetDispatch = <T extends {}>({ handlers }: SetCallbacks<T>) => {\n type Obj = { [i: string | symbol]: any };\n return new Proxy<any>(\n {\n handlers,\n },\n {\n get: (target: Obj, prop) => {\n return (...args: any[]) => {\n handlers.forEach((handler: Obj) => {\n const method = handler[prop];\n if (method) {\n method.apply(handler, args);\n }\n });\n };\n },\n },\n );\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport { inspectObject, raise } from '@dxos/debug';\n\nexport type Primitive = string | number | boolean | null | undefined;\n\nexport type PrimitiveProjection<T> = (value: T) => Primitive;\n\nconst MAX_SERIALIZATION_LENGTH = 10;\n\n/**\n * A set implementation that can hold complex values (like Buffer).\n *\n * The user must provide a projection function which returns a primitive\n * representation of the complex value. This function must be 1-to-1 mapping.\n *\n * Look at `../complex.test.ts` for usage examples.\n */\nexport class ComplexSet<T> implements Set<T> {\n private readonly _values = new Map<Primitive, T>();\n\n // prettier-ignore\n constructor(\n private readonly _projection: PrimitiveProjection<T>,\n values?: Iterable<T> | null,\n ) {\n if (values) {\n for (const value of values) {\n this.add(value);\n }\n }\n }\n\n toString() {\n return inspectObject(this);\n }\n\n toJSON() {\n return this._values.size > MAX_SERIALIZATION_LENGTH\n ? { size: this._values.size }\n : Array.from(this._values.values());\n }\n\n [inspect.custom]() {\n return inspectObject(this);\n }\n\n add(value: T): this {\n this._values.set(this._projection(value), value);\n return this;\n }\n\n clear(): void {\n this._values.clear();\n }\n\n delete(value: T): boolean {\n return this._values.delete(this._projection(value));\n }\n\n forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._values.forEach((value) => callbackfn(value, value, this));\n }\n\n has(value: T): boolean {\n return this._values.has(this._projection(value));\n }\n\n get size(): number {\n return this._values.size;\n }\n\n [Symbol.iterator](): IterableIterator<T> {\n return this._values.values();\n }\n\n *entries(): IterableIterator<[T, T]> {\n for (const value of this._values.values()) {\n yield [value, value];\n }\n }\n\n keys(): IterableIterator<T> {\n return this[Symbol.iterator]();\n }\n\n values(): IterableIterator<T> {\n return this[Symbol.iterator]();\n }\n\n get [Symbol.toStringTag](): string {\n return 'ComplexSet';\n }\n}\n\nexport type ComplexSetConstructor<T> = new (values?: Iterable<T> | null) => ComplexSet<T>;\n\n/**\n * Create a subclass of ComplexSet with predefined projection function.\n */\nexport const makeSet = <T>(projection: PrimitiveProjection<T>): ComplexSetConstructor<T> => {\n return class BoundComplexSet extends ComplexSet<T> {\n constructor(values?: Iterable<T> | null) {\n super(projection, values);\n }\n };\n};\n\n/**\n * A map implementation that can hold complex values (like Buffer) as keys.\n * The user must provide a projection function for map keys which returns a primitive\n * representation of the complex value. This function must be 1-to-1 mapping.\n * Look at `../complex.test.ts` for usage examples.\n */\nexport class ComplexMap<K, V> implements Map<K, V> {\n private readonly _keys = new Map<Primitive, K>();\n private readonly _values = new Map<Primitive, V>();\n\n // prettier-ignore\n constructor(\n private readonly _keyProjection: PrimitiveProjection<K>,\n entries?: readonly (readonly [K, V])[] | null,\n ) {\n if (entries) {\n for (const [key, value] of entries) {\n this.set(key, value);\n }\n }\n }\n\n toString() {\n return inspectObject(this);\n }\n\n toJSON() {\n return this._values.size > MAX_SERIALIZATION_LENGTH\n ? { size: this._values.size }\n : Array.from(this._values.values());\n }\n\n [inspect.custom]() {\n return inspectObject(this);\n }\n\n clear(): void {\n this._keys.clear();\n this._values.clear();\n }\n\n delete(key: K): boolean {\n const keyDeleted = this._keys.delete(this._keyProjection(key));\n const valueDeleted = this._values.delete(this._keyProjection(key));\n return keyDeleted || valueDeleted;\n }\n\n forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._keys.forEach((key, primitive) =>\n callbackfn(this._values.get(primitive) ?? raise(new Error('Map corrupted.')), key, this),\n );\n }\n\n get(key: K): V | undefined {\n return this._values.get(this._keyProjection(key));\n }\n\n has(key: K): boolean {\n return this._keys.has(this._keyProjection(key));\n }\n\n set(key: K, value: V): this {\n const primitive = this._keyProjection(key);\n this._keys.set(primitive, key);\n this._values.set(primitive, value);\n return this;\n }\n\n get size(): number {\n return this._keys.size;\n }\n\n *[Symbol.iterator](): IterableIterator<[K, V]> {\n for (const [primitive, key] of this._keys) {\n const value = this._values.get(primitive) ?? raise(new Error('Map corrupted.'));\n yield [key, value];\n }\n }\n\n entries(): IterableIterator<[K, V]> {\n return this[Symbol.iterator]();\n }\n\n keys(): IterableIterator<K> {\n return this._keys.values();\n }\n\n values(): IterableIterator<V> {\n return this._values.values();\n }\n\n get [Symbol.toStringTag](): string {\n return 'ComplexMap';\n }\n}\n\nexport type ComplexMapConstructor<K> = new <V>(entries?: readonly (readonly [K, V])[] | null) => ComplexMap<K, V>;\n\n/**\n * Create a subclass of ComplexMap with predefined key projection function.\n */\nexport const makeMap = <K>(keyProjection: PrimitiveProjection<K>): ComplexMapConstructor<K> =>\n class BoundComplexMap<V> extends ComplexMap<K, V> {\n constructor(entries?: readonly (readonly [K, V])[] | null) {\n super(keyProjection, entries);\n }\n };\n", "/**\n * Wraps a function provider in a function that will defer the execution of the provided function.\n *\n * Example:\n *\n * ```typescript\n * const fn = deferFunction(() => impl);\n *\n * // Impl can be defined after the usage.\n * const impl = () => {\n * console.log('Hello World!')\n * }\n * ```\n */\n//\n// Copyright 2022 DXOS.org\n//\n\nexport const deferFunction =\n <T extends (...args: any[]) => any>(fnProvider: () => T) =>\n (...args: Parameters<T>): ReturnType<T> =>\n fnProvider()(...args);\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Inspired by https://doc.rust-lang.org/std/collections/struct.HashMap.html#method.entry\n */\nexport const entry = <K, V>(map: Map<K, V>, key: K): MapEntry<K, V, undefined> => new MapEntry(map, key);\n\nexport class MapEntry<K, V, U> {\n /**\n * @internal\n */\n // prettier-ignore\n constructor(\n private readonly _map: Map<K, V>,\n private readonly _key: K,\n ) {}\n\n get key(): K {\n return this._key;\n }\n\n get value(): V | U {\n return this._map.get(this._key) as V | U;\n }\n\n orInsert(value: V): MapEntry<K, V, never> {\n if (!this._map.has(this._key)) {\n this._map.set(this._key, value);\n }\n return this as any;\n }\n\n deep<K1, V1>(this: MapEntry<K, Map<K1, V1>, Map<K1, V1>>, key: K1): MapEntry<K1, V1, undefined> {\n return entry(this.value, key);\n }\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { PublicKey, type PublicKeyLike } from '@dxos/keys';\n\n// From https://github.com/SEBv15/humanhash/blob/166c1a6f70d854fe6767cdd76be1237112d4eaf1/index.js\n\nconst DEFAULT_WORDLIST = [\n 'ack',\n 'alabama',\n 'alanine',\n 'alaska',\n 'alpha',\n 'angel',\n 'apart',\n 'april',\n 'arizona',\n 'arkansas',\n 'artist',\n 'asparagus',\n 'aspen',\n 'august',\n 'autumn',\n 'avocado',\n 'bacon',\n 'bakerloo',\n 'batman',\n 'beer',\n 'berlin',\n 'beryllium',\n 'black',\n 'blossom',\n 'blue',\n 'bluebird',\n 'bravo',\n 'bulldog',\n 'burger',\n 'butter',\n 'california',\n 'carbon',\n 'cardinal',\n 'carolina',\n 'carpet',\n 'cat',\n 'ceiling',\n 'charlie',\n 'chicken',\n 'coffee',\n 'cola',\n 'cold',\n 'colorado',\n 'comet',\n 'connecticut',\n 'crazy',\n 'cup',\n 'dakota',\n 'december',\n 'delaware',\n 'delta',\n 'diet',\n 'don',\n 'double',\n 'early',\n 'earth',\n 'east',\n 'echo',\n 'edward',\n 'eight',\n 'eighteen',\n 'eleven',\n 'emma',\n 'enemy',\n 'equal',\n 'failed',\n 'fanta',\n 'fifteen',\n 'fillet',\n 'finch',\n 'fish',\n 'five',\n 'fix',\n 'floor',\n 'florida',\n 'football',\n 'four',\n 'fourteen',\n 'foxtrot',\n 'freddie',\n 'friend',\n 'fruit',\n 'gee',\n 'georgia',\n 'glucose',\n 'golf',\n 'green',\n 'grey',\n 'hamper',\n 'happy',\n 'harry',\n 'hawaii',\n 'helium',\n 'high',\n 'hot',\n 'hotel',\n 'hydrogen',\n 'idaho',\n 'illinois',\n 'india',\n 'indigo',\n 'ink',\n 'iowa',\n 'island',\n 'item',\n 'jersey',\n 'jig',\n 'johnny',\n 'juliet',\n 'july',\n 'jupiter',\n 'kansas',\n 'kentucky',\n 'kilo',\n 'king',\n 'kitten',\n 'lactose',\n 'lake',\n 'lamp',\n 'lemon',\n 'leopard',\n 'lima',\n 'lion',\n 'lithium',\n 'london',\n 'louisiana',\n 'low',\n 'magazine',\n 'magnesium',\n 'maine',\n 'mango',\n 'march',\n 'mars',\n 'maryland',\n 'massachusetts',\n 'may',\n 'mexico',\n 'michigan',\n 'mike',\n 'minnesota',\n 'mirror',\n 'mississippi',\n 'missouri',\n 'mobile',\n 'mockingbird',\n 'monkey',\n 'montana',\n 'moon',\n 'mountain',\n 'muppet',\n 'music',\n 'nebraska',\n 'neptune',\n 'network',\n 'nevada',\n 'nine',\n 'nineteen',\n 'nitrogen',\n 'north',\n 'november',\n 'nuts',\n 'october',\n 'ohio',\n 'oklahoma',\n 'one',\n 'orange',\n 'oranges',\n 'oregon',\n 'oscar',\n 'oven',\n 'oxygen',\n 'papa',\n 'paris',\n 'pasta',\n 'pennsylvania',\n 'pip',\n 'pizza',\n 'pluto',\n 'potato',\n 'princess',\n 'purple',\n 'quebec',\n 'queen',\n 'quiet',\n 'red',\n 'river',\n 'robert',\n 'robin',\n 'romeo',\n 'rugby',\n 'sad',\n 'salami',\n 'saturn',\n 'september',\n 'seven',\n 'seventeen',\n 'shade',\n 'sierra',\n 'single',\n 'sink',\n 'six',\n 'sixteen',\n 'skylark',\n 'snake',\n 'social',\n 'sodium',\n 'solar',\n 'south',\n 'spaghetti',\n 'speaker',\n 'spring',\n 'stairway',\n 'steak',\n 'stream',\n 'summer',\n 'sweet',\n 'table',\n 'tango',\n 'ten',\n 'tennessee',\n 'tennis',\n 'texas',\n 'thirteen',\n 'three',\n 'timing',\n 'triple',\n 'twelve',\n 'twenty',\n 'two',\n 'uncle',\n 'undress',\n 'uniform',\n 'uranus',\n 'utah',\n 'vegan',\n 'venus',\n 'vermont',\n 'victor',\n 'video',\n 'violet',\n 'virginia',\n 'washington',\n 'west',\n 'whiskey',\n 'white',\n 'william',\n 'winner',\n 'winter',\n 'wisconsin',\n 'wolfram',\n 'wyoming',\n 'xray',\n 'yankee',\n 'yellow',\n 'zebra',\n 'zulu',\n];\n\n/**\n * humanhash: Human-readable representations of digests.\n */\nexport class HumanHasher {\n /**\n * Transforms hex digests to human-readable strings.\n *\n * The format of these strings will look something like:\n * `victor-bacon-zulu-lima`. The output is obtained by compressing the input\n * digest to a fixed number of bytes, then mapping those bytes to one of 256\n * words. A default wordlist is provided, but you can override this if you\n * prefer.\n * As long as you use the same wordlist, the output will be consistent (i.e.\n * the same digest will always render the same representation).\n *\n * @param wordlist A list of exactly 256 words to choose from\n */\n constructor(private readonly wordlist = DEFAULT_WORDLIST) {\n if (wordlist.length !== 256) {\n throw new Error('Wordlist must have exactly 256 items');\n }\n this.wordlist = wordlist;\n }\n\n /**\n * Humanize a given hexadecimal digest.\n *\n * Change the number of words output by specifying `words`. Change the\n * word separator with `separator`.\n *\n * @param hexdigest A string of hexadecimal characters to humanize\n * @param words How many words to output (more = safer)\n * @param separator The string used to seperate the words\n */\n humanize(hexdigest: string, words = 4, separator = '-') {\n const pairs = hexdigest.match(/(..?)/g);\n if (!pairs) {\n throw new Error('');\n }\n\n const bytes = pairs.map((x) => parseInt(x, 16));\n const compressed = this._compress(bytes, words);\n\n return compressed.map((x) => this.wordlist[x]).join(separator);\n }\n\n /**\n * Compress a list of byte values to a fixed target length.\n *\n * @param bytes A list of bytes (numbers from 0-254)\n * @param target The number of bytes to return / compress to\n */\n _compress(bytes: number[], target: number) {\n const length = bytes.length;\n if (target > length) {\n throw new Error('Fewer input bytes than requested output');\n }\n\n // Calculate the segment size (divide and round down)\n const segSize = (length / target) >> 0;\n\n // Split 'bytes' array into 'target' number of segments.\n const segments = [];\n for (let i = 0; i < segSize * target; i += segSize) {\n segments.push(bytes.slice(i, i + segSize));\n }\n\n // Catch any left-over bytes in the last segment.\n segments[segments.length - 1] = segments[segments.length - 1].concat(bytes.slice(target * segSize));\n\n const checksums = segments.map((x) => x.reduce((acc, curr) => acc ^ curr));\n return checksums;\n }\n}\n\nconst hasher = new HumanHasher();\n\nexport const humanize = (value: PublicKeyLike): string => {\n if (value instanceof Buffer || value instanceof Uint8Array || value instanceof ArrayBuffer) {\n value = PublicKey.stringify(value);\n } else if (value instanceof PublicKey) {\n value = value.toHex();\n }\n\n return hasher.humanize(value);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\n/**\n * Runs the callback in an exponentially increasing interval.\n * @returns Callback to clear the interval.\n */\nexport const exponentialBackoffInterval = (cb: () => void, initialInterval: number): (() => void) => {\n let interval = initialInterval;\n const repeat = () => {\n cb();\n interval *= 2;\n timeoutId = setTimeout(repeat, interval);\n };\n\n let timeoutId = setTimeout(repeat, interval);\n return () => clearTimeout(timeoutId);\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport { PublicKey } from '@dxos/keys';\n\nimport { humanize } from './human-hash';\nimport { arrayToBuffer } from './uint8array';\n\nconst MAX_DEPTH = 5;\n\n/**\n * JSON.stringify replacer.\n */\nexport function jsonReplacer(this: any, key: string, value: any): any {\n // TODO(burdon): Why is this represented as `{ type: 'Buffer', data }`.\n if (value !== null && typeof value === 'object' && typeof value[inspect.custom] === 'function') {\n return value[inspect.custom]();\n }\n\n if (value !== null && typeof value === 'object' && value.type === 'Buffer' && Array.isArray(value.data)) {\n if (value.data.length === 32) {\n const key = Buffer.from(value.data);\n return `[${humanize(key)}]:[${PublicKey.stringify(key)}]`;\n } else {\n return Buffer.from(value.data).toString('hex');\n }\n }\n\n // TODO(burdon): Option.\n // code if (Array.isArray(value)) {\n // code return value.length;\n // code } else {\n return value;\n // code }\n}\n\n/**\n * Recursively converts an object into a JSON-compatible object.\n */\nexport const jsonify = (value: any, depth = 0, visitedObjects = new WeakSet<any>()): any => {\n if (depth > MAX_DEPTH) {\n return null;\n } else if (typeof value === 'function') {\n return null;\n } else if (typeof value === 'object' && value !== null) {\n if (visitedObjects.has(value)) {\n return null;\n }\n visitedObjects.add(value);\n\n try {\n if (value instanceof Uint8Array) {\n return arrayToBuffer(value).toString('hex');\n } else if (Array.isArray(value)) {\n return value.map((x) => jsonify(x, depth + 1, visitedObjects));\n } else if (typeof value.toJSON === 'function') {\n return value.toJSON();\n } else {\n const res: any = {};\n for (const key of Object.keys(value)) {\n res[key] = jsonify(value[key], depth + 1, visitedObjects);\n }\n return res;\n }\n } finally {\n visitedObjects.delete(value);\n }\n } else {\n return value;\n }\n};\n\nexport type JsonKeyOptions = {\n truncate?: boolean;\n humanize?: boolean;\n};\n\nexport const jsonKeyReplacer =\n (options: JsonKeyOptions = {}) =>\n (key: string, value: any) => {\n if (typeof value === 'string') {\n const key = PublicKey.fromHex(value);\n if (key.toHex() === value) {\n // TODO(burdon): Remove humanize.\n return options.humanize ? humanize(key) : options.truncate ? key.truncate() : key.toHex();\n }\n }\n\n return value;\n };\n", "//\n// Copyright 2021 DXOS.org\n//\n\nexport const arraysEqual = (a: Uint8Array, b: Uint8Array): boolean => {\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * Non-copying conversion of Uint8Array to Buffer.\n * The resulting buffer will share the same allocated memory as the Uint8Array.\n */\nexport const arrayToBuffer = (array: Uint8Array): Buffer => {\n return Buffer.from(array.buffer, array.byteOffset, array.byteLength);\n};\n\n/**\n * Non-copying conversion of Buffer to Uint8Array.\n * The resulting Uint8Array will share the same allocated memory as the Buffer.\n */\nexport const bufferToArray = (buffer: Buffer): Uint8Array => {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n};\n\nexport const stringToArray = (string: string): Uint8Array => bufferToArray(Buffer.from(string, 'hex'));\n\nexport const arrayToString = (array: Uint8Array): string => arrayToBuffer(array).toString('hex');\n", "//\n// Copyright 2020 DXOS.org\n//\n\n/**\n * Get or set map value.\n */\nexport const defaultMap = <K, V>(map: Map<K, V>, key: K, def: V | (() => V)) => {\n let value = map.get(key);\n if (value === undefined) {\n value = typeof def === 'function' ? (def as () => V)() : def;\n map.set(key, value);\n }\n\n return value;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport type IdOrder = string[];\n\ntype ObjectOrderAccumulator<T> = { objects: T[]; ids: Set<string> };\n\n/**\n * Uses an array of string id’s to order a map of objects, returning an array of those objects. Objects not listed by\n * the array of id’s occur later in the resulting array of objects based on the map’s key order.\n * @param objectMap\n * @param order\n */\nexport const inferObjectOrder = <T = any>(objectMap: Record<string, T>, order: IdOrder = []): T[] => {\n const orderedObjects = order.reduce(\n (acc, id) => {\n if (id in objectMap) {\n acc.objects.push(objectMap[id]);\n acc.ids.add(id);\n }\n return acc;\n },\n { objects: [], ids: new Set() } as ObjectOrderAccumulator<T>,\n );\n const { objects } = Object.keys(objectMap).reduce((acc, id) => {\n if (!acc.ids.has(id)) {\n acc.objects.push(objectMap[id]);\n }\n return acc;\n }, orderedObjects);\n return objects;\n};\n\n/**\n * Uses an array of string id’s to order a map of objects, returning a new map with the keys in the prescribed order.\n * Objects not listed by the array of id’s occur later in the resulting array of objects based on the map’s key order.\n * @param objectMap\n * @param order\n */\nexport const inferRecordOrder = <T = any>(objectMap: Record<string, T>, order: IdOrder = []): Record<string, T> => {\n return Object.assign(\n order\n .filter((id) => id in objectMap)\n .reduce((acc: Record<string, null>, id) => {\n acc[id] = null;\n return acc;\n }, {}),\n objectMap,\n );\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\n// NOTE: `!=` is required.\nexport const isNode = () => typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\n\n/* eslint-disable */\n\n// From https://stackoverflow.com/a/11381730/2804332.\nexport const mobileAndTabletCheck = () => {\n let check = false;\n ((a) => { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0,4))) { check = true; } })(navigator.userAgent || navigator.vendor || (window as any).opera);\n return check;\n};\n\n/* eslint-enable */\n\n// From https://stackoverflow.com/a/9039885\nexport const iosCheck = () => {\n return (\n ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||\n // iPad on iOS 13 detection\n (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n );\n};\n\n// From https://stackoverflow.com/a/23522755/2804332\nexport const safariCheck = () =>\n typeof navigator !== 'undefined' && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n", "//\n// Copyright 2021 DXOS.org\n//\n\n// TODO(burdon): Random class utility.\n// TODO(burdon): Make object { min, max }.\nexport const randomInt = (max: number, min: number) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nexport const range = (n: number) => Array.from(Array(n).keys());\n\nexport const rangeFromTo = (from: number, to: number) => range(to - from).map((i) => i + from);\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// TODO(burdon): Factor out.\n// TODO(burdon): Consider mathjs for variance, standard deviations, etc.\n// https://www.npmjs.com/package/mathjs\n\nimport { defaultMap } from './map';\n\nexport type Accessor<T, V> = string | ((value: T) => V);\n\nexport const accessBy = <T, V>(value: T, accessor: Accessor<T, V>) =>\n typeof accessor === 'function' ? accessor(value) : (value as Record<any, any>)[accessor];\n\nexport const median = (values: number[]) => {\n const mid = Math.floor(values.length / 2);\n if (values.length % 2 === 1) {\n return values[mid];\n } else {\n return (values[mid - 1] + values[mid]) / 2;\n }\n};\n\n// TODO(burdon): Value Proto.\nexport type NumericalValues = {\n min?: number;\n max?: number;\n mean?: number;\n median?: number;\n total: number;\n count: number;\n};\n\n/**\n * Returns an array of unique values.\n */\nexport const numericalValues = <T>(values: T[], accessor: Accessor<T, number>) => {\n const result: NumericalValues = { total: 0, count: 0 };\n\n const sorted: number[] = values\n .map((value) => {\n const v = accessBy(value, accessor);\n if (v === undefined || isNaN(v)) {\n return undefined;\n }\n\n result.total += v;\n if (result.min === undefined || v < result.min) {\n result.min = v;\n }\n if (result.max === undefined || v > result.max) {\n result.max = v;\n }\n\n return v;\n })\n .filter((value) => value !== undefined)\n .sort((a, b) => a! - b!) as number[];\n\n if (sorted.length) {\n Object.assign(result, {\n count: sorted.length,\n mean: result.total / sorted.length,\n median: median(sorted),\n });\n }\n\n return result;\n};\n\n/**\n * Returns an array of unique values.\n */\nexport const reduceSet = <T, V>(values: T[], accessor: Accessor<T, V>): Set<V> => {\n return values.reduce((values, value) => {\n const v = accessBy(value, accessor);\n values.add(v);\n return values;\n }, new Set<V>());\n};\n\n/**\n * Returns an object containing values grouped by the given key accessor.\n */\nexport const reduceGroupBy = <T, K>(values: T[], accessor: Accessor<T, K>): Map<K, T[]> => {\n return values.reduce((values, value) => {\n const key = accessBy(value, accessor);\n defaultMap(values, key, []).push(value);\n return values;\n }, new Map<K, T[]>());\n};\n\n/**\n * Generic composable reducer interface.\n */\nexport interface Reducer<T, S> {\n /**\n * Get initial state.\n */\n initialState(): S;\n\n /**\n * Apply event to state.\n */\n reduce(state: S, event: T): S;\n}\n\n/**\n * Applies the reducer to the array of values.\n */\nexport const reduceSeries = <T, S>(reducer: Reducer<T, S>, events: T[]): S => {\n const state = reducer.initialState();\n for (const event of events) {\n reducer.reduce(state, event);\n }\n\n return state;\n};\n\n/**\n * Reducer to group values.\n */\nexport const createGroupReducer = <T, S>(\n groupBy: (value: T) => string,\n sub: Reducer<T, S>,\n): Reducer<T, Record<string, S>> => ({\n initialState: () => ({}),\n reduce: (state: Record<string, S>, event: T) => {\n const key = groupBy(event);\n state[key] = sub.reduce(state[key] ?? sub.initialState(), event);\n return state;\n },\n});\n\nexport type TimeRecord = { timestamp: Date | number | string };\nexport type TimeBucket = { start: number; period: number; count: number };\n\nexport const getDate = (value: Date | number | string): Date => (value instanceof Date ? value : new Date(value));\n\n/**\n * Reducer to group by time period.\n */\nexport const createBucketReducer = <T extends TimeRecord>(period: number): Reducer<T, TimeBucket[]> => ({\n initialState: () => [],\n reduce: (series: TimeBucket[], event: T) => {\n const timestamp = getDate(event.timestamp);\n let bucket: TimeBucket = series[series.length - 1];\n if (!bucket || bucket.start + period < timestamp.getTime()) {\n bucket = { start: timestamp.getTime(), period, count: 0 };\n series.push(bucket);\n }\n\n bucket.count++;\n return series;\n },\n});\n", "//\n// Copyright 2022 DXOS.org\n//\n\nconst instanceTag = Symbol('instanceTag');\n\n/**\n * Makes instanceof work correctly even if the class definition was duplicated (e.g. when bundling).\n * The comparison is done by comparing the tag passed to this function.\n *\n * Example:\n *\n * ```typescript\n * @safeInstanceof('Tagged')\n * class Tagged {}\n * ```\n */\nexport const safeInstanceof =\n (tag: string): ClassDecorator =>\n (target: any) => {\n target.prototype[instanceTag] = tag;\n\n Object.defineProperty(target.prototype, Symbol.hasInstance, {\n value: (instance: any) => instance?.[instanceTag] === tag,\n });\n\n Object.defineProperty(target, Symbol.hasInstance, {\n value: (instance: any) => instance?.[instanceTag] === tag,\n });\n };\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// TODO(burdon): Unique.\n// TODO(burdon): Options for undefined to end.\n\ntype Compare<T> = (a: T, b: T) => number;\n\nexport const compareScalar =\n (inc = true) =>\n (a: any, b: any) =>\n (inc ? 1 : -1) * (a < b ? -1 : a > b ? 1 : 0);\n\nexport const compareString =\n (inc = true, caseInsensitive = true) =>\n (a: string, b: string) => {\n if (caseInsensitive) {\n a = a?.toLowerCase();\n b = b?.toLowerCase();\n }\n return (inc ? 1 : -1) * (a < b ? -1 : a > b ? 1 : 0);\n };\n\nexport const compareObject =\n <T extends Record<string, any>>(prop: string, sorter: Compare<any>, inc = true): Compare<any> =>\n (a: T, b: T) =>\n (inc ? 1 : -1) * sorter(a[prop], b[prop]);\n\nexport const compareMulti =\n <T extends Record<string, any>>(sorters: Compare<T>[]) =>\n (a: T, b: T) => {\n const sort = (i = 0): number => {\n const s = sorters[i](a, b);\n if (s === 0 && i < sorters.length - 1) {\n return sort(i + 1);\n } else {\n return s;\n }\n };\n\n return sort();\n };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { defaultMap } from './map';\n\n/**\n * Tracer events form a graph.\n */\nexport type Event = {\n id: string;\n timestamp: number; // ms.\n duration?: number; // ms (float).\n value?: any;\n};\n\n/**\n * Event sink.\n */\n// TODO(burdon): Reconcile with log.trace.\nexport class Tracer {\n private readonly _events = new Map<string, Event[]>();\n\n private _recording = false;\n\n // TODO(burdon): Start/stop methods for recording data? By id?\n // Alternatively, enable subscriptions to track/compute series.\n\n // TODO(burdon): Hierarchical traces?\n\n get recording() {\n return this._recording;\n }\n\n keys() {\n return Array.from(this._events.keys());\n }\n\n get(id: string, filter?: Record<string, any>): Event[] | undefined {\n const events = this._events.get(id);\n if (filter) {\n return events?.filter((event) => Object.entries(filter).every(([key, value]) => event?.value[key] === value));\n }\n\n return events;\n }\n\n clear() {\n this._events.clear();\n }\n\n start() {\n this._recording = true;\n return this;\n }\n\n stop() {\n this._recording = false;\n return this;\n }\n\n emit(id: string, value?: any) {\n this._post(this._createEvent(id, value));\n }\n\n mark(id: string, value?: any): { start: number; end: () => void } {\n const event = this._createEvent(id, value);\n const start = performance.now();\n return {\n start,\n end: () => {\n event.duration = performance.now() - start;\n this._post(event);\n },\n };\n }\n\n private _createEvent(id: string, value?: any): Event {\n const event: Event = { id, timestamp: Date.now() };\n if (value !== undefined) {\n event.value = value;\n }\n\n return event;\n }\n\n private _post(event: Event) {\n if (this._recording) {\n defaultMap(this._events, event.id, []).push(event);\n }\n }\n}\n\n// TODO(burdon): Factor out (move to @dxos/log?)\n// TODO(burdon): Global singleton (e.g., `trace()`) or part of client services?\nexport const tracer = new Tracer();\n", "//\n// Copyright 2020 DXOS.org\n//\n\nexport const boolGuard = <T>(value: T | null | undefined): value is T => Boolean(value);\n\nexport type AsyncCallback<T> = (param: T) => Promise<void>;\n\nexport type Provider<T> = () => T;\n\nexport type MaybePromise<T> = T | Promise<T>;\n\nexport const isNotNullOrUndefined = <T>(x: T): x is Exclude<T, null | undefined> => x != null;\n\n/**\n * Use with filter chaining instead of filter(Boolean) to preserve type.\n * NOTE: To filter by type:\n * items.filter((item: any): item is RangeSet<Decoration> => item instanceof RangeSet)\n */\nexport const nonNullable = <T>(value: T): value is NonNullable<T> => value !== null && value !== undefined;\n\n/**\n * All types that evaluate to false when cast to a boolean.\n */\nexport type Falsy = false | 0 | '' | null | undefined;\n\n/**\n * A function returning a value or a value itself.\n */\nexport type MaybeFunction<T> = T | (() => T);\n\n/**\n * Get value from a provider.\n */\nexport const getAsyncValue = async <T>(value: MaybeFunction<MaybePromise<T>>): Promise<T> => {\n if (typeof value === 'function') {\n return (value as Function)();\n } else {\n return value;\n }\n};\n\nexport type MakeOptional<Type, Key extends keyof Type> = Omit<Type, Key> & Partial<Pick<Type, Key>>;\n\n/**\n * Remove keys with undefined values.\n */\nexport const stripUndefinedValues = <T extends { [index: string]: any }>(obj: T): T => {\n if (typeof obj === 'object') {\n Object.keys(obj).forEach((key) => {\n const value = obj[key];\n if (value === undefined) {\n delete obj[key];\n } else if (value !== null && typeof value === 'object') {\n stripUndefinedValues(value); // TODO(burdon): Test recursion.\n }\n });\n }\n\n return obj;\n};\n\n/**\n * Swap position of element within array.\n */\nexport const arrayMove = <T>(array: T[], from: number, to: number): Array<T> => {\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n return array;\n};\n\nexport const safeParseInt = (value: string | undefined, defaultValue?: number) => {\n try {\n const n = parseInt(value ?? '');\n return isNaN(n) ? defaultValue : n;\n } catch (err) {\n return defaultValue;\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { defaultMap } from './map';\n\nconst symbol = Symbol.for('dxos.instance-contexts');\n\nconst instanceContexts = ((globalThis as any)[symbol] ??= new WeakMap<\n any,\n {\n nextId: number;\n instanceIds: WeakMap<any, number>;\n }\n>());\n\n/**\n * Returns a unique instance id for a given object.\n * Ids are generated as incrementing numbers.\n * Ids are only unique within the scope of a given prototype.\n * Instances of different classes may have the same id.\n */\nexport const getPrototypeSpecificInstanceId = (instance: any): number => {\n const prototype = Object.getPrototypeOf(instance);\n const instanceCtx = defaultMap(instanceContexts as any, prototype, () => ({\n nextId: 0,\n instanceIds: new WeakMap(),\n }));\n\n let id = instanceCtx.instanceIds.get(instance);\n if (id === undefined) {\n id = instanceCtx.nextId++;\n instanceCtx.instanceIds.set(instance, id);\n }\n\n return id;\n};\n\nexport const getDebugName = (instance: any): string => {\n const prototype = Object.getPrototypeOf(instance);\n return `${prototype.constructor.name}#${getPrototypeSpecificInstanceId(instance)}`;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const sum = (values: number[]) => values.reduce((a, b) => a + b, 0);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const forEachAsync = <T>(items: T[], fn: (item: T, idx: number) => Promise<void>) => Promise.all(items.map(fn));\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Weak dictionary. It is a map that holds weak references to its values and allows garbage collection of values and keys.\n */\nexport class WeakDictionary<K, V extends object> implements Map<K, V> {\n private readonly _internal = new Map<K, WeakRef<V>>();\n private readonly _finalization = new FinalizationRegistry((cleanUpCallback: () => void) => {\n cleanUpCallback();\n });\n\n constructor(entries?: [K, V][]) {\n this._internal = new Map(entries?.map(([key, value]) => [key, new WeakRef(value)]));\n entries?.forEach(([key, value]) => this._register(key, value));\n }\n\n *entries(): IterableIterator<[K, V]> {\n for (const [key, value] of this._internal) {\n yield [key, value.deref()!];\n }\n }\n\n keys(): IterableIterator<K> {\n return this._internal.keys();\n }\n\n *values(): IterableIterator<V> {\n for (const value of this._internal.values()) {\n const deref = value.deref();\n if (!deref) {\n continue;\n }\n yield deref;\n }\n }\n\n *[Symbol.iterator](): IterableIterator<[K, V]> {\n for (const [key, value] of this._internal) {\n yield [key, value.deref()!];\n }\n }\n\n get [Symbol.toStringTag](): string {\n return 'WeakDictionary';\n }\n\n get size(): number {\n return this._internal.size;\n }\n\n get(key: K): V | undefined {\n return this._internal.get(key)?.deref();\n }\n\n set(key: K, value: V): this {\n this._internal.set(key, new WeakRef(value));\n this._register(key, value);\n return this;\n }\n\n has(key: K): boolean {\n return this._internal.has(key) && this._internal.get(key)!.deref() !== undefined;\n }\n\n delete(key: K): boolean {\n const value = this._internal.get(key)?.deref();\n if (value) {\n this._unregister(value);\n }\n return this._internal.delete(key);\n }\n\n clear(): void {\n this._internal.forEach((value) => {\n const v = value.deref();\n if (v) {\n this._unregister(v);\n }\n });\n\n this._internal.clear();\n }\n\n forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._internal.forEach((value, key) => {\n const v = value.deref();\n if (v) {\n callbackfn(v, key, this);\n }\n });\n }\n\n private _register(key: K, value: V) {\n this._finalization.register(\n value,\n () => {\n this._internal.delete(key);\n },\n value,\n );\n }\n\n private _unregister(value: V) {\n this._finalization.unregister(value);\n }\n}\n"],
5
+ "mappings": "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A;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAC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",
6
+ "names": ["util", "createBinder", "obj", "fn", "bind", "async", "util", "promisify", "invariant", "BitField", "get", "data", "idx", "bit", "set", "value", "count", "begin", "end", "i", "invert", "result", "Uint8Array", "length", "and", "first", "second", "findIndexes", "opts", "start", "push", "ones", "res", "Math", "ceil", "fill", "bitInLastByte", "zeros", "invariant", "Callback", "call", "args", "_callback", "callIfSet", "set", "callback", "isSet", "createSetDispatch", "handlers", "Proxy", "get", "target", "prop", "forEach", "handler", "method", "apply", "inspect", "inspectObject", "raise", "MAX_SERIALIZATION_LENGTH", "ComplexSet", "constructor", "_projection", "values", "_values", "Map", "value", "add", "toString", "inspectObject", "toJSON", "size", "Array", "from", "inspect", "custom", "set", "clear", "delete", "forEach", "callbackfn", "thisArg", "bind", "has", "Symbol", "iterator", "entries", "keys", "toStringTag", "makeSet", "projection", "BoundComplexSet", "ComplexMap", "_keyProjection", "_keys", "key", "keyDeleted", "valueDeleted", "primitive", "get", "raise", "Error", "makeMap", "keyProjection", "BoundComplexMap", "deferFunction", "fnProvider", "args", "entry", "map", "key", "MapEntry", "constructor", "_map", "_key", "value", "get", "orInsert", "has", "set", "deep", "PublicKey", "DEFAULT_WORDLIST", "HumanHasher", "constructor", "wordlist", "length", "Error", "humanize", "hexdigest", "words", "separator", "pairs", "match", "bytes", "map", "x", "parseInt", "compressed", "_compress", "join", "target", "segSize", "segments", "i", "push", "slice", "concat", "checksums", "reduce", "acc", "curr", "hasher", "value", "Buffer", "Uint8Array", "ArrayBuffer", "PublicKey", "stringify", "toHex", "exponentialBackoffInterval", "cb", "initialInterval", "interval", "repeat", "timeoutId", "setTimeout", "clearTimeout", "inspect", "PublicKey", "arraysEqual", "a", "b", "length", "i", "arrayToBuffer", "array", "Buffer", "from", "buffer", "byteOffset", "byteLength", "bufferToArray", "Uint8Array", "stringToArray", "string", "arrayToString", "toString", "MAX_DEPTH", "jsonReplacer", "key", "value", "inspect", "custom", "type", "Array", "isArray", "data", "length", "Buffer", "from", "humanize", "PublicKey", "stringify", "toString", "jsonify", "depth", "visitedObjects", "WeakSet", "has", "add", "Uint8Array", "arrayToBuffer", "map", "x", "toJSON", "res", "Object", "keys", "delete", "jsonKeyReplacer", "options", "fromHex", "toHex", "truncate", "defaultMap", "map", "key", "def", "value", "get", "undefined", "set", "inferObjectOrder", "objectMap", "order", "orderedObjects", "reduce", "acc", "id", "objects", "push", "ids", "add", "Set", "Object", "keys", "has", "inferRecordOrder", "assign", "filter", "isNode", "process", "versions", "node", "mobileAndTabletCheck", "check", "a", "test", "substr", "navigator", "userAgent", "vendor", "window", "opera", "iosCheck", "includes", "platform", "document", "safariCheck", "randomInt", "max", "min", "Math", "ceil", "floor", "random", "range", "n", "Array", "from", "keys", "rangeFromTo", "to", "map", "i", "accessBy", "value", "accessor", "median", "values", "mid", "Math", "floor", "length", "numericalValues", "result", "total", "count", "sorted", "map", "v", "undefined", "isNaN", "min", "max", "filter", "sort", "a", "b", "Object", "assign", "mean", "reduceSet", "reduce", "add", "Set", "reduceGroupBy", "key", "defaultMap", "push", "Map", "reduceSeries", "reducer", "events", "state", "initialState", "event", "createGroupReducer", "groupBy", "sub", "getDate", "Date", "createBucketReducer", "period", "series", "timestamp", "bucket", "start", "getTime", "instanceTag", "Symbol", "safeInstanceof", "tag", "target", "prototype", "Object", "defineProperty", "hasInstance", "value", "instance", "compareScalar", "inc", "a", "b", "compareString", "caseInsensitive", "toLowerCase", "compareObject", "prop", "sorter", "compareMulti", "sorters", "sort", "i", "s", "length", "Tracer", "_events", "Map", "_recording", "recording", "keys", "Array", "from", "get", "id", "filter", "events", "event", "Object", "entries", "every", "key", "value", "clear", "start", "stop", "emit", "_post", "_createEvent", "mark", "performance", "now", "end", "duration", "timestamp", "Date", "undefined", "defaultMap", "push", "tracer", "boolGuard", "value", "Boolean", "isNotNullOrUndefined", "x", "nonNullable", "undefined", "getAsyncValue", "stripUndefinedValues", "obj", "Object", "keys", "forEach", "key", "arrayMove", "array", "from", "to", "splice", "length", "safeParseInt", "defaultValue", "n", "parseInt", "isNaN", "err", "symbol", "Symbol", "for", "instanceContexts", "globalThis", "WeakMap", "getPrototypeSpecificInstanceId", "instance", "prototype", "Object", "getPrototypeOf", "instanceCtx", "defaultMap", "nextId", "instanceIds", "id", "get", "undefined", "set", "getDebugName", "constructor", "name", "sum", "values", "reduce", "a", "b", "forEachAsync", "items", "fn", "Promise", "all", "map", "WeakDictionary", "constructor", "entries", "_internal", "Map", "_finalization", "FinalizationRegistry", "cleanUpCallback", "map", "key", "value", "WeakRef", "forEach", "_register", "deref", "keys", "values", "Symbol", "iterator", "toStringTag", "size", "get", "set", "has", "undefined", "delete", "_unregister", "clear", "v", "callbackfn", "thisArg", "bind", "register", "unregister"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"inject-globals:@inject-globals":{"bytes":384,"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/binder.ts":{"bytes":1318,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/bitfield.ts":{"bytes":8437,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/callback.ts":{"bytes":5188,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/complex.ts":{"bytes":18664,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/defer-function.ts":{"bytes":1566,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/entry.ts":{"bytes":3002,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/human-hash.ts":{"bytes":19761,"imports":[{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/interval.ts":{"bytes":1827,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/uint8array.ts":{"bytes":3071,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/json.ts":{"bytes":9247,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"packages/common/util/src/human-hash.ts","kind":"import-statement","original":"./human-hash"},{"path":"packages/common/util/src/uint8array.ts","kind":"import-statement","original":"./uint8array"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/map.ts":{"bytes":1373,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/order.ts":{"bytes":4979,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/platform.ts":{"bytes":8503,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/random.ts":{"bytes":1299,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/range.ts":{"bytes":1022,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/reducers.ts":{"bytes":12820,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/safe-instanceof.ts":{"bytes":2688,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/sort.ts":{"bytes":3939,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/tracer.ts":{"bytes":7177,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/types.ts":{"bytes":6333,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/instance-id.ts":{"bytes":4056,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/sum.ts":{"bytes":683,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/for-each-async.ts":{"bytes":793,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/weak.ts":{"bytes":9631,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/index.ts":{"bytes":2456,"imports":[{"path":"packages/common/util/src/binder.ts","kind":"import-statement","original":"./binder"},{"path":"packages/common/util/src/bitfield.ts","kind":"import-statement","original":"./bitfield"},{"path":"packages/common/util/src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"packages/common/util/src/complex.ts","kind":"import-statement","original":"./complex"},{"path":"packages/common/util/src/defer-function.ts","kind":"import-statement","original":"./defer-function"},{"path":"packages/common/util/src/entry.ts","kind":"import-statement","original":"./entry"},{"path":"packages/common/util/src/human-hash.ts","kind":"import-statement","original":"./human-hash"},{"path":"packages/common/util/src/interval.ts","kind":"import-statement","original":"./interval"},{"path":"packages/common/util/src/json.ts","kind":"import-statement","original":"./json"},{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"},{"path":"packages/common/util/src/order.ts","kind":"import-statement","original":"./order"},{"path":"packages/common/util/src/platform.ts","kind":"import-statement","original":"./platform"},{"path":"packages/common/util/src/random.ts","kind":"import-statement","original":"./random"},{"path":"packages/common/util/src/range.ts","kind":"import-statement","original":"./range"},{"path":"packages/common/util/src/reducers.ts","kind":"import-statement","original":"./reducers"},{"path":"packages/common/util/src/safe-instanceof.ts","kind":"import-statement","original":"./safe-instanceof"},{"path":"packages/common/util/src/sort.ts","kind":"import-statement","original":"./sort"},{"path":"packages/common/util/src/tracer.ts","kind":"import-statement","original":"./tracer"},{"path":"packages/common/util/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/common/util/src/uint8array.ts","kind":"import-statement","original":"./uint8array"},{"path":"packages/common/util/src/instance-id.ts","kind":"import-statement","original":"./instance-id"},{"path":"packages/common/util/src/sum.ts","kind":"import-statement","original":"./sum"},{"path":"packages/common/util/src/for-each-async.ts","kind":"import-statement","original":"./for-each-async"},{"path":"packages/common/util/src/weak.ts","kind":"import-statement","original":"./weak"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"packages/common/util/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":67807},"packages/common/util/dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"exports":["BitField","Callback","ComplexMap","ComplexSet","HumanHasher","MapEntry","Tracer","WeakDictionary","accessBy","arrayMove","arrayToBuffer","arraysEqual","boolGuard","bufferToArray","compareMulti","compareObject","compareScalar","compareString","createBinder","createBucketReducer","createGroupReducer","createSetDispatch","defaultMap","deferFunction","entry","exponentialBackoffInterval","forEachAsync","getAsyncValue","getDate","getDebugName","getPrototypeSpecificInstanceId","humanize","inferObjectOrder","inferRecordOrder","iosCheck","isNode","isNotNullOrUndefined","jsonKeyReplacer","jsonReplacer","jsonify","makeMap","makeSet","median","mobileAndTabletCheck","nonNullable","numericalValues","randomInt","range","rangeFromTo","reduceGroupBy","reduceSeries","reduceSet","safariCheck","safeInstanceof","safeParseInt","stripUndefinedValues","sum","tracer"],"entryPoint":"packages/common/util/src/index.ts","inputs":{"inject-globals:@inject-globals":{"bytesInOutput":79},"packages/common/util/src/binder.ts":{"bytesInOutput":149},"packages/common/util/src/index.ts":{"bytesInOutput":0},"packages/common/util/src/bitfield.ts":{"bytesInOutput":1889},"packages/common/util/src/callback.ts":{"bytesInOutput":1108},"packages/common/util/src/complex.ts":{"bytesInOutput":3706},"packages/common/util/src/defer-function.ts":{"bytesInOutput":72},"packages/common/util/src/entry.ts":{"bytesInOutput":471},"packages/common/util/src/human-hash.ts":{"bytesInOutput":5662},"packages/common/util/src/interval.ts":{"bytesInOutput":290},"packages/common/util/src/json.ts":{"bytesInOutput":1897},"packages/common/util/src/uint8array.ts":{"bytesInOutput":418},"packages/common/util/src/map.ts":{"bytesInOutput":193},"packages/common/util/src/order.ts":{"bytesInOutput":676},"packages/common/util/src/platform.ts":{"bytesInOutput":2676},"packages/common/util/src/random.ts":{"bytesInOutput":144},"packages/common/util/src/range.ts":{"bytesInOutput":119},"packages/common/util/src/reducers.ts":{"bytesInOutput":2326},"packages/common/util/src/safe-instanceof.ts":{"bytesInOutput":371},"packages/common/util/src/sort.ts":{"bytesInOutput":643},"packages/common/util/src/tracer.ts":{"bytesInOutput":1426},"packages/common/util/src/types.ts":{"bytesInOutput":936},"packages/common/util/src/instance-id.ts":{"bytesInOutput":722},"packages/common/util/src/sum.ts":{"bytesInOutput":57},"packages/common/util/src/for-each-async.ts":{"bytesInOutput":62},"packages/common/util/src/weak.ts":{"bytesInOutput":2069}},"bytes":30195}}}
1
+ {"inputs":{"inject-globals:@inject-globals":{"bytes":384,"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/binder.ts":{"bytes":1323,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/bitfield.ts":{"bytes":8442,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/callback.ts":{"bytes":5193,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/complex.ts":{"bytes":18669,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/defer-function.ts":{"bytes":1571,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/entry.ts":{"bytes":3007,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/human-hash.ts":{"bytes":19766,"imports":[{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/interval.ts":{"bytes":1832,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/uint8array.ts":{"bytes":3758,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/json.ts":{"bytes":9252,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"packages/common/util/src/human-hash.ts","kind":"import-statement","original":"./human-hash"},{"path":"packages/common/util/src/uint8array.ts","kind":"import-statement","original":"./uint8array"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/map.ts":{"bytes":1378,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/order.ts":{"bytes":4984,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/platform.ts":{"bytes":8508,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/random.ts":{"bytes":1304,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/range.ts":{"bytes":1027,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/reducers.ts":{"bytes":12825,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/safe-instanceof.ts":{"bytes":2693,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/sort.ts":{"bytes":3944,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/tracer.ts":{"bytes":7182,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/types.ts":{"bytes":6338,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/instance-id.ts":{"bytes":4061,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/sum.ts":{"bytes":688,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/for-each-async.ts":{"bytes":798,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/weak.ts":{"bytes":9636,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/index.ts":{"bytes":2461,"imports":[{"path":"packages/common/util/src/binder.ts","kind":"import-statement","original":"./binder"},{"path":"packages/common/util/src/bitfield.ts","kind":"import-statement","original":"./bitfield"},{"path":"packages/common/util/src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"packages/common/util/src/complex.ts","kind":"import-statement","original":"./complex"},{"path":"packages/common/util/src/defer-function.ts","kind":"import-statement","original":"./defer-function"},{"path":"packages/common/util/src/entry.ts","kind":"import-statement","original":"./entry"},{"path":"packages/common/util/src/human-hash.ts","kind":"import-statement","original":"./human-hash"},{"path":"packages/common/util/src/interval.ts","kind":"import-statement","original":"./interval"},{"path":"packages/common/util/src/json.ts","kind":"import-statement","original":"./json"},{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"},{"path":"packages/common/util/src/order.ts","kind":"import-statement","original":"./order"},{"path":"packages/common/util/src/platform.ts","kind":"import-statement","original":"./platform"},{"path":"packages/common/util/src/random.ts","kind":"import-statement","original":"./random"},{"path":"packages/common/util/src/range.ts","kind":"import-statement","original":"./range"},{"path":"packages/common/util/src/reducers.ts","kind":"import-statement","original":"./reducers"},{"path":"packages/common/util/src/safe-instanceof.ts","kind":"import-statement","original":"./safe-instanceof"},{"path":"packages/common/util/src/sort.ts","kind":"import-statement","original":"./sort"},{"path":"packages/common/util/src/tracer.ts","kind":"import-statement","original":"./tracer"},{"path":"packages/common/util/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/common/util/src/uint8array.ts","kind":"import-statement","original":"./uint8array"},{"path":"packages/common/util/src/instance-id.ts","kind":"import-statement","original":"./instance-id"},{"path":"packages/common/util/src/sum.ts","kind":"import-statement","original":"./sum"},{"path":"packages/common/util/src/for-each-async.ts","kind":"import-statement","original":"./for-each-async"},{"path":"packages/common/util/src/weak.ts","kind":"import-statement","original":"./weak"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"packages/common/util/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":68196},"packages/common/util/dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"exports":["BitField","Callback","ComplexMap","ComplexSet","HumanHasher","MapEntry","Tracer","WeakDictionary","accessBy","arrayMove","arrayToBuffer","arrayToString","arraysEqual","boolGuard","bufferToArray","compareMulti","compareObject","compareScalar","compareString","createBinder","createBucketReducer","createGroupReducer","createSetDispatch","defaultMap","deferFunction","entry","exponentialBackoffInterval","forEachAsync","getAsyncValue","getDate","getDebugName","getPrototypeSpecificInstanceId","humanize","inferObjectOrder","inferRecordOrder","iosCheck","isNode","isNotNullOrUndefined","jsonKeyReplacer","jsonReplacer","jsonify","makeMap","makeSet","median","mobileAndTabletCheck","nonNullable","numericalValues","randomInt","range","rangeFromTo","reduceGroupBy","reduceSeries","reduceSet","safariCheck","safeInstanceof","safeParseInt","stringToArray","stripUndefinedValues","sum","tracer"],"entryPoint":"packages/common/util/src/index.ts","inputs":{"inject-globals:@inject-globals":{"bytesInOutput":79},"packages/common/util/src/binder.ts":{"bytesInOutput":149},"packages/common/util/src/index.ts":{"bytesInOutput":0},"packages/common/util/src/bitfield.ts":{"bytesInOutput":1894},"packages/common/util/src/callback.ts":{"bytesInOutput":1113},"packages/common/util/src/complex.ts":{"bytesInOutput":3706},"packages/common/util/src/defer-function.ts":{"bytesInOutput":72},"packages/common/util/src/entry.ts":{"bytesInOutput":471},"packages/common/util/src/human-hash.ts":{"bytesInOutput":5662},"packages/common/util/src/interval.ts":{"bytesInOutput":290},"packages/common/util/src/json.ts":{"bytesInOutput":1897},"packages/common/util/src/uint8array.ts":{"bytesInOutput":562},"packages/common/util/src/map.ts":{"bytesInOutput":193},"packages/common/util/src/order.ts":{"bytesInOutput":676},"packages/common/util/src/platform.ts":{"bytesInOutput":2676},"packages/common/util/src/random.ts":{"bytesInOutput":144},"packages/common/util/src/range.ts":{"bytesInOutput":119},"packages/common/util/src/reducers.ts":{"bytesInOutput":2326},"packages/common/util/src/safe-instanceof.ts":{"bytesInOutput":371},"packages/common/util/src/sort.ts":{"bytesInOutput":643},"packages/common/util/src/tracer.ts":{"bytesInOutput":1426},"packages/common/util/src/types.ts":{"bytesInOutput":936},"packages/common/util/src/instance-id.ts":{"bytesInOutput":722},"packages/common/util/src/sum.ts":{"bytesInOutput":57},"packages/common/util/src/for-each-async.ts":{"bytesInOutput":62},"packages/common/util/src/weak.ts":{"bytesInOutput":2069}},"bytes":30383}}}
@@ -39,6 +39,7 @@ __export(node_exports, {
39
39
  accessBy: () => accessBy,
40
40
  arrayMove: () => arrayMove,
41
41
  arrayToBuffer: () => arrayToBuffer,
42
+ arrayToString: () => arrayToString,
42
43
  arraysEqual: () => arraysEqual,
43
44
  boolGuard: () => boolGuard,
44
45
  bufferToArray: () => bufferToArray,
@@ -83,6 +84,7 @@ __export(node_exports, {
83
84
  safariCheck: () => safariCheck,
84
85
  safeInstanceof: () => safeInstanceof,
85
86
  safeParseInt: () => safeParseInt,
87
+ stringToArray: () => stringToArray,
86
88
  stripUndefinedValues: () => stripUndefinedValues,
87
89
  sum: () => sum,
88
90
  tracer: () => tracer
@@ -100,7 +102,7 @@ var createBinder = (obj) => ({
100
102
  fn: (fn) => fn.bind(obj),
101
103
  async: (fn) => import_node_util.default.promisify(fn.bind(obj))
102
104
  });
103
- var __dxlog_file = "/home/circleci/project/packages/common/util/src/bitfield.ts";
105
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/common/util/src/bitfield.ts";
104
106
  var BitField = class _BitField {
105
107
  static get(data, idx) {
106
108
  const bit = data[idx >> 3] >> 7 - idx % 8 & 1;
@@ -167,7 +169,7 @@ var BitField = class _BitField {
167
169
  return new Uint8Array(Math.ceil(Math.ceil(count) / 8)).fill(0);
168
170
  }
169
171
  };
170
- var __dxlog_file2 = "/home/circleci/project/packages/common/util/src/callback.ts";
172
+ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/common/util/src/callback.ts";
171
173
  var Callback = class {
172
174
  call(...args) {
173
175
  (0, import_invariant2.invariant)(this._callback, "Callback not set", {
@@ -751,6 +753,8 @@ var arrayToBuffer = (array) => {
751
753
  var bufferToArray = (buffer) => {
752
754
  return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
753
755
  };
756
+ var stringToArray = (string) => bufferToArray(Buffer.from(string, "hex"));
757
+ var arrayToString = (array) => arrayToBuffer(array).toString("hex");
754
758
  var MAX_DEPTH = 5;
755
759
  function jsonReplacer(key, value) {
756
760
  if (value !== null && typeof value === "object" && typeof value[import_node_util3.inspect.custom] === "function") {
@@ -1207,6 +1211,7 @@ var WeakDictionary = class {
1207
1211
  accessBy,
1208
1212
  arrayMove,
1209
1213
  arrayToBuffer,
1214
+ arrayToString,
1210
1215
  arraysEqual,
1211
1216
  boolGuard,
1212
1217
  bufferToArray,
@@ -1251,6 +1256,7 @@ var WeakDictionary = class {
1251
1256
  safariCheck,
1252
1257
  safeInstanceof,
1253
1258
  safeParseInt,
1259
+ stringToArray,
1254
1260
  stripUndefinedValues,
1255
1261
  sum,
1256
1262
  tracer
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/binder.ts", "../../../src/bitfield.ts", "../../../src/callback.ts", "../../../src/complex.ts", "../../../src/defer-function.ts", "../../../src/entry.ts", "../../../src/human-hash.ts", "../../../src/interval.ts", "../../../src/json.ts", "../../../src/uint8array.ts", "../../../src/map.ts", "../../../src/order.ts", "../../../src/platform.ts", "../../../src/random.ts", "../../../src/range.ts", "../../../src/reducers.ts", "../../../src/safe-instanceof.ts", "../../../src/sort.ts", "../../../src/tracer.ts", "../../../src/types.ts", "../../../src/instance-id.ts", "../../../src/sum.ts", "../../../src/for-each-async.ts", "../../../src/weak.ts"],
4
- "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport util from 'node:util';\n\n/**\n * Function binder replaces pify.\n */\n// TODO(burdon): Replace pify everywhere.\nexport const createBinder = (obj: any) => ({\n fn: (fn: Function) => fn.bind(obj),\n async: (fn: Function) => util.promisify(fn.bind(obj)),\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\n\n/**\n * Bitfield encodes indices from MSB to LSB.\n * Index 0 is the MSB of the first byte.\n *\n *\n * #0 #1 #2 #3\n * 01010101 11110000 00001111 01010101\n * ^ ^\n * MSB LSB\n */\nexport class BitField {\n static get(data: Uint8Array, idx: number): boolean {\n const bit = (data[idx >> 3] >> (7 - (idx % 8))) & 0x1;\n return !!bit;\n }\n\n static set(data: Uint8Array, idx: number, value: boolean) {\n if (value) {\n data[idx >> 3] = data[idx >> 3] | (1 << (7 - (idx % 8)));\n } else {\n data[idx >> 3] = data[idx >> 3] & ~(1 << (7 - (idx % 8)));\n }\n }\n\n /**\n * [start; end)\n */\n static count(data: Uint8Array, begin: number, end: number): number {\n let count = 0;\n for (let i = begin; i < end; i++) {\n const bit = (data[i >> 3] >> (7 - (i % 8))) & 0x1;\n count += bit;\n }\n return count;\n }\n\n static invert(data: Uint8Array): Uint8Array {\n const result = new Uint8Array(data.length);\n for (let i = 0; i < data.length; i++) {\n result[i] = ~data[i];\n }\n return result;\n }\n\n static and(first: Uint8Array, second: Uint8Array) {\n invariant(first.length === second.length, 'Bitfields must be of the same length');\n const result = new Uint8Array(first.length);\n for (let i = 0; i < first.length; i++) {\n result[i] = first[i] & second[i];\n }\n return result;\n }\n\n static findIndexes(data: Uint8Array, opts: { start?: number; end?: number; value?: boolean } = {}): number[] {\n const { start = 0, end = data.length * 8, value = true } = opts;\n\n const result = [];\n\n for (let i = start; i < end; i++) {\n if (BitField.get(data, i) === value) {\n result.push(i);\n }\n }\n return result;\n }\n\n static ones(count: number): Uint8Array {\n const res = new Uint8Array(Math.ceil(Math.ceil(count) / 8)).fill(0xff);\n\n // Note: We need to calculate last byte of bitfield.\n const bitInLastByte = Math.ceil(count % 8);\n res[res.length - 1] = 0xff << (8 - bitInLastByte);\n\n return res;\n }\n\n static zeros(count: number): Uint8Array {\n return new Uint8Array(Math.ceil(Math.ceil(count) / 8)).fill(0);\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\n\n/**\n * Represents a callback that can be set once.\n *\n * Common usage is dependency injection.\n * In contrast to events, callbacks can only have one handler,\n * are executed synchronously,\n * and can return results.\n */\n// TODO(burdon): Move to @dxos/async.\nexport class Callback<T extends (...args: any[]) => any> {\n private _callback: T | undefined;\n\n public call(...args: Parameters<T>): ReturnType<T> {\n invariant(this._callback, 'Callback not set');\n return this._callback(...args);\n }\n\n public callIfSet(...args: Parameters<T>): ReturnType<T> | undefined {\n return this._callback?.(...args);\n }\n\n public set(callback: T) {\n invariant(!this._callback, 'Callback already set');\n this._callback = callback;\n }\n\n public isSet() {\n return !!this._callback;\n }\n}\n\nexport type SetCallbacks<T> = { handlers: Set<T> };\n\n/**\n * Create a fan-out callback handler.\n * NOTE: Methods cannot return values.\n */\nexport const createSetDispatch = <T extends {}>({ handlers }: SetCallbacks<T>) => {\n type Obj = { [i: string | symbol]: any };\n return new Proxy<any>(\n {\n handlers,\n },\n {\n get: (target: Obj, prop) => {\n return (...args: any[]) => {\n handlers.forEach((handler: Obj) => {\n const method = handler[prop];\n if (method) {\n method.apply(handler, args);\n }\n });\n };\n },\n },\n );\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport { inspectObject, raise } from '@dxos/debug';\n\nexport type Primitive = string | number | boolean | null | undefined;\n\nexport type PrimitiveProjection<T> = (value: T) => Primitive;\n\nconst MAX_SERIALIZATION_LENGTH = 10;\n\n/**\n * A set implementation that can hold complex values (like Buffer).\n *\n * The user must provide a projection function which returns a primitive\n * representation of the complex value. This function must be 1-to-1 mapping.\n *\n * Look at `../complex.test.ts` for usage examples.\n */\nexport class ComplexSet<T> implements Set<T> {\n private readonly _values = new Map<Primitive, T>();\n\n // prettier-ignore\n constructor(\n private readonly _projection: PrimitiveProjection<T>,\n values?: Iterable<T> | null,\n ) {\n if (values) {\n for (const value of values) {\n this.add(value);\n }\n }\n }\n\n toString() {\n return inspectObject(this);\n }\n\n toJSON() {\n return this._values.size > MAX_SERIALIZATION_LENGTH\n ? { size: this._values.size }\n : Array.from(this._values.values());\n }\n\n [inspect.custom]() {\n return inspectObject(this);\n }\n\n add(value: T): this {\n this._values.set(this._projection(value), value);\n return this;\n }\n\n clear(): void {\n this._values.clear();\n }\n\n delete(value: T): boolean {\n return this._values.delete(this._projection(value));\n }\n\n forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._values.forEach((value) => callbackfn(value, value, this));\n }\n\n has(value: T): boolean {\n return this._values.has(this._projection(value));\n }\n\n get size(): number {\n return this._values.size;\n }\n\n [Symbol.iterator](): IterableIterator<T> {\n return this._values.values();\n }\n\n *entries(): IterableIterator<[T, T]> {\n for (const value of this._values.values()) {\n yield [value, value];\n }\n }\n\n keys(): IterableIterator<T> {\n return this[Symbol.iterator]();\n }\n\n values(): IterableIterator<T> {\n return this[Symbol.iterator]();\n }\n\n get [Symbol.toStringTag](): string {\n return 'ComplexSet';\n }\n}\n\nexport type ComplexSetConstructor<T> = new (values?: Iterable<T> | null) => ComplexSet<T>;\n\n/**\n * Create a subclass of ComplexSet with predefined projection function.\n */\nexport const makeSet = <T>(projection: PrimitiveProjection<T>): ComplexSetConstructor<T> => {\n return class BoundComplexSet extends ComplexSet<T> {\n constructor(values?: Iterable<T> | null) {\n super(projection, values);\n }\n };\n};\n\n/**\n * A map implementation that can hold complex values (like Buffer) as keys.\n * The user must provide a projection function for map keys which returns a primitive\n * representation of the complex value. This function must be 1-to-1 mapping.\n * Look at `../complex.test.ts` for usage examples.\n */\nexport class ComplexMap<K, V> implements Map<K, V> {\n private readonly _keys = new Map<Primitive, K>();\n private readonly _values = new Map<Primitive, V>();\n\n // prettier-ignore\n constructor(\n private readonly _keyProjection: PrimitiveProjection<K>,\n entries?: readonly (readonly [K, V])[] | null,\n ) {\n if (entries) {\n for (const [key, value] of entries) {\n this.set(key, value);\n }\n }\n }\n\n toString() {\n return inspectObject(this);\n }\n\n toJSON() {\n return this._values.size > MAX_SERIALIZATION_LENGTH\n ? { size: this._values.size }\n : Array.from(this._values.values());\n }\n\n [inspect.custom]() {\n return inspectObject(this);\n }\n\n clear(): void {\n this._keys.clear();\n this._values.clear();\n }\n\n delete(key: K): boolean {\n const keyDeleted = this._keys.delete(this._keyProjection(key));\n const valueDeleted = this._values.delete(this._keyProjection(key));\n return keyDeleted || valueDeleted;\n }\n\n forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._keys.forEach((key, primitive) =>\n callbackfn(this._values.get(primitive) ?? raise(new Error('Map corrupted.')), key, this),\n );\n }\n\n get(key: K): V | undefined {\n return this._values.get(this._keyProjection(key));\n }\n\n has(key: K): boolean {\n return this._keys.has(this._keyProjection(key));\n }\n\n set(key: K, value: V): this {\n const primitive = this._keyProjection(key);\n this._keys.set(primitive, key);\n this._values.set(primitive, value);\n return this;\n }\n\n get size(): number {\n return this._keys.size;\n }\n\n *[Symbol.iterator](): IterableIterator<[K, V]> {\n for (const [primitive, key] of this._keys) {\n const value = this._values.get(primitive) ?? raise(new Error('Map corrupted.'));\n yield [key, value];\n }\n }\n\n entries(): IterableIterator<[K, V]> {\n return this[Symbol.iterator]();\n }\n\n keys(): IterableIterator<K> {\n return this._keys.values();\n }\n\n values(): IterableIterator<V> {\n return this._values.values();\n }\n\n get [Symbol.toStringTag](): string {\n return 'ComplexMap';\n }\n}\n\nexport type ComplexMapConstructor<K> = new <V>(entries?: readonly (readonly [K, V])[] | null) => ComplexMap<K, V>;\n\n/**\n * Create a subclass of ComplexMap with predefined key projection function.\n */\nexport const makeMap = <K>(keyProjection: PrimitiveProjection<K>): ComplexMapConstructor<K> =>\n class BoundComplexMap<V> extends ComplexMap<K, V> {\n constructor(entries?: readonly (readonly [K, V])[] | null) {\n super(keyProjection, entries);\n }\n };\n", "/**\n * Wraps a function provider in a function that will defer the execution of the provided function.\n *\n * Example:\n *\n * ```typescript\n * const fn = deferFunction(() => impl);\n *\n * // Impl can be defined after the usage.\n * const impl = () => {\n * console.log('Hello World!')\n * }\n * ```\n */\n//\n// Copyright 2022 DXOS.org\n//\n\nexport const deferFunction =\n <T extends (...args: any[]) => any>(fnProvider: () => T) =>\n (...args: Parameters<T>): ReturnType<T> =>\n fnProvider()(...args);\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Inspired by https://doc.rust-lang.org/std/collections/struct.HashMap.html#method.entry\n */\nexport const entry = <K, V>(map: Map<K, V>, key: K): MapEntry<K, V, undefined> => new MapEntry(map, key);\n\nexport class MapEntry<K, V, U> {\n /**\n * @internal\n */\n // prettier-ignore\n constructor(\n private readonly _map: Map<K, V>,\n private readonly _key: K,\n ) {}\n\n get key(): K {\n return this._key;\n }\n\n get value(): V | U {\n return this._map.get(this._key) as V | U;\n }\n\n orInsert(value: V): MapEntry<K, V, never> {\n if (!this._map.has(this._key)) {\n this._map.set(this._key, value);\n }\n return this as any;\n }\n\n deep<K1, V1>(this: MapEntry<K, Map<K1, V1>, Map<K1, V1>>, key: K1): MapEntry<K1, V1, undefined> {\n return entry(this.value, key);\n }\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { PublicKey, type PublicKeyLike } from '@dxos/keys';\n\n// From https://github.com/SEBv15/humanhash/blob/166c1a6f70d854fe6767cdd76be1237112d4eaf1/index.js\n\nconst DEFAULT_WORDLIST = [\n 'ack',\n 'alabama',\n 'alanine',\n 'alaska',\n 'alpha',\n 'angel',\n 'apart',\n 'april',\n 'arizona',\n 'arkansas',\n 'artist',\n 'asparagus',\n 'aspen',\n 'august',\n 'autumn',\n 'avocado',\n 'bacon',\n 'bakerloo',\n 'batman',\n 'beer',\n 'berlin',\n 'beryllium',\n 'black',\n 'blossom',\n 'blue',\n 'bluebird',\n 'bravo',\n 'bulldog',\n 'burger',\n 'butter',\n 'california',\n 'carbon',\n 'cardinal',\n 'carolina',\n 'carpet',\n 'cat',\n 'ceiling',\n 'charlie',\n 'chicken',\n 'coffee',\n 'cola',\n 'cold',\n 'colorado',\n 'comet',\n 'connecticut',\n 'crazy',\n 'cup',\n 'dakota',\n 'december',\n 'delaware',\n 'delta',\n 'diet',\n 'don',\n 'double',\n 'early',\n 'earth',\n 'east',\n 'echo',\n 'edward',\n 'eight',\n 'eighteen',\n 'eleven',\n 'emma',\n 'enemy',\n 'equal',\n 'failed',\n 'fanta',\n 'fifteen',\n 'fillet',\n 'finch',\n 'fish',\n 'five',\n 'fix',\n 'floor',\n 'florida',\n 'football',\n 'four',\n 'fourteen',\n 'foxtrot',\n 'freddie',\n 'friend',\n 'fruit',\n 'gee',\n 'georgia',\n 'glucose',\n 'golf',\n 'green',\n 'grey',\n 'hamper',\n 'happy',\n 'harry',\n 'hawaii',\n 'helium',\n 'high',\n 'hot',\n 'hotel',\n 'hydrogen',\n 'idaho',\n 'illinois',\n 'india',\n 'indigo',\n 'ink',\n 'iowa',\n 'island',\n 'item',\n 'jersey',\n 'jig',\n 'johnny',\n 'juliet',\n 'july',\n 'jupiter',\n 'kansas',\n 'kentucky',\n 'kilo',\n 'king',\n 'kitten',\n 'lactose',\n 'lake',\n 'lamp',\n 'lemon',\n 'leopard',\n 'lima',\n 'lion',\n 'lithium',\n 'london',\n 'louisiana',\n 'low',\n 'magazine',\n 'magnesium',\n 'maine',\n 'mango',\n 'march',\n 'mars',\n 'maryland',\n 'massachusetts',\n 'may',\n 'mexico',\n 'michigan',\n 'mike',\n 'minnesota',\n 'mirror',\n 'mississippi',\n 'missouri',\n 'mobile',\n 'mockingbird',\n 'monkey',\n 'montana',\n 'moon',\n 'mountain',\n 'muppet',\n 'music',\n 'nebraska',\n 'neptune',\n 'network',\n 'nevada',\n 'nine',\n 'nineteen',\n 'nitrogen',\n 'north',\n 'november',\n 'nuts',\n 'october',\n 'ohio',\n 'oklahoma',\n 'one',\n 'orange',\n 'oranges',\n 'oregon',\n 'oscar',\n 'oven',\n 'oxygen',\n 'papa',\n 'paris',\n 'pasta',\n 'pennsylvania',\n 'pip',\n 'pizza',\n 'pluto',\n 'potato',\n 'princess',\n 'purple',\n 'quebec',\n 'queen',\n 'quiet',\n 'red',\n 'river',\n 'robert',\n 'robin',\n 'romeo',\n 'rugby',\n 'sad',\n 'salami',\n 'saturn',\n 'september',\n 'seven',\n 'seventeen',\n 'shade',\n 'sierra',\n 'single',\n 'sink',\n 'six',\n 'sixteen',\n 'skylark',\n 'snake',\n 'social',\n 'sodium',\n 'solar',\n 'south',\n 'spaghetti',\n 'speaker',\n 'spring',\n 'stairway',\n 'steak',\n 'stream',\n 'summer',\n 'sweet',\n 'table',\n 'tango',\n 'ten',\n 'tennessee',\n 'tennis',\n 'texas',\n 'thirteen',\n 'three',\n 'timing',\n 'triple',\n 'twelve',\n 'twenty',\n 'two',\n 'uncle',\n 'undress',\n 'uniform',\n 'uranus',\n 'utah',\n 'vegan',\n 'venus',\n 'vermont',\n 'victor',\n 'video',\n 'violet',\n 'virginia',\n 'washington',\n 'west',\n 'whiskey',\n 'white',\n 'william',\n 'winner',\n 'winter',\n 'wisconsin',\n 'wolfram',\n 'wyoming',\n 'xray',\n 'yankee',\n 'yellow',\n 'zebra',\n 'zulu',\n];\n\n/**\n * humanhash: Human-readable representations of digests.\n */\nexport class HumanHasher {\n /**\n * Transforms hex digests to human-readable strings.\n *\n * The format of these strings will look something like:\n * `victor-bacon-zulu-lima`. The output is obtained by compressing the input\n * digest to a fixed number of bytes, then mapping those bytes to one of 256\n * words. A default wordlist is provided, but you can override this if you\n * prefer.\n * As long as you use the same wordlist, the output will be consistent (i.e.\n * the same digest will always render the same representation).\n *\n * @param wordlist A list of exactly 256 words to choose from\n */\n constructor(private readonly wordlist = DEFAULT_WORDLIST) {\n if (wordlist.length !== 256) {\n throw new Error('Wordlist must have exactly 256 items');\n }\n this.wordlist = wordlist;\n }\n\n /**\n * Humanize a given hexadecimal digest.\n *\n * Change the number of words output by specifying `words`. Change the\n * word separator with `separator`.\n *\n * @param hexdigest A string of hexadecimal characters to humanize\n * @param words How many words to output (more = safer)\n * @param separator The string used to seperate the words\n */\n humanize(hexdigest: string, words = 4, separator = '-') {\n const pairs = hexdigest.match(/(..?)/g);\n if (!pairs) {\n throw new Error('');\n }\n\n const bytes = pairs.map((x) => parseInt(x, 16));\n const compressed = this._compress(bytes, words);\n\n return compressed.map((x) => this.wordlist[x]).join(separator);\n }\n\n /**\n * Compress a list of byte values to a fixed target length.\n *\n * @param bytes A list of bytes (numbers from 0-254)\n * @param target The number of bytes to return / compress to\n */\n _compress(bytes: number[], target: number) {\n const length = bytes.length;\n if (target > length) {\n throw new Error('Fewer input bytes than requested output');\n }\n\n // Calculate the segment size (divide and round down)\n const segSize = (length / target) >> 0;\n\n // Split 'bytes' array into 'target' number of segments.\n const segments = [];\n for (let i = 0; i < segSize * target; i += segSize) {\n segments.push(bytes.slice(i, i + segSize));\n }\n\n // Catch any left-over bytes in the last segment.\n segments[segments.length - 1] = segments[segments.length - 1].concat(bytes.slice(target * segSize));\n\n const checksums = segments.map((x) => x.reduce((acc, curr) => acc ^ curr));\n return checksums;\n }\n}\n\nconst hasher = new HumanHasher();\n\nexport const humanize = (value: PublicKeyLike): string => {\n if (value instanceof Buffer || value instanceof Uint8Array || value instanceof ArrayBuffer) {\n value = PublicKey.stringify(value);\n } else if (value instanceof PublicKey) {\n value = value.toHex();\n }\n\n return hasher.humanize(value);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\n/**\n * Runs the callback in an exponentially increasing interval.\n * @returns Callback to clear the interval.\n */\nexport const exponentialBackoffInterval = (cb: () => void, initialInterval: number): (() => void) => {\n let interval = initialInterval;\n const repeat = () => {\n cb();\n interval *= 2;\n timeoutId = setTimeout(repeat, interval);\n };\n\n let timeoutId = setTimeout(repeat, interval);\n return () => clearTimeout(timeoutId);\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport { PublicKey } from '@dxos/keys';\n\nimport { humanize } from './human-hash';\nimport { arrayToBuffer } from './uint8array';\n\nconst MAX_DEPTH = 5;\n\n/**\n * JSON.stringify replacer.\n */\nexport function jsonReplacer(this: any, key: string, value: any): any {\n // TODO(burdon): Why is this represented as `{ type: 'Buffer', data }`.\n if (value !== null && typeof value === 'object' && typeof value[inspect.custom] === 'function') {\n return value[inspect.custom]();\n }\n\n if (value !== null && typeof value === 'object' && value.type === 'Buffer' && Array.isArray(value.data)) {\n if (value.data.length === 32) {\n const key = Buffer.from(value.data);\n return `[${humanize(key)}]:[${PublicKey.stringify(key)}]`;\n } else {\n return Buffer.from(value.data).toString('hex');\n }\n }\n\n // TODO(burdon): Option.\n // code if (Array.isArray(value)) {\n // code return value.length;\n // code } else {\n return value;\n // code }\n}\n\n/**\n * Recursively converts an object into a JSON-compatible object.\n */\nexport const jsonify = (value: any, depth = 0, visitedObjects = new WeakSet<any>()): any => {\n if (depth > MAX_DEPTH) {\n return null;\n } else if (typeof value === 'function') {\n return null;\n } else if (typeof value === 'object' && value !== null) {\n if (visitedObjects.has(value)) {\n return null;\n }\n visitedObjects.add(value);\n\n try {\n if (value instanceof Uint8Array) {\n return arrayToBuffer(value).toString('hex');\n } else if (Array.isArray(value)) {\n return value.map((x) => jsonify(x, depth + 1, visitedObjects));\n } else if (typeof value.toJSON === 'function') {\n return value.toJSON();\n } else {\n const res: any = {};\n for (const key of Object.keys(value)) {\n res[key] = jsonify(value[key], depth + 1, visitedObjects);\n }\n return res;\n }\n } finally {\n visitedObjects.delete(value);\n }\n } else {\n return value;\n }\n};\n\nexport type JsonKeyOptions = {\n truncate?: boolean;\n humanize?: boolean;\n};\n\nexport const jsonKeyReplacer =\n (options: JsonKeyOptions = {}) =>\n (key: string, value: any) => {\n if (typeof value === 'string') {\n const key = PublicKey.fromHex(value);\n if (key.toHex() === value) {\n // TODO(burdon): Remove humanize.\n return options.humanize ? humanize(key) : options.truncate ? key.truncate() : key.toHex();\n }\n }\n\n return value;\n };\n", "//\n// Copyright 2021 DXOS.org\n//\n\nexport const arraysEqual = (a: Uint8Array, b: Uint8Array): boolean => {\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * Non-copying conversion of Uint8Array to Buffer.\n * The resulting buffer will share the same allocated memory as the Uint8Array.\n */\nexport const arrayToBuffer = (array: Uint8Array): Buffer => {\n return Buffer.from(array.buffer, array.byteOffset, array.byteLength);\n};\n\n/**\n * Non-copying conversion of Buffer to Uint8Array.\n * The resulting Uint8Array will share the same allocated memory as the Buffer.\n */\nexport const bufferToArray = (buffer: Buffer): Uint8Array => {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\n/**\n * Get or set map value.\n */\nexport const defaultMap = <K, V>(map: Map<K, V>, key: K, def: V | (() => V)) => {\n let value = map.get(key);\n if (value === undefined) {\n value = typeof def === 'function' ? (def as () => V)() : def;\n map.set(key, value);\n }\n\n return value;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport type IdOrder = string[];\n\ntype ObjectOrderAccumulator<T> = { objects: T[]; ids: Set<string> };\n\n/**\n * Uses an array of string id’s to order a map of objects, returning an array of those objects. Objects not listed by\n * the array of id’s occur later in the resulting array of objects based on the map’s key order.\n * @param objectMap\n * @param order\n */\nexport const inferObjectOrder = <T = any>(objectMap: Record<string, T>, order: IdOrder = []): T[] => {\n const orderedObjects = order.reduce(\n (acc, id) => {\n if (id in objectMap) {\n acc.objects.push(objectMap[id]);\n acc.ids.add(id);\n }\n return acc;\n },\n { objects: [], ids: new Set() } as ObjectOrderAccumulator<T>,\n );\n const { objects } = Object.keys(objectMap).reduce((acc, id) => {\n if (!acc.ids.has(id)) {\n acc.objects.push(objectMap[id]);\n }\n return acc;\n }, orderedObjects);\n return objects;\n};\n\n/**\n * Uses an array of string id’s to order a map of objects, returning a new map with the keys in the prescribed order.\n * Objects not listed by the array of id’s occur later in the resulting array of objects based on the map’s key order.\n * @param objectMap\n * @param order\n */\nexport const inferRecordOrder = <T = any>(objectMap: Record<string, T>, order: IdOrder = []): Record<string, T> => {\n return Object.assign(\n order\n .filter((id) => id in objectMap)\n .reduce((acc: Record<string, null>, id) => {\n acc[id] = null;\n return acc;\n }, {}),\n objectMap,\n );\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\n// NOTE: `!=` is required.\nexport const isNode = () => typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\n\n/* eslint-disable */\n\n// From https://stackoverflow.com/a/11381730/2804332.\nexport const mobileAndTabletCheck = () => {\n let check = false;\n ((a) => { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0,4))) { check = true; } })(navigator.userAgent || navigator.vendor || (window as any).opera);\n return check;\n};\n\n/* eslint-enable */\n\n// From https://stackoverflow.com/a/9039885\nexport const iosCheck = () => {\n return (\n ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||\n // iPad on iOS 13 detection\n (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n );\n};\n\n// From https://stackoverflow.com/a/23522755/2804332\nexport const safariCheck = () =>\n typeof navigator !== 'undefined' && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n", "//\n// Copyright 2021 DXOS.org\n//\n\n// TODO(burdon): Random class utility.\n// TODO(burdon): Make object { min, max }.\nexport const randomInt = (max: number, min: number) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nexport const range = (n: number) => Array.from(Array(n).keys());\n\nexport const rangeFromTo = (from: number, to: number) => range(to - from).map((i) => i + from);\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// TODO(burdon): Factor out.\n// TODO(burdon): Consider mathjs for variance, standard deviations, etc.\n// https://www.npmjs.com/package/mathjs\n\nimport { defaultMap } from './map';\n\nexport type Accessor<T, V> = string | ((value: T) => V);\n\nexport const accessBy = <T, V>(value: T, accessor: Accessor<T, V>) =>\n typeof accessor === 'function' ? accessor(value) : (value as Record<any, any>)[accessor];\n\nexport const median = (values: number[]) => {\n const mid = Math.floor(values.length / 2);\n if (values.length % 2 === 1) {\n return values[mid];\n } else {\n return (values[mid - 1] + values[mid]) / 2;\n }\n};\n\n// TODO(burdon): Value Proto.\nexport type NumericalValues = {\n min?: number;\n max?: number;\n mean?: number;\n median?: number;\n total: number;\n count: number;\n};\n\n/**\n * Returns an array of unique values.\n */\nexport const numericalValues = <T>(values: T[], accessor: Accessor<T, number>) => {\n const result: NumericalValues = { total: 0, count: 0 };\n\n const sorted: number[] = values\n .map((value) => {\n const v = accessBy(value, accessor);\n if (v === undefined || isNaN(v)) {\n return undefined;\n }\n\n result.total += v;\n if (result.min === undefined || v < result.min) {\n result.min = v;\n }\n if (result.max === undefined || v > result.max) {\n result.max = v;\n }\n\n return v;\n })\n .filter((value) => value !== undefined)\n .sort((a, b) => a! - b!) as number[];\n\n if (sorted.length) {\n Object.assign(result, {\n count: sorted.length,\n mean: result.total / sorted.length,\n median: median(sorted),\n });\n }\n\n return result;\n};\n\n/**\n * Returns an array of unique values.\n */\nexport const reduceSet = <T, V>(values: T[], accessor: Accessor<T, V>): Set<V> => {\n return values.reduce((values, value) => {\n const v = accessBy(value, accessor);\n values.add(v);\n return values;\n }, new Set<V>());\n};\n\n/**\n * Returns an object containing values grouped by the given key accessor.\n */\nexport const reduceGroupBy = <T, K>(values: T[], accessor: Accessor<T, K>): Map<K, T[]> => {\n return values.reduce((values, value) => {\n const key = accessBy(value, accessor);\n defaultMap(values, key, []).push(value);\n return values;\n }, new Map<K, T[]>());\n};\n\n/**\n * Generic composable reducer interface.\n */\nexport interface Reducer<T, S> {\n /**\n * Get initial state.\n */\n initialState(): S;\n\n /**\n * Apply event to state.\n */\n reduce(state: S, event: T): S;\n}\n\n/**\n * Applies the reducer to the array of values.\n */\nexport const reduceSeries = <T, S>(reducer: Reducer<T, S>, events: T[]): S => {\n const state = reducer.initialState();\n for (const event of events) {\n reducer.reduce(state, event);\n }\n\n return state;\n};\n\n/**\n * Reducer to group values.\n */\nexport const createGroupReducer = <T, S>(\n groupBy: (value: T) => string,\n sub: Reducer<T, S>,\n): Reducer<T, Record<string, S>> => ({\n initialState: () => ({}),\n reduce: (state: Record<string, S>, event: T) => {\n const key = groupBy(event);\n state[key] = sub.reduce(state[key] ?? sub.initialState(), event);\n return state;\n },\n});\n\nexport type TimeRecord = { timestamp: Date | number | string };\nexport type TimeBucket = { start: number; period: number; count: number };\n\nexport const getDate = (value: Date | number | string): Date => (value instanceof Date ? value : new Date(value));\n\n/**\n * Reducer to group by time period.\n */\nexport const createBucketReducer = <T extends TimeRecord>(period: number): Reducer<T, TimeBucket[]> => ({\n initialState: () => [],\n reduce: (series: TimeBucket[], event: T) => {\n const timestamp = getDate(event.timestamp);\n let bucket: TimeBucket = series[series.length - 1];\n if (!bucket || bucket.start + period < timestamp.getTime()) {\n bucket = { start: timestamp.getTime(), period, count: 0 };\n series.push(bucket);\n }\n\n bucket.count++;\n return series;\n },\n});\n", "//\n// Copyright 2022 DXOS.org\n//\n\nconst instanceTag = Symbol('instanceTag');\n\n/**\n * Makes instanceof work correctly even if the class definition was duplicated (e.g. when bundling).\n * The comparison is done by comparing the tag passed to this function.\n *\n * Example:\n *\n * ```typescript\n * @safeInstanceof('Tagged')\n * class Tagged {}\n * ```\n */\nexport const safeInstanceof =\n (tag: string): ClassDecorator =>\n (target: any) => {\n target.prototype[instanceTag] = tag;\n\n Object.defineProperty(target.prototype, Symbol.hasInstance, {\n value: (instance: any) => instance?.[instanceTag] === tag,\n });\n\n Object.defineProperty(target, Symbol.hasInstance, {\n value: (instance: any) => instance?.[instanceTag] === tag,\n });\n };\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// TODO(burdon): Unique.\n// TODO(burdon): Options for undefined to end.\n\ntype Compare<T> = (a: T, b: T) => number;\n\nexport const compareScalar =\n (inc = true) =>\n (a: any, b: any) =>\n (inc ? 1 : -1) * (a < b ? -1 : a > b ? 1 : 0);\n\nexport const compareString =\n (inc = true, caseInsensitive = true) =>\n (a: string, b: string) => {\n if (caseInsensitive) {\n a = a?.toLowerCase();\n b = b?.toLowerCase();\n }\n return (inc ? 1 : -1) * (a < b ? -1 : a > b ? 1 : 0);\n };\n\nexport const compareObject =\n <T extends Record<string, any>>(prop: string, sorter: Compare<any>, inc = true): Compare<any> =>\n (a: T, b: T) =>\n (inc ? 1 : -1) * sorter(a[prop], b[prop]);\n\nexport const compareMulti =\n <T extends Record<string, any>>(sorters: Compare<T>[]) =>\n (a: T, b: T) => {\n const sort = (i = 0): number => {\n const s = sorters[i](a, b);\n if (s === 0 && i < sorters.length - 1) {\n return sort(i + 1);\n } else {\n return s;\n }\n };\n\n return sort();\n };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { defaultMap } from './map';\n\n/**\n * Tracer events form a graph.\n */\nexport type Event = {\n id: string;\n timestamp: number; // ms.\n duration?: number; // ms (float).\n value?: any;\n};\n\n/**\n * Event sink.\n */\n// TODO(burdon): Reconcile with log.trace.\nexport class Tracer {\n private readonly _events = new Map<string, Event[]>();\n\n private _recording = false;\n\n // TODO(burdon): Start/stop methods for recording data? By id?\n // Alternatively, enable subscriptions to track/compute series.\n\n // TODO(burdon): Hierarchical traces?\n\n get recording() {\n return this._recording;\n }\n\n keys() {\n return Array.from(this._events.keys());\n }\n\n get(id: string, filter?: Record<string, any>): Event[] | undefined {\n const events = this._events.get(id);\n if (filter) {\n return events?.filter((event) => Object.entries(filter).every(([key, value]) => event?.value[key] === value));\n }\n\n return events;\n }\n\n clear() {\n this._events.clear();\n }\n\n start() {\n this._recording = true;\n return this;\n }\n\n stop() {\n this._recording = false;\n return this;\n }\n\n emit(id: string, value?: any) {\n this._post(this._createEvent(id, value));\n }\n\n mark(id: string, value?: any): { start: number; end: () => void } {\n const event = this._createEvent(id, value);\n const start = performance.now();\n return {\n start,\n end: () => {\n event.duration = performance.now() - start;\n this._post(event);\n },\n };\n }\n\n private _createEvent(id: string, value?: any): Event {\n const event: Event = { id, timestamp: Date.now() };\n if (value !== undefined) {\n event.value = value;\n }\n\n return event;\n }\n\n private _post(event: Event) {\n if (this._recording) {\n defaultMap(this._events, event.id, []).push(event);\n }\n }\n}\n\n// TODO(burdon): Factor out (move to @dxos/log?)\n// TODO(burdon): Global singleton (e.g., `trace()`) or part of client services?\nexport const tracer = new Tracer();\n", "//\n// Copyright 2020 DXOS.org\n//\n\nexport const boolGuard = <T>(value: T | null | undefined): value is T => Boolean(value);\n\nexport type AsyncCallback<T> = (param: T) => Promise<void>;\n\nexport type Provider<T> = () => T;\n\nexport type MaybePromise<T> = T | Promise<T>;\n\nexport const isNotNullOrUndefined = <T>(x: T): x is Exclude<T, null | undefined> => x != null;\n\n/**\n * Use with filter chaining instead of filter(Boolean) to preserve type.\n * NOTE: To filter by type:\n * items.filter((item: any): item is RangeSet<Decoration> => item instanceof RangeSet)\n */\nexport const nonNullable = <T>(value: T): value is NonNullable<T> => value !== null && value !== undefined;\n\n/**\n * All types that evaluate to false when cast to a boolean.\n */\nexport type Falsy = false | 0 | '' | null | undefined;\n\n/**\n * A function returning a value or a value itself.\n */\nexport type MaybeFunction<T> = T | (() => T);\n\n/**\n * Get value from a provider.\n */\nexport const getAsyncValue = async <T>(value: MaybeFunction<MaybePromise<T>>): Promise<T> => {\n if (typeof value === 'function') {\n return (value as Function)();\n } else {\n return value;\n }\n};\n\nexport type MakeOptional<Type, Key extends keyof Type> = Omit<Type, Key> & Partial<Pick<Type, Key>>;\n\n/**\n * Remove keys with undefined values.\n */\nexport const stripUndefinedValues = <T extends { [index: string]: any }>(obj: T): T => {\n if (typeof obj === 'object') {\n Object.keys(obj).forEach((key) => {\n const value = obj[key];\n if (value === undefined) {\n delete obj[key];\n } else if (value !== null && typeof value === 'object') {\n stripUndefinedValues(value); // TODO(burdon): Test recursion.\n }\n });\n }\n\n return obj;\n};\n\n/**\n * Swap position of element within array.\n */\nexport const arrayMove = <T>(array: T[], from: number, to: number): Array<T> => {\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n return array;\n};\n\nexport const safeParseInt = (value: string | undefined, defaultValue?: number) => {\n try {\n const n = parseInt(value ?? '');\n return isNaN(n) ? defaultValue : n;\n } catch (err) {\n return defaultValue;\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { defaultMap } from './map';\n\nconst symbol = Symbol.for('dxos.instance-contexts');\n\nconst instanceContexts = ((globalThis as any)[symbol] ??= new WeakMap<\n any,\n {\n nextId: number;\n instanceIds: WeakMap<any, number>;\n }\n>());\n\n/**\n * Returns a unique instance id for a given object.\n * Ids are generated as incrementing numbers.\n * Ids are only unique within the scope of a given prototype.\n * Instances of different classes may have the same id.\n */\nexport const getPrototypeSpecificInstanceId = (instance: any): number => {\n const prototype = Object.getPrototypeOf(instance);\n const instanceCtx = defaultMap(instanceContexts as any, prototype, () => ({\n nextId: 0,\n instanceIds: new WeakMap(),\n }));\n\n let id = instanceCtx.instanceIds.get(instance);\n if (id === undefined) {\n id = instanceCtx.nextId++;\n instanceCtx.instanceIds.set(instance, id);\n }\n\n return id;\n};\n\nexport const getDebugName = (instance: any): string => {\n const prototype = Object.getPrototypeOf(instance);\n return `${prototype.constructor.name}#${getPrototypeSpecificInstanceId(instance)}`;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const sum = (values: number[]) => values.reduce((a, b) => a + b, 0);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const forEachAsync = <T>(items: T[], fn: (item: T, idx: number) => Promise<void>) => Promise.all(items.map(fn));\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Weak dictionary. It is a map that holds weak references to its values and allows garbage collection of values and keys.\n */\nexport class WeakDictionary<K, V extends object> implements Map<K, V> {\n private readonly _internal = new Map<K, WeakRef<V>>();\n private readonly _finalization = new FinalizationRegistry((cleanUpCallback: () => void) => {\n cleanUpCallback();\n });\n\n constructor(entries?: [K, V][]) {\n this._internal = new Map(entries?.map(([key, value]) => [key, new WeakRef(value)]));\n entries?.forEach(([key, value]) => this._register(key, value));\n }\n\n *entries(): IterableIterator<[K, V]> {\n for (const [key, value] of this._internal) {\n yield [key, value.deref()!];\n }\n }\n\n keys(): IterableIterator<K> {\n return this._internal.keys();\n }\n\n *values(): IterableIterator<V> {\n for (const value of this._internal.values()) {\n const deref = value.deref();\n if (!deref) {\n continue;\n }\n yield deref;\n }\n }\n\n *[Symbol.iterator](): IterableIterator<[K, V]> {\n for (const [key, value] of this._internal) {\n yield [key, value.deref()!];\n }\n }\n\n get [Symbol.toStringTag](): string {\n return 'WeakDictionary';\n }\n\n get size(): number {\n return this._internal.size;\n }\n\n get(key: K): V | undefined {\n return this._internal.get(key)?.deref();\n }\n\n set(key: K, value: V): this {\n this._internal.set(key, new WeakRef(value));\n this._register(key, value);\n return this;\n }\n\n has(key: K): boolean {\n return this._internal.has(key) && this._internal.get(key)!.deref() !== undefined;\n }\n\n delete(key: K): boolean {\n const value = this._internal.get(key)?.deref();\n if (value) {\n this._unregister(value);\n }\n return this._internal.delete(key);\n }\n\n clear(): void {\n this._internal.forEach((value) => {\n const v = value.deref();\n if (v) {\n this._unregister(v);\n }\n });\n\n this._internal.clear();\n }\n\n forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._internal.forEach((value, key) => {\n const v = value.deref();\n if (v) {\n callbackfn(v, key, this);\n }\n });\n }\n\n private _register(key: K, value: V) {\n this._finalization.register(\n value,\n () => {\n this._internal.delete(key);\n },\n value,\n );\n }\n\n private _unregister(value: V) {\n this._finalization.unregister(value);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,uBAAiB;ACAjB,uBAA0B;ACA1B,IAAAA,oBAA0B;ACA1B,IAAAC,oBAAwB;AAExB,mBAAqC;AGFrC,kBAA8C;AEA9C,IAAAA,oBAAwB;AAExB,IAAAC,eAA0B;ARInB,IAAMC,eAAe,CAACC,SAAc;EACzCC,IAAI,CAACA,OAAiBA,GAAGC,KAAKF,GAAAA;EAC9BG,OAAO,CAACF,OAAiBG,iBAAAA,QAAKC,UAAUJ,GAAGC,KAAKF,GAAAA,CAAAA;AAClD;;ACGO,IAAMM,WAAN,MAAMA,UAAAA;EACX,OAAOC,IAAIC,MAAkBC,KAAsB;AACjD,UAAMC,MAAOF,KAAKC,OAAO,CAAA,KAAO,IAAKA,MAAM,IAAO;AAClD,WAAO,CAAC,CAACC;EACX;EAEA,OAAOC,IAAIH,MAAkBC,KAAaG,OAAgB;AACxD,QAAIA,OAAO;AACTJ,WAAKC,OAAO,CAAA,IAAKD,KAAKC,OAAO,CAAA,IAAM,KAAM,IAAKA,MAAM;IACtD,OAAO;AACLD,WAAKC,OAAO,CAAA,IAAKD,KAAKC,OAAO,CAAA,IAAK,EAAE,KAAM,IAAKA,MAAM;IACvD;EACF;;;;EAKA,OAAOI,MAAML,MAAkBM,OAAeC,KAAqB;AACjE,QAAIF,QAAQ;AACZ,aAASG,IAAIF,OAAOE,IAAID,KAAKC,KAAK;AAChC,YAAMN,MAAOF,KAAKQ,KAAK,CAAA,KAAO,IAAKA,IAAI,IAAO;AAC9CH,eAASH;IACX;AACA,WAAOG;EACT;EAEA,OAAOI,OAAOT,MAA8B;AAC1C,UAAMU,SAAS,IAAIC,WAAWX,KAAKY,MAAM;AACzC,aAASJ,IAAI,GAAGA,IAAIR,KAAKY,QAAQJ,KAAK;AACpCE,aAAOF,CAAAA,IAAK,CAACR,KAAKQ,CAAAA;IACpB;AACA,WAAOE;EACT;EAEA,OAAOG,IAAIC,OAAmBC,QAAoB;AAChDC,oCAAUF,MAAMF,WAAWG,OAAOH,QAAQ,wCAAA;;;;;;;;;AAC1C,UAAMF,SAAS,IAAIC,WAAWG,MAAMF,MAAM;AAC1C,aAASJ,IAAI,GAAGA,IAAIM,MAAMF,QAAQJ,KAAK;AACrCE,aAAOF,CAAAA,IAAKM,MAAMN,CAAAA,IAAKO,OAAOP,CAAAA;IAChC;AACA,WAAOE;EACT;EAEA,OAAOO,YAAYjB,MAAkBkB,OAA0D,CAAC,GAAa;AAC3G,UAAM,EAAEC,QAAQ,GAAGZ,MAAMP,KAAKY,SAAS,GAAGR,QAAQ,KAAI,IAAKc;AAE3D,UAAMR,SAAS,CAAA;AAEf,aAASF,IAAIW,OAAOX,IAAID,KAAKC,KAAK;AAChC,UAAIV,UAASC,IAAIC,MAAMQ,CAAAA,MAAOJ,OAAO;AACnCM,eAAOU,KAAKZ,CAAAA;MACd;IACF;AACA,WAAOE;EACT;EAEA,OAAOW,KAAKhB,OAA2B;AACrC,UAAMiB,MAAM,IAAIX,WAAWY,KAAKC,KAAKD,KAAKC,KAAKnB,KAAAA,IAAS,CAAA,CAAA,EAAIoB,KAAK,GAAA;AAGjE,UAAMC,gBAAgBH,KAAKC,KAAKnB,QAAQ,CAAA;AACxCiB,QAAIA,IAAIV,SAAS,CAAA,IAAK,OAAS,IAAIc;AAEnC,WAAOJ;EACT;EAEA,OAAOK,MAAMtB,OAA2B;AACtC,WAAO,IAAIM,WAAWY,KAAKC,KAAKD,KAAKC,KAAKnB,KAAAA,IAAS,CAAA,CAAA,EAAIoB,KAAK,CAAA;EAC9D;AACF;;ACtEO,IAAMG,WAAN,MAAMA;EAGJC,QAAQC,MAAoC;AACjDd,0BAAAA,WAAU,KAAKe,WAAW,oBAAA;;;;;;;;;AAC1B,WAAO,KAAKA,UAAS,GAAID,IAAAA;EAC3B;EAEOE,aAAaF,MAAgD;AAClE,WAAO,KAAKC,YAAS,GAAMD,IAAAA;EAC7B;EAEO3B,IAAI8B,UAAa;AACtBjB,0BAAAA,WAAU,CAAC,KAAKe,WAAW,wBAAA;;;;;;;;;AAC3B,SAAKA,YAAYE;EACnB;EAEOC,QAAQ;AACb,WAAO,CAAC,CAAC,KAAKH;EAChB;AACF;AAQO,IAAMI,oBAAoB,CAAe,EAAEC,SAAQ,MAAmB;AAE3E,SAAO,IAAIC,MACT;IACED;EACF,GACA;IACErC,KAAK,CAACuC,QAAaC,SAAAA;AACjB,aAAO,IAAIT,SAAAA;AACTM,iBAASI,QAAQ,CAACC,YAAAA;AAChB,gBAAMC,SAASD,QAAQF,IAAAA;AACvB,cAAIG,QAAQ;AACVA,mBAAOC,MAAMF,SAASX,IAAAA;UACxB;QACF,CAAA;MACF;IACF;EACF,CAAA;AAEJ;AClDA,IAAMc,2BAA2B;AAU1B,IAAMC,aAAN,MAAMA;;EAIXC,YACmBC,aACjBC,QACA;uBAFiBD;SAJFE,UAAU,oBAAIC,IAAAA;AAO7B,QAAIF,QAAQ;AACV,iBAAW5C,SAAS4C,QAAQ;AAC1B,aAAKG,IAAI/C,KAAAA;MACX;IACF;EACF;EAEAgD,WAAW;AACT,eAAOC,4BAAc,IAAI;EAC3B;EAEAC,SAAS;AACP,WAAO,KAAKL,QAAQM,OAAOX,2BACvB;MAAEW,MAAM,KAAKN,QAAQM;IAAK,IAC1BC,MAAMC,KAAK,KAAKR,QAAQD,OAAM,CAAA;EACpC;EAEA,CAACU,0BAAQC,MAAM,IAAI;AACjB,eAAON,4BAAc,IAAI;EAC3B;EAEAF,IAAI/C,OAAgB;AAClB,SAAK6C,QAAQ9C,IAAI,KAAK4C,YAAY3C,KAAAA,GAAQA,KAAAA;AAC1C,WAAO;EACT;EAEAwD,QAAc;AACZ,SAAKX,QAAQW,MAAK;EACpB;EAEAC,OAAOzD,OAAmB;AACxB,WAAO,KAAK6C,QAAQY,OAAO,KAAKd,YAAY3C,KAAAA,CAAAA;EAC9C;EAEAoC,QAAQsB,YAAwDC,SAAqB;AACnF,QAAIA,SAAS;AACXD,mBAAaA,WAAWpE,KAAKqE,OAAAA;IAC/B;AAEA,SAAKd,QAAQT,QAAQ,CAACpC,UAAU0D,WAAW1D,OAAOA,OAAO,IAAI,CAAA;EAC/D;EAEA4D,IAAI5D,OAAmB;AACrB,WAAO,KAAK6C,QAAQe,IAAI,KAAKjB,YAAY3C,KAAAA,CAAAA;EAC3C;EAEA,IAAImD,OAAe;AACjB,WAAO,KAAKN,QAAQM;EACtB;EAEA,CAACU,OAAOC,QAAQ,IAAyB;AACvC,WAAO,KAAKjB,QAAQD,OAAM;EAC5B;EAEA,CAACmB,UAAoC;AACnC,eAAW/D,SAAS,KAAK6C,QAAQD,OAAM,GAAI;AACzC,YAAM;QAAC5C;QAAOA;;IAChB;EACF;EAEAgE,OAA4B;AAC1B,WAAO,KAAKH,OAAOC,QAAQ,EAAC;EAC9B;EAEAlB,SAA8B;AAC5B,WAAO,KAAKiB,OAAOC,QAAQ,EAAC;EAC9B;EAEA,KAAKD,OAAOI,WAAW,IAAY;AACjC,WAAO;EACT;AACF;AAOO,IAAMC,UAAU,CAAIC,eAAAA;AACzB,SAAO,MAAMC,wBAAwB3B,WAAAA;IACnCC,YAAYE,QAA6B;AACvC,YAAMuB,YAAYvB,MAAAA;IACpB;EACF;AACF;AAQO,IAAMyB,aAAN,MAAMA;;EAKX3B,YACmB4B,gBACjBP,SACA;0BAFiBO;SALFC,QAAQ,oBAAIzB,IAAAA;SACZD,UAAU,oBAAIC,IAAAA;AAO7B,QAAIiB,SAAS;AACX,iBAAW,CAACS,KAAKxE,KAAAA,KAAU+D,SAAS;AAClC,aAAKhE,IAAIyE,KAAKxE,KAAAA;MAChB;IACF;EACF;EAEAgD,WAAW;AACT,eAAOC,4BAAc,IAAI;EAC3B;EAEAC,SAAS;AACP,WAAO,KAAKL,QAAQM,OAAOX,2BACvB;MAAEW,MAAM,KAAKN,QAAQM;IAAK,IAC1BC,MAAMC,KAAK,KAAKR,QAAQD,OAAM,CAAA;EACpC;EAEA,CAACU,0BAAQC,MAAM,IAAI;AACjB,eAAON,4BAAc,IAAI;EAC3B;EAEAO,QAAc;AACZ,SAAKe,MAAMf,MAAK;AAChB,SAAKX,QAAQW,MAAK;EACpB;EAEAC,OAAOe,KAAiB;AACtB,UAAMC,aAAa,KAAKF,MAAMd,OAAO,KAAKa,eAAeE,GAAAA,CAAAA;AACzD,UAAME,eAAe,KAAK7B,QAAQY,OAAO,KAAKa,eAAeE,GAAAA,CAAAA;AAC7D,WAAOC,cAAcC;EACvB;EAEAtC,QAAQsB,YAAwDC,SAAqB;AACnF,QAAIA,SAAS;AACXD,mBAAaA,WAAWpE,KAAKqE,OAAAA;IAC/B;AAEA,SAAKY,MAAMnC,QAAQ,CAACoC,KAAKG,cACvBjB,WAAW,KAAKb,QAAQlD,IAAIgF,SAAAA,SAAcC,oBAAM,IAAIC,MAAM,gBAAA,CAAA,GAAoBL,KAAK,IAAI,CAAA;EAE3F;EAEA7E,IAAI6E,KAAuB;AACzB,WAAO,KAAK3B,QAAQlD,IAAI,KAAK2E,eAAeE,GAAAA,CAAAA;EAC9C;EAEAZ,IAAIY,KAAiB;AACnB,WAAO,KAAKD,MAAMX,IAAI,KAAKU,eAAeE,GAAAA,CAAAA;EAC5C;EAEAzE,IAAIyE,KAAQxE,OAAgB;AAC1B,UAAM2E,YAAY,KAAKL,eAAeE,GAAAA;AACtC,SAAKD,MAAMxE,IAAI4E,WAAWH,GAAAA;AAC1B,SAAK3B,QAAQ9C,IAAI4E,WAAW3E,KAAAA;AAC5B,WAAO;EACT;EAEA,IAAImD,OAAe;AACjB,WAAO,KAAKoB,MAAMpB;EACpB;EAEA,EAAEU,OAAOC,QAAQ,IAA8B;AAC7C,eAAW,CAACa,WAAWH,GAAAA,KAAQ,KAAKD,OAAO;AACzC,YAAMvE,QAAQ,KAAK6C,QAAQlD,IAAIgF,SAAAA,SAAcC,oBAAM,IAAIC,MAAM,gBAAA,CAAA;AAC7D,YAAM;QAACL;QAAKxE;;IACd;EACF;EAEA+D,UAAoC;AAClC,WAAO,KAAKF,OAAOC,QAAQ,EAAC;EAC9B;EAEAE,OAA4B;AAC1B,WAAO,KAAKO,MAAM3B,OAAM;EAC1B;EAEAA,SAA8B;AAC5B,WAAO,KAAKC,QAAQD,OAAM;EAC5B;EAEA,KAAKiB,OAAOI,WAAW,IAAY;AACjC,WAAO;EACT;AACF;AAOO,IAAMa,UAAU,CAAIC,kBACzB,MAAMC,wBAA2BX,WAAAA;EAC/B3B,YAAYqB,SAA+C;AACzD,UAAMgB,eAAehB,OAAAA;EACvB;AACF;AChNK,IAAMkB,gBACX,CAAoCC,eACpC,IAAIxD,SACFwD,WAAAA,EAAAA,GAAgBxD,IAAAA;ACdb,IAAMyD,QAAQ,CAAOC,KAAgBZ,QAAsC,IAAIa,SAASD,KAAKZ,GAAAA;AAE7F,IAAMa,WAAN,MAAMA;;;;;EAKX3C,YACmB4C,MACAC,MACjB;gBAFiBD;gBACAC;EAChB;EAEH,IAAIf,MAAS;AACX,WAAO,KAAKe;EACd;EAEA,IAAIvF,QAAe;AACjB,WAAO,KAAKsF,KAAK3F,IAAI,KAAK4F,IAAI;EAChC;EAEAC,SAASxF,OAAiC;AACxC,QAAI,CAAC,KAAKsF,KAAK1B,IAAI,KAAK2B,IAAI,GAAG;AAC7B,WAAKD,KAAKvF,IAAI,KAAKwF,MAAMvF,KAAAA;IAC3B;AACA,WAAO;EACT;EAEAyF,KAA0DjB,KAAsC;AAC9F,WAAOW,MAAM,KAAKnF,OAAOwE,GAAAA;EAC3B;AACF;AC7BA,IAAMkB,mBAAmB;EACvB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAC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",
6
- "names": ["import_invariant", "import_node_util", "import_keys", "createBinder", "obj", "fn", "bind", "async", "util", "promisify", "BitField", "get", "data", "idx", "bit", "set", "value", "count", "begin", "end", "i", "invert", "result", "Uint8Array", "length", "and", "first", "second", "invariant", "findIndexes", "opts", "start", "push", "ones", "res", "Math", "ceil", "fill", "bitInLastByte", "zeros", "Callback", "call", "args", "_callback", "callIfSet", "callback", "isSet", "createSetDispatch", "handlers", "Proxy", "target", "prop", "forEach", "handler", "method", "apply", "MAX_SERIALIZATION_LENGTH", "ComplexSet", "constructor", "_projection", "values", "_values", "Map", "add", "toString", "inspectObject", "toJSON", "size", "Array", "from", "inspect", "custom", "clear", "delete", "callbackfn", "thisArg", "has", "Symbol", "iterator", "entries", "keys", "toStringTag", "makeSet", "projection", "BoundComplexSet", "ComplexMap", "_keyProjection", "_keys", "key", "keyDeleted", "valueDeleted", "primitive", "raise", "Error", "makeMap", "keyProjection", "BoundComplexMap", "deferFunction", "fnProvider", "entry", "map", "MapEntry", "_map", "_key", "orInsert", "deep", "DEFAULT_WORDLIST", "HumanHasher", "wordlist", "humanize", "hexdigest", "words", "separator", "pairs", "match", "bytes", "x", "parseInt", "compressed", "_compress", "join", "segSize", "segments", "slice", "concat", "checksums", "reduce", "acc", "curr", "hasher", "Buffer", "ArrayBuffer", "PublicKey", "stringify", "toHex", "exponentialBackoffInterval", "cb", "initialInterval", "interval", "repeat", "timeoutId", "setTimeout", "clearTimeout", "arraysEqual", "a", "b", "arrayToBuffer", "array", "buffer", "byteOffset", "byteLength", "bufferToArray", "MAX_DEPTH", "jsonReplacer", "type", "isArray", "jsonify", "depth", "visitedObjects", "WeakSet", "Object", "jsonKeyReplacer", "options", "fromHex", "truncate", "defaultMap", "def", "undefined", "inferObjectOrder", "objectMap", "order", "orderedObjects", "id", "objects", "ids", "Set", "inferRecordOrder", "assign", "filter", "isNode", "process", "versions", "node", "mobileAndTabletCheck", "check", "test", "substr", "navigator", "userAgent", "vendor", "window", "opera", "iosCheck", "includes", "platform", "document", "safariCheck", "randomInt", "max", "min", "floor", "random", "range", "n", "rangeFromTo", "to", "accessBy", "accessor", "median", "mid", "numericalValues", "total", "sorted", "v", "isNaN", "sort", "mean", "reduceSet", "reduceGroupBy", "reduceSeries", "reducer", "events", "state", "initialState", "event", "createGroupReducer", "groupBy", "sub", "getDate", "Date", "createBucketReducer", "period", "series", "timestamp", "bucket", "getTime", "instanceTag", "safeInstanceof", "tag", "prototype", "defineProperty", "hasInstance", "instance", "compareScalar", "inc", "compareString", "caseInsensitive", "toLowerCase", "compareObject", "sorter", "compareMulti", "sorters", "s", "Tracer", "_events", "_recording", "recording", "every", "stop", "emit", "_post", "_createEvent", "mark", "performance", "now", "duration", "tracer", "boolGuard", "Boolean", "isNotNullOrUndefined", "nonNullable", "getAsyncValue", "stripUndefinedValues", "arrayMove", "splice", "safeParseInt", "defaultValue", "err", "symbol", "for", "instanceContexts", "globalThis", "WeakMap", "getPrototypeSpecificInstanceId", "getPrototypeOf", "instanceCtx", "nextId", "instanceIds", "getDebugName", "name", "sum", "forEachAsync", "items", "Promise", "all", "WeakDictionary", "_internal", "_finalization", "FinalizationRegistry", "cleanUpCallback", "WeakRef", "_register", "deref", "_unregister", "register", "unregister"]
4
+ "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport util from 'node:util';\n\n/**\n * Function binder replaces pify.\n */\n// TODO(burdon): Replace pify everywhere.\nexport const createBinder = (obj: any) => ({\n fn: (fn: Function) => fn.bind(obj),\n async: (fn: Function) => util.promisify(fn.bind(obj)),\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\n\n/**\n * Bitfield encodes indices from MSB to LSB.\n * Index 0 is the MSB of the first byte.\n *\n *\n * #0 #1 #2 #3\n * 01010101 11110000 00001111 01010101\n * ^ ^\n * MSB LSB\n */\nexport class BitField {\n static get(data: Uint8Array, idx: number): boolean {\n const bit = (data[idx >> 3] >> (7 - (idx % 8))) & 0x1;\n return !!bit;\n }\n\n static set(data: Uint8Array, idx: number, value: boolean) {\n if (value) {\n data[idx >> 3] = data[idx >> 3] | (1 << (7 - (idx % 8)));\n } else {\n data[idx >> 3] = data[idx >> 3] & ~(1 << (7 - (idx % 8)));\n }\n }\n\n /**\n * [start; end)\n */\n static count(data: Uint8Array, begin: number, end: number): number {\n let count = 0;\n for (let i = begin; i < end; i++) {\n const bit = (data[i >> 3] >> (7 - (i % 8))) & 0x1;\n count += bit;\n }\n return count;\n }\n\n static invert(data: Uint8Array): Uint8Array {\n const result = new Uint8Array(data.length);\n for (let i = 0; i < data.length; i++) {\n result[i] = ~data[i];\n }\n return result;\n }\n\n static and(first: Uint8Array, second: Uint8Array) {\n invariant(first.length === second.length, 'Bitfields must be of the same length');\n const result = new Uint8Array(first.length);\n for (let i = 0; i < first.length; i++) {\n result[i] = first[i] & second[i];\n }\n return result;\n }\n\n static findIndexes(data: Uint8Array, opts: { start?: number; end?: number; value?: boolean } = {}): number[] {\n const { start = 0, end = data.length * 8, value = true } = opts;\n\n const result = [];\n\n for (let i = start; i < end; i++) {\n if (BitField.get(data, i) === value) {\n result.push(i);\n }\n }\n return result;\n }\n\n static ones(count: number): Uint8Array {\n const res = new Uint8Array(Math.ceil(Math.ceil(count) / 8)).fill(0xff);\n\n // Note: We need to calculate last byte of bitfield.\n const bitInLastByte = Math.ceil(count % 8);\n res[res.length - 1] = 0xff << (8 - bitInLastByte);\n\n return res;\n }\n\n static zeros(count: number): Uint8Array {\n return new Uint8Array(Math.ceil(Math.ceil(count) / 8)).fill(0);\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\n\n/**\n * Represents a callback that can be set once.\n *\n * Common usage is dependency injection.\n * In contrast to events, callbacks can only have one handler,\n * are executed synchronously,\n * and can return results.\n */\n// TODO(burdon): Move to @dxos/async.\nexport class Callback<T extends (...args: any[]) => any> {\n private _callback: T | undefined;\n\n public call(...args: Parameters<T>): ReturnType<T> {\n invariant(this._callback, 'Callback not set');\n return this._callback(...args);\n }\n\n public callIfSet(...args: Parameters<T>): ReturnType<T> | undefined {\n return this._callback?.(...args);\n }\n\n public set(callback: T) {\n invariant(!this._callback, 'Callback already set');\n this._callback = callback;\n }\n\n public isSet() {\n return !!this._callback;\n }\n}\n\nexport type SetCallbacks<T> = { handlers: Set<T> };\n\n/**\n * Create a fan-out callback handler.\n * NOTE: Methods cannot return values.\n */\nexport const createSetDispatch = <T extends {}>({ handlers }: SetCallbacks<T>) => {\n type Obj = { [i: string | symbol]: any };\n return new Proxy<any>(\n {\n handlers,\n },\n {\n get: (target: Obj, prop) => {\n return (...args: any[]) => {\n handlers.forEach((handler: Obj) => {\n const method = handler[prop];\n if (method) {\n method.apply(handler, args);\n }\n });\n };\n },\n },\n );\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport { inspectObject, raise } from '@dxos/debug';\n\nexport type Primitive = string | number | boolean | null | undefined;\n\nexport type PrimitiveProjection<T> = (value: T) => Primitive;\n\nconst MAX_SERIALIZATION_LENGTH = 10;\n\n/**\n * A set implementation that can hold complex values (like Buffer).\n *\n * The user must provide a projection function which returns a primitive\n * representation of the complex value. This function must be 1-to-1 mapping.\n *\n * Look at `../complex.test.ts` for usage examples.\n */\nexport class ComplexSet<T> implements Set<T> {\n private readonly _values = new Map<Primitive, T>();\n\n // prettier-ignore\n constructor(\n private readonly _projection: PrimitiveProjection<T>,\n values?: Iterable<T> | null,\n ) {\n if (values) {\n for (const value of values) {\n this.add(value);\n }\n }\n }\n\n toString() {\n return inspectObject(this);\n }\n\n toJSON() {\n return this._values.size > MAX_SERIALIZATION_LENGTH\n ? { size: this._values.size }\n : Array.from(this._values.values());\n }\n\n [inspect.custom]() {\n return inspectObject(this);\n }\n\n add(value: T): this {\n this._values.set(this._projection(value), value);\n return this;\n }\n\n clear(): void {\n this._values.clear();\n }\n\n delete(value: T): boolean {\n return this._values.delete(this._projection(value));\n }\n\n forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._values.forEach((value) => callbackfn(value, value, this));\n }\n\n has(value: T): boolean {\n return this._values.has(this._projection(value));\n }\n\n get size(): number {\n return this._values.size;\n }\n\n [Symbol.iterator](): IterableIterator<T> {\n return this._values.values();\n }\n\n *entries(): IterableIterator<[T, T]> {\n for (const value of this._values.values()) {\n yield [value, value];\n }\n }\n\n keys(): IterableIterator<T> {\n return this[Symbol.iterator]();\n }\n\n values(): IterableIterator<T> {\n return this[Symbol.iterator]();\n }\n\n get [Symbol.toStringTag](): string {\n return 'ComplexSet';\n }\n}\n\nexport type ComplexSetConstructor<T> = new (values?: Iterable<T> | null) => ComplexSet<T>;\n\n/**\n * Create a subclass of ComplexSet with predefined projection function.\n */\nexport const makeSet = <T>(projection: PrimitiveProjection<T>): ComplexSetConstructor<T> => {\n return class BoundComplexSet extends ComplexSet<T> {\n constructor(values?: Iterable<T> | null) {\n super(projection, values);\n }\n };\n};\n\n/**\n * A map implementation that can hold complex values (like Buffer) as keys.\n * The user must provide a projection function for map keys which returns a primitive\n * representation of the complex value. This function must be 1-to-1 mapping.\n * Look at `../complex.test.ts` for usage examples.\n */\nexport class ComplexMap<K, V> implements Map<K, V> {\n private readonly _keys = new Map<Primitive, K>();\n private readonly _values = new Map<Primitive, V>();\n\n // prettier-ignore\n constructor(\n private readonly _keyProjection: PrimitiveProjection<K>,\n entries?: readonly (readonly [K, V])[] | null,\n ) {\n if (entries) {\n for (const [key, value] of entries) {\n this.set(key, value);\n }\n }\n }\n\n toString() {\n return inspectObject(this);\n }\n\n toJSON() {\n return this._values.size > MAX_SERIALIZATION_LENGTH\n ? { size: this._values.size }\n : Array.from(this._values.values());\n }\n\n [inspect.custom]() {\n return inspectObject(this);\n }\n\n clear(): void {\n this._keys.clear();\n this._values.clear();\n }\n\n delete(key: K): boolean {\n const keyDeleted = this._keys.delete(this._keyProjection(key));\n const valueDeleted = this._values.delete(this._keyProjection(key));\n return keyDeleted || valueDeleted;\n }\n\n forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._keys.forEach((key, primitive) =>\n callbackfn(this._values.get(primitive) ?? raise(new Error('Map corrupted.')), key, this),\n );\n }\n\n get(key: K): V | undefined {\n return this._values.get(this._keyProjection(key));\n }\n\n has(key: K): boolean {\n return this._keys.has(this._keyProjection(key));\n }\n\n set(key: K, value: V): this {\n const primitive = this._keyProjection(key);\n this._keys.set(primitive, key);\n this._values.set(primitive, value);\n return this;\n }\n\n get size(): number {\n return this._keys.size;\n }\n\n *[Symbol.iterator](): IterableIterator<[K, V]> {\n for (const [primitive, key] of this._keys) {\n const value = this._values.get(primitive) ?? raise(new Error('Map corrupted.'));\n yield [key, value];\n }\n }\n\n entries(): IterableIterator<[K, V]> {\n return this[Symbol.iterator]();\n }\n\n keys(): IterableIterator<K> {\n return this._keys.values();\n }\n\n values(): IterableIterator<V> {\n return this._values.values();\n }\n\n get [Symbol.toStringTag](): string {\n return 'ComplexMap';\n }\n}\n\nexport type ComplexMapConstructor<K> = new <V>(entries?: readonly (readonly [K, V])[] | null) => ComplexMap<K, V>;\n\n/**\n * Create a subclass of ComplexMap with predefined key projection function.\n */\nexport const makeMap = <K>(keyProjection: PrimitiveProjection<K>): ComplexMapConstructor<K> =>\n class BoundComplexMap<V> extends ComplexMap<K, V> {\n constructor(entries?: readonly (readonly [K, V])[] | null) {\n super(keyProjection, entries);\n }\n };\n", "/**\n * Wraps a function provider in a function that will defer the execution of the provided function.\n *\n * Example:\n *\n * ```typescript\n * const fn = deferFunction(() => impl);\n *\n * // Impl can be defined after the usage.\n * const impl = () => {\n * console.log('Hello World!')\n * }\n * ```\n */\n//\n// Copyright 2022 DXOS.org\n//\n\nexport const deferFunction =\n <T extends (...args: any[]) => any>(fnProvider: () => T) =>\n (...args: Parameters<T>): ReturnType<T> =>\n fnProvider()(...args);\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Inspired by https://doc.rust-lang.org/std/collections/struct.HashMap.html#method.entry\n */\nexport const entry = <K, V>(map: Map<K, V>, key: K): MapEntry<K, V, undefined> => new MapEntry(map, key);\n\nexport class MapEntry<K, V, U> {\n /**\n * @internal\n */\n // prettier-ignore\n constructor(\n private readonly _map: Map<K, V>,\n private readonly _key: K,\n ) {}\n\n get key(): K {\n return this._key;\n }\n\n get value(): V | U {\n return this._map.get(this._key) as V | U;\n }\n\n orInsert(value: V): MapEntry<K, V, never> {\n if (!this._map.has(this._key)) {\n this._map.set(this._key, value);\n }\n return this as any;\n }\n\n deep<K1, V1>(this: MapEntry<K, Map<K1, V1>, Map<K1, V1>>, key: K1): MapEntry<K1, V1, undefined> {\n return entry(this.value, key);\n }\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { PublicKey, type PublicKeyLike } from '@dxos/keys';\n\n// From https://github.com/SEBv15/humanhash/blob/166c1a6f70d854fe6767cdd76be1237112d4eaf1/index.js\n\nconst DEFAULT_WORDLIST = [\n 'ack',\n 'alabama',\n 'alanine',\n 'alaska',\n 'alpha',\n 'angel',\n 'apart',\n 'april',\n 'arizona',\n 'arkansas',\n 'artist',\n 'asparagus',\n 'aspen',\n 'august',\n 'autumn',\n 'avocado',\n 'bacon',\n 'bakerloo',\n 'batman',\n 'beer',\n 'berlin',\n 'beryllium',\n 'black',\n 'blossom',\n 'blue',\n 'bluebird',\n 'bravo',\n 'bulldog',\n 'burger',\n 'butter',\n 'california',\n 'carbon',\n 'cardinal',\n 'carolina',\n 'carpet',\n 'cat',\n 'ceiling',\n 'charlie',\n 'chicken',\n 'coffee',\n 'cola',\n 'cold',\n 'colorado',\n 'comet',\n 'connecticut',\n 'crazy',\n 'cup',\n 'dakota',\n 'december',\n 'delaware',\n 'delta',\n 'diet',\n 'don',\n 'double',\n 'early',\n 'earth',\n 'east',\n 'echo',\n 'edward',\n 'eight',\n 'eighteen',\n 'eleven',\n 'emma',\n 'enemy',\n 'equal',\n 'failed',\n 'fanta',\n 'fifteen',\n 'fillet',\n 'finch',\n 'fish',\n 'five',\n 'fix',\n 'floor',\n 'florida',\n 'football',\n 'four',\n 'fourteen',\n 'foxtrot',\n 'freddie',\n 'friend',\n 'fruit',\n 'gee',\n 'georgia',\n 'glucose',\n 'golf',\n 'green',\n 'grey',\n 'hamper',\n 'happy',\n 'harry',\n 'hawaii',\n 'helium',\n 'high',\n 'hot',\n 'hotel',\n 'hydrogen',\n 'idaho',\n 'illinois',\n 'india',\n 'indigo',\n 'ink',\n 'iowa',\n 'island',\n 'item',\n 'jersey',\n 'jig',\n 'johnny',\n 'juliet',\n 'july',\n 'jupiter',\n 'kansas',\n 'kentucky',\n 'kilo',\n 'king',\n 'kitten',\n 'lactose',\n 'lake',\n 'lamp',\n 'lemon',\n 'leopard',\n 'lima',\n 'lion',\n 'lithium',\n 'london',\n 'louisiana',\n 'low',\n 'magazine',\n 'magnesium',\n 'maine',\n 'mango',\n 'march',\n 'mars',\n 'maryland',\n 'massachusetts',\n 'may',\n 'mexico',\n 'michigan',\n 'mike',\n 'minnesota',\n 'mirror',\n 'mississippi',\n 'missouri',\n 'mobile',\n 'mockingbird',\n 'monkey',\n 'montana',\n 'moon',\n 'mountain',\n 'muppet',\n 'music',\n 'nebraska',\n 'neptune',\n 'network',\n 'nevada',\n 'nine',\n 'nineteen',\n 'nitrogen',\n 'north',\n 'november',\n 'nuts',\n 'october',\n 'ohio',\n 'oklahoma',\n 'one',\n 'orange',\n 'oranges',\n 'oregon',\n 'oscar',\n 'oven',\n 'oxygen',\n 'papa',\n 'paris',\n 'pasta',\n 'pennsylvania',\n 'pip',\n 'pizza',\n 'pluto',\n 'potato',\n 'princess',\n 'purple',\n 'quebec',\n 'queen',\n 'quiet',\n 'red',\n 'river',\n 'robert',\n 'robin',\n 'romeo',\n 'rugby',\n 'sad',\n 'salami',\n 'saturn',\n 'september',\n 'seven',\n 'seventeen',\n 'shade',\n 'sierra',\n 'single',\n 'sink',\n 'six',\n 'sixteen',\n 'skylark',\n 'snake',\n 'social',\n 'sodium',\n 'solar',\n 'south',\n 'spaghetti',\n 'speaker',\n 'spring',\n 'stairway',\n 'steak',\n 'stream',\n 'summer',\n 'sweet',\n 'table',\n 'tango',\n 'ten',\n 'tennessee',\n 'tennis',\n 'texas',\n 'thirteen',\n 'three',\n 'timing',\n 'triple',\n 'twelve',\n 'twenty',\n 'two',\n 'uncle',\n 'undress',\n 'uniform',\n 'uranus',\n 'utah',\n 'vegan',\n 'venus',\n 'vermont',\n 'victor',\n 'video',\n 'violet',\n 'virginia',\n 'washington',\n 'west',\n 'whiskey',\n 'white',\n 'william',\n 'winner',\n 'winter',\n 'wisconsin',\n 'wolfram',\n 'wyoming',\n 'xray',\n 'yankee',\n 'yellow',\n 'zebra',\n 'zulu',\n];\n\n/**\n * humanhash: Human-readable representations of digests.\n */\nexport class HumanHasher {\n /**\n * Transforms hex digests to human-readable strings.\n *\n * The format of these strings will look something like:\n * `victor-bacon-zulu-lima`. The output is obtained by compressing the input\n * digest to a fixed number of bytes, then mapping those bytes to one of 256\n * words. A default wordlist is provided, but you can override this if you\n * prefer.\n * As long as you use the same wordlist, the output will be consistent (i.e.\n * the same digest will always render the same representation).\n *\n * @param wordlist A list of exactly 256 words to choose from\n */\n constructor(private readonly wordlist = DEFAULT_WORDLIST) {\n if (wordlist.length !== 256) {\n throw new Error('Wordlist must have exactly 256 items');\n }\n this.wordlist = wordlist;\n }\n\n /**\n * Humanize a given hexadecimal digest.\n *\n * Change the number of words output by specifying `words`. Change the\n * word separator with `separator`.\n *\n * @param hexdigest A string of hexadecimal characters to humanize\n * @param words How many words to output (more = safer)\n * @param separator The string used to seperate the words\n */\n humanize(hexdigest: string, words = 4, separator = '-') {\n const pairs = hexdigest.match(/(..?)/g);\n if (!pairs) {\n throw new Error('');\n }\n\n const bytes = pairs.map((x) => parseInt(x, 16));\n const compressed = this._compress(bytes, words);\n\n return compressed.map((x) => this.wordlist[x]).join(separator);\n }\n\n /**\n * Compress a list of byte values to a fixed target length.\n *\n * @param bytes A list of bytes (numbers from 0-254)\n * @param target The number of bytes to return / compress to\n */\n _compress(bytes: number[], target: number) {\n const length = bytes.length;\n if (target > length) {\n throw new Error('Fewer input bytes than requested output');\n }\n\n // Calculate the segment size (divide and round down)\n const segSize = (length / target) >> 0;\n\n // Split 'bytes' array into 'target' number of segments.\n const segments = [];\n for (let i = 0; i < segSize * target; i += segSize) {\n segments.push(bytes.slice(i, i + segSize));\n }\n\n // Catch any left-over bytes in the last segment.\n segments[segments.length - 1] = segments[segments.length - 1].concat(bytes.slice(target * segSize));\n\n const checksums = segments.map((x) => x.reduce((acc, curr) => acc ^ curr));\n return checksums;\n }\n}\n\nconst hasher = new HumanHasher();\n\nexport const humanize = (value: PublicKeyLike): string => {\n if (value instanceof Buffer || value instanceof Uint8Array || value instanceof ArrayBuffer) {\n value = PublicKey.stringify(value);\n } else if (value instanceof PublicKey) {\n value = value.toHex();\n }\n\n return hasher.humanize(value);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\n/**\n * Runs the callback in an exponentially increasing interval.\n * @returns Callback to clear the interval.\n */\nexport const exponentialBackoffInterval = (cb: () => void, initialInterval: number): (() => void) => {\n let interval = initialInterval;\n const repeat = () => {\n cb();\n interval *= 2;\n timeoutId = setTimeout(repeat, interval);\n };\n\n let timeoutId = setTimeout(repeat, interval);\n return () => clearTimeout(timeoutId);\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport { PublicKey } from '@dxos/keys';\n\nimport { humanize } from './human-hash';\nimport { arrayToBuffer } from './uint8array';\n\nconst MAX_DEPTH = 5;\n\n/**\n * JSON.stringify replacer.\n */\nexport function jsonReplacer(this: any, key: string, value: any): any {\n // TODO(burdon): Why is this represented as `{ type: 'Buffer', data }`.\n if (value !== null && typeof value === 'object' && typeof value[inspect.custom] === 'function') {\n return value[inspect.custom]();\n }\n\n if (value !== null && typeof value === 'object' && value.type === 'Buffer' && Array.isArray(value.data)) {\n if (value.data.length === 32) {\n const key = Buffer.from(value.data);\n return `[${humanize(key)}]:[${PublicKey.stringify(key)}]`;\n } else {\n return Buffer.from(value.data).toString('hex');\n }\n }\n\n // TODO(burdon): Option.\n // code if (Array.isArray(value)) {\n // code return value.length;\n // code } else {\n return value;\n // code }\n}\n\n/**\n * Recursively converts an object into a JSON-compatible object.\n */\nexport const jsonify = (value: any, depth = 0, visitedObjects = new WeakSet<any>()): any => {\n if (depth > MAX_DEPTH) {\n return null;\n } else if (typeof value === 'function') {\n return null;\n } else if (typeof value === 'object' && value !== null) {\n if (visitedObjects.has(value)) {\n return null;\n }\n visitedObjects.add(value);\n\n try {\n if (value instanceof Uint8Array) {\n return arrayToBuffer(value).toString('hex');\n } else if (Array.isArray(value)) {\n return value.map((x) => jsonify(x, depth + 1, visitedObjects));\n } else if (typeof value.toJSON === 'function') {\n return value.toJSON();\n } else {\n const res: any = {};\n for (const key of Object.keys(value)) {\n res[key] = jsonify(value[key], depth + 1, visitedObjects);\n }\n return res;\n }\n } finally {\n visitedObjects.delete(value);\n }\n } else {\n return value;\n }\n};\n\nexport type JsonKeyOptions = {\n truncate?: boolean;\n humanize?: boolean;\n};\n\nexport const jsonKeyReplacer =\n (options: JsonKeyOptions = {}) =>\n (key: string, value: any) => {\n if (typeof value === 'string') {\n const key = PublicKey.fromHex(value);\n if (key.toHex() === value) {\n // TODO(burdon): Remove humanize.\n return options.humanize ? humanize(key) : options.truncate ? key.truncate() : key.toHex();\n }\n }\n\n return value;\n };\n", "//\n// Copyright 2021 DXOS.org\n//\n\nexport const arraysEqual = (a: Uint8Array, b: Uint8Array): boolean => {\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * Non-copying conversion of Uint8Array to Buffer.\n * The resulting buffer will share the same allocated memory as the Uint8Array.\n */\nexport const arrayToBuffer = (array: Uint8Array): Buffer => {\n return Buffer.from(array.buffer, array.byteOffset, array.byteLength);\n};\n\n/**\n * Non-copying conversion of Buffer to Uint8Array.\n * The resulting Uint8Array will share the same allocated memory as the Buffer.\n */\nexport const bufferToArray = (buffer: Buffer): Uint8Array => {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n};\n\nexport const stringToArray = (string: string): Uint8Array => bufferToArray(Buffer.from(string, 'hex'));\n\nexport const arrayToString = (array: Uint8Array): string => arrayToBuffer(array).toString('hex');\n", "//\n// Copyright 2020 DXOS.org\n//\n\n/**\n * Get or set map value.\n */\nexport const defaultMap = <K, V>(map: Map<K, V>, key: K, def: V | (() => V)) => {\n let value = map.get(key);\n if (value === undefined) {\n value = typeof def === 'function' ? (def as () => V)() : def;\n map.set(key, value);\n }\n\n return value;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport type IdOrder = string[];\n\ntype ObjectOrderAccumulator<T> = { objects: T[]; ids: Set<string> };\n\n/**\n * Uses an array of string id’s to order a map of objects, returning an array of those objects. Objects not listed by\n * the array of id’s occur later in the resulting array of objects based on the map’s key order.\n * @param objectMap\n * @param order\n */\nexport const inferObjectOrder = <T = any>(objectMap: Record<string, T>, order: IdOrder = []): T[] => {\n const orderedObjects = order.reduce(\n (acc, id) => {\n if (id in objectMap) {\n acc.objects.push(objectMap[id]);\n acc.ids.add(id);\n }\n return acc;\n },\n { objects: [], ids: new Set() } as ObjectOrderAccumulator<T>,\n );\n const { objects } = Object.keys(objectMap).reduce((acc, id) => {\n if (!acc.ids.has(id)) {\n acc.objects.push(objectMap[id]);\n }\n return acc;\n }, orderedObjects);\n return objects;\n};\n\n/**\n * Uses an array of string id’s to order a map of objects, returning a new map with the keys in the prescribed order.\n * Objects not listed by the array of id’s occur later in the resulting array of objects based on the map’s key order.\n * @param objectMap\n * @param order\n */\nexport const inferRecordOrder = <T = any>(objectMap: Record<string, T>, order: IdOrder = []): Record<string, T> => {\n return Object.assign(\n order\n .filter((id) => id in objectMap)\n .reduce((acc: Record<string, null>, id) => {\n acc[id] = null;\n return acc;\n }, {}),\n objectMap,\n );\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\n// NOTE: `!=` is required.\nexport const isNode = () => typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\n\n/* eslint-disable */\n\n// From https://stackoverflow.com/a/11381730/2804332.\nexport const mobileAndTabletCheck = () => {\n let check = false;\n ((a) => { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0,4))) { check = true; } })(navigator.userAgent || navigator.vendor || (window as any).opera);\n return check;\n};\n\n/* eslint-enable */\n\n// From https://stackoverflow.com/a/9039885\nexport const iosCheck = () => {\n return (\n ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||\n // iPad on iOS 13 detection\n (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n );\n};\n\n// From https://stackoverflow.com/a/23522755/2804332\nexport const safariCheck = () =>\n typeof navigator !== 'undefined' && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n", "//\n// Copyright 2021 DXOS.org\n//\n\n// TODO(burdon): Random class utility.\n// TODO(burdon): Make object { min, max }.\nexport const randomInt = (max: number, min: number) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nexport const range = (n: number) => Array.from(Array(n).keys());\n\nexport const rangeFromTo = (from: number, to: number) => range(to - from).map((i) => i + from);\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// TODO(burdon): Factor out.\n// TODO(burdon): Consider mathjs for variance, standard deviations, etc.\n// https://www.npmjs.com/package/mathjs\n\nimport { defaultMap } from './map';\n\nexport type Accessor<T, V> = string | ((value: T) => V);\n\nexport const accessBy = <T, V>(value: T, accessor: Accessor<T, V>) =>\n typeof accessor === 'function' ? accessor(value) : (value as Record<any, any>)[accessor];\n\nexport const median = (values: number[]) => {\n const mid = Math.floor(values.length / 2);\n if (values.length % 2 === 1) {\n return values[mid];\n } else {\n return (values[mid - 1] + values[mid]) / 2;\n }\n};\n\n// TODO(burdon): Value Proto.\nexport type NumericalValues = {\n min?: number;\n max?: number;\n mean?: number;\n median?: number;\n total: number;\n count: number;\n};\n\n/**\n * Returns an array of unique values.\n */\nexport const numericalValues = <T>(values: T[], accessor: Accessor<T, number>) => {\n const result: NumericalValues = { total: 0, count: 0 };\n\n const sorted: number[] = values\n .map((value) => {\n const v = accessBy(value, accessor);\n if (v === undefined || isNaN(v)) {\n return undefined;\n }\n\n result.total += v;\n if (result.min === undefined || v < result.min) {\n result.min = v;\n }\n if (result.max === undefined || v > result.max) {\n result.max = v;\n }\n\n return v;\n })\n .filter((value) => value !== undefined)\n .sort((a, b) => a! - b!) as number[];\n\n if (sorted.length) {\n Object.assign(result, {\n count: sorted.length,\n mean: result.total / sorted.length,\n median: median(sorted),\n });\n }\n\n return result;\n};\n\n/**\n * Returns an array of unique values.\n */\nexport const reduceSet = <T, V>(values: T[], accessor: Accessor<T, V>): Set<V> => {\n return values.reduce((values, value) => {\n const v = accessBy(value, accessor);\n values.add(v);\n return values;\n }, new Set<V>());\n};\n\n/**\n * Returns an object containing values grouped by the given key accessor.\n */\nexport const reduceGroupBy = <T, K>(values: T[], accessor: Accessor<T, K>): Map<K, T[]> => {\n return values.reduce((values, value) => {\n const key = accessBy(value, accessor);\n defaultMap(values, key, []).push(value);\n return values;\n }, new Map<K, T[]>());\n};\n\n/**\n * Generic composable reducer interface.\n */\nexport interface Reducer<T, S> {\n /**\n * Get initial state.\n */\n initialState(): S;\n\n /**\n * Apply event to state.\n */\n reduce(state: S, event: T): S;\n}\n\n/**\n * Applies the reducer to the array of values.\n */\nexport const reduceSeries = <T, S>(reducer: Reducer<T, S>, events: T[]): S => {\n const state = reducer.initialState();\n for (const event of events) {\n reducer.reduce(state, event);\n }\n\n return state;\n};\n\n/**\n * Reducer to group values.\n */\nexport const createGroupReducer = <T, S>(\n groupBy: (value: T) => string,\n sub: Reducer<T, S>,\n): Reducer<T, Record<string, S>> => ({\n initialState: () => ({}),\n reduce: (state: Record<string, S>, event: T) => {\n const key = groupBy(event);\n state[key] = sub.reduce(state[key] ?? sub.initialState(), event);\n return state;\n },\n});\n\nexport type TimeRecord = { timestamp: Date | number | string };\nexport type TimeBucket = { start: number; period: number; count: number };\n\nexport const getDate = (value: Date | number | string): Date => (value instanceof Date ? value : new Date(value));\n\n/**\n * Reducer to group by time period.\n */\nexport const createBucketReducer = <T extends TimeRecord>(period: number): Reducer<T, TimeBucket[]> => ({\n initialState: () => [],\n reduce: (series: TimeBucket[], event: T) => {\n const timestamp = getDate(event.timestamp);\n let bucket: TimeBucket = series[series.length - 1];\n if (!bucket || bucket.start + period < timestamp.getTime()) {\n bucket = { start: timestamp.getTime(), period, count: 0 };\n series.push(bucket);\n }\n\n bucket.count++;\n return series;\n },\n});\n", "//\n// Copyright 2022 DXOS.org\n//\n\nconst instanceTag = Symbol('instanceTag');\n\n/**\n * Makes instanceof work correctly even if the class definition was duplicated (e.g. when bundling).\n * The comparison is done by comparing the tag passed to this function.\n *\n * Example:\n *\n * ```typescript\n * @safeInstanceof('Tagged')\n * class Tagged {}\n * ```\n */\nexport const safeInstanceof =\n (tag: string): ClassDecorator =>\n (target: any) => {\n target.prototype[instanceTag] = tag;\n\n Object.defineProperty(target.prototype, Symbol.hasInstance, {\n value: (instance: any) => instance?.[instanceTag] === tag,\n });\n\n Object.defineProperty(target, Symbol.hasInstance, {\n value: (instance: any) => instance?.[instanceTag] === tag,\n });\n };\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// TODO(burdon): Unique.\n// TODO(burdon): Options for undefined to end.\n\ntype Compare<T> = (a: T, b: T) => number;\n\nexport const compareScalar =\n (inc = true) =>\n (a: any, b: any) =>\n (inc ? 1 : -1) * (a < b ? -1 : a > b ? 1 : 0);\n\nexport const compareString =\n (inc = true, caseInsensitive = true) =>\n (a: string, b: string) => {\n if (caseInsensitive) {\n a = a?.toLowerCase();\n b = b?.toLowerCase();\n }\n return (inc ? 1 : -1) * (a < b ? -1 : a > b ? 1 : 0);\n };\n\nexport const compareObject =\n <T extends Record<string, any>>(prop: string, sorter: Compare<any>, inc = true): Compare<any> =>\n (a: T, b: T) =>\n (inc ? 1 : -1) * sorter(a[prop], b[prop]);\n\nexport const compareMulti =\n <T extends Record<string, any>>(sorters: Compare<T>[]) =>\n (a: T, b: T) => {\n const sort = (i = 0): number => {\n const s = sorters[i](a, b);\n if (s === 0 && i < sorters.length - 1) {\n return sort(i + 1);\n } else {\n return s;\n }\n };\n\n return sort();\n };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { defaultMap } from './map';\n\n/**\n * Tracer events form a graph.\n */\nexport type Event = {\n id: string;\n timestamp: number; // ms.\n duration?: number; // ms (float).\n value?: any;\n};\n\n/**\n * Event sink.\n */\n// TODO(burdon): Reconcile with log.trace.\nexport class Tracer {\n private readonly _events = new Map<string, Event[]>();\n\n private _recording = false;\n\n // TODO(burdon): Start/stop methods for recording data? By id?\n // Alternatively, enable subscriptions to track/compute series.\n\n // TODO(burdon): Hierarchical traces?\n\n get recording() {\n return this._recording;\n }\n\n keys() {\n return Array.from(this._events.keys());\n }\n\n get(id: string, filter?: Record<string, any>): Event[] | undefined {\n const events = this._events.get(id);\n if (filter) {\n return events?.filter((event) => Object.entries(filter).every(([key, value]) => event?.value[key] === value));\n }\n\n return events;\n }\n\n clear() {\n this._events.clear();\n }\n\n start() {\n this._recording = true;\n return this;\n }\n\n stop() {\n this._recording = false;\n return this;\n }\n\n emit(id: string, value?: any) {\n this._post(this._createEvent(id, value));\n }\n\n mark(id: string, value?: any): { start: number; end: () => void } {\n const event = this._createEvent(id, value);\n const start = performance.now();\n return {\n start,\n end: () => {\n event.duration = performance.now() - start;\n this._post(event);\n },\n };\n }\n\n private _createEvent(id: string, value?: any): Event {\n const event: Event = { id, timestamp: Date.now() };\n if (value !== undefined) {\n event.value = value;\n }\n\n return event;\n }\n\n private _post(event: Event) {\n if (this._recording) {\n defaultMap(this._events, event.id, []).push(event);\n }\n }\n}\n\n// TODO(burdon): Factor out (move to @dxos/log?)\n// TODO(burdon): Global singleton (e.g., `trace()`) or part of client services?\nexport const tracer = new Tracer();\n", "//\n// Copyright 2020 DXOS.org\n//\n\nexport const boolGuard = <T>(value: T | null | undefined): value is T => Boolean(value);\n\nexport type AsyncCallback<T> = (param: T) => Promise<void>;\n\nexport type Provider<T> = () => T;\n\nexport type MaybePromise<T> = T | Promise<T>;\n\nexport const isNotNullOrUndefined = <T>(x: T): x is Exclude<T, null | undefined> => x != null;\n\n/**\n * Use with filter chaining instead of filter(Boolean) to preserve type.\n * NOTE: To filter by type:\n * items.filter((item: any): item is RangeSet<Decoration> => item instanceof RangeSet)\n */\nexport const nonNullable = <T>(value: T): value is NonNullable<T> => value !== null && value !== undefined;\n\n/**\n * All types that evaluate to false when cast to a boolean.\n */\nexport type Falsy = false | 0 | '' | null | undefined;\n\n/**\n * A function returning a value or a value itself.\n */\nexport type MaybeFunction<T> = T | (() => T);\n\n/**\n * Get value from a provider.\n */\nexport const getAsyncValue = async <T>(value: MaybeFunction<MaybePromise<T>>): Promise<T> => {\n if (typeof value === 'function') {\n return (value as Function)();\n } else {\n return value;\n }\n};\n\nexport type MakeOptional<Type, Key extends keyof Type> = Omit<Type, Key> & Partial<Pick<Type, Key>>;\n\n/**\n * Remove keys with undefined values.\n */\nexport const stripUndefinedValues = <T extends { [index: string]: any }>(obj: T): T => {\n if (typeof obj === 'object') {\n Object.keys(obj).forEach((key) => {\n const value = obj[key];\n if (value === undefined) {\n delete obj[key];\n } else if (value !== null && typeof value === 'object') {\n stripUndefinedValues(value); // TODO(burdon): Test recursion.\n }\n });\n }\n\n return obj;\n};\n\n/**\n * Swap position of element within array.\n */\nexport const arrayMove = <T>(array: T[], from: number, to: number): Array<T> => {\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n return array;\n};\n\nexport const safeParseInt = (value: string | undefined, defaultValue?: number) => {\n try {\n const n = parseInt(value ?? '');\n return isNaN(n) ? defaultValue : n;\n } catch (err) {\n return defaultValue;\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { defaultMap } from './map';\n\nconst symbol = Symbol.for('dxos.instance-contexts');\n\nconst instanceContexts = ((globalThis as any)[symbol] ??= new WeakMap<\n any,\n {\n nextId: number;\n instanceIds: WeakMap<any, number>;\n }\n>());\n\n/**\n * Returns a unique instance id for a given object.\n * Ids are generated as incrementing numbers.\n * Ids are only unique within the scope of a given prototype.\n * Instances of different classes may have the same id.\n */\nexport const getPrototypeSpecificInstanceId = (instance: any): number => {\n const prototype = Object.getPrototypeOf(instance);\n const instanceCtx = defaultMap(instanceContexts as any, prototype, () => ({\n nextId: 0,\n instanceIds: new WeakMap(),\n }));\n\n let id = instanceCtx.instanceIds.get(instance);\n if (id === undefined) {\n id = instanceCtx.nextId++;\n instanceCtx.instanceIds.set(instance, id);\n }\n\n return id;\n};\n\nexport const getDebugName = (instance: any): string => {\n const prototype = Object.getPrototypeOf(instance);\n return `${prototype.constructor.name}#${getPrototypeSpecificInstanceId(instance)}`;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const sum = (values: number[]) => values.reduce((a, b) => a + b, 0);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const forEachAsync = <T>(items: T[], fn: (item: T, idx: number) => Promise<void>) => Promise.all(items.map(fn));\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Weak dictionary. It is a map that holds weak references to its values and allows garbage collection of values and keys.\n */\nexport class WeakDictionary<K, V extends object> implements Map<K, V> {\n private readonly _internal = new Map<K, WeakRef<V>>();\n private readonly _finalization = new FinalizationRegistry((cleanUpCallback: () => void) => {\n cleanUpCallback();\n });\n\n constructor(entries?: [K, V][]) {\n this._internal = new Map(entries?.map(([key, value]) => [key, new WeakRef(value)]));\n entries?.forEach(([key, value]) => this._register(key, value));\n }\n\n *entries(): IterableIterator<[K, V]> {\n for (const [key, value] of this._internal) {\n yield [key, value.deref()!];\n }\n }\n\n keys(): IterableIterator<K> {\n return this._internal.keys();\n }\n\n *values(): IterableIterator<V> {\n for (const value of this._internal.values()) {\n const deref = value.deref();\n if (!deref) {\n continue;\n }\n yield deref;\n }\n }\n\n *[Symbol.iterator](): IterableIterator<[K, V]> {\n for (const [key, value] of this._internal) {\n yield [key, value.deref()!];\n }\n }\n\n get [Symbol.toStringTag](): string {\n return 'WeakDictionary';\n }\n\n get size(): number {\n return this._internal.size;\n }\n\n get(key: K): V | undefined {\n return this._internal.get(key)?.deref();\n }\n\n set(key: K, value: V): this {\n this._internal.set(key, new WeakRef(value));\n this._register(key, value);\n return this;\n }\n\n has(key: K): boolean {\n return this._internal.has(key) && this._internal.get(key)!.deref() !== undefined;\n }\n\n delete(key: K): boolean {\n const value = this._internal.get(key)?.deref();\n if (value) {\n this._unregister(value);\n }\n return this._internal.delete(key);\n }\n\n clear(): void {\n this._internal.forEach((value) => {\n const v = value.deref();\n if (v) {\n this._unregister(v);\n }\n });\n\n this._internal.clear();\n }\n\n forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void {\n if (thisArg) {\n callbackfn = callbackfn.bind(thisArg);\n }\n\n this._internal.forEach((value, key) => {\n const v = value.deref();\n if (v) {\n callbackfn(v, key, this);\n }\n });\n }\n\n private _register(key: K, value: V) {\n this._finalization.register(\n value,\n () => {\n this._internal.delete(key);\n },\n value,\n );\n }\n\n private _unregister(value: V) {\n this._finalization.unregister(value);\n }\n}\n"],
5
+ "mappings": "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F,KAAAA;IAC3B;AACA,WAAO;EACT;EAEAyF,KAA0DjB,KAAsC;AAC9F,WAAOW,MAAM,KAAKnF,OAAOwE,GAAAA;EAC3B;AACF;AC7BA,IAAMkB,mBAAmB;EACvB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;E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",
6
+ "names": ["import_invariant", "import_node_util", "import_keys", "createBinder", "obj", "fn", "bind", "async", "util", "promisify", "BitField", "get", "data", "idx", "bit", "set", "value", "count", "begin", "end", "i", "invert", "result", "Uint8Array", "length", "and", "first", "second", "invariant", "findIndexes", "opts", "start", "push", "ones", "res", "Math", "ceil", "fill", "bitInLastByte", "zeros", "Callback", "call", "args", "_callback", "callIfSet", "callback", "isSet", "createSetDispatch", "handlers", "Proxy", "target", "prop", "forEach", "handler", "method", "apply", "MAX_SERIALIZATION_LENGTH", "ComplexSet", "constructor", "_projection", "values", "_values", "Map", "add", "toString", "inspectObject", "toJSON", "size", "Array", "from", "inspect", "custom", "clear", "delete", "callbackfn", "thisArg", "has", "Symbol", "iterator", "entries", "keys", "toStringTag", "makeSet", "projection", "BoundComplexSet", "ComplexMap", "_keyProjection", "_keys", "key", "keyDeleted", "valueDeleted", "primitive", "raise", "Error", "makeMap", "keyProjection", "BoundComplexMap", "deferFunction", "fnProvider", "entry", "map", "MapEntry", "_map", "_key", "orInsert", "deep", "DEFAULT_WORDLIST", "HumanHasher", "wordlist", "humanize", "hexdigest", "words", "separator", "pairs", "match", "bytes", "x", "parseInt", "compressed", "_compress", "join", "segSize", "segments", "slice", "concat", "checksums", "reduce", "acc", "curr", "hasher", "Buffer", "ArrayBuffer", "PublicKey", "stringify", "toHex", "exponentialBackoffInterval", "cb", "initialInterval", "interval", "repeat", "timeoutId", "setTimeout", "clearTimeout", "arraysEqual", "a", "b", "arrayToBuffer", "array", "buffer", "byteOffset", "byteLength", "bufferToArray", "stringToArray", "string", "arrayToString", "MAX_DEPTH", "jsonReplacer", "type", "isArray", "jsonify", "depth", "visitedObjects", "WeakSet", "Object", "jsonKeyReplacer", "options", "fromHex", "truncate", "defaultMap", "def", "undefined", "inferObjectOrder", "objectMap", "order", "orderedObjects", "id", "objects", "ids", "Set", "inferRecordOrder", "assign", "filter", "isNode", "process", "versions", "node", "mobileAndTabletCheck", "check", "test", "substr", "navigator", "userAgent", "vendor", "window", "opera", "iosCheck", "includes", "platform", "document", "safariCheck", "randomInt", "max", "min", "floor", "random", "range", "n", "rangeFromTo", "to", "accessBy", "accessor", "median", "mid", "numericalValues", "total", "sorted", "v", "isNaN", "sort", "mean", "reduceSet", "reduceGroupBy", "reduceSeries", "reducer", "events", "state", "initialState", "event", "createGroupReducer", "groupBy", "sub", "getDate", "Date", "createBucketReducer", "period", "series", "timestamp", "bucket", "getTime", "instanceTag", "safeInstanceof", "tag", "prototype", "defineProperty", "hasInstance", "instance", "compareScalar", "inc", "compareString", "caseInsensitive", "toLowerCase", "compareObject", "sorter", "compareMulti", "sorters", "s", "Tracer", "_events", "_recording", "recording", "every", "stop", "emit", "_post", "_createEvent", "mark", "performance", "now", "duration", "tracer", "boolGuard", "Boolean", "isNotNullOrUndefined", "nonNullable", "getAsyncValue", "stripUndefinedValues", "arrayMove", "splice", "safeParseInt", "defaultValue", "err", "symbol", "for", "instanceContexts", "globalThis", "WeakMap", "getPrototypeSpecificInstanceId", "getPrototypeOf", "instanceCtx", "nextId", "instanceIds", "getDebugName", "name", "sum", "forEachAsync", "items", "Promise", "all", "WeakDictionary", "_internal", "_finalization", "FinalizationRegistry", "cleanUpCallback", "WeakRef", "_register", "deref", "_unregister", "register", "unregister"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/common/util/src/binder.ts":{"bytes":1318,"imports":[{"path":"node:util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/bitfield.ts":{"bytes":8437,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/callback.ts":{"bytes":5188,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/complex.ts":{"bytes":18664,"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/defer-function.ts":{"bytes":1566,"imports":[],"format":"esm"},"packages/common/util/src/entry.ts":{"bytes":3002,"imports":[],"format":"esm"},"packages/common/util/src/human-hash.ts":{"bytes":19761,"imports":[{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/interval.ts":{"bytes":1827,"imports":[],"format":"esm"},"packages/common/util/src/uint8array.ts":{"bytes":3071,"imports":[],"format":"esm"},"packages/common/util/src/json.ts":{"bytes":9247,"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"packages/common/util/src/human-hash.ts","kind":"import-statement","original":"./human-hash"},{"path":"packages/common/util/src/uint8array.ts","kind":"import-statement","original":"./uint8array"}],"format":"esm"},"packages/common/util/src/map.ts":{"bytes":1373,"imports":[],"format":"esm"},"packages/common/util/src/order.ts":{"bytes":4979,"imports":[],"format":"esm"},"packages/common/util/src/platform.ts":{"bytes":8503,"imports":[],"format":"esm"},"packages/common/util/src/random.ts":{"bytes":1299,"imports":[],"format":"esm"},"packages/common/util/src/range.ts":{"bytes":1022,"imports":[],"format":"esm"},"packages/common/util/src/reducers.ts":{"bytes":12820,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"}],"format":"esm"},"packages/common/util/src/safe-instanceof.ts":{"bytes":2688,"imports":[],"format":"esm"},"packages/common/util/src/sort.ts":{"bytes":3939,"imports":[],"format":"esm"},"packages/common/util/src/tracer.ts":{"bytes":7177,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"}],"format":"esm"},"packages/common/util/src/types.ts":{"bytes":6333,"imports":[],"format":"esm"},"packages/common/util/src/instance-id.ts":{"bytes":4056,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"}],"format":"esm"},"packages/common/util/src/sum.ts":{"bytes":683,"imports":[],"format":"esm"},"packages/common/util/src/for-each-async.ts":{"bytes":793,"imports":[],"format":"esm"},"packages/common/util/src/weak.ts":{"bytes":9631,"imports":[],"format":"esm"},"packages/common/util/src/index.ts":{"bytes":2456,"imports":[{"path":"packages/common/util/src/binder.ts","kind":"import-statement","original":"./binder"},{"path":"packages/common/util/src/bitfield.ts","kind":"import-statement","original":"./bitfield"},{"path":"packages/common/util/src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"packages/common/util/src/complex.ts","kind":"import-statement","original":"./complex"},{"path":"packages/common/util/src/defer-function.ts","kind":"import-statement","original":"./defer-function"},{"path":"packages/common/util/src/entry.ts","kind":"import-statement","original":"./entry"},{"path":"packages/common/util/src/human-hash.ts","kind":"import-statement","original":"./human-hash"},{"path":"packages/common/util/src/interval.ts","kind":"import-statement","original":"./interval"},{"path":"packages/common/util/src/json.ts","kind":"import-statement","original":"./json"},{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"},{"path":"packages/common/util/src/order.ts","kind":"import-statement","original":"./order"},{"path":"packages/common/util/src/platform.ts","kind":"import-statement","original":"./platform"},{"path":"packages/common/util/src/random.ts","kind":"import-statement","original":"./random"},{"path":"packages/common/util/src/range.ts","kind":"import-statement","original":"./range"},{"path":"packages/common/util/src/reducers.ts","kind":"import-statement","original":"./reducers"},{"path":"packages/common/util/src/safe-instanceof.ts","kind":"import-statement","original":"./safe-instanceof"},{"path":"packages/common/util/src/sort.ts","kind":"import-statement","original":"./sort"},{"path":"packages/common/util/src/tracer.ts","kind":"import-statement","original":"./tracer"},{"path":"packages/common/util/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/common/util/src/uint8array.ts","kind":"import-statement","original":"./uint8array"},{"path":"packages/common/util/src/instance-id.ts","kind":"import-statement","original":"./instance-id"},{"path":"packages/common/util/src/sum.ts","kind":"import-statement","original":"./sum"},{"path":"packages/common/util/src/for-each-async.ts","kind":"import-statement","original":"./for-each-async"},{"path":"packages/common/util/src/weak.ts","kind":"import-statement","original":"./weak"}],"format":"esm"}},"outputs":{"packages/common/util/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":67798},"packages/common/util/dist/lib/node/index.cjs":{"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"exports":["BitField","Callback","ComplexMap","ComplexSet","HumanHasher","MapEntry","Tracer","WeakDictionary","accessBy","arrayMove","arrayToBuffer","arraysEqual","boolGuard","bufferToArray","compareMulti","compareObject","compareScalar","compareString","createBinder","createBucketReducer","createGroupReducer","createSetDispatch","defaultMap","deferFunction","entry","exponentialBackoffInterval","forEachAsync","getAsyncValue","getDate","getDebugName","getPrototypeSpecificInstanceId","humanize","inferObjectOrder","inferRecordOrder","iosCheck","isNode","isNotNullOrUndefined","jsonKeyReplacer","jsonReplacer","jsonify","makeMap","makeSet","median","mobileAndTabletCheck","nonNullable","numericalValues","randomInt","range","rangeFromTo","reduceGroupBy","reduceSeries","reduceSet","safariCheck","safeInstanceof","safeParseInt","stripUndefinedValues","sum","tracer"],"entryPoint":"packages/common/util/src/index.ts","inputs":{"packages/common/util/src/binder.ts":{"bytesInOutput":139},"packages/common/util/src/index.ts":{"bytesInOutput":0},"packages/common/util/src/bitfield.ts":{"bytesInOutput":1889},"packages/common/util/src/callback.ts":{"bytesInOutput":1108},"packages/common/util/src/complex.ts":{"bytesInOutput":3696},"packages/common/util/src/defer-function.ts":{"bytesInOutput":72},"packages/common/util/src/entry.ts":{"bytesInOutput":471},"packages/common/util/src/human-hash.ts":{"bytesInOutput":5662},"packages/common/util/src/interval.ts":{"bytesInOutput":290},"packages/common/util/src/json.ts":{"bytesInOutput":1887},"packages/common/util/src/uint8array.ts":{"bytesInOutput":418},"packages/common/util/src/map.ts":{"bytesInOutput":193},"packages/common/util/src/order.ts":{"bytesInOutput":676},"packages/common/util/src/platform.ts":{"bytesInOutput":2676},"packages/common/util/src/random.ts":{"bytesInOutput":144},"packages/common/util/src/range.ts":{"bytesInOutput":119},"packages/common/util/src/reducers.ts":{"bytesInOutput":2326},"packages/common/util/src/safe-instanceof.ts":{"bytesInOutput":371},"packages/common/util/src/sort.ts":{"bytesInOutput":643},"packages/common/util/src/tracer.ts":{"bytesInOutput":1426},"packages/common/util/src/types.ts":{"bytesInOutput":936},"packages/common/util/src/instance-id.ts":{"bytesInOutput":722},"packages/common/util/src/sum.ts":{"bytesInOutput":57},"packages/common/util/src/for-each-async.ts":{"bytesInOutput":62},"packages/common/util/src/weak.ts":{"bytesInOutput":2069}},"bytes":30017}}}
1
+ {"inputs":{"packages/common/util/src/binder.ts":{"bytes":1323,"imports":[{"path":"node:util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/bitfield.ts":{"bytes":8442,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/callback.ts":{"bytes":5193,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/complex.ts":{"bytes":18669,"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/defer-function.ts":{"bytes":1571,"imports":[],"format":"esm"},"packages/common/util/src/entry.ts":{"bytes":3007,"imports":[],"format":"esm"},"packages/common/util/src/human-hash.ts":{"bytes":19766,"imports":[{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"packages/common/util/src/interval.ts":{"bytes":1832,"imports":[],"format":"esm"},"packages/common/util/src/uint8array.ts":{"bytes":3758,"imports":[],"format":"esm"},"packages/common/util/src/json.ts":{"bytes":9252,"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"packages/common/util/src/human-hash.ts","kind":"import-statement","original":"./human-hash"},{"path":"packages/common/util/src/uint8array.ts","kind":"import-statement","original":"./uint8array"}],"format":"esm"},"packages/common/util/src/map.ts":{"bytes":1378,"imports":[],"format":"esm"},"packages/common/util/src/order.ts":{"bytes":4984,"imports":[],"format":"esm"},"packages/common/util/src/platform.ts":{"bytes":8508,"imports":[],"format":"esm"},"packages/common/util/src/random.ts":{"bytes":1304,"imports":[],"format":"esm"},"packages/common/util/src/range.ts":{"bytes":1027,"imports":[],"format":"esm"},"packages/common/util/src/reducers.ts":{"bytes":12825,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"}],"format":"esm"},"packages/common/util/src/safe-instanceof.ts":{"bytes":2693,"imports":[],"format":"esm"},"packages/common/util/src/sort.ts":{"bytes":3944,"imports":[],"format":"esm"},"packages/common/util/src/tracer.ts":{"bytes":7182,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"}],"format":"esm"},"packages/common/util/src/types.ts":{"bytes":6338,"imports":[],"format":"esm"},"packages/common/util/src/instance-id.ts":{"bytes":4061,"imports":[{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"}],"format":"esm"},"packages/common/util/src/sum.ts":{"bytes":688,"imports":[],"format":"esm"},"packages/common/util/src/for-each-async.ts":{"bytes":798,"imports":[],"format":"esm"},"packages/common/util/src/weak.ts":{"bytes":9636,"imports":[],"format":"esm"},"packages/common/util/src/index.ts":{"bytes":2461,"imports":[{"path":"packages/common/util/src/binder.ts","kind":"import-statement","original":"./binder"},{"path":"packages/common/util/src/bitfield.ts","kind":"import-statement","original":"./bitfield"},{"path":"packages/common/util/src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"packages/common/util/src/complex.ts","kind":"import-statement","original":"./complex"},{"path":"packages/common/util/src/defer-function.ts","kind":"import-statement","original":"./defer-function"},{"path":"packages/common/util/src/entry.ts","kind":"import-statement","original":"./entry"},{"path":"packages/common/util/src/human-hash.ts","kind":"import-statement","original":"./human-hash"},{"path":"packages/common/util/src/interval.ts","kind":"import-statement","original":"./interval"},{"path":"packages/common/util/src/json.ts","kind":"import-statement","original":"./json"},{"path":"packages/common/util/src/map.ts","kind":"import-statement","original":"./map"},{"path":"packages/common/util/src/order.ts","kind":"import-statement","original":"./order"},{"path":"packages/common/util/src/platform.ts","kind":"import-statement","original":"./platform"},{"path":"packages/common/util/src/random.ts","kind":"import-statement","original":"./random"},{"path":"packages/common/util/src/range.ts","kind":"import-statement","original":"./range"},{"path":"packages/common/util/src/reducers.ts","kind":"import-statement","original":"./reducers"},{"path":"packages/common/util/src/safe-instanceof.ts","kind":"import-statement","original":"./safe-instanceof"},{"path":"packages/common/util/src/sort.ts","kind":"import-statement","original":"./sort"},{"path":"packages/common/util/src/tracer.ts","kind":"import-statement","original":"./tracer"},{"path":"packages/common/util/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/common/util/src/uint8array.ts","kind":"import-statement","original":"./uint8array"},{"path":"packages/common/util/src/instance-id.ts","kind":"import-statement","original":"./instance-id"},{"path":"packages/common/util/src/sum.ts","kind":"import-statement","original":"./sum"},{"path":"packages/common/util/src/for-each-async.ts","kind":"import-statement","original":"./for-each-async"},{"path":"packages/common/util/src/weak.ts","kind":"import-statement","original":"./weak"}],"format":"esm"}},"outputs":{"packages/common/util/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":68187},"packages/common/util/dist/lib/node/index.cjs":{"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"exports":["BitField","Callback","ComplexMap","ComplexSet","HumanHasher","MapEntry","Tracer","WeakDictionary","accessBy","arrayMove","arrayToBuffer","arrayToString","arraysEqual","boolGuard","bufferToArray","compareMulti","compareObject","compareScalar","compareString","createBinder","createBucketReducer","createGroupReducer","createSetDispatch","defaultMap","deferFunction","entry","exponentialBackoffInterval","forEachAsync","getAsyncValue","getDate","getDebugName","getPrototypeSpecificInstanceId","humanize","inferObjectOrder","inferRecordOrder","iosCheck","isNode","isNotNullOrUndefined","jsonKeyReplacer","jsonReplacer","jsonify","makeMap","makeSet","median","mobileAndTabletCheck","nonNullable","numericalValues","randomInt","range","rangeFromTo","reduceGroupBy","reduceSeries","reduceSet","safariCheck","safeInstanceof","safeParseInt","stringToArray","stripUndefinedValues","sum","tracer"],"entryPoint":"packages/common/util/src/index.ts","inputs":{"packages/common/util/src/binder.ts":{"bytesInOutput":139},"packages/common/util/src/index.ts":{"bytesInOutput":0},"packages/common/util/src/bitfield.ts":{"bytesInOutput":1894},"packages/common/util/src/callback.ts":{"bytesInOutput":1113},"packages/common/util/src/complex.ts":{"bytesInOutput":3696},"packages/common/util/src/defer-function.ts":{"bytesInOutput":72},"packages/common/util/src/entry.ts":{"bytesInOutput":471},"packages/common/util/src/human-hash.ts":{"bytesInOutput":5662},"packages/common/util/src/interval.ts":{"bytesInOutput":290},"packages/common/util/src/json.ts":{"bytesInOutput":1887},"packages/common/util/src/uint8array.ts":{"bytesInOutput":562},"packages/common/util/src/map.ts":{"bytesInOutput":193},"packages/common/util/src/order.ts":{"bytesInOutput":676},"packages/common/util/src/platform.ts":{"bytesInOutput":2676},"packages/common/util/src/random.ts":{"bytesInOutput":144},"packages/common/util/src/range.ts":{"bytesInOutput":119},"packages/common/util/src/reducers.ts":{"bytesInOutput":2326},"packages/common/util/src/safe-instanceof.ts":{"bytesInOutput":371},"packages/common/util/src/sort.ts":{"bytesInOutput":643},"packages/common/util/src/tracer.ts":{"bytesInOutput":1426},"packages/common/util/src/types.ts":{"bytesInOutput":936},"packages/common/util/src/instance-id.ts":{"bytesInOutput":722},"packages/common/util/src/sum.ts":{"bytesInOutput":57},"packages/common/util/src/for-each-async.ts":{"bytesInOutput":62},"packages/common/util/src/weak.ts":{"bytesInOutput":2069}},"bytes":30205}}}
@@ -9,4 +9,6 @@ export declare const arrayToBuffer: (array: Uint8Array) => Buffer;
9
9
  * The resulting Uint8Array will share the same allocated memory as the Buffer.
10
10
  */
11
11
  export declare const bufferToArray: (buffer: Buffer) => Uint8Array;
12
+ export declare const stringToArray: (string: string) => Uint8Array;
13
+ export declare const arrayToString: (array: Uint8Array) => string;
12
14
  //# sourceMappingURL=uint8array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uint8array.d.ts","sourceRoot":"","sources":["../../../src/uint8array.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,MAAO,UAAU,KAAK,UAAU,KAAG,OAY1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAW,UAAU,KAAG,MAEjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,UAE9C,CAAC"}
1
+ {"version":3,"file":"uint8array.d.ts","sourceRoot":"","sources":["../../../src/uint8array.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,MAAO,UAAU,KAAK,UAAU,KAAG,OAY1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAW,UAAU,KAAG,MAEjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,UAE9C,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,UAAuD,CAAC;AAEvG,eAAO,MAAM,aAAa,UAAW,UAAU,KAAG,MAA8C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/util",
3
- "version": "0.3.10",
3
+ "version": "0.3.11-main.bd26370",
4
4
  "description": "Temporary bucket for misc functions, which should graduate into separate packages.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -16,13 +16,13 @@
16
16
  "src"
17
17
  ],
18
18
  "dependencies": {
19
- "@dxos/debug": "0.3.10",
20
- "@dxos/invariant": "0.3.10",
21
- "@dxos/node-std": "0.3.10",
22
- "@dxos/keys": "0.3.10"
19
+ "@dxos/invariant": "0.3.11-main.bd26370",
20
+ "@dxos/keys": "0.3.11-main.bd26370",
21
+ "@dxos/node-std": "0.3.11-main.bd26370",
22
+ "@dxos/debug": "0.3.11-main.bd26370"
23
23
  },
24
24
  "devDependencies": {
25
- "@dxos/crypto": "0.3.10"
25
+ "@dxos/crypto": "0.3.11-main.bd26370"
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"
@@ -6,7 +6,7 @@ import { expect } from 'chai';
6
6
 
7
7
  import { test, describe } from '@dxos/test';
8
8
 
9
- import { arrayToBuffer, bufferToArray } from './uint8array';
9
+ import { arrayToBuffer, arrayToString, bufferToArray, stringToArray } from './uint8array';
10
10
 
11
11
  describe('uint8array', () => {
12
12
  test('arrayToBuffer', () => {
@@ -30,4 +30,11 @@ describe('uint8array', () => {
30
30
  array[0] = 0;
31
31
  expect(data[1]).to.eq(0);
32
32
  });
33
+
34
+ test('arrayToString <> stringToArray', () => {
35
+ const data = new Uint8Array([1, 2, 3, 4]);
36
+ const encoded = arrayToString(data);
37
+ const decoded = stringToArray(encoded);
38
+ expect(decoded).to.deep.eq(data);
39
+ });
33
40
  });
package/src/uint8array.ts CHANGED
@@ -31,3 +31,7 @@ export const arrayToBuffer = (array: Uint8Array): Buffer => {
31
31
  export const bufferToArray = (buffer: Buffer): Uint8Array => {
32
32
  return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
33
33
  };
34
+
35
+ export const stringToArray = (string: string): Uint8Array => bufferToArray(Buffer.from(string, 'hex'));
36
+
37
+ export const arrayToString = (array: Uint8Array): string => arrayToBuffer(array).toString('hex');