@zk-tech/rrt-bridge 0.0.2 → 0.0.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../node_modules/.pnpm/birpc@0.2.17/node_modules/birpc/dist/index.mjs","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/double-indexed-kv.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/class-registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/util.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/custom-transformer-registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/is.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/pathstringifier.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/transformer.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/accessDeep.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/plainer.js","../../../node_modules/.pnpm/is-what@4.1.16/node_modules/is-what/dist/index.js","../../../node_modules/.pnpm/copy-anything@3.0.5/node_modules/copy-anything/dist/index.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/index.js","../src/rpc/broadcast/index.ts","../src/rpc/native/index.ts","../src/rpc/message/context.ts","../../devtools-shared/dist/index.js","../src/rpc/message/client.ts","../src/rpc/message/server.ts","../src/config.ts","../src/rpc/index.ts"],"sourcesContent":["const DEFAULT_TIMEOUT = 6e4;\nfunction defaultSerialize(i) {\n return i;\n}\nconst defaultDeserialize = defaultSerialize;\nconst { clearTimeout, setTimeout } = globalThis;\nconst random = Math.random.bind(Math);\nfunction createBirpc(functions, options) {\n const {\n post,\n on,\n eventNames = [],\n serialize = defaultSerialize,\n deserialize = defaultDeserialize,\n resolver,\n timeout = DEFAULT_TIMEOUT\n } = options;\n const rpcPromiseMap = /* @__PURE__ */ new Map();\n let _promise;\n const rpc = new Proxy({}, {\n get(_, method) {\n if (method === \"$functions\")\n return functions;\n if (method === \"then\" && !eventNames.includes(\"then\") && !(\"then\" in functions))\n return void 0;\n const sendEvent = (...args) => {\n post(serialize({ m: method, a: args, t: \"q\" }));\n };\n if (eventNames.includes(method)) {\n sendEvent.asEvent = sendEvent;\n return sendEvent;\n }\n const sendCall = async (...args) => {\n await _promise;\n return new Promise((resolve, reject) => {\n const id = nanoid();\n let timeoutId;\n if (timeout >= 0) {\n timeoutId = setTimeout(() => {\n try {\n options.onTimeoutError?.(method, args);\n throw new Error(`[birpc] timeout on calling \"${method}\"`);\n } catch (e) {\n reject(e);\n }\n rpcPromiseMap.delete(id);\n }, timeout);\n if (typeof timeoutId === \"object\")\n timeoutId = timeoutId.unref?.();\n }\n rpcPromiseMap.set(id, { resolve, reject, timeoutId });\n post(serialize({ m: method, a: args, i: id, t: \"q\" }));\n });\n };\n sendCall.asEvent = sendEvent;\n return sendCall;\n }\n });\n _promise = on(async (data, ...extra) => {\n const msg = deserialize(data);\n if (msg.t === \"q\") {\n const { m: method, a: args } = msg;\n let result, error;\n const fn = resolver ? resolver(method, functions[method]) : functions[method];\n if (!fn) {\n error = new Error(`[birpc] function \"${method}\" not found`);\n } else {\n try {\n result = await fn.apply(rpc, args);\n } catch (e) {\n error = e;\n }\n }\n if (msg.i) {\n if (error && options.onError)\n options.onError(error, method, args);\n post(serialize({ t: \"s\", i: msg.i, r: result, e: error }), ...extra);\n }\n } else {\n const { i: ack, r: result, e: error } = msg;\n const promise = rpcPromiseMap.get(ack);\n if (promise) {\n clearTimeout(promise.timeoutId);\n if (error)\n promise.reject(error);\n else\n promise.resolve(result);\n }\n rpcPromiseMap.delete(ack);\n }\n });\n return rpc;\n}\nconst cacheMap = /* @__PURE__ */ new WeakMap();\nfunction cachedMap(items, fn) {\n return items.map((i) => {\n let r = cacheMap.get(i);\n if (!r) {\n r = fn(i);\n cacheMap.set(i, r);\n }\n return r;\n });\n}\nfunction createBirpcGroup(functions, channels, options = {}) {\n const getChannels = () => typeof channels === \"function\" ? channels() : channels;\n const getClients = (channels2 = getChannels()) => cachedMap(channels2, (s) => createBirpc(functions, { ...options, ...s }));\n const broadcastProxy = new Proxy({}, {\n get(_, method) {\n const client = getClients();\n const callbacks = client.map((c) => c[method]);\n const sendCall = (...args) => {\n return Promise.all(callbacks.map((i) => i(...args)));\n };\n sendCall.asEvent = (...args) => {\n callbacks.map((i) => i.asEvent(...args));\n };\n return sendCall;\n }\n });\n function updateChannels(fn) {\n const channels2 = getChannels();\n fn?.(channels2);\n return getClients(channels2);\n }\n getClients();\n return {\n get clients() {\n return getClients();\n },\n functions,\n updateChannels,\n broadcast: broadcastProxy,\n /**\n * @deprecated use `broadcast`\n */\n // @ts-expect-error deprecated\n boardcast: broadcastProxy\n };\n}\nconst urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nfunction nanoid(size = 21) {\n let id = \"\";\n let i = size;\n while (i--)\n id += urlAlphabet[random() * 64 | 0];\n return id;\n}\n\nexport { DEFAULT_TIMEOUT, cachedMap, createBirpc, createBirpcGroup };\n","export class DoubleIndexedKV {\n constructor() {\n this.keyToValue = new Map();\n this.valueToKey = new Map();\n }\n set(key, value) {\n this.keyToValue.set(key, value);\n this.valueToKey.set(value, key);\n }\n getByKey(key) {\n return this.keyToValue.get(key);\n }\n getByValue(value) {\n return this.valueToKey.get(value);\n }\n clear() {\n this.keyToValue.clear();\n this.valueToKey.clear();\n }\n}\n//# sourceMappingURL=double-indexed-kv.js.map","import { DoubleIndexedKV } from './double-indexed-kv.js';\nexport class Registry {\n constructor(generateIdentifier) {\n this.generateIdentifier = generateIdentifier;\n this.kv = new DoubleIndexedKV();\n }\n register(value, identifier) {\n if (this.kv.getByValue(value)) {\n return;\n }\n if (!identifier) {\n identifier = this.generateIdentifier(value);\n }\n this.kv.set(identifier, value);\n }\n clear() {\n this.kv.clear();\n }\n getIdentifier(value) {\n return this.kv.getByValue(value);\n }\n getValue(identifier) {\n return this.kv.getByKey(identifier);\n }\n}\n//# sourceMappingURL=registry.js.map","import { Registry } from './registry.js';\nexport class ClassRegistry extends Registry {\n constructor() {\n super(c => c.name);\n this.classToAllowedProps = new Map();\n }\n register(value, options) {\n if (typeof options === 'object') {\n if (options.allowProps) {\n this.classToAllowedProps.set(value, options.allowProps);\n }\n super.register(value, options.identifier);\n }\n else {\n super.register(value, options);\n }\n }\n getAllowedProps(value) {\n return this.classToAllowedProps.get(value);\n }\n}\n//# sourceMappingURL=class-registry.js.map","function valuesOfObj(record) {\n if ('values' in Object) {\n // eslint-disable-next-line es5/no-es6-methods\n return Object.values(record);\n }\n const values = [];\n // eslint-disable-next-line no-restricted-syntax\n for (const key in record) {\n if (record.hasOwnProperty(key)) {\n values.push(record[key]);\n }\n }\n return values;\n}\nexport function find(record, predicate) {\n const values = valuesOfObj(record);\n if ('find' in values) {\n // eslint-disable-next-line es5/no-es6-methods\n return values.find(predicate);\n }\n const valuesNotNever = values;\n for (let i = 0; i < valuesNotNever.length; i++) {\n const value = valuesNotNever[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\nexport function forEach(record, run) {\n Object.entries(record).forEach(([key, value]) => run(value, key));\n}\nexport function includes(arr, value) {\n return arr.indexOf(value) !== -1;\n}\nexport function findArr(record, predicate) {\n for (let i = 0; i < record.length; i++) {\n const value = record[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\n//# sourceMappingURL=util.js.map","import { find } from './util.js';\nexport class CustomTransformerRegistry {\n constructor() {\n this.transfomers = {};\n }\n register(transformer) {\n this.transfomers[transformer.name] = transformer;\n }\n findApplicable(v) {\n return find(this.transfomers, transformer => transformer.isApplicable(v));\n }\n findByName(name) {\n return this.transfomers[name];\n }\n}\n//# sourceMappingURL=custom-transformer-registry.js.map","const getType = (payload) => Object.prototype.toString.call(payload).slice(8, -1);\nexport const isUndefined = (payload) => typeof payload === 'undefined';\nexport const isNull = (payload) => payload === null;\nexport const isPlainObject = (payload) => {\n if (typeof payload !== 'object' || payload === null)\n return false;\n if (payload === Object.prototype)\n return false;\n if (Object.getPrototypeOf(payload) === null)\n return true;\n return Object.getPrototypeOf(payload) === Object.prototype;\n};\nexport const isEmptyObject = (payload) => isPlainObject(payload) && Object.keys(payload).length === 0;\nexport const isArray = (payload) => Array.isArray(payload);\nexport const isString = (payload) => typeof payload === 'string';\nexport const isNumber = (payload) => typeof payload === 'number' && !isNaN(payload);\nexport const isBoolean = (payload) => typeof payload === 'boolean';\nexport const isRegExp = (payload) => payload instanceof RegExp;\nexport const isMap = (payload) => payload instanceof Map;\nexport const isSet = (payload) => payload instanceof Set;\nexport const isSymbol = (payload) => getType(payload) === 'Symbol';\nexport const isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf());\nexport const isError = (payload) => payload instanceof Error;\nexport const isNaNValue = (payload) => typeof payload === 'number' && isNaN(payload);\nexport const isPrimitive = (payload) => isBoolean(payload) ||\n isNull(payload) ||\n isUndefined(payload) ||\n isNumber(payload) ||\n isString(payload) ||\n isSymbol(payload);\nexport const isBigint = (payload) => typeof payload === 'bigint';\nexport const isInfinite = (payload) => payload === Infinity || payload === -Infinity;\nexport const isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);\nexport const isURL = (payload) => payload instanceof URL;\n//# sourceMappingURL=is.js.map","export const escapeKey = (key) => key.replace(/\\./g, '\\\\.');\nexport const stringifyPath = (path) => path\n .map(String)\n .map(escapeKey)\n .join('.');\nexport const parsePath = (string) => {\n const result = [];\n let segment = '';\n for (let i = 0; i < string.length; i++) {\n let char = string.charAt(i);\n const isEscapedDot = char === '\\\\' && string.charAt(i + 1) === '.';\n if (isEscapedDot) {\n segment += '.';\n i++;\n continue;\n }\n const isEndOfSegment = char === '.';\n if (isEndOfSegment) {\n result.push(segment);\n segment = '';\n continue;\n }\n segment += char;\n }\n const lastSegment = segment;\n result.push(lastSegment);\n return result;\n};\n//# sourceMappingURL=pathstringifier.js.map","import { isBigint, isDate, isInfinite, isMap, isNaNValue, isRegExp, isSet, isUndefined, isSymbol, isArray, isError, isTypedArray, isURL, } from './is.js';\nimport { findArr } from './util.js';\nfunction simpleTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst simpleRules = [\n simpleTransformation(isUndefined, 'undefined', () => null, () => undefined),\n simpleTransformation(isBigint, 'bigint', v => v.toString(), v => {\n if (typeof BigInt !== 'undefined') {\n return BigInt(v);\n }\n console.error('Please add a BigInt polyfill.');\n return v;\n }),\n simpleTransformation(isDate, 'Date', v => v.toISOString(), v => new Date(v)),\n simpleTransformation(isError, 'Error', (v, superJson) => {\n const baseError = {\n name: v.name,\n message: v.message,\n };\n superJson.allowedErrorProps.forEach(prop => {\n baseError[prop] = v[prop];\n });\n return baseError;\n }, (v, superJson) => {\n const e = new Error(v.message);\n e.name = v.name;\n e.stack = v.stack;\n superJson.allowedErrorProps.forEach(prop => {\n e[prop] = v[prop];\n });\n return e;\n }),\n simpleTransformation(isRegExp, 'regexp', v => '' + v, regex => {\n const body = regex.slice(1, regex.lastIndexOf('/'));\n const flags = regex.slice(regex.lastIndexOf('/') + 1);\n return new RegExp(body, flags);\n }),\n simpleTransformation(isSet, 'set', \n // (sets only exist in es6+)\n // eslint-disable-next-line es5/no-es6-methods\n v => [...v.values()], v => new Set(v)),\n simpleTransformation(isMap, 'map', v => [...v.entries()], v => new Map(v)),\n simpleTransformation((v) => isNaNValue(v) || isInfinite(v), 'number', v => {\n if (isNaNValue(v)) {\n return 'NaN';\n }\n if (v > 0) {\n return 'Infinity';\n }\n else {\n return '-Infinity';\n }\n }, Number),\n simpleTransformation((v) => v === 0 && 1 / v === -Infinity, 'number', () => {\n return '-0';\n }, Number),\n simpleTransformation(isURL, 'URL', v => v.toString(), v => new URL(v)),\n];\nfunction compositeTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst symbolRule = compositeTransformation((s, superJson) => {\n if (isSymbol(s)) {\n const isRegistered = !!superJson.symbolRegistry.getIdentifier(s);\n return isRegistered;\n }\n return false;\n}, (s, superJson) => {\n const identifier = superJson.symbolRegistry.getIdentifier(s);\n return ['symbol', identifier];\n}, v => v.description, (_, a, superJson) => {\n const value = superJson.symbolRegistry.getValue(a[1]);\n if (!value) {\n throw new Error('Trying to deserialize unknown symbol');\n }\n return value;\n});\nconst constructorToName = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n Uint8ClampedArray,\n].reduce((obj, ctor) => {\n obj[ctor.name] = ctor;\n return obj;\n}, {});\nconst typedArrayRule = compositeTransformation(isTypedArray, v => ['typed-array', v.constructor.name], v => [...v], (v, a) => {\n const ctor = constructorToName[a[1]];\n if (!ctor) {\n throw new Error('Trying to deserialize unknown typed array');\n }\n return new ctor(v);\n});\nexport function isInstanceOfRegisteredClass(potentialClass, superJson) {\n if (potentialClass?.constructor) {\n const isRegistered = !!superJson.classRegistry.getIdentifier(potentialClass.constructor);\n return isRegistered;\n }\n return false;\n}\nconst classRule = compositeTransformation(isInstanceOfRegisteredClass, (clazz, superJson) => {\n const identifier = superJson.classRegistry.getIdentifier(clazz.constructor);\n return ['class', identifier];\n}, (clazz, superJson) => {\n const allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);\n if (!allowedProps) {\n return { ...clazz };\n }\n const result = {};\n allowedProps.forEach(prop => {\n result[prop] = clazz[prop];\n });\n return result;\n}, (v, a, superJson) => {\n const clazz = superJson.classRegistry.getValue(a[1]);\n if (!clazz) {\n throw new Error('Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564');\n }\n return Object.assign(Object.create(clazz.prototype), v);\n});\nconst customRule = compositeTransformation((value, superJson) => {\n return !!superJson.customTransformerRegistry.findApplicable(value);\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return ['custom', transformer.name];\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return transformer.serialize(value);\n}, (v, a, superJson) => {\n const transformer = superJson.customTransformerRegistry.findByName(a[1]);\n if (!transformer) {\n throw new Error('Trying to deserialize unknown custom value');\n }\n return transformer.deserialize(v);\n});\nconst compositeRules = [classRule, symbolRule, customRule, typedArrayRule];\nexport const transformValue = (value, superJson) => {\n const applicableCompositeRule = findArr(compositeRules, rule => rule.isApplicable(value, superJson));\n if (applicableCompositeRule) {\n return {\n value: applicableCompositeRule.transform(value, superJson),\n type: applicableCompositeRule.annotation(value, superJson),\n };\n }\n const applicableSimpleRule = findArr(simpleRules, rule => rule.isApplicable(value, superJson));\n if (applicableSimpleRule) {\n return {\n value: applicableSimpleRule.transform(value, superJson),\n type: applicableSimpleRule.annotation,\n };\n }\n return undefined;\n};\nconst simpleRulesByAnnotation = {};\nsimpleRules.forEach(rule => {\n simpleRulesByAnnotation[rule.annotation] = rule;\n});\nexport const untransformValue = (json, type, superJson) => {\n if (isArray(type)) {\n switch (type[0]) {\n case 'symbol':\n return symbolRule.untransform(json, type, superJson);\n case 'class':\n return classRule.untransform(json, type, superJson);\n case 'custom':\n return customRule.untransform(json, type, superJson);\n case 'typed-array':\n return typedArrayRule.untransform(json, type, superJson);\n default:\n throw new Error('Unknown transformation: ' + type);\n }\n }\n else {\n const transformation = simpleRulesByAnnotation[type];\n if (!transformation) {\n throw new Error('Unknown transformation: ' + type);\n }\n return transformation.untransform(json, superJson);\n }\n};\n//# sourceMappingURL=transformer.js.map","import { isMap, isArray, isPlainObject, isSet } from './is.js';\nimport { includes } from './util.js';\nconst getNthKey = (value, n) => {\n const keys = value.keys();\n while (n > 0) {\n keys.next();\n n--;\n }\n return keys.next().value;\n};\nfunction validatePath(path) {\n if (includes(path, '__proto__')) {\n throw new Error('__proto__ is not allowed as a property');\n }\n if (includes(path, 'prototype')) {\n throw new Error('prototype is not allowed as a property');\n }\n if (includes(path, 'constructor')) {\n throw new Error('constructor is not allowed as a property');\n }\n}\nexport const getDeep = (object, path) => {\n validatePath(path);\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n if (isSet(object)) {\n object = getNthKey(object, +key);\n }\n else if (isMap(object)) {\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(object, row);\n switch (type) {\n case 'key':\n object = keyOfRow;\n break;\n case 'value':\n object = object.get(keyOfRow);\n break;\n }\n }\n else {\n object = object[key];\n }\n }\n return object;\n};\nexport const setDeep = (object, path, mapper) => {\n validatePath(path);\n if (path.length === 0) {\n return mapper(object);\n }\n let parent = object;\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n if (isArray(parent)) {\n const index = +key;\n parent = parent[index];\n }\n else if (isPlainObject(parent)) {\n parent = parent[key];\n }\n else if (isSet(parent)) {\n const row = +key;\n parent = getNthKey(parent, row);\n }\n else if (isMap(parent)) {\n const isEnd = i === path.length - 2;\n if (isEnd) {\n break;\n }\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(parent, row);\n switch (type) {\n case 'key':\n parent = keyOfRow;\n break;\n case 'value':\n parent = parent.get(keyOfRow);\n break;\n }\n }\n }\n const lastKey = path[path.length - 1];\n if (isArray(parent)) {\n parent[+lastKey] = mapper(parent[+lastKey]);\n }\n else if (isPlainObject(parent)) {\n parent[lastKey] = mapper(parent[lastKey]);\n }\n if (isSet(parent)) {\n const oldValue = getNthKey(parent, +lastKey);\n const newValue = mapper(oldValue);\n if (oldValue !== newValue) {\n parent.delete(oldValue);\n parent.add(newValue);\n }\n }\n if (isMap(parent)) {\n const row = +path[path.length - 2];\n const keyToRow = getNthKey(parent, row);\n const type = +lastKey === 0 ? 'key' : 'value';\n switch (type) {\n case 'key': {\n const newKey = mapper(keyToRow);\n parent.set(newKey, parent.get(keyToRow));\n if (newKey !== keyToRow) {\n parent.delete(keyToRow);\n }\n break;\n }\n case 'value': {\n parent.set(keyToRow, mapper(parent.get(keyToRow)));\n break;\n }\n }\n }\n return object;\n};\n//# sourceMappingURL=accessDeep.js.map","import { isArray, isEmptyObject, isMap, isPlainObject, isPrimitive, isSet, } from './is.js';\nimport { escapeKey, stringifyPath } from './pathstringifier.js';\nimport { isInstanceOfRegisteredClass, transformValue, untransformValue, } from './transformer.js';\nimport { includes, forEach } from './util.js';\nimport { parsePath } from './pathstringifier.js';\nimport { getDeep, setDeep } from './accessDeep.js';\nfunction traverse(tree, walker, origin = []) {\n if (!tree) {\n return;\n }\n if (!isArray(tree)) {\n forEach(tree, (subtree, key) => traverse(subtree, walker, [...origin, ...parsePath(key)]));\n return;\n }\n const [nodeValue, children] = tree;\n if (children) {\n forEach(children, (child, key) => {\n traverse(child, walker, [...origin, ...parsePath(key)]);\n });\n }\n walker(nodeValue, origin);\n}\nexport function applyValueAnnotations(plain, annotations, superJson) {\n traverse(annotations, (type, path) => {\n plain = setDeep(plain, path, v => untransformValue(v, type, superJson));\n });\n return plain;\n}\nexport function applyReferentialEqualityAnnotations(plain, annotations) {\n function apply(identicalPaths, path) {\n const object = getDeep(plain, parsePath(path));\n identicalPaths.map(parsePath).forEach(identicalObjectPath => {\n plain = setDeep(plain, identicalObjectPath, () => object);\n });\n }\n if (isArray(annotations)) {\n const [root, other] = annotations;\n root.forEach(identicalPath => {\n plain = setDeep(plain, parsePath(identicalPath), () => plain);\n });\n if (other) {\n forEach(other, apply);\n }\n }\n else {\n forEach(annotations, apply);\n }\n return plain;\n}\nconst isDeep = (object, superJson) => isPlainObject(object) ||\n isArray(object) ||\n isMap(object) ||\n isSet(object) ||\n isInstanceOfRegisteredClass(object, superJson);\nfunction addIdentity(object, path, identities) {\n const existingSet = identities.get(object);\n if (existingSet) {\n existingSet.push(path);\n }\n else {\n identities.set(object, [path]);\n }\n}\nexport function generateReferentialEqualityAnnotations(identitites, dedupe) {\n const result = {};\n let rootEqualityPaths = undefined;\n identitites.forEach(paths => {\n if (paths.length <= 1) {\n return;\n }\n // if we're not deduping, all of these objects continue existing.\n // putting the shortest path first makes it easier to parse for humans\n // if we're deduping though, only the first entry will still exist, so we can't do this optimisation.\n if (!dedupe) {\n paths = paths\n .map(path => path.map(String))\n .sort((a, b) => a.length - b.length);\n }\n const [representativePath, ...identicalPaths] = paths;\n if (representativePath.length === 0) {\n rootEqualityPaths = identicalPaths.map(stringifyPath);\n }\n else {\n result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath);\n }\n });\n if (rootEqualityPaths) {\n if (isEmptyObject(result)) {\n return [rootEqualityPaths];\n }\n else {\n return [rootEqualityPaths, result];\n }\n }\n else {\n return isEmptyObject(result) ? undefined : result;\n }\n}\nexport const walker = (object, identities, superJson, dedupe, path = [], objectsInThisPath = [], seenObjects = new Map()) => {\n const primitive = isPrimitive(object);\n if (!primitive) {\n addIdentity(object, path, identities);\n const seen = seenObjects.get(object);\n if (seen) {\n // short-circuit result if we've seen this object before\n return dedupe\n ? {\n transformedValue: null,\n }\n : seen;\n }\n }\n if (!isDeep(object, superJson)) {\n const transformed = transformValue(object, superJson);\n const result = transformed\n ? {\n transformedValue: transformed.value,\n annotations: [transformed.type],\n }\n : {\n transformedValue: object,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n }\n if (includes(objectsInThisPath, object)) {\n // prevent circular references\n return {\n transformedValue: null,\n };\n }\n const transformationResult = transformValue(object, superJson);\n const transformed = transformationResult?.value ?? object;\n const transformedValue = isArray(transformed) ? [] : {};\n const innerAnnotations = {};\n forEach(transformed, (value, index) => {\n if (index === '__proto__' ||\n index === 'constructor' ||\n index === 'prototype') {\n throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`);\n }\n const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects);\n transformedValue[index] = recursiveResult.transformedValue;\n if (isArray(recursiveResult.annotations)) {\n innerAnnotations[index] = recursiveResult.annotations;\n }\n else if (isPlainObject(recursiveResult.annotations)) {\n forEach(recursiveResult.annotations, (tree, key) => {\n innerAnnotations[escapeKey(index) + '.' + key] = tree;\n });\n }\n });\n const result = isEmptyObject(innerAnnotations)\n ? {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type]\n : undefined,\n }\n : {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type, innerAnnotations]\n : innerAnnotations,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n};\n//# sourceMappingURL=plainer.js.map","function getType(payload) {\n return Object.prototype.toString.call(payload).slice(8, -1);\n}\n\nfunction isAnyObject(payload) {\n return getType(payload) === \"Object\";\n}\n\nfunction isArray(payload) {\n return getType(payload) === \"Array\";\n}\n\nfunction isBlob(payload) {\n return getType(payload) === \"Blob\";\n}\n\nfunction isBoolean(payload) {\n return getType(payload) === \"Boolean\";\n}\n\nfunction isDate(payload) {\n return getType(payload) === \"Date\" && !isNaN(payload);\n}\n\nfunction isEmptyArray(payload) {\n return isArray(payload) && payload.length === 0;\n}\n\nfunction isPlainObject(payload) {\n if (getType(payload) !== \"Object\")\n return false;\n const prototype = Object.getPrototypeOf(payload);\n return !!prototype && prototype.constructor === Object && prototype === Object.prototype;\n}\n\nfunction isEmptyObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length === 0;\n}\n\nfunction isEmptyString(payload) {\n return payload === \"\";\n}\n\nfunction isError(payload) {\n return getType(payload) === \"Error\" || payload instanceof Error;\n}\n\nfunction isFile(payload) {\n return getType(payload) === \"File\";\n}\n\nfunction isFullArray(payload) {\n return isArray(payload) && payload.length > 0;\n}\n\nfunction isFullObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length > 0;\n}\n\nfunction isString(payload) {\n return getType(payload) === \"String\";\n}\n\nfunction isFullString(payload) {\n return isString(payload) && payload !== \"\";\n}\n\nfunction isFunction(payload) {\n return typeof payload === \"function\";\n}\n\nfunction isType(payload, type) {\n if (!(type instanceof Function)) {\n throw new TypeError(\"Type must be a function\");\n }\n if (!Object.prototype.hasOwnProperty.call(type, \"prototype\")) {\n throw new TypeError(\"Type is not a class\");\n }\n const name = type.name;\n return getType(payload) === name || Boolean(payload && payload.constructor === type);\n}\n\nfunction isInstanceOf(value, classOrClassName) {\n if (typeof classOrClassName === \"function\") {\n for (let p = value; p; p = Object.getPrototypeOf(p)) {\n if (isType(p, classOrClassName)) {\n return true;\n }\n }\n return false;\n } else {\n for (let p = value; p; p = Object.getPrototypeOf(p)) {\n if (getType(p) === classOrClassName) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction isMap(payload) {\n return getType(payload) === \"Map\";\n}\n\nfunction isNaNValue(payload) {\n return getType(payload) === \"Number\" && isNaN(payload);\n}\n\nfunction isNumber(payload) {\n return getType(payload) === \"Number\" && !isNaN(payload);\n}\n\nfunction isNegativeNumber(payload) {\n return isNumber(payload) && payload < 0;\n}\n\nfunction isNull(payload) {\n return getType(payload) === \"Null\";\n}\n\nfunction isOneOf(a, b, c, d, e) {\n return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value);\n}\n\nfunction isUndefined(payload) {\n return getType(payload) === \"Undefined\";\n}\n\nconst isNullOrUndefined = isOneOf(isNull, isUndefined);\n\nfunction isObject(payload) {\n return isPlainObject(payload);\n}\n\nfunction isObjectLike(payload) {\n return isAnyObject(payload);\n}\n\nfunction isPositiveNumber(payload) {\n return isNumber(payload) && payload > 0;\n}\n\nfunction isSymbol(payload) {\n return getType(payload) === \"Symbol\";\n}\n\nfunction isPrimitive(payload) {\n return isBoolean(payload) || isNull(payload) || isUndefined(payload) || isNumber(payload) || isString(payload) || isSymbol(payload);\n}\n\nfunction isPromise(payload) {\n return getType(payload) === \"Promise\";\n}\n\nfunction isRegExp(payload) {\n return getType(payload) === \"RegExp\";\n}\n\nfunction isSet(payload) {\n return getType(payload) === \"Set\";\n}\n\nfunction isWeakMap(payload) {\n return getType(payload) === \"WeakMap\";\n}\n\nfunction isWeakSet(payload) {\n return getType(payload) === \"WeakSet\";\n}\n\nexport { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isFile, isFullArray, isFullObject, isFullString, isFunction, isInstanceOf, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet };\n","import { isArray, isPlainObject } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject, includeNonenumerable) {\n const propType = {}.propertyIsEnumerable.call(originalObject, key) ? \"enumerable\" : \"nonenumerable\";\n if (propType === \"enumerable\")\n carry[key] = newVal;\n if (includeNonenumerable && propType === \"nonenumerable\") {\n Object.defineProperty(carry, key, {\n value: newVal,\n enumerable: false,\n writable: true,\n configurable: true\n });\n }\n}\nfunction copy(target, options = {}) {\n if (isArray(target)) {\n return target.map((item) => copy(item, options));\n }\n if (!isPlainObject(target)) {\n return target;\n }\n const props = Object.getOwnPropertyNames(target);\n const symbols = Object.getOwnPropertySymbols(target);\n return [...props, ...symbols].reduce((carry, key) => {\n if (isArray(options.props) && !options.props.includes(key)) {\n return carry;\n }\n const val = target[key];\n const newVal = copy(val, options);\n assignProp(carry, key, newVal, target, options.nonenumerable);\n return carry;\n }, {});\n}\n\nexport { copy };\n","import { ClassRegistry } from './class-registry.js';\nimport { Registry } from './registry.js';\nimport { CustomTransformerRegistry, } from './custom-transformer-registry.js';\nimport { applyReferentialEqualityAnnotations, applyValueAnnotations, generateReferentialEqualityAnnotations, walker, } from './plainer.js';\nimport { copy } from 'copy-anything';\nexport default class SuperJSON {\n /**\n * @param dedupeReferentialEqualities If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`.\n */\n constructor({ dedupe = false, } = {}) {\n this.classRegistry = new ClassRegistry();\n this.symbolRegistry = new Registry(s => s.description ?? '');\n this.customTransformerRegistry = new CustomTransformerRegistry();\n this.allowedErrorProps = [];\n this.dedupe = dedupe;\n }\n serialize(object) {\n const identities = new Map();\n const output = walker(object, identities, this, this.dedupe);\n const res = {\n json: output.transformedValue,\n };\n if (output.annotations) {\n res.meta = {\n ...res.meta,\n values: output.annotations,\n };\n }\n const equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe);\n if (equalityAnnotations) {\n res.meta = {\n ...res.meta,\n referentialEqualities: equalityAnnotations,\n };\n }\n return res;\n }\n deserialize(payload) {\n const { json, meta } = payload;\n let result = copy(json);\n if (meta?.values) {\n result = applyValueAnnotations(result, meta.values, this);\n }\n if (meta?.referentialEqualities) {\n result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities);\n }\n return result;\n }\n stringify(object) {\n return JSON.stringify(this.serialize(object));\n }\n parse(string) {\n return this.deserialize(JSON.parse(string));\n }\n registerClass(v, options) {\n this.classRegistry.register(v, options);\n }\n registerSymbol(v, identifier) {\n this.symbolRegistry.register(v, identifier);\n }\n registerCustom(transformer, name) {\n this.customTransformerRegistry.register({\n name,\n ...transformer,\n });\n }\n allowErrorProps(...props) {\n this.allowedErrorProps.push(...props);\n }\n}\nSuperJSON.defaultInstance = new SuperJSON();\nSuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance);\nSuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance);\nSuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance);\nSuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance);\nSuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance);\nSuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance);\nSuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance);\nSuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance);\nexport { SuperJSON };\nexport const serialize = SuperJSON.serialize;\nexport const deserialize = SuperJSON.deserialize;\nexport const stringify = SuperJSON.stringify;\nexport const parse = SuperJSON.parse;\nexport const registerClass = SuperJSON.registerClass;\nexport const registerCustom = SuperJSON.registerCustom;\nexport const registerSymbol = SuperJSON.registerSymbol;\nexport const allowErrorProps = SuperJSON.allowErrorProps;\n//# sourceMappingURL=index.js.map","import SuperJSON from 'superjson';\nimport { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\n\nconst channelName = '__devtools-bridge:broadcast-channel__';\n\nexport const createBroadcastChannel = (): BaseChannelOptions => {\n const channel = new BroadcastChannel(channelName);\n const event = bridgeEventMap.broadcast;\n\n return {\n post: (data) => {\n channel.postMessage(SuperJSON.stringify({ event, data }));\n },\n on: (handler) => {\n channel.onmessage = (e) => {\n const parsed = SuperJSON.parse<{ event: string; data: unknown }>(e.data);\n if (parsed.event === event) {\n handler(parsed.data);\n }\n };\n },\n };\n};\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\n\n// Unusable. FIXME\nexport const createNativeChannel = (): BaseChannelOptions => {\n const event = bridgeEventMap.native;\n\n return {\n post: (data) => {\n const customEvent = new CustomEvent(event, {\n detail: data,\n });\n window.dispatchEvent(customEvent);\n },\n on: (handler) => {\n const eventHandler = (e: CustomEvent) => {\n console.log(e.detail);\n handler(e.detail);\n };\n\n window.addEventListener(event, eventHandler as EventListener);\n },\n };\n};\n","export function setMessageChannelContext() {\n window.__PERF_MONITOR_DEVTOOLS_MESSAGE_CHANNEL_CONTEXT__ ??= new MessageChannel();\n}\n\nexport function getMessageChannelContext() {\n return window.__PERF_MONITOR_DEVTOOLS_MESSAGE_CHANNEL_CONTEXT__ || null;\n}\n","var commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar lodash_debounce;\nvar hasRequiredLodash_debounce;\nfunction requireLodash_debounce() {\n if (hasRequiredLodash_debounce) return lodash_debounce;\n hasRequiredLodash_debounce = 1;\n var FUNC_ERROR_TEXT = \"Expected a function\";\n var NAN = 0 / 0;\n var symbolTag = \"[object Symbol]\";\n var reTrim = /^\\s+|\\s+$/g;\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n var reIsBinary = /^0b[01]+$/i;\n var reIsOctal = /^0o[0-7]+$/i;\n var freeParseInt = parseInt;\n var freeGlobal = typeof commonjsGlobal == \"object\" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n var freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\n var root = freeGlobal || freeSelf || Function(\"return this\")();\n var objectProto = Object.prototype;\n var objectToString = objectProto.toString;\n var nativeMax = Math.max, nativeMin = Math.min;\n var now = function() {\n return root.Date.now();\n };\n function debounce(func, wait, options) {\n var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = \"maxWait\" in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n var args = lastArgs, thisArg = lastThis;\n lastArgs = lastThis = void 0;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n function leadingEdge(time) {\n lastInvokeTime = time;\n timerId = setTimeout(timerExpired, wait);\n return leading ? invokeFunc(time) : result;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, result2 = wait - timeSinceLastCall;\n return maxing ? nativeMin(result2, maxWait - timeSinceLastInvoke) : result2;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;\n return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = void 0;\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = void 0;\n return result;\n }\n function cancel() {\n if (timerId !== void 0) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = void 0;\n }\n function flush() {\n return timerId === void 0 ? result : trailingEdge(now());\n }\n function debounced() {\n var time = now(), isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === void 0) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === void 0) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n function isObject(value) {\n var type = typeof value;\n return !!value && (type == \"object\" || type == \"function\");\n }\n function isObjectLike(value) {\n return !!value && typeof value == \"object\";\n }\n function isSymbol(value) {\n return typeof value == \"symbol\" || isObjectLike(value) && objectToString.call(value) == symbolTag;\n }\n function toNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == \"function\" ? value.valueOf() : value;\n value = isObject(other) ? other + \"\" : other;\n }\n if (typeof value != \"string\") {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, \"\");\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n lodash_debounce = debounce;\n return lodash_debounce;\n}\nvar lodash_debounceExports = requireLodash_debounce();\nconst index = /* @__PURE__ */ getDefaultExportFromCjs(lodash_debounceExports);\nconst noop = () => null;\nconst groupBy = (array, fn) => array.reduce(\n (acc, item) => {\n const key = fn(item);\n const group = acc[key] || [];\n acc[key] = [...group, item];\n return acc;\n },\n {}\n);\nconst DEVTOOLS_SHADOW_DOM_ID = \"__perf-monitor-devtools-container__\";\nconst DEVTOOLS_SHADOW_DOM_ROOT_ID = \"__perf-monitor-devtools-root__\";\nconst DEVTOOLS_OPEN_EDITOR_ENDPOINT = \"/__perf-monitor-devtools__/open\";\nconst DEVTOOLS_READ_FILE_ENDPOINT = \"/__perf-monitor-devtools__/read\";\nconst DEVTOOLS_STANDALONE = \"/__perf-monitor-devtools__/standalone\";\nconst ElementTypeClass = 1;\nconst ElementTypeFunction = 2;\nconst ElementTypeMemo = 3;\nconst ElementTypeForwardRef = 4;\nconst ElementTypeProvider = 5;\nconst ElementTypeConsumer = 6;\nconst ElementTypeHostRoot = 7;\nconst ElementTypeHostComponent = 8;\nconst ElementTypeHostText = 9;\nconst ElementTypeHostPortal = 10;\nconst ElementTypeSuspense = 11;\nconst ElementTypeSuspenseList = 12;\nconst ElementTypeProfiler = 13;\nconst ElementTypeOtherOrUnknown = 14;\nconst FiberTypeName = {\n [ElementTypeClass]: \"Class component\",\n [ElementTypeFunction]: \"Function component\",\n [ElementTypeMemo]: \"Memo\",\n [ElementTypeForwardRef]: \"ForwardRef\",\n [ElementTypeProvider]: \"Provider\",\n [ElementTypeConsumer]: \"Consumer\",\n [ElementTypeHostRoot]: \"Render root\",\n [ElementTypeHostComponent]: \"Host component\",\n [ElementTypeHostText]: \"Host text\",\n [ElementTypeHostPortal]: \"Host portal\",\n [ElementTypeSuspense]: \"Suspense\",\n [ElementTypeSuspenseList]: \"Suspense list\",\n [ElementTypeProfiler]: \"Profiler\",\n [ElementTypeOtherOrUnknown]: \"Unknown\"\n};\nconst LegacyRoot = 0;\nconst ConcurrentRoot = 1;\nconst fiberRootMode = {\n [LegacyRoot]: \"Legacy Mode\",\n [ConcurrentRoot]: \"Concurrent Mode\"\n};\nconst TrackingObjectFiber = 0;\nconst TrackingObjectAlternate = 1;\nconst TrackingObjectStateNode = 2;\nconst TrackingObjectHook = 3;\nconst TrackingObjectTypeName = {\n [TrackingObjectFiber]: \"fiber\",\n [TrackingObjectAlternate]: \"alternate\",\n [TrackingObjectStateNode]: \"stateNode\",\n [TrackingObjectHook]: \"hook\"\n};\nexport {\n ConcurrentRoot,\n DEVTOOLS_OPEN_EDITOR_ENDPOINT,\n DEVTOOLS_READ_FILE_ENDPOINT,\n DEVTOOLS_SHADOW_DOM_ID,\n DEVTOOLS_SHADOW_DOM_ROOT_ID,\n DEVTOOLS_STANDALONE,\n ElementTypeClass,\n ElementTypeConsumer,\n ElementTypeForwardRef,\n ElementTypeFunction,\n ElementTypeHostComponent,\n ElementTypeHostPortal,\n ElementTypeHostRoot,\n ElementTypeHostText,\n ElementTypeMemo,\n ElementTypeOtherOrUnknown,\n ElementTypeProfiler,\n ElementTypeProvider,\n ElementTypeSuspense,\n ElementTypeSuspenseList,\n FiberTypeName,\n LegacyRoot,\n TrackingObjectAlternate,\n TrackingObjectFiber,\n TrackingObjectHook,\n TrackingObjectStateNode,\n TrackingObjectTypeName,\n index as debounce,\n fiberRootMode,\n groupBy,\n noop\n};\n//# sourceMappingURL=index.js.map\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\nimport { getMessageChannelContext } from './context';\nimport { noop } from '@zk-tech/rrt-shared';\n\nexport const createMessageChannelClient = (): BaseChannelOptions => {\n const event = bridgeEventMap.message;\n const channel = getMessageChannelContext();\n\n if (!channel) {\n return { post: noop, on: noop };\n }\n\n return {\n post: (data) => {\n channel.port1.postMessage({ event, data });\n },\n on: (handler) => {\n channel.port1.onmessage = ({ data }: MessageEvent<{ event: string; data: unknown }>) => {\n if (data.event === event) {\n handler(data.data);\n }\n };\n },\n };\n};\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\nimport { getMessageChannelContext } from './context';\nimport { noop } from '@zk-tech/rrt-shared';\n\nexport const createMessageChannelServer = (): BaseChannelOptions => {\n const event = bridgeEventMap.message;\n const channel = getMessageChannelContext();\n\n if (!channel) {\n return { post: noop, on: noop };\n }\n\n return {\n post: (data) => {\n channel.port2.postMessage({ event, data });\n },\n on: (handler) => {\n channel.port2.onmessage = ({ data }: MessageEvent<{ event: string; data: unknown }>) => {\n if (data.event === event) {\n handler(data.data);\n }\n };\n },\n };\n};\n","import { createBroadcastChannel } from './rpc/broadcast';\nimport { createNativeChannel } from './rpc/native';\nimport {\n createMessageChannelClient,\n createMessageChannelServer,\n setMessageChannelContext,\n} from './rpc/message';\nimport { BaseChannelOptions, MessageHost, MessagePreset } from './types';\n\nexport const bridgeEventMap: Record<MessagePreset, string> = {\n native: '__devtools-bridge-event-native',\n message: '__devtools-bridge-event-message',\n broadcast: '__devtools-bridge-event-broadcast',\n};\n\nexport const getBridgeChannel = (preset: MessagePreset, host: MessageHost) => {\n const channelMappings: Record<MessagePreset, Record<MessageHost, () => BaseChannelOptions>> = {\n native: {\n client: createNativeChannel,\n backend: createNativeChannel,\n },\n message: {\n client: createMessageChannelClient,\n backend: createMessageChannelServer,\n },\n broadcast: {\n client: createBroadcastChannel,\n backend: createBroadcastChannel,\n },\n };\n\n if (preset === 'message') {\n setMessageChannelContext();\n }\n\n return channelMappings[preset][host]();\n};\n","import { BirpcReturn, createBirpc } from 'birpc';\nimport { ClientRpcFunctions, BackendRpcFunctions, MessagePreset } from '@/types';\nimport { getBridgeChannel } from '@/config';\n\nexport const createClientRpc = (functions: ClientRpcFunctions, preset: MessagePreset) => {\n const channel = getBridgeChannel(preset, 'client');\n const rpc = createBirpc<BackendRpcFunctions, ClientRpcFunctions>(functions, {\n ...channel,\n timeout: -1,\n eventNames: [\n 'reloadPage',\n 'highlightRenderer',\n 'startHighlight',\n 'stopHighlight',\n 'startInspect',\n 'stopInspect',\n 'updateConfig',\n 'resetConfig',\n 'breakLeakedObjectRefs',\n 'cancelExposingLeakedObjectsToGlobal',\n ],\n });\n\n return rpc;\n};\n\nexport const createBackendRpc = (functions: BackendRpcFunctions, preset: MessagePreset) => {\n const channel = getBridgeChannel(preset, 'backend');\n const rpc = createBirpc<ClientRpcFunctions, BackendRpcFunctions>(functions, {\n ...channel,\n timeout: -1,\n eventNames: ['activedRenderers', 'highlighting', 'memoryLeaks', 'reactRenderers', 'eventsState'],\n });\n\n return rpc;\n};\n\nexport type ClientRpc = BirpcReturn<BackendRpcFunctions, ClientRpcFunctions>;\nexport type BackendRpc = BirpcReturn<ClientRpcFunctions, BackendRpcFunctions>;\n"],"names":["clearTimeout","setTimeout","_a","getType","isPlainObject","isArray","walker","transformed","result","isSymbol"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}
1
+ {"version":3,"file":"index.cjs","sources":["../../../node_modules/.pnpm/birpc@0.2.17/node_modules/birpc/dist/index.mjs","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/double-indexed-kv.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/class-registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/util.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/custom-transformer-registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/is.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/pathstringifier.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/transformer.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/accessDeep.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/plainer.js","../../../node_modules/.pnpm/is-what@4.1.16/node_modules/is-what/dist/index.js","../../../node_modules/.pnpm/copy-anything@3.0.5/node_modules/copy-anything/dist/index.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/index.js","../src/rpc/broadcast/index.ts","../src/rpc/native/index.ts","../src/rpc/message/context.ts","../../devtools-shared/dist/index.js","../src/rpc/message/client.ts","../src/rpc/message/server.ts","../src/config.ts","../src/rpc/index.ts"],"sourcesContent":["const DEFAULT_TIMEOUT = 6e4;\nfunction defaultSerialize(i) {\n return i;\n}\nconst defaultDeserialize = defaultSerialize;\nconst { clearTimeout, setTimeout } = globalThis;\nconst random = Math.random.bind(Math);\nfunction createBirpc(functions, options) {\n const {\n post,\n on,\n eventNames = [],\n serialize = defaultSerialize,\n deserialize = defaultDeserialize,\n resolver,\n timeout = DEFAULT_TIMEOUT\n } = options;\n const rpcPromiseMap = /* @__PURE__ */ new Map();\n let _promise;\n const rpc = new Proxy({}, {\n get(_, method) {\n if (method === \"$functions\")\n return functions;\n if (method === \"then\" && !eventNames.includes(\"then\") && !(\"then\" in functions))\n return void 0;\n const sendEvent = (...args) => {\n post(serialize({ m: method, a: args, t: \"q\" }));\n };\n if (eventNames.includes(method)) {\n sendEvent.asEvent = sendEvent;\n return sendEvent;\n }\n const sendCall = async (...args) => {\n await _promise;\n return new Promise((resolve, reject) => {\n const id = nanoid();\n let timeoutId;\n if (timeout >= 0) {\n timeoutId = setTimeout(() => {\n try {\n options.onTimeoutError?.(method, args);\n throw new Error(`[birpc] timeout on calling \"${method}\"`);\n } catch (e) {\n reject(e);\n }\n rpcPromiseMap.delete(id);\n }, timeout);\n if (typeof timeoutId === \"object\")\n timeoutId = timeoutId.unref?.();\n }\n rpcPromiseMap.set(id, { resolve, reject, timeoutId });\n post(serialize({ m: method, a: args, i: id, t: \"q\" }));\n });\n };\n sendCall.asEvent = sendEvent;\n return sendCall;\n }\n });\n _promise = on(async (data, ...extra) => {\n const msg = deserialize(data);\n if (msg.t === \"q\") {\n const { m: method, a: args } = msg;\n let result, error;\n const fn = resolver ? resolver(method, functions[method]) : functions[method];\n if (!fn) {\n error = new Error(`[birpc] function \"${method}\" not found`);\n } else {\n try {\n result = await fn.apply(rpc, args);\n } catch (e) {\n error = e;\n }\n }\n if (msg.i) {\n if (error && options.onError)\n options.onError(error, method, args);\n post(serialize({ t: \"s\", i: msg.i, r: result, e: error }), ...extra);\n }\n } else {\n const { i: ack, r: result, e: error } = msg;\n const promise = rpcPromiseMap.get(ack);\n if (promise) {\n clearTimeout(promise.timeoutId);\n if (error)\n promise.reject(error);\n else\n promise.resolve(result);\n }\n rpcPromiseMap.delete(ack);\n }\n });\n return rpc;\n}\nconst cacheMap = /* @__PURE__ */ new WeakMap();\nfunction cachedMap(items, fn) {\n return items.map((i) => {\n let r = cacheMap.get(i);\n if (!r) {\n r = fn(i);\n cacheMap.set(i, r);\n }\n return r;\n });\n}\nfunction createBirpcGroup(functions, channels, options = {}) {\n const getChannels = () => typeof channels === \"function\" ? channels() : channels;\n const getClients = (channels2 = getChannels()) => cachedMap(channels2, (s) => createBirpc(functions, { ...options, ...s }));\n const broadcastProxy = new Proxy({}, {\n get(_, method) {\n const client = getClients();\n const callbacks = client.map((c) => c[method]);\n const sendCall = (...args) => {\n return Promise.all(callbacks.map((i) => i(...args)));\n };\n sendCall.asEvent = (...args) => {\n callbacks.map((i) => i.asEvent(...args));\n };\n return sendCall;\n }\n });\n function updateChannels(fn) {\n const channels2 = getChannels();\n fn?.(channels2);\n return getClients(channels2);\n }\n getClients();\n return {\n get clients() {\n return getClients();\n },\n functions,\n updateChannels,\n broadcast: broadcastProxy,\n /**\n * @deprecated use `broadcast`\n */\n // @ts-expect-error deprecated\n boardcast: broadcastProxy\n };\n}\nconst urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nfunction nanoid(size = 21) {\n let id = \"\";\n let i = size;\n while (i--)\n id += urlAlphabet[random() * 64 | 0];\n return id;\n}\n\nexport { DEFAULT_TIMEOUT, cachedMap, createBirpc, createBirpcGroup };\n","export class DoubleIndexedKV {\n constructor() {\n this.keyToValue = new Map();\n this.valueToKey = new Map();\n }\n set(key, value) {\n this.keyToValue.set(key, value);\n this.valueToKey.set(value, key);\n }\n getByKey(key) {\n return this.keyToValue.get(key);\n }\n getByValue(value) {\n return this.valueToKey.get(value);\n }\n clear() {\n this.keyToValue.clear();\n this.valueToKey.clear();\n }\n}\n//# sourceMappingURL=double-indexed-kv.js.map","import { DoubleIndexedKV } from './double-indexed-kv.js';\nexport class Registry {\n constructor(generateIdentifier) {\n this.generateIdentifier = generateIdentifier;\n this.kv = new DoubleIndexedKV();\n }\n register(value, identifier) {\n if (this.kv.getByValue(value)) {\n return;\n }\n if (!identifier) {\n identifier = this.generateIdentifier(value);\n }\n this.kv.set(identifier, value);\n }\n clear() {\n this.kv.clear();\n }\n getIdentifier(value) {\n return this.kv.getByValue(value);\n }\n getValue(identifier) {\n return this.kv.getByKey(identifier);\n }\n}\n//# sourceMappingURL=registry.js.map","import { Registry } from './registry.js';\nexport class ClassRegistry extends Registry {\n constructor() {\n super(c => c.name);\n this.classToAllowedProps = new Map();\n }\n register(value, options) {\n if (typeof options === 'object') {\n if (options.allowProps) {\n this.classToAllowedProps.set(value, options.allowProps);\n }\n super.register(value, options.identifier);\n }\n else {\n super.register(value, options);\n }\n }\n getAllowedProps(value) {\n return this.classToAllowedProps.get(value);\n }\n}\n//# sourceMappingURL=class-registry.js.map","function valuesOfObj(record) {\n if ('values' in Object) {\n // eslint-disable-next-line es5/no-es6-methods\n return Object.values(record);\n }\n const values = [];\n // eslint-disable-next-line no-restricted-syntax\n for (const key in record) {\n if (record.hasOwnProperty(key)) {\n values.push(record[key]);\n }\n }\n return values;\n}\nexport function find(record, predicate) {\n const values = valuesOfObj(record);\n if ('find' in values) {\n // eslint-disable-next-line es5/no-es6-methods\n return values.find(predicate);\n }\n const valuesNotNever = values;\n for (let i = 0; i < valuesNotNever.length; i++) {\n const value = valuesNotNever[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\nexport function forEach(record, run) {\n Object.entries(record).forEach(([key, value]) => run(value, key));\n}\nexport function includes(arr, value) {\n return arr.indexOf(value) !== -1;\n}\nexport function findArr(record, predicate) {\n for (let i = 0; i < record.length; i++) {\n const value = record[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\n//# sourceMappingURL=util.js.map","import { find } from './util.js';\nexport class CustomTransformerRegistry {\n constructor() {\n this.transfomers = {};\n }\n register(transformer) {\n this.transfomers[transformer.name] = transformer;\n }\n findApplicable(v) {\n return find(this.transfomers, transformer => transformer.isApplicable(v));\n }\n findByName(name) {\n return this.transfomers[name];\n }\n}\n//# sourceMappingURL=custom-transformer-registry.js.map","const getType = (payload) => Object.prototype.toString.call(payload).slice(8, -1);\nexport const isUndefined = (payload) => typeof payload === 'undefined';\nexport const isNull = (payload) => payload === null;\nexport const isPlainObject = (payload) => {\n if (typeof payload !== 'object' || payload === null)\n return false;\n if (payload === Object.prototype)\n return false;\n if (Object.getPrototypeOf(payload) === null)\n return true;\n return Object.getPrototypeOf(payload) === Object.prototype;\n};\nexport const isEmptyObject = (payload) => isPlainObject(payload) && Object.keys(payload).length === 0;\nexport const isArray = (payload) => Array.isArray(payload);\nexport const isString = (payload) => typeof payload === 'string';\nexport const isNumber = (payload) => typeof payload === 'number' && !isNaN(payload);\nexport const isBoolean = (payload) => typeof payload === 'boolean';\nexport const isRegExp = (payload) => payload instanceof RegExp;\nexport const isMap = (payload) => payload instanceof Map;\nexport const isSet = (payload) => payload instanceof Set;\nexport const isSymbol = (payload) => getType(payload) === 'Symbol';\nexport const isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf());\nexport const isError = (payload) => payload instanceof Error;\nexport const isNaNValue = (payload) => typeof payload === 'number' && isNaN(payload);\nexport const isPrimitive = (payload) => isBoolean(payload) ||\n isNull(payload) ||\n isUndefined(payload) ||\n isNumber(payload) ||\n isString(payload) ||\n isSymbol(payload);\nexport const isBigint = (payload) => typeof payload === 'bigint';\nexport const isInfinite = (payload) => payload === Infinity || payload === -Infinity;\nexport const isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);\nexport const isURL = (payload) => payload instanceof URL;\n//# sourceMappingURL=is.js.map","export const escapeKey = (key) => key.replace(/\\./g, '\\\\.');\nexport const stringifyPath = (path) => path\n .map(String)\n .map(escapeKey)\n .join('.');\nexport const parsePath = (string) => {\n const result = [];\n let segment = '';\n for (let i = 0; i < string.length; i++) {\n let char = string.charAt(i);\n const isEscapedDot = char === '\\\\' && string.charAt(i + 1) === '.';\n if (isEscapedDot) {\n segment += '.';\n i++;\n continue;\n }\n const isEndOfSegment = char === '.';\n if (isEndOfSegment) {\n result.push(segment);\n segment = '';\n continue;\n }\n segment += char;\n }\n const lastSegment = segment;\n result.push(lastSegment);\n return result;\n};\n//# sourceMappingURL=pathstringifier.js.map","import { isBigint, isDate, isInfinite, isMap, isNaNValue, isRegExp, isSet, isUndefined, isSymbol, isArray, isError, isTypedArray, isURL, } from './is.js';\nimport { findArr } from './util.js';\nfunction simpleTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst simpleRules = [\n simpleTransformation(isUndefined, 'undefined', () => null, () => undefined),\n simpleTransformation(isBigint, 'bigint', v => v.toString(), v => {\n if (typeof BigInt !== 'undefined') {\n return BigInt(v);\n }\n console.error('Please add a BigInt polyfill.');\n return v;\n }),\n simpleTransformation(isDate, 'Date', v => v.toISOString(), v => new Date(v)),\n simpleTransformation(isError, 'Error', (v, superJson) => {\n const baseError = {\n name: v.name,\n message: v.message,\n };\n superJson.allowedErrorProps.forEach(prop => {\n baseError[prop] = v[prop];\n });\n return baseError;\n }, (v, superJson) => {\n const e = new Error(v.message);\n e.name = v.name;\n e.stack = v.stack;\n superJson.allowedErrorProps.forEach(prop => {\n e[prop] = v[prop];\n });\n return e;\n }),\n simpleTransformation(isRegExp, 'regexp', v => '' + v, regex => {\n const body = regex.slice(1, regex.lastIndexOf('/'));\n const flags = regex.slice(regex.lastIndexOf('/') + 1);\n return new RegExp(body, flags);\n }),\n simpleTransformation(isSet, 'set', \n // (sets only exist in es6+)\n // eslint-disable-next-line es5/no-es6-methods\n v => [...v.values()], v => new Set(v)),\n simpleTransformation(isMap, 'map', v => [...v.entries()], v => new Map(v)),\n simpleTransformation((v) => isNaNValue(v) || isInfinite(v), 'number', v => {\n if (isNaNValue(v)) {\n return 'NaN';\n }\n if (v > 0) {\n return 'Infinity';\n }\n else {\n return '-Infinity';\n }\n }, Number),\n simpleTransformation((v) => v === 0 && 1 / v === -Infinity, 'number', () => {\n return '-0';\n }, Number),\n simpleTransformation(isURL, 'URL', v => v.toString(), v => new URL(v)),\n];\nfunction compositeTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst symbolRule = compositeTransformation((s, superJson) => {\n if (isSymbol(s)) {\n const isRegistered = !!superJson.symbolRegistry.getIdentifier(s);\n return isRegistered;\n }\n return false;\n}, (s, superJson) => {\n const identifier = superJson.symbolRegistry.getIdentifier(s);\n return ['symbol', identifier];\n}, v => v.description, (_, a, superJson) => {\n const value = superJson.symbolRegistry.getValue(a[1]);\n if (!value) {\n throw new Error('Trying to deserialize unknown symbol');\n }\n return value;\n});\nconst constructorToName = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n Uint8ClampedArray,\n].reduce((obj, ctor) => {\n obj[ctor.name] = ctor;\n return obj;\n}, {});\nconst typedArrayRule = compositeTransformation(isTypedArray, v => ['typed-array', v.constructor.name], v => [...v], (v, a) => {\n const ctor = constructorToName[a[1]];\n if (!ctor) {\n throw new Error('Trying to deserialize unknown typed array');\n }\n return new ctor(v);\n});\nexport function isInstanceOfRegisteredClass(potentialClass, superJson) {\n if (potentialClass?.constructor) {\n const isRegistered = !!superJson.classRegistry.getIdentifier(potentialClass.constructor);\n return isRegistered;\n }\n return false;\n}\nconst classRule = compositeTransformation(isInstanceOfRegisteredClass, (clazz, superJson) => {\n const identifier = superJson.classRegistry.getIdentifier(clazz.constructor);\n return ['class', identifier];\n}, (clazz, superJson) => {\n const allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);\n if (!allowedProps) {\n return { ...clazz };\n }\n const result = {};\n allowedProps.forEach(prop => {\n result[prop] = clazz[prop];\n });\n return result;\n}, (v, a, superJson) => {\n const clazz = superJson.classRegistry.getValue(a[1]);\n if (!clazz) {\n throw new Error('Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564');\n }\n return Object.assign(Object.create(clazz.prototype), v);\n});\nconst customRule = compositeTransformation((value, superJson) => {\n return !!superJson.customTransformerRegistry.findApplicable(value);\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return ['custom', transformer.name];\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return transformer.serialize(value);\n}, (v, a, superJson) => {\n const transformer = superJson.customTransformerRegistry.findByName(a[1]);\n if (!transformer) {\n throw new Error('Trying to deserialize unknown custom value');\n }\n return transformer.deserialize(v);\n});\nconst compositeRules = [classRule, symbolRule, customRule, typedArrayRule];\nexport const transformValue = (value, superJson) => {\n const applicableCompositeRule = findArr(compositeRules, rule => rule.isApplicable(value, superJson));\n if (applicableCompositeRule) {\n return {\n value: applicableCompositeRule.transform(value, superJson),\n type: applicableCompositeRule.annotation(value, superJson),\n };\n }\n const applicableSimpleRule = findArr(simpleRules, rule => rule.isApplicable(value, superJson));\n if (applicableSimpleRule) {\n return {\n value: applicableSimpleRule.transform(value, superJson),\n type: applicableSimpleRule.annotation,\n };\n }\n return undefined;\n};\nconst simpleRulesByAnnotation = {};\nsimpleRules.forEach(rule => {\n simpleRulesByAnnotation[rule.annotation] = rule;\n});\nexport const untransformValue = (json, type, superJson) => {\n if (isArray(type)) {\n switch (type[0]) {\n case 'symbol':\n return symbolRule.untransform(json, type, superJson);\n case 'class':\n return classRule.untransform(json, type, superJson);\n case 'custom':\n return customRule.untransform(json, type, superJson);\n case 'typed-array':\n return typedArrayRule.untransform(json, type, superJson);\n default:\n throw new Error('Unknown transformation: ' + type);\n }\n }\n else {\n const transformation = simpleRulesByAnnotation[type];\n if (!transformation) {\n throw new Error('Unknown transformation: ' + type);\n }\n return transformation.untransform(json, superJson);\n }\n};\n//# sourceMappingURL=transformer.js.map","import { isMap, isArray, isPlainObject, isSet } from './is.js';\nimport { includes } from './util.js';\nconst getNthKey = (value, n) => {\n const keys = value.keys();\n while (n > 0) {\n keys.next();\n n--;\n }\n return keys.next().value;\n};\nfunction validatePath(path) {\n if (includes(path, '__proto__')) {\n throw new Error('__proto__ is not allowed as a property');\n }\n if (includes(path, 'prototype')) {\n throw new Error('prototype is not allowed as a property');\n }\n if (includes(path, 'constructor')) {\n throw new Error('constructor is not allowed as a property');\n }\n}\nexport const getDeep = (object, path) => {\n validatePath(path);\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n if (isSet(object)) {\n object = getNthKey(object, +key);\n }\n else if (isMap(object)) {\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(object, row);\n switch (type) {\n case 'key':\n object = keyOfRow;\n break;\n case 'value':\n object = object.get(keyOfRow);\n break;\n }\n }\n else {\n object = object[key];\n }\n }\n return object;\n};\nexport const setDeep = (object, path, mapper) => {\n validatePath(path);\n if (path.length === 0) {\n return mapper(object);\n }\n let parent = object;\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n if (isArray(parent)) {\n const index = +key;\n parent = parent[index];\n }\n else if (isPlainObject(parent)) {\n parent = parent[key];\n }\n else if (isSet(parent)) {\n const row = +key;\n parent = getNthKey(parent, row);\n }\n else if (isMap(parent)) {\n const isEnd = i === path.length - 2;\n if (isEnd) {\n break;\n }\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(parent, row);\n switch (type) {\n case 'key':\n parent = keyOfRow;\n break;\n case 'value':\n parent = parent.get(keyOfRow);\n break;\n }\n }\n }\n const lastKey = path[path.length - 1];\n if (isArray(parent)) {\n parent[+lastKey] = mapper(parent[+lastKey]);\n }\n else if (isPlainObject(parent)) {\n parent[lastKey] = mapper(parent[lastKey]);\n }\n if (isSet(parent)) {\n const oldValue = getNthKey(parent, +lastKey);\n const newValue = mapper(oldValue);\n if (oldValue !== newValue) {\n parent.delete(oldValue);\n parent.add(newValue);\n }\n }\n if (isMap(parent)) {\n const row = +path[path.length - 2];\n const keyToRow = getNthKey(parent, row);\n const type = +lastKey === 0 ? 'key' : 'value';\n switch (type) {\n case 'key': {\n const newKey = mapper(keyToRow);\n parent.set(newKey, parent.get(keyToRow));\n if (newKey !== keyToRow) {\n parent.delete(keyToRow);\n }\n break;\n }\n case 'value': {\n parent.set(keyToRow, mapper(parent.get(keyToRow)));\n break;\n }\n }\n }\n return object;\n};\n//# sourceMappingURL=accessDeep.js.map","import { isArray, isEmptyObject, isMap, isPlainObject, isPrimitive, isSet, } from './is.js';\nimport { escapeKey, stringifyPath } from './pathstringifier.js';\nimport { isInstanceOfRegisteredClass, transformValue, untransformValue, } from './transformer.js';\nimport { includes, forEach } from './util.js';\nimport { parsePath } from './pathstringifier.js';\nimport { getDeep, setDeep } from './accessDeep.js';\nfunction traverse(tree, walker, origin = []) {\n if (!tree) {\n return;\n }\n if (!isArray(tree)) {\n forEach(tree, (subtree, key) => traverse(subtree, walker, [...origin, ...parsePath(key)]));\n return;\n }\n const [nodeValue, children] = tree;\n if (children) {\n forEach(children, (child, key) => {\n traverse(child, walker, [...origin, ...parsePath(key)]);\n });\n }\n walker(nodeValue, origin);\n}\nexport function applyValueAnnotations(plain, annotations, superJson) {\n traverse(annotations, (type, path) => {\n plain = setDeep(plain, path, v => untransformValue(v, type, superJson));\n });\n return plain;\n}\nexport function applyReferentialEqualityAnnotations(plain, annotations) {\n function apply(identicalPaths, path) {\n const object = getDeep(plain, parsePath(path));\n identicalPaths.map(parsePath).forEach(identicalObjectPath => {\n plain = setDeep(plain, identicalObjectPath, () => object);\n });\n }\n if (isArray(annotations)) {\n const [root, other] = annotations;\n root.forEach(identicalPath => {\n plain = setDeep(plain, parsePath(identicalPath), () => plain);\n });\n if (other) {\n forEach(other, apply);\n }\n }\n else {\n forEach(annotations, apply);\n }\n return plain;\n}\nconst isDeep = (object, superJson) => isPlainObject(object) ||\n isArray(object) ||\n isMap(object) ||\n isSet(object) ||\n isInstanceOfRegisteredClass(object, superJson);\nfunction addIdentity(object, path, identities) {\n const existingSet = identities.get(object);\n if (existingSet) {\n existingSet.push(path);\n }\n else {\n identities.set(object, [path]);\n }\n}\nexport function generateReferentialEqualityAnnotations(identitites, dedupe) {\n const result = {};\n let rootEqualityPaths = undefined;\n identitites.forEach(paths => {\n if (paths.length <= 1) {\n return;\n }\n // if we're not deduping, all of these objects continue existing.\n // putting the shortest path first makes it easier to parse for humans\n // if we're deduping though, only the first entry will still exist, so we can't do this optimisation.\n if (!dedupe) {\n paths = paths\n .map(path => path.map(String))\n .sort((a, b) => a.length - b.length);\n }\n const [representativePath, ...identicalPaths] = paths;\n if (representativePath.length === 0) {\n rootEqualityPaths = identicalPaths.map(stringifyPath);\n }\n else {\n result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath);\n }\n });\n if (rootEqualityPaths) {\n if (isEmptyObject(result)) {\n return [rootEqualityPaths];\n }\n else {\n return [rootEqualityPaths, result];\n }\n }\n else {\n return isEmptyObject(result) ? undefined : result;\n }\n}\nexport const walker = (object, identities, superJson, dedupe, path = [], objectsInThisPath = [], seenObjects = new Map()) => {\n const primitive = isPrimitive(object);\n if (!primitive) {\n addIdentity(object, path, identities);\n const seen = seenObjects.get(object);\n if (seen) {\n // short-circuit result if we've seen this object before\n return dedupe\n ? {\n transformedValue: null,\n }\n : seen;\n }\n }\n if (!isDeep(object, superJson)) {\n const transformed = transformValue(object, superJson);\n const result = transformed\n ? {\n transformedValue: transformed.value,\n annotations: [transformed.type],\n }\n : {\n transformedValue: object,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n }\n if (includes(objectsInThisPath, object)) {\n // prevent circular references\n return {\n transformedValue: null,\n };\n }\n const transformationResult = transformValue(object, superJson);\n const transformed = transformationResult?.value ?? object;\n const transformedValue = isArray(transformed) ? [] : {};\n const innerAnnotations = {};\n forEach(transformed, (value, index) => {\n if (index === '__proto__' ||\n index === 'constructor' ||\n index === 'prototype') {\n throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`);\n }\n const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects);\n transformedValue[index] = recursiveResult.transformedValue;\n if (isArray(recursiveResult.annotations)) {\n innerAnnotations[index] = recursiveResult.annotations;\n }\n else if (isPlainObject(recursiveResult.annotations)) {\n forEach(recursiveResult.annotations, (tree, key) => {\n innerAnnotations[escapeKey(index) + '.' + key] = tree;\n });\n }\n });\n const result = isEmptyObject(innerAnnotations)\n ? {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type]\n : undefined,\n }\n : {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type, innerAnnotations]\n : innerAnnotations,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n};\n//# sourceMappingURL=plainer.js.map","function getType(payload) {\n return Object.prototype.toString.call(payload).slice(8, -1);\n}\n\nfunction isAnyObject(payload) {\n return getType(payload) === \"Object\";\n}\n\nfunction isArray(payload) {\n return getType(payload) === \"Array\";\n}\n\nfunction isBlob(payload) {\n return getType(payload) === \"Blob\";\n}\n\nfunction isBoolean(payload) {\n return getType(payload) === \"Boolean\";\n}\n\nfunction isDate(payload) {\n return getType(payload) === \"Date\" && !isNaN(payload);\n}\n\nfunction isEmptyArray(payload) {\n return isArray(payload) && payload.length === 0;\n}\n\nfunction isPlainObject(payload) {\n if (getType(payload) !== \"Object\")\n return false;\n const prototype = Object.getPrototypeOf(payload);\n return !!prototype && prototype.constructor === Object && prototype === Object.prototype;\n}\n\nfunction isEmptyObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length === 0;\n}\n\nfunction isEmptyString(payload) {\n return payload === \"\";\n}\n\nfunction isError(payload) {\n return getType(payload) === \"Error\" || payload instanceof Error;\n}\n\nfunction isFile(payload) {\n return getType(payload) === \"File\";\n}\n\nfunction isFullArray(payload) {\n return isArray(payload) && payload.length > 0;\n}\n\nfunction isFullObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length > 0;\n}\n\nfunction isString(payload) {\n return getType(payload) === \"String\";\n}\n\nfunction isFullString(payload) {\n return isString(payload) && payload !== \"\";\n}\n\nfunction isFunction(payload) {\n return typeof payload === \"function\";\n}\n\nfunction isType(payload, type) {\n if (!(type instanceof Function)) {\n throw new TypeError(\"Type must be a function\");\n }\n if (!Object.prototype.hasOwnProperty.call(type, \"prototype\")) {\n throw new TypeError(\"Type is not a class\");\n }\n const name = type.name;\n return getType(payload) === name || Boolean(payload && payload.constructor === type);\n}\n\nfunction isInstanceOf(value, classOrClassName) {\n if (typeof classOrClassName === \"function\") {\n for (let p = value; p; p = Object.getPrototypeOf(p)) {\n if (isType(p, classOrClassName)) {\n return true;\n }\n }\n return false;\n } else {\n for (let p = value; p; p = Object.getPrototypeOf(p)) {\n if (getType(p) === classOrClassName) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction isMap(payload) {\n return getType(payload) === \"Map\";\n}\n\nfunction isNaNValue(payload) {\n return getType(payload) === \"Number\" && isNaN(payload);\n}\n\nfunction isNumber(payload) {\n return getType(payload) === \"Number\" && !isNaN(payload);\n}\n\nfunction isNegativeNumber(payload) {\n return isNumber(payload) && payload < 0;\n}\n\nfunction isNull(payload) {\n return getType(payload) === \"Null\";\n}\n\nfunction isOneOf(a, b, c, d, e) {\n return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value);\n}\n\nfunction isUndefined(payload) {\n return getType(payload) === \"Undefined\";\n}\n\nconst isNullOrUndefined = isOneOf(isNull, isUndefined);\n\nfunction isObject(payload) {\n return isPlainObject(payload);\n}\n\nfunction isObjectLike(payload) {\n return isAnyObject(payload);\n}\n\nfunction isPositiveNumber(payload) {\n return isNumber(payload) && payload > 0;\n}\n\nfunction isSymbol(payload) {\n return getType(payload) === \"Symbol\";\n}\n\nfunction isPrimitive(payload) {\n return isBoolean(payload) || isNull(payload) || isUndefined(payload) || isNumber(payload) || isString(payload) || isSymbol(payload);\n}\n\nfunction isPromise(payload) {\n return getType(payload) === \"Promise\";\n}\n\nfunction isRegExp(payload) {\n return getType(payload) === \"RegExp\";\n}\n\nfunction isSet(payload) {\n return getType(payload) === \"Set\";\n}\n\nfunction isWeakMap(payload) {\n return getType(payload) === \"WeakMap\";\n}\n\nfunction isWeakSet(payload) {\n return getType(payload) === \"WeakSet\";\n}\n\nexport { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isFile, isFullArray, isFullObject, isFullString, isFunction, isInstanceOf, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet };\n","import { isArray, isPlainObject } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject, includeNonenumerable) {\n const propType = {}.propertyIsEnumerable.call(originalObject, key) ? \"enumerable\" : \"nonenumerable\";\n if (propType === \"enumerable\")\n carry[key] = newVal;\n if (includeNonenumerable && propType === \"nonenumerable\") {\n Object.defineProperty(carry, key, {\n value: newVal,\n enumerable: false,\n writable: true,\n configurable: true\n });\n }\n}\nfunction copy(target, options = {}) {\n if (isArray(target)) {\n return target.map((item) => copy(item, options));\n }\n if (!isPlainObject(target)) {\n return target;\n }\n const props = Object.getOwnPropertyNames(target);\n const symbols = Object.getOwnPropertySymbols(target);\n return [...props, ...symbols].reduce((carry, key) => {\n if (isArray(options.props) && !options.props.includes(key)) {\n return carry;\n }\n const val = target[key];\n const newVal = copy(val, options);\n assignProp(carry, key, newVal, target, options.nonenumerable);\n return carry;\n }, {});\n}\n\nexport { copy };\n","import { ClassRegistry } from './class-registry.js';\nimport { Registry } from './registry.js';\nimport { CustomTransformerRegistry, } from './custom-transformer-registry.js';\nimport { applyReferentialEqualityAnnotations, applyValueAnnotations, generateReferentialEqualityAnnotations, walker, } from './plainer.js';\nimport { copy } from 'copy-anything';\nexport default class SuperJSON {\n /**\n * @param dedupeReferentialEqualities If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`.\n */\n constructor({ dedupe = false, } = {}) {\n this.classRegistry = new ClassRegistry();\n this.symbolRegistry = new Registry(s => s.description ?? '');\n this.customTransformerRegistry = new CustomTransformerRegistry();\n this.allowedErrorProps = [];\n this.dedupe = dedupe;\n }\n serialize(object) {\n const identities = new Map();\n const output = walker(object, identities, this, this.dedupe);\n const res = {\n json: output.transformedValue,\n };\n if (output.annotations) {\n res.meta = {\n ...res.meta,\n values: output.annotations,\n };\n }\n const equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe);\n if (equalityAnnotations) {\n res.meta = {\n ...res.meta,\n referentialEqualities: equalityAnnotations,\n };\n }\n return res;\n }\n deserialize(payload) {\n const { json, meta } = payload;\n let result = copy(json);\n if (meta?.values) {\n result = applyValueAnnotations(result, meta.values, this);\n }\n if (meta?.referentialEqualities) {\n result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities);\n }\n return result;\n }\n stringify(object) {\n return JSON.stringify(this.serialize(object));\n }\n parse(string) {\n return this.deserialize(JSON.parse(string));\n }\n registerClass(v, options) {\n this.classRegistry.register(v, options);\n }\n registerSymbol(v, identifier) {\n this.symbolRegistry.register(v, identifier);\n }\n registerCustom(transformer, name) {\n this.customTransformerRegistry.register({\n name,\n ...transformer,\n });\n }\n allowErrorProps(...props) {\n this.allowedErrorProps.push(...props);\n }\n}\nSuperJSON.defaultInstance = new SuperJSON();\nSuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance);\nSuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance);\nSuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance);\nSuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance);\nSuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance);\nSuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance);\nSuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance);\nSuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance);\nexport { SuperJSON };\nexport const serialize = SuperJSON.serialize;\nexport const deserialize = SuperJSON.deserialize;\nexport const stringify = SuperJSON.stringify;\nexport const parse = SuperJSON.parse;\nexport const registerClass = SuperJSON.registerClass;\nexport const registerCustom = SuperJSON.registerCustom;\nexport const registerSymbol = SuperJSON.registerSymbol;\nexport const allowErrorProps = SuperJSON.allowErrorProps;\n//# sourceMappingURL=index.js.map","import SuperJSON from 'superjson';\nimport { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\n\nconst channelName = '__devtools-bridge:broadcast-channel__';\n\nexport const createBroadcastChannel = (): BaseChannelOptions => {\n const channel = new BroadcastChannel(channelName);\n const event = bridgeEventMap.broadcast;\n\n return {\n post: (data) => {\n channel.postMessage(SuperJSON.stringify({ event, data }));\n },\n on: (handler) => {\n channel.onmessage = (e) => {\n const parsed = SuperJSON.parse<{ event: string; data: unknown }>(e.data);\n if (parsed.event === event) {\n handler(parsed.data);\n }\n };\n },\n };\n};\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\n\n// Unusable. FIXME\nexport const createNativeChannel = (): BaseChannelOptions => {\n const event = bridgeEventMap.native;\n\n return {\n post: (data) => {\n const customEvent = new CustomEvent(event, {\n detail: data,\n });\n window.dispatchEvent(customEvent);\n },\n on: (handler) => {\n const eventHandler = (e: CustomEvent) => {\n console.log(e.detail);\n handler(e.detail);\n };\n\n window.addEventListener(event, eventHandler as EventListener);\n },\n };\n};\n","export function setMessageChannelContext() {\n window.__PERF_MONITOR_DEVTOOLS_MESSAGE_CHANNEL_CONTEXT__ ??= new MessageChannel();\n}\n\nexport function getMessageChannelContext() {\n return window.__PERF_MONITOR_DEVTOOLS_MESSAGE_CHANNEL_CONTEXT__ || null;\n}\n","var commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar lodash_debounce;\nvar hasRequiredLodash_debounce;\nfunction requireLodash_debounce() {\n if (hasRequiredLodash_debounce) return lodash_debounce;\n hasRequiredLodash_debounce = 1;\n var FUNC_ERROR_TEXT = \"Expected a function\";\n var NAN = 0 / 0;\n var symbolTag = \"[object Symbol]\";\n var reTrim = /^\\s+|\\s+$/g;\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n var reIsBinary = /^0b[01]+$/i;\n var reIsOctal = /^0o[0-7]+$/i;\n var freeParseInt = parseInt;\n var freeGlobal = typeof commonjsGlobal == \"object\" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n var freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\n var root = freeGlobal || freeSelf || Function(\"return this\")();\n var objectProto = Object.prototype;\n var objectToString = objectProto.toString;\n var nativeMax = Math.max, nativeMin = Math.min;\n var now = function() {\n return root.Date.now();\n };\n function debounce(func, wait, options) {\n var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = \"maxWait\" in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n var args = lastArgs, thisArg = lastThis;\n lastArgs = lastThis = void 0;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n function leadingEdge(time) {\n lastInvokeTime = time;\n timerId = setTimeout(timerExpired, wait);\n return leading ? invokeFunc(time) : result;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, result2 = wait - timeSinceLastCall;\n return maxing ? nativeMin(result2, maxWait - timeSinceLastInvoke) : result2;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;\n return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = void 0;\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = void 0;\n return result;\n }\n function cancel() {\n if (timerId !== void 0) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = void 0;\n }\n function flush() {\n return timerId === void 0 ? result : trailingEdge(now());\n }\n function debounced() {\n var time = now(), isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === void 0) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === void 0) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n function isObject(value) {\n var type = typeof value;\n return !!value && (type == \"object\" || type == \"function\");\n }\n function isObjectLike(value) {\n return !!value && typeof value == \"object\";\n }\n function isSymbol(value) {\n return typeof value == \"symbol\" || isObjectLike(value) && objectToString.call(value) == symbolTag;\n }\n function toNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == \"function\" ? value.valueOf() : value;\n value = isObject(other) ? other + \"\" : other;\n }\n if (typeof value != \"string\") {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, \"\");\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n lodash_debounce = debounce;\n return lodash_debounce;\n}\nvar lodash_debounceExports = requireLodash_debounce();\nconst index = /* @__PURE__ */ getDefaultExportFromCjs(lodash_debounceExports);\nconst noop = () => null;\nconst groupBy = (array, fn) => array.reduce(\n (acc, item) => {\n const key = fn(item);\n const group = acc[key] || [];\n acc[key] = [...group, item];\n return acc;\n },\n {}\n);\nconst DEVTOOLS_SHADOW_DOM_ID = \"__perf-monitor-devtools-container__\";\nconst DEVTOOLS_SHADOW_DOM_ROOT_ID = \"__perf-monitor-devtools-root__\";\nconst DEVTOOLS_OPEN_EDITOR_ENDPOINT = \"/__react-render-tracker__/open\";\nconst DEVTOOLS_READ_FILE_ENDPOINT = \"/__react-render-tracker__/read\";\nconst DEVTOOLS_STANDALONE = \"/__react-render-tracker__/standalone\";\nconst ElementTypeClass = 1;\nconst ElementTypeFunction = 2;\nconst ElementTypeMemo = 3;\nconst ElementTypeForwardRef = 4;\nconst ElementTypeProvider = 5;\nconst ElementTypeConsumer = 6;\nconst ElementTypeHostRoot = 7;\nconst ElementTypeHostComponent = 8;\nconst ElementTypeHostText = 9;\nconst ElementTypeHostPortal = 10;\nconst ElementTypeSuspense = 11;\nconst ElementTypeSuspenseList = 12;\nconst ElementTypeProfiler = 13;\nconst ElementTypeOtherOrUnknown = 14;\nconst FiberTypeName = {\n [ElementTypeClass]: \"Class component\",\n [ElementTypeFunction]: \"Function component\",\n [ElementTypeMemo]: \"Memo\",\n [ElementTypeForwardRef]: \"ForwardRef\",\n [ElementTypeProvider]: \"Provider\",\n [ElementTypeConsumer]: \"Consumer\",\n [ElementTypeHostRoot]: \"Render root\",\n [ElementTypeHostComponent]: \"Host component\",\n [ElementTypeHostText]: \"Host text\",\n [ElementTypeHostPortal]: \"Host portal\",\n [ElementTypeSuspense]: \"Suspense\",\n [ElementTypeSuspenseList]: \"Suspense list\",\n [ElementTypeProfiler]: \"Profiler\",\n [ElementTypeOtherOrUnknown]: \"Unknown\"\n};\nconst LegacyRoot = 0;\nconst ConcurrentRoot = 1;\nconst fiberRootMode = {\n [LegacyRoot]: \"Legacy Mode\",\n [ConcurrentRoot]: \"Concurrent Mode\"\n};\nconst TrackingObjectFiber = 0;\nconst TrackingObjectAlternate = 1;\nconst TrackingObjectStateNode = 2;\nconst TrackingObjectHook = 3;\nconst TrackingObjectTypeName = {\n [TrackingObjectFiber]: \"fiber\",\n [TrackingObjectAlternate]: \"alternate\",\n [TrackingObjectStateNode]: \"stateNode\",\n [TrackingObjectHook]: \"hook\"\n};\nexport {\n ConcurrentRoot,\n DEVTOOLS_OPEN_EDITOR_ENDPOINT,\n DEVTOOLS_READ_FILE_ENDPOINT,\n DEVTOOLS_SHADOW_DOM_ID,\n DEVTOOLS_SHADOW_DOM_ROOT_ID,\n DEVTOOLS_STANDALONE,\n ElementTypeClass,\n ElementTypeConsumer,\n ElementTypeForwardRef,\n ElementTypeFunction,\n ElementTypeHostComponent,\n ElementTypeHostPortal,\n ElementTypeHostRoot,\n ElementTypeHostText,\n ElementTypeMemo,\n ElementTypeOtherOrUnknown,\n ElementTypeProfiler,\n ElementTypeProvider,\n ElementTypeSuspense,\n ElementTypeSuspenseList,\n FiberTypeName,\n LegacyRoot,\n TrackingObjectAlternate,\n TrackingObjectFiber,\n TrackingObjectHook,\n TrackingObjectStateNode,\n TrackingObjectTypeName,\n index as debounce,\n fiberRootMode,\n groupBy,\n noop\n};\n//# sourceMappingURL=index.js.map\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\nimport { getMessageChannelContext } from './context';\nimport { noop } from '@zk-tech/rrt-shared';\n\nexport const createMessageChannelClient = (): BaseChannelOptions => {\n const event = bridgeEventMap.message;\n const channel = getMessageChannelContext();\n\n if (!channel) {\n return { post: noop, on: noop };\n }\n\n return {\n post: (data) => {\n channel.port1.postMessage({ event, data });\n },\n on: (handler) => {\n channel.port1.onmessage = ({ data }: MessageEvent<{ event: string; data: unknown }>) => {\n if (data.event === event) {\n handler(data.data);\n }\n };\n },\n };\n};\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\nimport { getMessageChannelContext } from './context';\nimport { noop } from '@zk-tech/rrt-shared';\n\nexport const createMessageChannelServer = (): BaseChannelOptions => {\n const event = bridgeEventMap.message;\n const channel = getMessageChannelContext();\n\n if (!channel) {\n return { post: noop, on: noop };\n }\n\n return {\n post: (data) => {\n channel.port2.postMessage({ event, data });\n },\n on: (handler) => {\n channel.port2.onmessage = ({ data }: MessageEvent<{ event: string; data: unknown }>) => {\n if (data.event === event) {\n handler(data.data);\n }\n };\n },\n };\n};\n","import { createBroadcastChannel } from './rpc/broadcast';\nimport { createNativeChannel } from './rpc/native';\nimport {\n createMessageChannelClient,\n createMessageChannelServer,\n setMessageChannelContext,\n} from './rpc/message';\nimport { BaseChannelOptions, MessageHost, MessagePreset } from './types';\n\nexport const bridgeEventMap: Record<MessagePreset, string> = {\n native: '__devtools-bridge-event-native',\n message: '__devtools-bridge-event-message',\n broadcast: '__devtools-bridge-event-broadcast',\n};\n\nexport const getBridgeChannel = (preset: MessagePreset, host: MessageHost) => {\n const channelMappings: Record<MessagePreset, Record<MessageHost, () => BaseChannelOptions>> = {\n native: {\n client: createNativeChannel,\n backend: createNativeChannel,\n },\n message: {\n client: createMessageChannelClient,\n backend: createMessageChannelServer,\n },\n broadcast: {\n client: createBroadcastChannel,\n backend: createBroadcastChannel,\n },\n };\n\n if (preset === 'message') {\n setMessageChannelContext();\n }\n\n return channelMappings[preset][host]();\n};\n","import { BirpcReturn, createBirpc } from 'birpc';\nimport { ClientRpcFunctions, BackendRpcFunctions, MessagePreset } from '@/types';\nimport { getBridgeChannel } from '@/config';\n\nexport const createClientRpc = (functions: ClientRpcFunctions, preset: MessagePreset) => {\n const channel = getBridgeChannel(preset, 'client');\n const rpc = createBirpc<BackendRpcFunctions, ClientRpcFunctions>(functions, {\n ...channel,\n timeout: -1,\n eventNames: [\n 'reloadPage',\n 'highlightRenderer',\n 'startHighlight',\n 'stopHighlight',\n 'startInspect',\n 'stopInspect',\n 'updateConfig',\n 'resetConfig',\n 'breakLeakedObjectRefs',\n 'cancelExposingLeakedObjectsToGlobal',\n ],\n });\n\n return rpc;\n};\n\nexport const createBackendRpc = (functions: BackendRpcFunctions, preset: MessagePreset) => {\n const channel = getBridgeChannel(preset, 'backend');\n const rpc = createBirpc<ClientRpcFunctions, BackendRpcFunctions>(functions, {\n ...channel,\n timeout: -1,\n eventNames: ['activedRenderers', 'highlighting', 'memoryLeaks', 'reactRenderers', 'eventsState'],\n });\n\n return rpc;\n};\n\nexport type ClientRpc = BirpcReturn<BackendRpcFunctions, ClientRpcFunctions>;\nexport type BackendRpc = BirpcReturn<ClientRpcFunctions, BackendRpcFunctions>;\n"],"names":["clearTimeout","setTimeout","_a","getType","isPlainObject","isArray","walker","transformed","result","isSymbol"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/birpc@0.2.17/node_modules/birpc/dist/index.mjs","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/double-indexed-kv.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/class-registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/util.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/custom-transformer-registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/is.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/pathstringifier.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/transformer.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/accessDeep.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/plainer.js","../../../node_modules/.pnpm/is-what@4.1.16/node_modules/is-what/dist/index.js","../../../node_modules/.pnpm/copy-anything@3.0.5/node_modules/copy-anything/dist/index.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/index.js","../src/rpc/broadcast/index.ts","../src/rpc/native/index.ts","../src/rpc/message/context.ts","../../devtools-shared/dist/index.js","../src/rpc/message/client.ts","../src/rpc/message/server.ts","../src/config.ts","../src/rpc/index.ts"],"sourcesContent":["const DEFAULT_TIMEOUT = 6e4;\nfunction defaultSerialize(i) {\n return i;\n}\nconst defaultDeserialize = defaultSerialize;\nconst { clearTimeout, setTimeout } = globalThis;\nconst random = Math.random.bind(Math);\nfunction createBirpc(functions, options) {\n const {\n post,\n on,\n eventNames = [],\n serialize = defaultSerialize,\n deserialize = defaultDeserialize,\n resolver,\n timeout = DEFAULT_TIMEOUT\n } = options;\n const rpcPromiseMap = /* @__PURE__ */ new Map();\n let _promise;\n const rpc = new Proxy({}, {\n get(_, method) {\n if (method === \"$functions\")\n return functions;\n if (method === \"then\" && !eventNames.includes(\"then\") && !(\"then\" in functions))\n return void 0;\n const sendEvent = (...args) => {\n post(serialize({ m: method, a: args, t: \"q\" }));\n };\n if (eventNames.includes(method)) {\n sendEvent.asEvent = sendEvent;\n return sendEvent;\n }\n const sendCall = async (...args) => {\n await _promise;\n return new Promise((resolve, reject) => {\n const id = nanoid();\n let timeoutId;\n if (timeout >= 0) {\n timeoutId = setTimeout(() => {\n try {\n options.onTimeoutError?.(method, args);\n throw new Error(`[birpc] timeout on calling \"${method}\"`);\n } catch (e) {\n reject(e);\n }\n rpcPromiseMap.delete(id);\n }, timeout);\n if (typeof timeoutId === \"object\")\n timeoutId = timeoutId.unref?.();\n }\n rpcPromiseMap.set(id, { resolve, reject, timeoutId });\n post(serialize({ m: method, a: args, i: id, t: \"q\" }));\n });\n };\n sendCall.asEvent = sendEvent;\n return sendCall;\n }\n });\n _promise = on(async (data, ...extra) => {\n const msg = deserialize(data);\n if (msg.t === \"q\") {\n const { m: method, a: args } = msg;\n let result, error;\n const fn = resolver ? resolver(method, functions[method]) : functions[method];\n if (!fn) {\n error = new Error(`[birpc] function \"${method}\" not found`);\n } else {\n try {\n result = await fn.apply(rpc, args);\n } catch (e) {\n error = e;\n }\n }\n if (msg.i) {\n if (error && options.onError)\n options.onError(error, method, args);\n post(serialize({ t: \"s\", i: msg.i, r: result, e: error }), ...extra);\n }\n } else {\n const { i: ack, r: result, e: error } = msg;\n const promise = rpcPromiseMap.get(ack);\n if (promise) {\n clearTimeout(promise.timeoutId);\n if (error)\n promise.reject(error);\n else\n promise.resolve(result);\n }\n rpcPromiseMap.delete(ack);\n }\n });\n return rpc;\n}\nconst cacheMap = /* @__PURE__ */ new WeakMap();\nfunction cachedMap(items, fn) {\n return items.map((i) => {\n let r = cacheMap.get(i);\n if (!r) {\n r = fn(i);\n cacheMap.set(i, r);\n }\n return r;\n });\n}\nfunction createBirpcGroup(functions, channels, options = {}) {\n const getChannels = () => typeof channels === \"function\" ? channels() : channels;\n const getClients = (channels2 = getChannels()) => cachedMap(channels2, (s) => createBirpc(functions, { ...options, ...s }));\n const broadcastProxy = new Proxy({}, {\n get(_, method) {\n const client = getClients();\n const callbacks = client.map((c) => c[method]);\n const sendCall = (...args) => {\n return Promise.all(callbacks.map((i) => i(...args)));\n };\n sendCall.asEvent = (...args) => {\n callbacks.map((i) => i.asEvent(...args));\n };\n return sendCall;\n }\n });\n function updateChannels(fn) {\n const channels2 = getChannels();\n fn?.(channels2);\n return getClients(channels2);\n }\n getClients();\n return {\n get clients() {\n return getClients();\n },\n functions,\n updateChannels,\n broadcast: broadcastProxy,\n /**\n * @deprecated use `broadcast`\n */\n // @ts-expect-error deprecated\n boardcast: broadcastProxy\n };\n}\nconst urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nfunction nanoid(size = 21) {\n let id = \"\";\n let i = size;\n while (i--)\n id += urlAlphabet[random() * 64 | 0];\n return id;\n}\n\nexport { DEFAULT_TIMEOUT, cachedMap, createBirpc, createBirpcGroup };\n","export class DoubleIndexedKV {\n constructor() {\n this.keyToValue = new Map();\n this.valueToKey = new Map();\n }\n set(key, value) {\n this.keyToValue.set(key, value);\n this.valueToKey.set(value, key);\n }\n getByKey(key) {\n return this.keyToValue.get(key);\n }\n getByValue(value) {\n return this.valueToKey.get(value);\n }\n clear() {\n this.keyToValue.clear();\n this.valueToKey.clear();\n }\n}\n//# sourceMappingURL=double-indexed-kv.js.map","import { DoubleIndexedKV } from './double-indexed-kv.js';\nexport class Registry {\n constructor(generateIdentifier) {\n this.generateIdentifier = generateIdentifier;\n this.kv = new DoubleIndexedKV();\n }\n register(value, identifier) {\n if (this.kv.getByValue(value)) {\n return;\n }\n if (!identifier) {\n identifier = this.generateIdentifier(value);\n }\n this.kv.set(identifier, value);\n }\n clear() {\n this.kv.clear();\n }\n getIdentifier(value) {\n return this.kv.getByValue(value);\n }\n getValue(identifier) {\n return this.kv.getByKey(identifier);\n }\n}\n//# sourceMappingURL=registry.js.map","import { Registry } from './registry.js';\nexport class ClassRegistry extends Registry {\n constructor() {\n super(c => c.name);\n this.classToAllowedProps = new Map();\n }\n register(value, options) {\n if (typeof options === 'object') {\n if (options.allowProps) {\n this.classToAllowedProps.set(value, options.allowProps);\n }\n super.register(value, options.identifier);\n }\n else {\n super.register(value, options);\n }\n }\n getAllowedProps(value) {\n return this.classToAllowedProps.get(value);\n }\n}\n//# sourceMappingURL=class-registry.js.map","function valuesOfObj(record) {\n if ('values' in Object) {\n // eslint-disable-next-line es5/no-es6-methods\n return Object.values(record);\n }\n const values = [];\n // eslint-disable-next-line no-restricted-syntax\n for (const key in record) {\n if (record.hasOwnProperty(key)) {\n values.push(record[key]);\n }\n }\n return values;\n}\nexport function find(record, predicate) {\n const values = valuesOfObj(record);\n if ('find' in values) {\n // eslint-disable-next-line es5/no-es6-methods\n return values.find(predicate);\n }\n const valuesNotNever = values;\n for (let i = 0; i < valuesNotNever.length; i++) {\n const value = valuesNotNever[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\nexport function forEach(record, run) {\n Object.entries(record).forEach(([key, value]) => run(value, key));\n}\nexport function includes(arr, value) {\n return arr.indexOf(value) !== -1;\n}\nexport function findArr(record, predicate) {\n for (let i = 0; i < record.length; i++) {\n const value = record[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\n//# sourceMappingURL=util.js.map","import { find } from './util.js';\nexport class CustomTransformerRegistry {\n constructor() {\n this.transfomers = {};\n }\n register(transformer) {\n this.transfomers[transformer.name] = transformer;\n }\n findApplicable(v) {\n return find(this.transfomers, transformer => transformer.isApplicable(v));\n }\n findByName(name) {\n return this.transfomers[name];\n }\n}\n//# sourceMappingURL=custom-transformer-registry.js.map","const getType = (payload) => Object.prototype.toString.call(payload).slice(8, -1);\nexport const isUndefined = (payload) => typeof payload === 'undefined';\nexport const isNull = (payload) => payload === null;\nexport const isPlainObject = (payload) => {\n if (typeof payload !== 'object' || payload === null)\n return false;\n if (payload === Object.prototype)\n return false;\n if (Object.getPrototypeOf(payload) === null)\n return true;\n return Object.getPrototypeOf(payload) === Object.prototype;\n};\nexport const isEmptyObject = (payload) => isPlainObject(payload) && Object.keys(payload).length === 0;\nexport const isArray = (payload) => Array.isArray(payload);\nexport const isString = (payload) => typeof payload === 'string';\nexport const isNumber = (payload) => typeof payload === 'number' && !isNaN(payload);\nexport const isBoolean = (payload) => typeof payload === 'boolean';\nexport const isRegExp = (payload) => payload instanceof RegExp;\nexport const isMap = (payload) => payload instanceof Map;\nexport const isSet = (payload) => payload instanceof Set;\nexport const isSymbol = (payload) => getType(payload) === 'Symbol';\nexport const isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf());\nexport const isError = (payload) => payload instanceof Error;\nexport const isNaNValue = (payload) => typeof payload === 'number' && isNaN(payload);\nexport const isPrimitive = (payload) => isBoolean(payload) ||\n isNull(payload) ||\n isUndefined(payload) ||\n isNumber(payload) ||\n isString(payload) ||\n isSymbol(payload);\nexport const isBigint = (payload) => typeof payload === 'bigint';\nexport const isInfinite = (payload) => payload === Infinity || payload === -Infinity;\nexport const isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);\nexport const isURL = (payload) => payload instanceof URL;\n//# sourceMappingURL=is.js.map","export const escapeKey = (key) => key.replace(/\\./g, '\\\\.');\nexport const stringifyPath = (path) => path\n .map(String)\n .map(escapeKey)\n .join('.');\nexport const parsePath = (string) => {\n const result = [];\n let segment = '';\n for (let i = 0; i < string.length; i++) {\n let char = string.charAt(i);\n const isEscapedDot = char === '\\\\' && string.charAt(i + 1) === '.';\n if (isEscapedDot) {\n segment += '.';\n i++;\n continue;\n }\n const isEndOfSegment = char === '.';\n if (isEndOfSegment) {\n result.push(segment);\n segment = '';\n continue;\n }\n segment += char;\n }\n const lastSegment = segment;\n result.push(lastSegment);\n return result;\n};\n//# sourceMappingURL=pathstringifier.js.map","import { isBigint, isDate, isInfinite, isMap, isNaNValue, isRegExp, isSet, isUndefined, isSymbol, isArray, isError, isTypedArray, isURL, } from './is.js';\nimport { findArr } from './util.js';\nfunction simpleTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst simpleRules = [\n simpleTransformation(isUndefined, 'undefined', () => null, () => undefined),\n simpleTransformation(isBigint, 'bigint', v => v.toString(), v => {\n if (typeof BigInt !== 'undefined') {\n return BigInt(v);\n }\n console.error('Please add a BigInt polyfill.');\n return v;\n }),\n simpleTransformation(isDate, 'Date', v => v.toISOString(), v => new Date(v)),\n simpleTransformation(isError, 'Error', (v, superJson) => {\n const baseError = {\n name: v.name,\n message: v.message,\n };\n superJson.allowedErrorProps.forEach(prop => {\n baseError[prop] = v[prop];\n });\n return baseError;\n }, (v, superJson) => {\n const e = new Error(v.message);\n e.name = v.name;\n e.stack = v.stack;\n superJson.allowedErrorProps.forEach(prop => {\n e[prop] = v[prop];\n });\n return e;\n }),\n simpleTransformation(isRegExp, 'regexp', v => '' + v, regex => {\n const body = regex.slice(1, regex.lastIndexOf('/'));\n const flags = regex.slice(regex.lastIndexOf('/') + 1);\n return new RegExp(body, flags);\n }),\n simpleTransformation(isSet, 'set', \n // (sets only exist in es6+)\n // eslint-disable-next-line es5/no-es6-methods\n v => [...v.values()], v => new Set(v)),\n simpleTransformation(isMap, 'map', v => [...v.entries()], v => new Map(v)),\n simpleTransformation((v) => isNaNValue(v) || isInfinite(v), 'number', v => {\n if (isNaNValue(v)) {\n return 'NaN';\n }\n if (v > 0) {\n return 'Infinity';\n }\n else {\n return '-Infinity';\n }\n }, Number),\n simpleTransformation((v) => v === 0 && 1 / v === -Infinity, 'number', () => {\n return '-0';\n }, Number),\n simpleTransformation(isURL, 'URL', v => v.toString(), v => new URL(v)),\n];\nfunction compositeTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst symbolRule = compositeTransformation((s, superJson) => {\n if (isSymbol(s)) {\n const isRegistered = !!superJson.symbolRegistry.getIdentifier(s);\n return isRegistered;\n }\n return false;\n}, (s, superJson) => {\n const identifier = superJson.symbolRegistry.getIdentifier(s);\n return ['symbol', identifier];\n}, v => v.description, (_, a, superJson) => {\n const value = superJson.symbolRegistry.getValue(a[1]);\n if (!value) {\n throw new Error('Trying to deserialize unknown symbol');\n }\n return value;\n});\nconst constructorToName = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n Uint8ClampedArray,\n].reduce((obj, ctor) => {\n obj[ctor.name] = ctor;\n return obj;\n}, {});\nconst typedArrayRule = compositeTransformation(isTypedArray, v => ['typed-array', v.constructor.name], v => [...v], (v, a) => {\n const ctor = constructorToName[a[1]];\n if (!ctor) {\n throw new Error('Trying to deserialize unknown typed array');\n }\n return new ctor(v);\n});\nexport function isInstanceOfRegisteredClass(potentialClass, superJson) {\n if (potentialClass?.constructor) {\n const isRegistered = !!superJson.classRegistry.getIdentifier(potentialClass.constructor);\n return isRegistered;\n }\n return false;\n}\nconst classRule = compositeTransformation(isInstanceOfRegisteredClass, (clazz, superJson) => {\n const identifier = superJson.classRegistry.getIdentifier(clazz.constructor);\n return ['class', identifier];\n}, (clazz, superJson) => {\n const allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);\n if (!allowedProps) {\n return { ...clazz };\n }\n const result = {};\n allowedProps.forEach(prop => {\n result[prop] = clazz[prop];\n });\n return result;\n}, (v, a, superJson) => {\n const clazz = superJson.classRegistry.getValue(a[1]);\n if (!clazz) {\n throw new Error('Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564');\n }\n return Object.assign(Object.create(clazz.prototype), v);\n});\nconst customRule = compositeTransformation((value, superJson) => {\n return !!superJson.customTransformerRegistry.findApplicable(value);\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return ['custom', transformer.name];\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return transformer.serialize(value);\n}, (v, a, superJson) => {\n const transformer = superJson.customTransformerRegistry.findByName(a[1]);\n if (!transformer) {\n throw new Error('Trying to deserialize unknown custom value');\n }\n return transformer.deserialize(v);\n});\nconst compositeRules = [classRule, symbolRule, customRule, typedArrayRule];\nexport const transformValue = (value, superJson) => {\n const applicableCompositeRule = findArr(compositeRules, rule => rule.isApplicable(value, superJson));\n if (applicableCompositeRule) {\n return {\n value: applicableCompositeRule.transform(value, superJson),\n type: applicableCompositeRule.annotation(value, superJson),\n };\n }\n const applicableSimpleRule = findArr(simpleRules, rule => rule.isApplicable(value, superJson));\n if (applicableSimpleRule) {\n return {\n value: applicableSimpleRule.transform(value, superJson),\n type: applicableSimpleRule.annotation,\n };\n }\n return undefined;\n};\nconst simpleRulesByAnnotation = {};\nsimpleRules.forEach(rule => {\n simpleRulesByAnnotation[rule.annotation] = rule;\n});\nexport const untransformValue = (json, type, superJson) => {\n if (isArray(type)) {\n switch (type[0]) {\n case 'symbol':\n return symbolRule.untransform(json, type, superJson);\n case 'class':\n return classRule.untransform(json, type, superJson);\n case 'custom':\n return customRule.untransform(json, type, superJson);\n case 'typed-array':\n return typedArrayRule.untransform(json, type, superJson);\n default:\n throw new Error('Unknown transformation: ' + type);\n }\n }\n else {\n const transformation = simpleRulesByAnnotation[type];\n if (!transformation) {\n throw new Error('Unknown transformation: ' + type);\n }\n return transformation.untransform(json, superJson);\n }\n};\n//# sourceMappingURL=transformer.js.map","import { isMap, isArray, isPlainObject, isSet } from './is.js';\nimport { includes } from './util.js';\nconst getNthKey = (value, n) => {\n const keys = value.keys();\n while (n > 0) {\n keys.next();\n n--;\n }\n return keys.next().value;\n};\nfunction validatePath(path) {\n if (includes(path, '__proto__')) {\n throw new Error('__proto__ is not allowed as a property');\n }\n if (includes(path, 'prototype')) {\n throw new Error('prototype is not allowed as a property');\n }\n if (includes(path, 'constructor')) {\n throw new Error('constructor is not allowed as a property');\n }\n}\nexport const getDeep = (object, path) => {\n validatePath(path);\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n if (isSet(object)) {\n object = getNthKey(object, +key);\n }\n else if (isMap(object)) {\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(object, row);\n switch (type) {\n case 'key':\n object = keyOfRow;\n break;\n case 'value':\n object = object.get(keyOfRow);\n break;\n }\n }\n else {\n object = object[key];\n }\n }\n return object;\n};\nexport const setDeep = (object, path, mapper) => {\n validatePath(path);\n if (path.length === 0) {\n return mapper(object);\n }\n let parent = object;\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n if (isArray(parent)) {\n const index = +key;\n parent = parent[index];\n }\n else if (isPlainObject(parent)) {\n parent = parent[key];\n }\n else if (isSet(parent)) {\n const row = +key;\n parent = getNthKey(parent, row);\n }\n else if (isMap(parent)) {\n const isEnd = i === path.length - 2;\n if (isEnd) {\n break;\n }\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(parent, row);\n switch (type) {\n case 'key':\n parent = keyOfRow;\n break;\n case 'value':\n parent = parent.get(keyOfRow);\n break;\n }\n }\n }\n const lastKey = path[path.length - 1];\n if (isArray(parent)) {\n parent[+lastKey] = mapper(parent[+lastKey]);\n }\n else if (isPlainObject(parent)) {\n parent[lastKey] = mapper(parent[lastKey]);\n }\n if (isSet(parent)) {\n const oldValue = getNthKey(parent, +lastKey);\n const newValue = mapper(oldValue);\n if (oldValue !== newValue) {\n parent.delete(oldValue);\n parent.add(newValue);\n }\n }\n if (isMap(parent)) {\n const row = +path[path.length - 2];\n const keyToRow = getNthKey(parent, row);\n const type = +lastKey === 0 ? 'key' : 'value';\n switch (type) {\n case 'key': {\n const newKey = mapper(keyToRow);\n parent.set(newKey, parent.get(keyToRow));\n if (newKey !== keyToRow) {\n parent.delete(keyToRow);\n }\n break;\n }\n case 'value': {\n parent.set(keyToRow, mapper(parent.get(keyToRow)));\n break;\n }\n }\n }\n return object;\n};\n//# sourceMappingURL=accessDeep.js.map","import { isArray, isEmptyObject, isMap, isPlainObject, isPrimitive, isSet, } from './is.js';\nimport { escapeKey, stringifyPath } from './pathstringifier.js';\nimport { isInstanceOfRegisteredClass, transformValue, untransformValue, } from './transformer.js';\nimport { includes, forEach } from './util.js';\nimport { parsePath } from './pathstringifier.js';\nimport { getDeep, setDeep } from './accessDeep.js';\nfunction traverse(tree, walker, origin = []) {\n if (!tree) {\n return;\n }\n if (!isArray(tree)) {\n forEach(tree, (subtree, key) => traverse(subtree, walker, [...origin, ...parsePath(key)]));\n return;\n }\n const [nodeValue, children] = tree;\n if (children) {\n forEach(children, (child, key) => {\n traverse(child, walker, [...origin, ...parsePath(key)]);\n });\n }\n walker(nodeValue, origin);\n}\nexport function applyValueAnnotations(plain, annotations, superJson) {\n traverse(annotations, (type, path) => {\n plain = setDeep(plain, path, v => untransformValue(v, type, superJson));\n });\n return plain;\n}\nexport function applyReferentialEqualityAnnotations(plain, annotations) {\n function apply(identicalPaths, path) {\n const object = getDeep(plain, parsePath(path));\n identicalPaths.map(parsePath).forEach(identicalObjectPath => {\n plain = setDeep(plain, identicalObjectPath, () => object);\n });\n }\n if (isArray(annotations)) {\n const [root, other] = annotations;\n root.forEach(identicalPath => {\n plain = setDeep(plain, parsePath(identicalPath), () => plain);\n });\n if (other) {\n forEach(other, apply);\n }\n }\n else {\n forEach(annotations, apply);\n }\n return plain;\n}\nconst isDeep = (object, superJson) => isPlainObject(object) ||\n isArray(object) ||\n isMap(object) ||\n isSet(object) ||\n isInstanceOfRegisteredClass(object, superJson);\nfunction addIdentity(object, path, identities) {\n const existingSet = identities.get(object);\n if (existingSet) {\n existingSet.push(path);\n }\n else {\n identities.set(object, [path]);\n }\n}\nexport function generateReferentialEqualityAnnotations(identitites, dedupe) {\n const result = {};\n let rootEqualityPaths = undefined;\n identitites.forEach(paths => {\n if (paths.length <= 1) {\n return;\n }\n // if we're not deduping, all of these objects continue existing.\n // putting the shortest path first makes it easier to parse for humans\n // if we're deduping though, only the first entry will still exist, so we can't do this optimisation.\n if (!dedupe) {\n paths = paths\n .map(path => path.map(String))\n .sort((a, b) => a.length - b.length);\n }\n const [representativePath, ...identicalPaths] = paths;\n if (representativePath.length === 0) {\n rootEqualityPaths = identicalPaths.map(stringifyPath);\n }\n else {\n result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath);\n }\n });\n if (rootEqualityPaths) {\n if (isEmptyObject(result)) {\n return [rootEqualityPaths];\n }\n else {\n return [rootEqualityPaths, result];\n }\n }\n else {\n return isEmptyObject(result) ? undefined : result;\n }\n}\nexport const walker = (object, identities, superJson, dedupe, path = [], objectsInThisPath = [], seenObjects = new Map()) => {\n const primitive = isPrimitive(object);\n if (!primitive) {\n addIdentity(object, path, identities);\n const seen = seenObjects.get(object);\n if (seen) {\n // short-circuit result if we've seen this object before\n return dedupe\n ? {\n transformedValue: null,\n }\n : seen;\n }\n }\n if (!isDeep(object, superJson)) {\n const transformed = transformValue(object, superJson);\n const result = transformed\n ? {\n transformedValue: transformed.value,\n annotations: [transformed.type],\n }\n : {\n transformedValue: object,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n }\n if (includes(objectsInThisPath, object)) {\n // prevent circular references\n return {\n transformedValue: null,\n };\n }\n const transformationResult = transformValue(object, superJson);\n const transformed = transformationResult?.value ?? object;\n const transformedValue = isArray(transformed) ? [] : {};\n const innerAnnotations = {};\n forEach(transformed, (value, index) => {\n if (index === '__proto__' ||\n index === 'constructor' ||\n index === 'prototype') {\n throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`);\n }\n const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects);\n transformedValue[index] = recursiveResult.transformedValue;\n if (isArray(recursiveResult.annotations)) {\n innerAnnotations[index] = recursiveResult.annotations;\n }\n else if (isPlainObject(recursiveResult.annotations)) {\n forEach(recursiveResult.annotations, (tree, key) => {\n innerAnnotations[escapeKey(index) + '.' + key] = tree;\n });\n }\n });\n const result = isEmptyObject(innerAnnotations)\n ? {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type]\n : undefined,\n }\n : {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type, innerAnnotations]\n : innerAnnotations,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n};\n//# sourceMappingURL=plainer.js.map","function getType(payload) {\n return Object.prototype.toString.call(payload).slice(8, -1);\n}\n\nfunction isAnyObject(payload) {\n return getType(payload) === \"Object\";\n}\n\nfunction isArray(payload) {\n return getType(payload) === \"Array\";\n}\n\nfunction isBlob(payload) {\n return getType(payload) === \"Blob\";\n}\n\nfunction isBoolean(payload) {\n return getType(payload) === \"Boolean\";\n}\n\nfunction isDate(payload) {\n return getType(payload) === \"Date\" && !isNaN(payload);\n}\n\nfunction isEmptyArray(payload) {\n return isArray(payload) && payload.length === 0;\n}\n\nfunction isPlainObject(payload) {\n if (getType(payload) !== \"Object\")\n return false;\n const prototype = Object.getPrototypeOf(payload);\n return !!prototype && prototype.constructor === Object && prototype === Object.prototype;\n}\n\nfunction isEmptyObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length === 0;\n}\n\nfunction isEmptyString(payload) {\n return payload === \"\";\n}\n\nfunction isError(payload) {\n return getType(payload) === \"Error\" || payload instanceof Error;\n}\n\nfunction isFile(payload) {\n return getType(payload) === \"File\";\n}\n\nfunction isFullArray(payload) {\n return isArray(payload) && payload.length > 0;\n}\n\nfunction isFullObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length > 0;\n}\n\nfunction isString(payload) {\n return getType(payload) === \"String\";\n}\n\nfunction isFullString(payload) {\n return isString(payload) && payload !== \"\";\n}\n\nfunction isFunction(payload) {\n return typeof payload === \"function\";\n}\n\nfunction isType(payload, type) {\n if (!(type instanceof Function)) {\n throw new TypeError(\"Type must be a function\");\n }\n if (!Object.prototype.hasOwnProperty.call(type, \"prototype\")) {\n throw new TypeError(\"Type is not a class\");\n }\n const name = type.name;\n return getType(payload) === name || Boolean(payload && payload.constructor === type);\n}\n\nfunction isInstanceOf(value, classOrClassName) {\n if (typeof classOrClassName === \"function\") {\n for (let p = value; p; p = Object.getPrototypeOf(p)) {\n if (isType(p, classOrClassName)) {\n return true;\n }\n }\n return false;\n } else {\n for (let p = value; p; p = Object.getPrototypeOf(p)) {\n if (getType(p) === classOrClassName) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction isMap(payload) {\n return getType(payload) === \"Map\";\n}\n\nfunction isNaNValue(payload) {\n return getType(payload) === \"Number\" && isNaN(payload);\n}\n\nfunction isNumber(payload) {\n return getType(payload) === \"Number\" && !isNaN(payload);\n}\n\nfunction isNegativeNumber(payload) {\n return isNumber(payload) && payload < 0;\n}\n\nfunction isNull(payload) {\n return getType(payload) === \"Null\";\n}\n\nfunction isOneOf(a, b, c, d, e) {\n return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value);\n}\n\nfunction isUndefined(payload) {\n return getType(payload) === \"Undefined\";\n}\n\nconst isNullOrUndefined = isOneOf(isNull, isUndefined);\n\nfunction isObject(payload) {\n return isPlainObject(payload);\n}\n\nfunction isObjectLike(payload) {\n return isAnyObject(payload);\n}\n\nfunction isPositiveNumber(payload) {\n return isNumber(payload) && payload > 0;\n}\n\nfunction isSymbol(payload) {\n return getType(payload) === \"Symbol\";\n}\n\nfunction isPrimitive(payload) {\n return isBoolean(payload) || isNull(payload) || isUndefined(payload) || isNumber(payload) || isString(payload) || isSymbol(payload);\n}\n\nfunction isPromise(payload) {\n return getType(payload) === \"Promise\";\n}\n\nfunction isRegExp(payload) {\n return getType(payload) === \"RegExp\";\n}\n\nfunction isSet(payload) {\n return getType(payload) === \"Set\";\n}\n\nfunction isWeakMap(payload) {\n return getType(payload) === \"WeakMap\";\n}\n\nfunction isWeakSet(payload) {\n return getType(payload) === \"WeakSet\";\n}\n\nexport { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isFile, isFullArray, isFullObject, isFullString, isFunction, isInstanceOf, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet };\n","import { isArray, isPlainObject } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject, includeNonenumerable) {\n const propType = {}.propertyIsEnumerable.call(originalObject, key) ? \"enumerable\" : \"nonenumerable\";\n if (propType === \"enumerable\")\n carry[key] = newVal;\n if (includeNonenumerable && propType === \"nonenumerable\") {\n Object.defineProperty(carry, key, {\n value: newVal,\n enumerable: false,\n writable: true,\n configurable: true\n });\n }\n}\nfunction copy(target, options = {}) {\n if (isArray(target)) {\n return target.map((item) => copy(item, options));\n }\n if (!isPlainObject(target)) {\n return target;\n }\n const props = Object.getOwnPropertyNames(target);\n const symbols = Object.getOwnPropertySymbols(target);\n return [...props, ...symbols].reduce((carry, key) => {\n if (isArray(options.props) && !options.props.includes(key)) {\n return carry;\n }\n const val = target[key];\n const newVal = copy(val, options);\n assignProp(carry, key, newVal, target, options.nonenumerable);\n return carry;\n }, {});\n}\n\nexport { copy };\n","import { ClassRegistry } from './class-registry.js';\nimport { Registry } from './registry.js';\nimport { CustomTransformerRegistry, } from './custom-transformer-registry.js';\nimport { applyReferentialEqualityAnnotations, applyValueAnnotations, generateReferentialEqualityAnnotations, walker, } from './plainer.js';\nimport { copy } from 'copy-anything';\nexport default class SuperJSON {\n /**\n * @param dedupeReferentialEqualities If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`.\n */\n constructor({ dedupe = false, } = {}) {\n this.classRegistry = new ClassRegistry();\n this.symbolRegistry = new Registry(s => s.description ?? '');\n this.customTransformerRegistry = new CustomTransformerRegistry();\n this.allowedErrorProps = [];\n this.dedupe = dedupe;\n }\n serialize(object) {\n const identities = new Map();\n const output = walker(object, identities, this, this.dedupe);\n const res = {\n json: output.transformedValue,\n };\n if (output.annotations) {\n res.meta = {\n ...res.meta,\n values: output.annotations,\n };\n }\n const equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe);\n if (equalityAnnotations) {\n res.meta = {\n ...res.meta,\n referentialEqualities: equalityAnnotations,\n };\n }\n return res;\n }\n deserialize(payload) {\n const { json, meta } = payload;\n let result = copy(json);\n if (meta?.values) {\n result = applyValueAnnotations(result, meta.values, this);\n }\n if (meta?.referentialEqualities) {\n result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities);\n }\n return result;\n }\n stringify(object) {\n return JSON.stringify(this.serialize(object));\n }\n parse(string) {\n return this.deserialize(JSON.parse(string));\n }\n registerClass(v, options) {\n this.classRegistry.register(v, options);\n }\n registerSymbol(v, identifier) {\n this.symbolRegistry.register(v, identifier);\n }\n registerCustom(transformer, name) {\n this.customTransformerRegistry.register({\n name,\n ...transformer,\n });\n }\n allowErrorProps(...props) {\n this.allowedErrorProps.push(...props);\n }\n}\nSuperJSON.defaultInstance = new SuperJSON();\nSuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance);\nSuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance);\nSuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance);\nSuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance);\nSuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance);\nSuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance);\nSuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance);\nSuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance);\nexport { SuperJSON };\nexport const serialize = SuperJSON.serialize;\nexport const deserialize = SuperJSON.deserialize;\nexport const stringify = SuperJSON.stringify;\nexport const parse = SuperJSON.parse;\nexport const registerClass = SuperJSON.registerClass;\nexport const registerCustom = SuperJSON.registerCustom;\nexport const registerSymbol = SuperJSON.registerSymbol;\nexport const allowErrorProps = SuperJSON.allowErrorProps;\n//# sourceMappingURL=index.js.map","import SuperJSON from 'superjson';\nimport { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\n\nconst channelName = '__devtools-bridge:broadcast-channel__';\n\nexport const createBroadcastChannel = (): BaseChannelOptions => {\n const channel = new BroadcastChannel(channelName);\n const event = bridgeEventMap.broadcast;\n\n return {\n post: (data) => {\n channel.postMessage(SuperJSON.stringify({ event, data }));\n },\n on: (handler) => {\n channel.onmessage = (e) => {\n const parsed = SuperJSON.parse<{ event: string; data: unknown }>(e.data);\n if (parsed.event === event) {\n handler(parsed.data);\n }\n };\n },\n };\n};\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\n\n// Unusable. FIXME\nexport const createNativeChannel = (): BaseChannelOptions => {\n const event = bridgeEventMap.native;\n\n return {\n post: (data) => {\n const customEvent = new CustomEvent(event, {\n detail: data,\n });\n window.dispatchEvent(customEvent);\n },\n on: (handler) => {\n const eventHandler = (e: CustomEvent) => {\n console.log(e.detail);\n handler(e.detail);\n };\n\n window.addEventListener(event, eventHandler as EventListener);\n },\n };\n};\n","export function setMessageChannelContext() {\n window.__PERF_MONITOR_DEVTOOLS_MESSAGE_CHANNEL_CONTEXT__ ??= new MessageChannel();\n}\n\nexport function getMessageChannelContext() {\n return window.__PERF_MONITOR_DEVTOOLS_MESSAGE_CHANNEL_CONTEXT__ || null;\n}\n","var commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar lodash_debounce;\nvar hasRequiredLodash_debounce;\nfunction requireLodash_debounce() {\n if (hasRequiredLodash_debounce) return lodash_debounce;\n hasRequiredLodash_debounce = 1;\n var FUNC_ERROR_TEXT = \"Expected a function\";\n var NAN = 0 / 0;\n var symbolTag = \"[object Symbol]\";\n var reTrim = /^\\s+|\\s+$/g;\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n var reIsBinary = /^0b[01]+$/i;\n var reIsOctal = /^0o[0-7]+$/i;\n var freeParseInt = parseInt;\n var freeGlobal = typeof commonjsGlobal == \"object\" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n var freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\n var root = freeGlobal || freeSelf || Function(\"return this\")();\n var objectProto = Object.prototype;\n var objectToString = objectProto.toString;\n var nativeMax = Math.max, nativeMin = Math.min;\n var now = function() {\n return root.Date.now();\n };\n function debounce(func, wait, options) {\n var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = \"maxWait\" in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n var args = lastArgs, thisArg = lastThis;\n lastArgs = lastThis = void 0;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n function leadingEdge(time) {\n lastInvokeTime = time;\n timerId = setTimeout(timerExpired, wait);\n return leading ? invokeFunc(time) : result;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, result2 = wait - timeSinceLastCall;\n return maxing ? nativeMin(result2, maxWait - timeSinceLastInvoke) : result2;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;\n return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = void 0;\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = void 0;\n return result;\n }\n function cancel() {\n if (timerId !== void 0) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = void 0;\n }\n function flush() {\n return timerId === void 0 ? result : trailingEdge(now());\n }\n function debounced() {\n var time = now(), isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === void 0) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === void 0) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n function isObject(value) {\n var type = typeof value;\n return !!value && (type == \"object\" || type == \"function\");\n }\n function isObjectLike(value) {\n return !!value && typeof value == \"object\";\n }\n function isSymbol(value) {\n return typeof value == \"symbol\" || isObjectLike(value) && objectToString.call(value) == symbolTag;\n }\n function toNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == \"function\" ? value.valueOf() : value;\n value = isObject(other) ? other + \"\" : other;\n }\n if (typeof value != \"string\") {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, \"\");\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n lodash_debounce = debounce;\n return lodash_debounce;\n}\nvar lodash_debounceExports = requireLodash_debounce();\nconst index = /* @__PURE__ */ getDefaultExportFromCjs(lodash_debounceExports);\nconst noop = () => null;\nconst groupBy = (array, fn) => array.reduce(\n (acc, item) => {\n const key = fn(item);\n const group = acc[key] || [];\n acc[key] = [...group, item];\n return acc;\n },\n {}\n);\nconst DEVTOOLS_SHADOW_DOM_ID = \"__perf-monitor-devtools-container__\";\nconst DEVTOOLS_SHADOW_DOM_ROOT_ID = \"__perf-monitor-devtools-root__\";\nconst DEVTOOLS_OPEN_EDITOR_ENDPOINT = \"/__perf-monitor-devtools__/open\";\nconst DEVTOOLS_READ_FILE_ENDPOINT = \"/__perf-monitor-devtools__/read\";\nconst DEVTOOLS_STANDALONE = \"/__perf-monitor-devtools__/standalone\";\nconst ElementTypeClass = 1;\nconst ElementTypeFunction = 2;\nconst ElementTypeMemo = 3;\nconst ElementTypeForwardRef = 4;\nconst ElementTypeProvider = 5;\nconst ElementTypeConsumer = 6;\nconst ElementTypeHostRoot = 7;\nconst ElementTypeHostComponent = 8;\nconst ElementTypeHostText = 9;\nconst ElementTypeHostPortal = 10;\nconst ElementTypeSuspense = 11;\nconst ElementTypeSuspenseList = 12;\nconst ElementTypeProfiler = 13;\nconst ElementTypeOtherOrUnknown = 14;\nconst FiberTypeName = {\n [ElementTypeClass]: \"Class component\",\n [ElementTypeFunction]: \"Function component\",\n [ElementTypeMemo]: \"Memo\",\n [ElementTypeForwardRef]: \"ForwardRef\",\n [ElementTypeProvider]: \"Provider\",\n [ElementTypeConsumer]: \"Consumer\",\n [ElementTypeHostRoot]: \"Render root\",\n [ElementTypeHostComponent]: \"Host component\",\n [ElementTypeHostText]: \"Host text\",\n [ElementTypeHostPortal]: \"Host portal\",\n [ElementTypeSuspense]: \"Suspense\",\n [ElementTypeSuspenseList]: \"Suspense list\",\n [ElementTypeProfiler]: \"Profiler\",\n [ElementTypeOtherOrUnknown]: \"Unknown\"\n};\nconst LegacyRoot = 0;\nconst ConcurrentRoot = 1;\nconst fiberRootMode = {\n [LegacyRoot]: \"Legacy Mode\",\n [ConcurrentRoot]: \"Concurrent Mode\"\n};\nconst TrackingObjectFiber = 0;\nconst TrackingObjectAlternate = 1;\nconst TrackingObjectStateNode = 2;\nconst TrackingObjectHook = 3;\nconst TrackingObjectTypeName = {\n [TrackingObjectFiber]: \"fiber\",\n [TrackingObjectAlternate]: \"alternate\",\n [TrackingObjectStateNode]: \"stateNode\",\n [TrackingObjectHook]: \"hook\"\n};\nexport {\n ConcurrentRoot,\n DEVTOOLS_OPEN_EDITOR_ENDPOINT,\n DEVTOOLS_READ_FILE_ENDPOINT,\n DEVTOOLS_SHADOW_DOM_ID,\n DEVTOOLS_SHADOW_DOM_ROOT_ID,\n DEVTOOLS_STANDALONE,\n ElementTypeClass,\n ElementTypeConsumer,\n ElementTypeForwardRef,\n ElementTypeFunction,\n ElementTypeHostComponent,\n ElementTypeHostPortal,\n ElementTypeHostRoot,\n ElementTypeHostText,\n ElementTypeMemo,\n ElementTypeOtherOrUnknown,\n ElementTypeProfiler,\n ElementTypeProvider,\n ElementTypeSuspense,\n ElementTypeSuspenseList,\n FiberTypeName,\n LegacyRoot,\n TrackingObjectAlternate,\n TrackingObjectFiber,\n TrackingObjectHook,\n TrackingObjectStateNode,\n TrackingObjectTypeName,\n index as debounce,\n fiberRootMode,\n groupBy,\n noop\n};\n//# sourceMappingURL=index.js.map\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\nimport { getMessageChannelContext } from './context';\nimport { noop } from '@zk-tech/rrt-shared';\n\nexport const createMessageChannelClient = (): BaseChannelOptions => {\n const event = bridgeEventMap.message;\n const channel = getMessageChannelContext();\n\n if (!channel) {\n return { post: noop, on: noop };\n }\n\n return {\n post: (data) => {\n channel.port1.postMessage({ event, data });\n },\n on: (handler) => {\n channel.port1.onmessage = ({ data }: MessageEvent<{ event: string; data: unknown }>) => {\n if (data.event === event) {\n handler(data.data);\n }\n };\n },\n };\n};\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\nimport { getMessageChannelContext } from './context';\nimport { noop } from '@zk-tech/rrt-shared';\n\nexport const createMessageChannelServer = (): BaseChannelOptions => {\n const event = bridgeEventMap.message;\n const channel = getMessageChannelContext();\n\n if (!channel) {\n return { post: noop, on: noop };\n }\n\n return {\n post: (data) => {\n channel.port2.postMessage({ event, data });\n },\n on: (handler) => {\n channel.port2.onmessage = ({ data }: MessageEvent<{ event: string; data: unknown }>) => {\n if (data.event === event) {\n handler(data.data);\n }\n };\n },\n };\n};\n","import { createBroadcastChannel } from './rpc/broadcast';\nimport { createNativeChannel } from './rpc/native';\nimport {\n createMessageChannelClient,\n createMessageChannelServer,\n setMessageChannelContext,\n} from './rpc/message';\nimport { BaseChannelOptions, MessageHost, MessagePreset } from './types';\n\nexport const bridgeEventMap: Record<MessagePreset, string> = {\n native: '__devtools-bridge-event-native',\n message: '__devtools-bridge-event-message',\n broadcast: '__devtools-bridge-event-broadcast',\n};\n\nexport const getBridgeChannel = (preset: MessagePreset, host: MessageHost) => {\n const channelMappings: Record<MessagePreset, Record<MessageHost, () => BaseChannelOptions>> = {\n native: {\n client: createNativeChannel,\n backend: createNativeChannel,\n },\n message: {\n client: createMessageChannelClient,\n backend: createMessageChannelServer,\n },\n broadcast: {\n client: createBroadcastChannel,\n backend: createBroadcastChannel,\n },\n };\n\n if (preset === 'message') {\n setMessageChannelContext();\n }\n\n return channelMappings[preset][host]();\n};\n","import { BirpcReturn, createBirpc } from 'birpc';\nimport { ClientRpcFunctions, BackendRpcFunctions, MessagePreset } from '@/types';\nimport { getBridgeChannel } from '@/config';\n\nexport const createClientRpc = (functions: ClientRpcFunctions, preset: MessagePreset) => {\n const channel = getBridgeChannel(preset, 'client');\n const rpc = createBirpc<BackendRpcFunctions, ClientRpcFunctions>(functions, {\n ...channel,\n timeout: -1,\n eventNames: [\n 'reloadPage',\n 'highlightRenderer',\n 'startHighlight',\n 'stopHighlight',\n 'startInspect',\n 'stopInspect',\n 'updateConfig',\n 'resetConfig',\n 'breakLeakedObjectRefs',\n 'cancelExposingLeakedObjectsToGlobal',\n ],\n });\n\n return rpc;\n};\n\nexport const createBackendRpc = (functions: BackendRpcFunctions, preset: MessagePreset) => {\n const channel = getBridgeChannel(preset, 'backend');\n const rpc = createBirpc<ClientRpcFunctions, BackendRpcFunctions>(functions, {\n ...channel,\n timeout: -1,\n eventNames: ['activedRenderers', 'highlighting', 'memoryLeaks', 'reactRenderers', 'eventsState'],\n });\n\n return rpc;\n};\n\nexport type ClientRpc = BirpcReturn<BackendRpcFunctions, ClientRpcFunctions>;\nexport type BackendRpc = BirpcReturn<ClientRpcFunctions, BackendRpcFunctions>;\n"],"names":["clearTimeout","setTimeout","_a","getType","isPlainObject","isArray","walker","transformed","result","isSymbol"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/birpc@0.2.17/node_modules/birpc/dist/index.mjs","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/double-indexed-kv.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/class-registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/util.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/custom-transformer-registry.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/is.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/pathstringifier.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/transformer.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/accessDeep.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/plainer.js","../../../node_modules/.pnpm/is-what@4.1.16/node_modules/is-what/dist/index.js","../../../node_modules/.pnpm/copy-anything@3.0.5/node_modules/copy-anything/dist/index.js","../../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/index.js","../src/rpc/broadcast/index.ts","../src/rpc/native/index.ts","../src/rpc/message/context.ts","../../devtools-shared/dist/index.js","../src/rpc/message/client.ts","../src/rpc/message/server.ts","../src/config.ts","../src/rpc/index.ts"],"sourcesContent":["const DEFAULT_TIMEOUT = 6e4;\nfunction defaultSerialize(i) {\n return i;\n}\nconst defaultDeserialize = defaultSerialize;\nconst { clearTimeout, setTimeout } = globalThis;\nconst random = Math.random.bind(Math);\nfunction createBirpc(functions, options) {\n const {\n post,\n on,\n eventNames = [],\n serialize = defaultSerialize,\n deserialize = defaultDeserialize,\n resolver,\n timeout = DEFAULT_TIMEOUT\n } = options;\n const rpcPromiseMap = /* @__PURE__ */ new Map();\n let _promise;\n const rpc = new Proxy({}, {\n get(_, method) {\n if (method === \"$functions\")\n return functions;\n if (method === \"then\" && !eventNames.includes(\"then\") && !(\"then\" in functions))\n return void 0;\n const sendEvent = (...args) => {\n post(serialize({ m: method, a: args, t: \"q\" }));\n };\n if (eventNames.includes(method)) {\n sendEvent.asEvent = sendEvent;\n return sendEvent;\n }\n const sendCall = async (...args) => {\n await _promise;\n return new Promise((resolve, reject) => {\n const id = nanoid();\n let timeoutId;\n if (timeout >= 0) {\n timeoutId = setTimeout(() => {\n try {\n options.onTimeoutError?.(method, args);\n throw new Error(`[birpc] timeout on calling \"${method}\"`);\n } catch (e) {\n reject(e);\n }\n rpcPromiseMap.delete(id);\n }, timeout);\n if (typeof timeoutId === \"object\")\n timeoutId = timeoutId.unref?.();\n }\n rpcPromiseMap.set(id, { resolve, reject, timeoutId });\n post(serialize({ m: method, a: args, i: id, t: \"q\" }));\n });\n };\n sendCall.asEvent = sendEvent;\n return sendCall;\n }\n });\n _promise = on(async (data, ...extra) => {\n const msg = deserialize(data);\n if (msg.t === \"q\") {\n const { m: method, a: args } = msg;\n let result, error;\n const fn = resolver ? resolver(method, functions[method]) : functions[method];\n if (!fn) {\n error = new Error(`[birpc] function \"${method}\" not found`);\n } else {\n try {\n result = await fn.apply(rpc, args);\n } catch (e) {\n error = e;\n }\n }\n if (msg.i) {\n if (error && options.onError)\n options.onError(error, method, args);\n post(serialize({ t: \"s\", i: msg.i, r: result, e: error }), ...extra);\n }\n } else {\n const { i: ack, r: result, e: error } = msg;\n const promise = rpcPromiseMap.get(ack);\n if (promise) {\n clearTimeout(promise.timeoutId);\n if (error)\n promise.reject(error);\n else\n promise.resolve(result);\n }\n rpcPromiseMap.delete(ack);\n }\n });\n return rpc;\n}\nconst cacheMap = /* @__PURE__ */ new WeakMap();\nfunction cachedMap(items, fn) {\n return items.map((i) => {\n let r = cacheMap.get(i);\n if (!r) {\n r = fn(i);\n cacheMap.set(i, r);\n }\n return r;\n });\n}\nfunction createBirpcGroup(functions, channels, options = {}) {\n const getChannels = () => typeof channels === \"function\" ? channels() : channels;\n const getClients = (channels2 = getChannels()) => cachedMap(channels2, (s) => createBirpc(functions, { ...options, ...s }));\n const broadcastProxy = new Proxy({}, {\n get(_, method) {\n const client = getClients();\n const callbacks = client.map((c) => c[method]);\n const sendCall = (...args) => {\n return Promise.all(callbacks.map((i) => i(...args)));\n };\n sendCall.asEvent = (...args) => {\n callbacks.map((i) => i.asEvent(...args));\n };\n return sendCall;\n }\n });\n function updateChannels(fn) {\n const channels2 = getChannels();\n fn?.(channels2);\n return getClients(channels2);\n }\n getClients();\n return {\n get clients() {\n return getClients();\n },\n functions,\n updateChannels,\n broadcast: broadcastProxy,\n /**\n * @deprecated use `broadcast`\n */\n // @ts-expect-error deprecated\n boardcast: broadcastProxy\n };\n}\nconst urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nfunction nanoid(size = 21) {\n let id = \"\";\n let i = size;\n while (i--)\n id += urlAlphabet[random() * 64 | 0];\n return id;\n}\n\nexport { DEFAULT_TIMEOUT, cachedMap, createBirpc, createBirpcGroup };\n","export class DoubleIndexedKV {\n constructor() {\n this.keyToValue = new Map();\n this.valueToKey = new Map();\n }\n set(key, value) {\n this.keyToValue.set(key, value);\n this.valueToKey.set(value, key);\n }\n getByKey(key) {\n return this.keyToValue.get(key);\n }\n getByValue(value) {\n return this.valueToKey.get(value);\n }\n clear() {\n this.keyToValue.clear();\n this.valueToKey.clear();\n }\n}\n//# sourceMappingURL=double-indexed-kv.js.map","import { DoubleIndexedKV } from './double-indexed-kv.js';\nexport class Registry {\n constructor(generateIdentifier) {\n this.generateIdentifier = generateIdentifier;\n this.kv = new DoubleIndexedKV();\n }\n register(value, identifier) {\n if (this.kv.getByValue(value)) {\n return;\n }\n if (!identifier) {\n identifier = this.generateIdentifier(value);\n }\n this.kv.set(identifier, value);\n }\n clear() {\n this.kv.clear();\n }\n getIdentifier(value) {\n return this.kv.getByValue(value);\n }\n getValue(identifier) {\n return this.kv.getByKey(identifier);\n }\n}\n//# sourceMappingURL=registry.js.map","import { Registry } from './registry.js';\nexport class ClassRegistry extends Registry {\n constructor() {\n super(c => c.name);\n this.classToAllowedProps = new Map();\n }\n register(value, options) {\n if (typeof options === 'object') {\n if (options.allowProps) {\n this.classToAllowedProps.set(value, options.allowProps);\n }\n super.register(value, options.identifier);\n }\n else {\n super.register(value, options);\n }\n }\n getAllowedProps(value) {\n return this.classToAllowedProps.get(value);\n }\n}\n//# sourceMappingURL=class-registry.js.map","function valuesOfObj(record) {\n if ('values' in Object) {\n // eslint-disable-next-line es5/no-es6-methods\n return Object.values(record);\n }\n const values = [];\n // eslint-disable-next-line no-restricted-syntax\n for (const key in record) {\n if (record.hasOwnProperty(key)) {\n values.push(record[key]);\n }\n }\n return values;\n}\nexport function find(record, predicate) {\n const values = valuesOfObj(record);\n if ('find' in values) {\n // eslint-disable-next-line es5/no-es6-methods\n return values.find(predicate);\n }\n const valuesNotNever = values;\n for (let i = 0; i < valuesNotNever.length; i++) {\n const value = valuesNotNever[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\nexport function forEach(record, run) {\n Object.entries(record).forEach(([key, value]) => run(value, key));\n}\nexport function includes(arr, value) {\n return arr.indexOf(value) !== -1;\n}\nexport function findArr(record, predicate) {\n for (let i = 0; i < record.length; i++) {\n const value = record[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\n//# sourceMappingURL=util.js.map","import { find } from './util.js';\nexport class CustomTransformerRegistry {\n constructor() {\n this.transfomers = {};\n }\n register(transformer) {\n this.transfomers[transformer.name] = transformer;\n }\n findApplicable(v) {\n return find(this.transfomers, transformer => transformer.isApplicable(v));\n }\n findByName(name) {\n return this.transfomers[name];\n }\n}\n//# sourceMappingURL=custom-transformer-registry.js.map","const getType = (payload) => Object.prototype.toString.call(payload).slice(8, -1);\nexport const isUndefined = (payload) => typeof payload === 'undefined';\nexport const isNull = (payload) => payload === null;\nexport const isPlainObject = (payload) => {\n if (typeof payload !== 'object' || payload === null)\n return false;\n if (payload === Object.prototype)\n return false;\n if (Object.getPrototypeOf(payload) === null)\n return true;\n return Object.getPrototypeOf(payload) === Object.prototype;\n};\nexport const isEmptyObject = (payload) => isPlainObject(payload) && Object.keys(payload).length === 0;\nexport const isArray = (payload) => Array.isArray(payload);\nexport const isString = (payload) => typeof payload === 'string';\nexport const isNumber = (payload) => typeof payload === 'number' && !isNaN(payload);\nexport const isBoolean = (payload) => typeof payload === 'boolean';\nexport const isRegExp = (payload) => payload instanceof RegExp;\nexport const isMap = (payload) => payload instanceof Map;\nexport const isSet = (payload) => payload instanceof Set;\nexport const isSymbol = (payload) => getType(payload) === 'Symbol';\nexport const isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf());\nexport const isError = (payload) => payload instanceof Error;\nexport const isNaNValue = (payload) => typeof payload === 'number' && isNaN(payload);\nexport const isPrimitive = (payload) => isBoolean(payload) ||\n isNull(payload) ||\n isUndefined(payload) ||\n isNumber(payload) ||\n isString(payload) ||\n isSymbol(payload);\nexport const isBigint = (payload) => typeof payload === 'bigint';\nexport const isInfinite = (payload) => payload === Infinity || payload === -Infinity;\nexport const isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);\nexport const isURL = (payload) => payload instanceof URL;\n//# sourceMappingURL=is.js.map","export const escapeKey = (key) => key.replace(/\\./g, '\\\\.');\nexport const stringifyPath = (path) => path\n .map(String)\n .map(escapeKey)\n .join('.');\nexport const parsePath = (string) => {\n const result = [];\n let segment = '';\n for (let i = 0; i < string.length; i++) {\n let char = string.charAt(i);\n const isEscapedDot = char === '\\\\' && string.charAt(i + 1) === '.';\n if (isEscapedDot) {\n segment += '.';\n i++;\n continue;\n }\n const isEndOfSegment = char === '.';\n if (isEndOfSegment) {\n result.push(segment);\n segment = '';\n continue;\n }\n segment += char;\n }\n const lastSegment = segment;\n result.push(lastSegment);\n return result;\n};\n//# sourceMappingURL=pathstringifier.js.map","import { isBigint, isDate, isInfinite, isMap, isNaNValue, isRegExp, isSet, isUndefined, isSymbol, isArray, isError, isTypedArray, isURL, } from './is.js';\nimport { findArr } from './util.js';\nfunction simpleTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst simpleRules = [\n simpleTransformation(isUndefined, 'undefined', () => null, () => undefined),\n simpleTransformation(isBigint, 'bigint', v => v.toString(), v => {\n if (typeof BigInt !== 'undefined') {\n return BigInt(v);\n }\n console.error('Please add a BigInt polyfill.');\n return v;\n }),\n simpleTransformation(isDate, 'Date', v => v.toISOString(), v => new Date(v)),\n simpleTransformation(isError, 'Error', (v, superJson) => {\n const baseError = {\n name: v.name,\n message: v.message,\n };\n superJson.allowedErrorProps.forEach(prop => {\n baseError[prop] = v[prop];\n });\n return baseError;\n }, (v, superJson) => {\n const e = new Error(v.message);\n e.name = v.name;\n e.stack = v.stack;\n superJson.allowedErrorProps.forEach(prop => {\n e[prop] = v[prop];\n });\n return e;\n }),\n simpleTransformation(isRegExp, 'regexp', v => '' + v, regex => {\n const body = regex.slice(1, regex.lastIndexOf('/'));\n const flags = regex.slice(regex.lastIndexOf('/') + 1);\n return new RegExp(body, flags);\n }),\n simpleTransformation(isSet, 'set', \n // (sets only exist in es6+)\n // eslint-disable-next-line es5/no-es6-methods\n v => [...v.values()], v => new Set(v)),\n simpleTransformation(isMap, 'map', v => [...v.entries()], v => new Map(v)),\n simpleTransformation((v) => isNaNValue(v) || isInfinite(v), 'number', v => {\n if (isNaNValue(v)) {\n return 'NaN';\n }\n if (v > 0) {\n return 'Infinity';\n }\n else {\n return '-Infinity';\n }\n }, Number),\n simpleTransformation((v) => v === 0 && 1 / v === -Infinity, 'number', () => {\n return '-0';\n }, Number),\n simpleTransformation(isURL, 'URL', v => v.toString(), v => new URL(v)),\n];\nfunction compositeTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst symbolRule = compositeTransformation((s, superJson) => {\n if (isSymbol(s)) {\n const isRegistered = !!superJson.symbolRegistry.getIdentifier(s);\n return isRegistered;\n }\n return false;\n}, (s, superJson) => {\n const identifier = superJson.symbolRegistry.getIdentifier(s);\n return ['symbol', identifier];\n}, v => v.description, (_, a, superJson) => {\n const value = superJson.symbolRegistry.getValue(a[1]);\n if (!value) {\n throw new Error('Trying to deserialize unknown symbol');\n }\n return value;\n});\nconst constructorToName = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n Uint8ClampedArray,\n].reduce((obj, ctor) => {\n obj[ctor.name] = ctor;\n return obj;\n}, {});\nconst typedArrayRule = compositeTransformation(isTypedArray, v => ['typed-array', v.constructor.name], v => [...v], (v, a) => {\n const ctor = constructorToName[a[1]];\n if (!ctor) {\n throw new Error('Trying to deserialize unknown typed array');\n }\n return new ctor(v);\n});\nexport function isInstanceOfRegisteredClass(potentialClass, superJson) {\n if (potentialClass?.constructor) {\n const isRegistered = !!superJson.classRegistry.getIdentifier(potentialClass.constructor);\n return isRegistered;\n }\n return false;\n}\nconst classRule = compositeTransformation(isInstanceOfRegisteredClass, (clazz, superJson) => {\n const identifier = superJson.classRegistry.getIdentifier(clazz.constructor);\n return ['class', identifier];\n}, (clazz, superJson) => {\n const allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);\n if (!allowedProps) {\n return { ...clazz };\n }\n const result = {};\n allowedProps.forEach(prop => {\n result[prop] = clazz[prop];\n });\n return result;\n}, (v, a, superJson) => {\n const clazz = superJson.classRegistry.getValue(a[1]);\n if (!clazz) {\n throw new Error('Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564');\n }\n return Object.assign(Object.create(clazz.prototype), v);\n});\nconst customRule = compositeTransformation((value, superJson) => {\n return !!superJson.customTransformerRegistry.findApplicable(value);\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return ['custom', transformer.name];\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return transformer.serialize(value);\n}, (v, a, superJson) => {\n const transformer = superJson.customTransformerRegistry.findByName(a[1]);\n if (!transformer) {\n throw new Error('Trying to deserialize unknown custom value');\n }\n return transformer.deserialize(v);\n});\nconst compositeRules = [classRule, symbolRule, customRule, typedArrayRule];\nexport const transformValue = (value, superJson) => {\n const applicableCompositeRule = findArr(compositeRules, rule => rule.isApplicable(value, superJson));\n if (applicableCompositeRule) {\n return {\n value: applicableCompositeRule.transform(value, superJson),\n type: applicableCompositeRule.annotation(value, superJson),\n };\n }\n const applicableSimpleRule = findArr(simpleRules, rule => rule.isApplicable(value, superJson));\n if (applicableSimpleRule) {\n return {\n value: applicableSimpleRule.transform(value, superJson),\n type: applicableSimpleRule.annotation,\n };\n }\n return undefined;\n};\nconst simpleRulesByAnnotation = {};\nsimpleRules.forEach(rule => {\n simpleRulesByAnnotation[rule.annotation] = rule;\n});\nexport const untransformValue = (json, type, superJson) => {\n if (isArray(type)) {\n switch (type[0]) {\n case 'symbol':\n return symbolRule.untransform(json, type, superJson);\n case 'class':\n return classRule.untransform(json, type, superJson);\n case 'custom':\n return customRule.untransform(json, type, superJson);\n case 'typed-array':\n return typedArrayRule.untransform(json, type, superJson);\n default:\n throw new Error('Unknown transformation: ' + type);\n }\n }\n else {\n const transformation = simpleRulesByAnnotation[type];\n if (!transformation) {\n throw new Error('Unknown transformation: ' + type);\n }\n return transformation.untransform(json, superJson);\n }\n};\n//# sourceMappingURL=transformer.js.map","import { isMap, isArray, isPlainObject, isSet } from './is.js';\nimport { includes } from './util.js';\nconst getNthKey = (value, n) => {\n const keys = value.keys();\n while (n > 0) {\n keys.next();\n n--;\n }\n return keys.next().value;\n};\nfunction validatePath(path) {\n if (includes(path, '__proto__')) {\n throw new Error('__proto__ is not allowed as a property');\n }\n if (includes(path, 'prototype')) {\n throw new Error('prototype is not allowed as a property');\n }\n if (includes(path, 'constructor')) {\n throw new Error('constructor is not allowed as a property');\n }\n}\nexport const getDeep = (object, path) => {\n validatePath(path);\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n if (isSet(object)) {\n object = getNthKey(object, +key);\n }\n else if (isMap(object)) {\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(object, row);\n switch (type) {\n case 'key':\n object = keyOfRow;\n break;\n case 'value':\n object = object.get(keyOfRow);\n break;\n }\n }\n else {\n object = object[key];\n }\n }\n return object;\n};\nexport const setDeep = (object, path, mapper) => {\n validatePath(path);\n if (path.length === 0) {\n return mapper(object);\n }\n let parent = object;\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n if (isArray(parent)) {\n const index = +key;\n parent = parent[index];\n }\n else if (isPlainObject(parent)) {\n parent = parent[key];\n }\n else if (isSet(parent)) {\n const row = +key;\n parent = getNthKey(parent, row);\n }\n else if (isMap(parent)) {\n const isEnd = i === path.length - 2;\n if (isEnd) {\n break;\n }\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(parent, row);\n switch (type) {\n case 'key':\n parent = keyOfRow;\n break;\n case 'value':\n parent = parent.get(keyOfRow);\n break;\n }\n }\n }\n const lastKey = path[path.length - 1];\n if (isArray(parent)) {\n parent[+lastKey] = mapper(parent[+lastKey]);\n }\n else if (isPlainObject(parent)) {\n parent[lastKey] = mapper(parent[lastKey]);\n }\n if (isSet(parent)) {\n const oldValue = getNthKey(parent, +lastKey);\n const newValue = mapper(oldValue);\n if (oldValue !== newValue) {\n parent.delete(oldValue);\n parent.add(newValue);\n }\n }\n if (isMap(parent)) {\n const row = +path[path.length - 2];\n const keyToRow = getNthKey(parent, row);\n const type = +lastKey === 0 ? 'key' : 'value';\n switch (type) {\n case 'key': {\n const newKey = mapper(keyToRow);\n parent.set(newKey, parent.get(keyToRow));\n if (newKey !== keyToRow) {\n parent.delete(keyToRow);\n }\n break;\n }\n case 'value': {\n parent.set(keyToRow, mapper(parent.get(keyToRow)));\n break;\n }\n }\n }\n return object;\n};\n//# sourceMappingURL=accessDeep.js.map","import { isArray, isEmptyObject, isMap, isPlainObject, isPrimitive, isSet, } from './is.js';\nimport { escapeKey, stringifyPath } from './pathstringifier.js';\nimport { isInstanceOfRegisteredClass, transformValue, untransformValue, } from './transformer.js';\nimport { includes, forEach } from './util.js';\nimport { parsePath } from './pathstringifier.js';\nimport { getDeep, setDeep } from './accessDeep.js';\nfunction traverse(tree, walker, origin = []) {\n if (!tree) {\n return;\n }\n if (!isArray(tree)) {\n forEach(tree, (subtree, key) => traverse(subtree, walker, [...origin, ...parsePath(key)]));\n return;\n }\n const [nodeValue, children] = tree;\n if (children) {\n forEach(children, (child, key) => {\n traverse(child, walker, [...origin, ...parsePath(key)]);\n });\n }\n walker(nodeValue, origin);\n}\nexport function applyValueAnnotations(plain, annotations, superJson) {\n traverse(annotations, (type, path) => {\n plain = setDeep(plain, path, v => untransformValue(v, type, superJson));\n });\n return plain;\n}\nexport function applyReferentialEqualityAnnotations(plain, annotations) {\n function apply(identicalPaths, path) {\n const object = getDeep(plain, parsePath(path));\n identicalPaths.map(parsePath).forEach(identicalObjectPath => {\n plain = setDeep(plain, identicalObjectPath, () => object);\n });\n }\n if (isArray(annotations)) {\n const [root, other] = annotations;\n root.forEach(identicalPath => {\n plain = setDeep(plain, parsePath(identicalPath), () => plain);\n });\n if (other) {\n forEach(other, apply);\n }\n }\n else {\n forEach(annotations, apply);\n }\n return plain;\n}\nconst isDeep = (object, superJson) => isPlainObject(object) ||\n isArray(object) ||\n isMap(object) ||\n isSet(object) ||\n isInstanceOfRegisteredClass(object, superJson);\nfunction addIdentity(object, path, identities) {\n const existingSet = identities.get(object);\n if (existingSet) {\n existingSet.push(path);\n }\n else {\n identities.set(object, [path]);\n }\n}\nexport function generateReferentialEqualityAnnotations(identitites, dedupe) {\n const result = {};\n let rootEqualityPaths = undefined;\n identitites.forEach(paths => {\n if (paths.length <= 1) {\n return;\n }\n // if we're not deduping, all of these objects continue existing.\n // putting the shortest path first makes it easier to parse for humans\n // if we're deduping though, only the first entry will still exist, so we can't do this optimisation.\n if (!dedupe) {\n paths = paths\n .map(path => path.map(String))\n .sort((a, b) => a.length - b.length);\n }\n const [representativePath, ...identicalPaths] = paths;\n if (representativePath.length === 0) {\n rootEqualityPaths = identicalPaths.map(stringifyPath);\n }\n else {\n result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath);\n }\n });\n if (rootEqualityPaths) {\n if (isEmptyObject(result)) {\n return [rootEqualityPaths];\n }\n else {\n return [rootEqualityPaths, result];\n }\n }\n else {\n return isEmptyObject(result) ? undefined : result;\n }\n}\nexport const walker = (object, identities, superJson, dedupe, path = [], objectsInThisPath = [], seenObjects = new Map()) => {\n const primitive = isPrimitive(object);\n if (!primitive) {\n addIdentity(object, path, identities);\n const seen = seenObjects.get(object);\n if (seen) {\n // short-circuit result if we've seen this object before\n return dedupe\n ? {\n transformedValue: null,\n }\n : seen;\n }\n }\n if (!isDeep(object, superJson)) {\n const transformed = transformValue(object, superJson);\n const result = transformed\n ? {\n transformedValue: transformed.value,\n annotations: [transformed.type],\n }\n : {\n transformedValue: object,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n }\n if (includes(objectsInThisPath, object)) {\n // prevent circular references\n return {\n transformedValue: null,\n };\n }\n const transformationResult = transformValue(object, superJson);\n const transformed = transformationResult?.value ?? object;\n const transformedValue = isArray(transformed) ? [] : {};\n const innerAnnotations = {};\n forEach(transformed, (value, index) => {\n if (index === '__proto__' ||\n index === 'constructor' ||\n index === 'prototype') {\n throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`);\n }\n const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects);\n transformedValue[index] = recursiveResult.transformedValue;\n if (isArray(recursiveResult.annotations)) {\n innerAnnotations[index] = recursiveResult.annotations;\n }\n else if (isPlainObject(recursiveResult.annotations)) {\n forEach(recursiveResult.annotations, (tree, key) => {\n innerAnnotations[escapeKey(index) + '.' + key] = tree;\n });\n }\n });\n const result = isEmptyObject(innerAnnotations)\n ? {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type]\n : undefined,\n }\n : {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type, innerAnnotations]\n : innerAnnotations,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n};\n//# sourceMappingURL=plainer.js.map","function getType(payload) {\n return Object.prototype.toString.call(payload).slice(8, -1);\n}\n\nfunction isAnyObject(payload) {\n return getType(payload) === \"Object\";\n}\n\nfunction isArray(payload) {\n return getType(payload) === \"Array\";\n}\n\nfunction isBlob(payload) {\n return getType(payload) === \"Blob\";\n}\n\nfunction isBoolean(payload) {\n return getType(payload) === \"Boolean\";\n}\n\nfunction isDate(payload) {\n return getType(payload) === \"Date\" && !isNaN(payload);\n}\n\nfunction isEmptyArray(payload) {\n return isArray(payload) && payload.length === 0;\n}\n\nfunction isPlainObject(payload) {\n if (getType(payload) !== \"Object\")\n return false;\n const prototype = Object.getPrototypeOf(payload);\n return !!prototype && prototype.constructor === Object && prototype === Object.prototype;\n}\n\nfunction isEmptyObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length === 0;\n}\n\nfunction isEmptyString(payload) {\n return payload === \"\";\n}\n\nfunction isError(payload) {\n return getType(payload) === \"Error\" || payload instanceof Error;\n}\n\nfunction isFile(payload) {\n return getType(payload) === \"File\";\n}\n\nfunction isFullArray(payload) {\n return isArray(payload) && payload.length > 0;\n}\n\nfunction isFullObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length > 0;\n}\n\nfunction isString(payload) {\n return getType(payload) === \"String\";\n}\n\nfunction isFullString(payload) {\n return isString(payload) && payload !== \"\";\n}\n\nfunction isFunction(payload) {\n return typeof payload === \"function\";\n}\n\nfunction isType(payload, type) {\n if (!(type instanceof Function)) {\n throw new TypeError(\"Type must be a function\");\n }\n if (!Object.prototype.hasOwnProperty.call(type, \"prototype\")) {\n throw new TypeError(\"Type is not a class\");\n }\n const name = type.name;\n return getType(payload) === name || Boolean(payload && payload.constructor === type);\n}\n\nfunction isInstanceOf(value, classOrClassName) {\n if (typeof classOrClassName === \"function\") {\n for (let p = value; p; p = Object.getPrototypeOf(p)) {\n if (isType(p, classOrClassName)) {\n return true;\n }\n }\n return false;\n } else {\n for (let p = value; p; p = Object.getPrototypeOf(p)) {\n if (getType(p) === classOrClassName) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction isMap(payload) {\n return getType(payload) === \"Map\";\n}\n\nfunction isNaNValue(payload) {\n return getType(payload) === \"Number\" && isNaN(payload);\n}\n\nfunction isNumber(payload) {\n return getType(payload) === \"Number\" && !isNaN(payload);\n}\n\nfunction isNegativeNumber(payload) {\n return isNumber(payload) && payload < 0;\n}\n\nfunction isNull(payload) {\n return getType(payload) === \"Null\";\n}\n\nfunction isOneOf(a, b, c, d, e) {\n return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value);\n}\n\nfunction isUndefined(payload) {\n return getType(payload) === \"Undefined\";\n}\n\nconst isNullOrUndefined = isOneOf(isNull, isUndefined);\n\nfunction isObject(payload) {\n return isPlainObject(payload);\n}\n\nfunction isObjectLike(payload) {\n return isAnyObject(payload);\n}\n\nfunction isPositiveNumber(payload) {\n return isNumber(payload) && payload > 0;\n}\n\nfunction isSymbol(payload) {\n return getType(payload) === \"Symbol\";\n}\n\nfunction isPrimitive(payload) {\n return isBoolean(payload) || isNull(payload) || isUndefined(payload) || isNumber(payload) || isString(payload) || isSymbol(payload);\n}\n\nfunction isPromise(payload) {\n return getType(payload) === \"Promise\";\n}\n\nfunction isRegExp(payload) {\n return getType(payload) === \"RegExp\";\n}\n\nfunction isSet(payload) {\n return getType(payload) === \"Set\";\n}\n\nfunction isWeakMap(payload) {\n return getType(payload) === \"WeakMap\";\n}\n\nfunction isWeakSet(payload) {\n return getType(payload) === \"WeakSet\";\n}\n\nexport { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isFile, isFullArray, isFullObject, isFullString, isFunction, isInstanceOf, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet };\n","import { isArray, isPlainObject } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject, includeNonenumerable) {\n const propType = {}.propertyIsEnumerable.call(originalObject, key) ? \"enumerable\" : \"nonenumerable\";\n if (propType === \"enumerable\")\n carry[key] = newVal;\n if (includeNonenumerable && propType === \"nonenumerable\") {\n Object.defineProperty(carry, key, {\n value: newVal,\n enumerable: false,\n writable: true,\n configurable: true\n });\n }\n}\nfunction copy(target, options = {}) {\n if (isArray(target)) {\n return target.map((item) => copy(item, options));\n }\n if (!isPlainObject(target)) {\n return target;\n }\n const props = Object.getOwnPropertyNames(target);\n const symbols = Object.getOwnPropertySymbols(target);\n return [...props, ...symbols].reduce((carry, key) => {\n if (isArray(options.props) && !options.props.includes(key)) {\n return carry;\n }\n const val = target[key];\n const newVal = copy(val, options);\n assignProp(carry, key, newVal, target, options.nonenumerable);\n return carry;\n }, {});\n}\n\nexport { copy };\n","import { ClassRegistry } from './class-registry.js';\nimport { Registry } from './registry.js';\nimport { CustomTransformerRegistry, } from './custom-transformer-registry.js';\nimport { applyReferentialEqualityAnnotations, applyValueAnnotations, generateReferentialEqualityAnnotations, walker, } from './plainer.js';\nimport { copy } from 'copy-anything';\nexport default class SuperJSON {\n /**\n * @param dedupeReferentialEqualities If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`.\n */\n constructor({ dedupe = false, } = {}) {\n this.classRegistry = new ClassRegistry();\n this.symbolRegistry = new Registry(s => s.description ?? '');\n this.customTransformerRegistry = new CustomTransformerRegistry();\n this.allowedErrorProps = [];\n this.dedupe = dedupe;\n }\n serialize(object) {\n const identities = new Map();\n const output = walker(object, identities, this, this.dedupe);\n const res = {\n json: output.transformedValue,\n };\n if (output.annotations) {\n res.meta = {\n ...res.meta,\n values: output.annotations,\n };\n }\n const equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe);\n if (equalityAnnotations) {\n res.meta = {\n ...res.meta,\n referentialEqualities: equalityAnnotations,\n };\n }\n return res;\n }\n deserialize(payload) {\n const { json, meta } = payload;\n let result = copy(json);\n if (meta?.values) {\n result = applyValueAnnotations(result, meta.values, this);\n }\n if (meta?.referentialEqualities) {\n result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities);\n }\n return result;\n }\n stringify(object) {\n return JSON.stringify(this.serialize(object));\n }\n parse(string) {\n return this.deserialize(JSON.parse(string));\n }\n registerClass(v, options) {\n this.classRegistry.register(v, options);\n }\n registerSymbol(v, identifier) {\n this.symbolRegistry.register(v, identifier);\n }\n registerCustom(transformer, name) {\n this.customTransformerRegistry.register({\n name,\n ...transformer,\n });\n }\n allowErrorProps(...props) {\n this.allowedErrorProps.push(...props);\n }\n}\nSuperJSON.defaultInstance = new SuperJSON();\nSuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance);\nSuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance);\nSuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance);\nSuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance);\nSuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance);\nSuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance);\nSuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance);\nSuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance);\nexport { SuperJSON };\nexport const serialize = SuperJSON.serialize;\nexport const deserialize = SuperJSON.deserialize;\nexport const stringify = SuperJSON.stringify;\nexport const parse = SuperJSON.parse;\nexport const registerClass = SuperJSON.registerClass;\nexport const registerCustom = SuperJSON.registerCustom;\nexport const registerSymbol = SuperJSON.registerSymbol;\nexport const allowErrorProps = SuperJSON.allowErrorProps;\n//# sourceMappingURL=index.js.map","import SuperJSON from 'superjson';\nimport { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\n\nconst channelName = '__devtools-bridge:broadcast-channel__';\n\nexport const createBroadcastChannel = (): BaseChannelOptions => {\n const channel = new BroadcastChannel(channelName);\n const event = bridgeEventMap.broadcast;\n\n return {\n post: (data) => {\n channel.postMessage(SuperJSON.stringify({ event, data }));\n },\n on: (handler) => {\n channel.onmessage = (e) => {\n const parsed = SuperJSON.parse<{ event: string; data: unknown }>(e.data);\n if (parsed.event === event) {\n handler(parsed.data);\n }\n };\n },\n };\n};\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\n\n// Unusable. FIXME\nexport const createNativeChannel = (): BaseChannelOptions => {\n const event = bridgeEventMap.native;\n\n return {\n post: (data) => {\n const customEvent = new CustomEvent(event, {\n detail: data,\n });\n window.dispatchEvent(customEvent);\n },\n on: (handler) => {\n const eventHandler = (e: CustomEvent) => {\n console.log(e.detail);\n handler(e.detail);\n };\n\n window.addEventListener(event, eventHandler as EventListener);\n },\n };\n};\n","export function setMessageChannelContext() {\n window.__PERF_MONITOR_DEVTOOLS_MESSAGE_CHANNEL_CONTEXT__ ??= new MessageChannel();\n}\n\nexport function getMessageChannelContext() {\n return window.__PERF_MONITOR_DEVTOOLS_MESSAGE_CHANNEL_CONTEXT__ || null;\n}\n","var commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar lodash_debounce;\nvar hasRequiredLodash_debounce;\nfunction requireLodash_debounce() {\n if (hasRequiredLodash_debounce) return lodash_debounce;\n hasRequiredLodash_debounce = 1;\n var FUNC_ERROR_TEXT = \"Expected a function\";\n var NAN = 0 / 0;\n var symbolTag = \"[object Symbol]\";\n var reTrim = /^\\s+|\\s+$/g;\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n var reIsBinary = /^0b[01]+$/i;\n var reIsOctal = /^0o[0-7]+$/i;\n var freeParseInt = parseInt;\n var freeGlobal = typeof commonjsGlobal == \"object\" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n var freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\n var root = freeGlobal || freeSelf || Function(\"return this\")();\n var objectProto = Object.prototype;\n var objectToString = objectProto.toString;\n var nativeMax = Math.max, nativeMin = Math.min;\n var now = function() {\n return root.Date.now();\n };\n function debounce(func, wait, options) {\n var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = \"maxWait\" in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n var args = lastArgs, thisArg = lastThis;\n lastArgs = lastThis = void 0;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n function leadingEdge(time) {\n lastInvokeTime = time;\n timerId = setTimeout(timerExpired, wait);\n return leading ? invokeFunc(time) : result;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, result2 = wait - timeSinceLastCall;\n return maxing ? nativeMin(result2, maxWait - timeSinceLastInvoke) : result2;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;\n return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = void 0;\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = void 0;\n return result;\n }\n function cancel() {\n if (timerId !== void 0) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = void 0;\n }\n function flush() {\n return timerId === void 0 ? result : trailingEdge(now());\n }\n function debounced() {\n var time = now(), isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === void 0) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === void 0) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n function isObject(value) {\n var type = typeof value;\n return !!value && (type == \"object\" || type == \"function\");\n }\n function isObjectLike(value) {\n return !!value && typeof value == \"object\";\n }\n function isSymbol(value) {\n return typeof value == \"symbol\" || isObjectLike(value) && objectToString.call(value) == symbolTag;\n }\n function toNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == \"function\" ? value.valueOf() : value;\n value = isObject(other) ? other + \"\" : other;\n }\n if (typeof value != \"string\") {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, \"\");\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n lodash_debounce = debounce;\n return lodash_debounce;\n}\nvar lodash_debounceExports = requireLodash_debounce();\nconst index = /* @__PURE__ */ getDefaultExportFromCjs(lodash_debounceExports);\nconst noop = () => null;\nconst groupBy = (array, fn) => array.reduce(\n (acc, item) => {\n const key = fn(item);\n const group = acc[key] || [];\n acc[key] = [...group, item];\n return acc;\n },\n {}\n);\nconst DEVTOOLS_SHADOW_DOM_ID = \"__perf-monitor-devtools-container__\";\nconst DEVTOOLS_SHADOW_DOM_ROOT_ID = \"__perf-monitor-devtools-root__\";\nconst DEVTOOLS_OPEN_EDITOR_ENDPOINT = \"/__react-render-tracker__/open\";\nconst DEVTOOLS_READ_FILE_ENDPOINT = \"/__react-render-tracker__/read\";\nconst DEVTOOLS_STANDALONE = \"/__react-render-tracker__/standalone\";\nconst ElementTypeClass = 1;\nconst ElementTypeFunction = 2;\nconst ElementTypeMemo = 3;\nconst ElementTypeForwardRef = 4;\nconst ElementTypeProvider = 5;\nconst ElementTypeConsumer = 6;\nconst ElementTypeHostRoot = 7;\nconst ElementTypeHostComponent = 8;\nconst ElementTypeHostText = 9;\nconst ElementTypeHostPortal = 10;\nconst ElementTypeSuspense = 11;\nconst ElementTypeSuspenseList = 12;\nconst ElementTypeProfiler = 13;\nconst ElementTypeOtherOrUnknown = 14;\nconst FiberTypeName = {\n [ElementTypeClass]: \"Class component\",\n [ElementTypeFunction]: \"Function component\",\n [ElementTypeMemo]: \"Memo\",\n [ElementTypeForwardRef]: \"ForwardRef\",\n [ElementTypeProvider]: \"Provider\",\n [ElementTypeConsumer]: \"Consumer\",\n [ElementTypeHostRoot]: \"Render root\",\n [ElementTypeHostComponent]: \"Host component\",\n [ElementTypeHostText]: \"Host text\",\n [ElementTypeHostPortal]: \"Host portal\",\n [ElementTypeSuspense]: \"Suspense\",\n [ElementTypeSuspenseList]: \"Suspense list\",\n [ElementTypeProfiler]: \"Profiler\",\n [ElementTypeOtherOrUnknown]: \"Unknown\"\n};\nconst LegacyRoot = 0;\nconst ConcurrentRoot = 1;\nconst fiberRootMode = {\n [LegacyRoot]: \"Legacy Mode\",\n [ConcurrentRoot]: \"Concurrent Mode\"\n};\nconst TrackingObjectFiber = 0;\nconst TrackingObjectAlternate = 1;\nconst TrackingObjectStateNode = 2;\nconst TrackingObjectHook = 3;\nconst TrackingObjectTypeName = {\n [TrackingObjectFiber]: \"fiber\",\n [TrackingObjectAlternate]: \"alternate\",\n [TrackingObjectStateNode]: \"stateNode\",\n [TrackingObjectHook]: \"hook\"\n};\nexport {\n ConcurrentRoot,\n DEVTOOLS_OPEN_EDITOR_ENDPOINT,\n DEVTOOLS_READ_FILE_ENDPOINT,\n DEVTOOLS_SHADOW_DOM_ID,\n DEVTOOLS_SHADOW_DOM_ROOT_ID,\n DEVTOOLS_STANDALONE,\n ElementTypeClass,\n ElementTypeConsumer,\n ElementTypeForwardRef,\n ElementTypeFunction,\n ElementTypeHostComponent,\n ElementTypeHostPortal,\n ElementTypeHostRoot,\n ElementTypeHostText,\n ElementTypeMemo,\n ElementTypeOtherOrUnknown,\n ElementTypeProfiler,\n ElementTypeProvider,\n ElementTypeSuspense,\n ElementTypeSuspenseList,\n FiberTypeName,\n LegacyRoot,\n TrackingObjectAlternate,\n TrackingObjectFiber,\n TrackingObjectHook,\n TrackingObjectStateNode,\n TrackingObjectTypeName,\n index as debounce,\n fiberRootMode,\n groupBy,\n noop\n};\n//# sourceMappingURL=index.js.map\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\nimport { getMessageChannelContext } from './context';\nimport { noop } from '@zk-tech/rrt-shared';\n\nexport const createMessageChannelClient = (): BaseChannelOptions => {\n const event = bridgeEventMap.message;\n const channel = getMessageChannelContext();\n\n if (!channel) {\n return { post: noop, on: noop };\n }\n\n return {\n post: (data) => {\n channel.port1.postMessage({ event, data });\n },\n on: (handler) => {\n channel.port1.onmessage = ({ data }: MessageEvent<{ event: string; data: unknown }>) => {\n if (data.event === event) {\n handler(data.data);\n }\n };\n },\n };\n};\n","import { bridgeEventMap } from '@/config';\nimport { BaseChannelOptions } from '@/types';\nimport { getMessageChannelContext } from './context';\nimport { noop } from '@zk-tech/rrt-shared';\n\nexport const createMessageChannelServer = (): BaseChannelOptions => {\n const event = bridgeEventMap.message;\n const channel = getMessageChannelContext();\n\n if (!channel) {\n return { post: noop, on: noop };\n }\n\n return {\n post: (data) => {\n channel.port2.postMessage({ event, data });\n },\n on: (handler) => {\n channel.port2.onmessage = ({ data }: MessageEvent<{ event: string; data: unknown }>) => {\n if (data.event === event) {\n handler(data.data);\n }\n };\n },\n };\n};\n","import { createBroadcastChannel } from './rpc/broadcast';\nimport { createNativeChannel } from './rpc/native';\nimport {\n createMessageChannelClient,\n createMessageChannelServer,\n setMessageChannelContext,\n} from './rpc/message';\nimport { BaseChannelOptions, MessageHost, MessagePreset } from './types';\n\nexport const bridgeEventMap: Record<MessagePreset, string> = {\n native: '__devtools-bridge-event-native',\n message: '__devtools-bridge-event-message',\n broadcast: '__devtools-bridge-event-broadcast',\n};\n\nexport const getBridgeChannel = (preset: MessagePreset, host: MessageHost) => {\n const channelMappings: Record<MessagePreset, Record<MessageHost, () => BaseChannelOptions>> = {\n native: {\n client: createNativeChannel,\n backend: createNativeChannel,\n },\n message: {\n client: createMessageChannelClient,\n backend: createMessageChannelServer,\n },\n broadcast: {\n client: createBroadcastChannel,\n backend: createBroadcastChannel,\n },\n };\n\n if (preset === 'message') {\n setMessageChannelContext();\n }\n\n return channelMappings[preset][host]();\n};\n","import { BirpcReturn, createBirpc } from 'birpc';\nimport { ClientRpcFunctions, BackendRpcFunctions, MessagePreset } from '@/types';\nimport { getBridgeChannel } from '@/config';\n\nexport const createClientRpc = (functions: ClientRpcFunctions, preset: MessagePreset) => {\n const channel = getBridgeChannel(preset, 'client');\n const rpc = createBirpc<BackendRpcFunctions, ClientRpcFunctions>(functions, {\n ...channel,\n timeout: -1,\n eventNames: [\n 'reloadPage',\n 'highlightRenderer',\n 'startHighlight',\n 'stopHighlight',\n 'startInspect',\n 'stopInspect',\n 'updateConfig',\n 'resetConfig',\n 'breakLeakedObjectRefs',\n 'cancelExposingLeakedObjectsToGlobal',\n ],\n });\n\n return rpc;\n};\n\nexport const createBackendRpc = (functions: BackendRpcFunctions, preset: MessagePreset) => {\n const channel = getBridgeChannel(preset, 'backend');\n const rpc = createBirpc<ClientRpcFunctions, BackendRpcFunctions>(functions, {\n ...channel,\n timeout: -1,\n eventNames: ['activedRenderers', 'highlighting', 'memoryLeaks', 'reactRenderers', 'eventsState'],\n });\n\n return rpc;\n};\n\nexport type ClientRpc = BirpcReturn<BackendRpcFunctions, ClientRpcFunctions>;\nexport type BackendRpc = BirpcReturn<ClientRpcFunctions, BackendRpcFunctions>;\n"],"names":["clearTimeout","setTimeout","_a","getType","isPlainObject","isArray","walker","transformed","result","isSymbol"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zk-tech/rrt-bridge",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "private": false,
5
5
  "types": "./dist/index.d.ts",
6
6
  "main": "./dist/index.cjs",
@@ -29,7 +29,7 @@
29
29
  }
30
30
  },
31
31
  "dependencies": {
32
- "@zk-tech/rrt-shared": "0.0.2"
32
+ "@zk-tech/rrt-shared": "0.0.3"
33
33
  },
34
34
  "files": [
35
35
  "dist"