diff --git a/pkg/Library/Core/arcs.js.map b/pkg/Library/Core/arcs.js.map
index e4793f74..d701c0ed 100644
--- a/pkg/Library/Core/arcs.js.map
+++ b/pkg/Library/Core/arcs.js.map
@@ -2,6 +2,6 @@
"version": 3,
"sources": ["../../../core/js/core/Particle.js", "../../../core/js/core/EventEmitter.js", "../../../core/js/utils/types.js", "../../../core/js/utils/log.js", "../../../core/js/core/Arc.js", "../../../core/js/utils/object.js", "../../../core/js/utils/rand.js", "../../../core/js/core/Decorator.js", "../../../core/js/core/Host.js", "../../../core/js/core/Store.js", "../../../core/js/utils/id.js", "../../../core/js/Runtime.js", "../../../core/js/recipe/RecipeParser.js", "../../../core/js/utils/matching.js", "../../../core/js/recipe/StoreCook.js", "../../../core/js/recipe/ParticleCook.js", "../../../core/js/recipe/Chef.js", "../../../core/js/utils/paths.js", "../../../core/js/isolation/code.js", "../../../core/js/isolation/vanilla.js", "../../../core/js/utils/utils.js", "../../../core/js/utils/date.js", "../../../core/js/utils/task.js", "../../../core/src/arcs.ts"],
"sourcesContent": ["/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n/*\n * PSA: code in this file is subject to isolation restrictions, including runtime processing.\n * Particle module interfaces with 3p code, and is often loaded into isolation contexts.\n**/\nconst { create, assign, keys, values, entries, defineProperty, setPrototypeOf } = Object;\nconst scope = globalThis['scope'] ?? {};\nconst { log, timeout } = scope;\nconst nob = () => create(null);\n// yay lambda, he gets a semi-colon ... named classes not so much\nconst storePrototype = new class {\n get empty() {\n return this.length === 0;\n }\n get data() {\n return this;\n }\n get pojo() {\n return this.data;\n }\n get json() {\n return JSON.stringify(this.pojo);\n }\n get pretty() {\n return JSON.stringify(this.pojo, null, ' ');\n }\n get keys() {\n return keys(this.data);\n }\n get length() {\n return keys(this.data).length;\n }\n get values() {\n return values(this.data);\n }\n get entries() {\n return entries(this.data);\n }\n set(key, value) {\n this.data[key] = value;\n }\n setByIndex(index, value) {\n this.data[this.keys[index]] = value;\n }\n add(...values) {\n values.forEach(value => this.data[scope.makeKey()] = value);\n }\n push(...values) {\n this.add(...values);\n }\n remove(value) {\n entries(this.data).find(([key, entry]) => {\n if (entry === value) {\n delete this.data[key];\n return true;\n }\n });\n }\n has(key) {\n return this.data[key] !== undefined;\n }\n get(key) {\n return this.getByKey(key);\n }\n getByKey(key) {\n return this.data[key];\n }\n getByIndex(index) {\n return this.data[this.keys[index]];\n }\n delete(key) {\n delete this.data[key];\n }\n deleteByIndex(index) {\n delete this.data[this.keys[index]];\n }\n assign(dictionary) {\n assign(this.data, dictionary);\n }\n map(mapFunc) {\n return this.values.map(mapFunc);\n }\n toString() {\n return this.pretty;\n }\n};\n/**\n * ParticleAPI functions are called at various points in the particle's lifecycle.\n * Developers should override these functions as needed to give a particle\n * functionality.\n */\nexport class ParticleApi {\n /**\n * Particles that render on a surface should provide a template. The template\n * can include double curly bracketed keys that will be interpolated at\n * runtime.\n *\n * To dynamically change the template, we double curly braced keys must be\n * the only thing inside a div or span:\n * ```\n * {{key}}.\n *
\n * ```\n */\n get template() {\n return null;\n }\n /**\n * shouldUpdate returns a boolean that indicates if runtime should update\n * when inputs or state change.\n *\n * This function can be overwritten to implement the desired\n * behaviour.\n *\n * @param inputs\n * @param state\n *\n * @returns a boolean to indicate if updates should be allowed.\n */\n shouldUpdate(inputs, state) {\n return true;\n }\n /**\n * Update is called anytime an input to the particle changes.\n *\n * This function can be overwritten to implement the desired\n * behaviour.\n *\n * Inputs are the stores the particle is bound to.\n * State is an object that can be changed and passed to sub-functions.\n * Tools allow the particle to perform supervised activities -\n * for example services are a tool.\n *\n * The update function can return an object containing the new desired\n * value(s) for the stores. For example, if we wanted to update the\n * `Person` and `Address` stores we would return:\n *\n * ```\n * return {\n * Person: 'Jane Smith',\n * Address: '123 Main Street'\n * };\n * ```\n *\n * @param inputs\n * @param state\n * @param tools\n *\n * @returns [OPTIONAL] object containing store to value mappings\n */\n async update(inputs, state, tools) {\n return null;\n }\n /**\n * shouldRender returns a boolean that indicates if runtime should\n * render the template.\n *\n * This function can be overwritten to implement the desired\n * behaviour.\n *\n * @param inputs\n * @param state\n *\n * @returns a boolean to indicate if the template should be re-rendered.\n */\n shouldRender(inputs, state) {\n return true;\n }\n /**\n * Render returns an object that contains the key: value pairings\n * that will be interpolated into the {@link template | template}.\n * For example, if the template contained keys `class`,\n * `hideDiv`, and `displayTxt` we could return:\n * ```\n * {\n * class: 'title`,\n * hideDiv: false,\n * displayTxt: \"My Page's Title\"\n * }\n * ```\n *\n * This functions can be overwritten to return the desired\n * values.\n *\n * @param inputs\n * @param state\n */\n render(inputs, state) {\n return null;\n }\n}\nconst privateProperty = initialValue => {\n let value = initialValue;\n return { get: () => value, set: v => value = v };\n};\nexport class Particle {\n pipe;\n impl;\n internal;\n constructor(proto, pipe, beStateful) {\n this.pipe = pipe;\n this.impl = create(proto);\n defineProperty(this, 'internal', privateProperty(nob()));\n this.internal.$busy = 0;\n //if (beStateful) {\n this.internal.beStateful = true;\n this.internal.state = nob();\n //}\n }\n get log() {\n return this.pipe?.log || log;\n }\n get template() {\n return this.impl?.template;\n }\n get config() {\n return {\n template: this.template\n };\n }\n // set-trap for inputs, so we can do work when inputs change\n set inputs(inputs) {\n //this.log(inputs);\n this.internal.inputs = inputs;\n this.invalidateInputs();\n }\n get inputs() {\n return this.internal.inputs;\n }\n get state() {\n return this.internal.state;\n }\n async service(request) {\n return this.pipe?.service?.(request);\n }\n invalidateInputs() {\n this.internal.$propChanged = true;\n this.invalidate();\n }\n // validate after the next microtask\n invalidate() {\n if (!this.internal.validator) {\n //this.internal.validator = this.async(this.validate);\n this.internal.validator = timeout(this.validate.bind(this), 1);\n }\n }\n // call fn after a microtask boundary\n async(fn) {\n return Promise.resolve().then(fn.bind(this));\n }\n // activate particle lifecycle\n async validate() {\n //this.log('validate');\n if (this.internal.validator) {\n // try..finally to ensure we nullify `validator`\n try {\n this.internal.$validateAfterBusy = this.internal.$busy;\n if (!this.internal.$busy) {\n // if we're not stateful\n if (!this.internal.beStateful) {\n // then it's a fresh state every validation\n this.internal.state = nob();\n }\n // inputs are immutable (changes to them are ignored)\n this.internal.inputs = this.validateInputs();\n // let the impl decide what to do\n await this.maybeUpdate();\n }\n }\n catch (e) {\n log.error(e);\n }\n // nullify validator _after_ methods so state changes don't reschedule validation\n this.internal.validator = null;\n this.internal.$propChanged = false;\n }\n }\n validateInputs() {\n // shallow-clone our input dictionary\n const inputs = assign(nob(), this.inputs);\n // for each input, try to provide prototypical helpers\n entries(inputs).forEach(([key, value]) => {\n if (value && (typeof value === 'object')) {\n if (!Array.isArray(value)) {\n value = setPrototypeOf({ ...value }, storePrototype);\n }\n inputs[key] = value;\n }\n });\n //return harden(inputs);\n return inputs;\n }\n implements(methodName) {\n return typeof this.impl?.[methodName] === 'function';\n }\n async maybeUpdate() {\n if (await this.checkInit()) {\n if (!this.canUpdate()) {\n // we might want to render even if we don't update,\n // if we `outputData` the system will add render models\n this.outputData(null);\n }\n if (await this.shouldUpdate(this.inputs, this.state)) {\n this.update();\n }\n }\n }\n async checkInit() {\n if (!this.internal.initialized) {\n this.internal.initialized = true;\n if (this.implements('initialize')) {\n await this.asyncMethod(this.impl.initialize);\n }\n }\n return true;\n }\n canUpdate() {\n return this.implements('update');\n }\n async shouldUpdate(inputs, state) {\n //return true;\n // not implementing `shouldUpdate`, means the value should always be true\n // TODO(sjmiles): this violates our 'false by default' convention, but the\n // naming is awkward: `shouldNotUpdate`? `preventUpdate`?\n return !this.impl?.shouldUpdate || (await this.impl.shouldUpdate(inputs, state) !== false);\n }\n update() {\n this.asyncMethod(this.impl?.update);\n }\n outputData(data) {\n this.pipe?.output?.(data, this.maybeRender());\n }\n maybeRender() {\n if (this.template) {\n const { inputs, state } = this.internal;\n if (this.impl?.shouldRender?.(inputs, state) !== false) {\n if (this.implements('render')) {\n return this.impl.render(inputs, state);\n }\n else {\n return { ...inputs, ...state };\n }\n }\n }\n }\n async handleEvent({ handler, data }) {\n const onhandler = this.impl?.[handler];\n if (onhandler) {\n this.internal.inputs.eventlet = data;\n await this.asyncMethod(onhandler.bind(this.impl), { eventlet: data });\n this.internal.inputs.eventlet = null;\n }\n else {\n //this.log(`event handler [${handler}] not found`);\n }\n }\n async asyncMethod(asyncMethod, injections) {\n if (asyncMethod) {\n const { inputs, state } = this.internal;\n const stdlib = {\n service: async (request) => this.service(request),\n invalidate: () => this.invalidate(),\n output: async (data) => this.outputData(data)\n };\n const task = asyncMethod.bind(this.impl, inputs, state, { ...stdlib, ...injections });\n this.outputData(await this.try(task));\n if (!this.internal.$busy && this.internal.$validateAfterBusy) {\n this.invalidate();\n }\n }\n }\n async try(asyncFunc) {\n this.internal.$busy++;\n try {\n return await asyncFunc();\n }\n catch (e) {\n log.error(e);\n }\n finally {\n this.internal.$busy--;\n }\n }\n}\nscope.harden(globalThis);\nscope.harden(Particle);\n// log('Any leaked values? Must pass three tests:');\n// try { globalThis['sneaky'] = 42; } catch(x) { log('sneaky test: pass'); }\n// try { Particle['foo'] = 42; } catch(x) { log('Particle.foo test: pass'); }\n// try { log['foo'] = 42; } catch(x) { log('log.foo test: pass'); };\nParticle;\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport class EventEmitter {\n // map of event name to listener array\n listeners = {};\n getEventListeners(eventName) {\n return this.listeners[eventName] || (this.listeners[eventName] = []);\n }\n fire(eventName, ...args) {\n const listeners = this.getEventListeners(eventName);\n if (listeners?.forEach) {\n listeners.forEach(listener => listener(...args));\n }\n }\n listen(eventName, listener, listenerName) {\n const listeners = this.getEventListeners(eventName);\n listeners.push(listener);\n listener._name = listenerName || '(unnamed listener)';\n return listener;\n }\n unlisten(eventName, listener) {\n const list = this.getEventListeners(eventName);\n const index = (typeof listener === 'string') ? list.findIndex(l => l._name === listener) : list.indexOf(listener);\n if (index >= 0) {\n list.splice(index, 1);\n }\n else {\n console.warn('failed to unlisten from', eventName);\n }\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const logKinds = ['log', 'group', 'groupCollapsed', 'groupEnd', 'dir'];\nexport const errKinds = ['warn', 'error'];\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logKinds, errKinds } from './types.js';\nconst { fromEntries } = Object;\nconst _logFactory = (enable, preamble, bg, color, kind = 'log') => {\n if (!enable) {\n return () => { };\n }\n if (kind === 'dir') {\n return console.dir.bind(console);\n }\n const style = `background: ${bg || 'gray'}; color: ${color || 'white'}; padding: 1px 6px 2px 7px; border-radius: 6px 0 0 6px;`;\n return console[kind].bind(console, `%c${preamble}`, style);\n};\nexport const logFactory = (enable, preamble, bg = '', color = '') => {\n const debugLoggers = fromEntries(logKinds.map(kind => [kind, _logFactory(enable, preamble, bg, color, kind)]));\n const errorLoggers = fromEntries(errKinds.map(kind => [kind, _logFactory(true, preamble, bg, color, kind)]));\n const loggers = { ...debugLoggers, ...errorLoggers };\n // Inject `log` as default, keeping all loggers available to be invoked by name.\n const log = loggers.log;\n Object.assign(log, loggers);\n return log;\n};\nlogFactory.flags = globalThis.config?.logFlags || {};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { EventEmitter } from './EventEmitter.js';\nimport { logFactory } from '../utils/log.js';\nconst customLogFactory = (id) => logFactory(logFactory.flags.arc, `Arc (${id})`, 'slateblue');\nconst { assign, keys, entries, create } = Object;\nconst values = (o) => Object.values(o);\nconst nob = () => create(null);\nexport class Arc extends EventEmitter {\n log;\n id;\n meta;\n stores;\n hosts;\n surface;\n composer;\n hostService;\n constructor(id, meta, surface) {\n super();\n this.id = id;\n this.meta = meta;\n this.surface = surface;\n this.hosts = nob();\n this.stores = nob();\n this.log = customLogFactory(id);\n }\n async addHost(host, surface) {\n // to support hosts we need a composer\n await this.ensureComposer();\n // bookkeep\n this.hosts[host.id] = host;\n host.arc = this;\n // TODO(sjmiles): support per host surfacing?\n //await host.bindToSurface(surface ?? this.surface);\n // begin work\n this.updateHost(host);\n return host;\n }\n async ensureComposer() {\n if (!this.composer && this.surface) {\n // create composer\n this.composer = await this.surface.createComposer('root');\n // pipeline for events from composer to this.onevent\n // TODO(sjmiles): use 'bind' to avoid a closure and improve the stack trace\n this.composer.onevent = this.onevent.bind(this);\n }\n }\n rerender() {\n values(this.hosts).forEach(h => h.rerender());\n }\n removeHost(id) {\n this.hosts[id]?.detach();\n delete this.hosts[id];\n }\n addStore(storeId, store) {\n if (store && !this.stores[storeId]) {\n this.stores[storeId] = store;\n store.listen('change', () => this.storeChanged(storeId, store), this.id);\n }\n }\n removeStore(storeId) {\n const store = this.stores[storeId];\n if (store) {\n store.unlisten('change', this.id);\n }\n delete this.stores[storeId];\n }\n // TODO(sjmiles): 2nd param is used in overrides, make explicit\n storeChanged(storeId, store) {\n this.log(`storeChanged: \"${storeId}\"`);\n const isBound = inputs => inputs && inputs.some(input => values(input)[0] == storeId || keys(input)[0] == storeId);\n values(this.hosts).forEach(host => {\n const inputs = host.meta?.inputs;\n if (inputs === '*' || isBound(inputs)) {\n this.log(`host \"${host.id}\" has interest in \"${storeId}\"`);\n // TODO(sjmiles): we only have to update inputs for storeId, we lose efficiency here\n this.updateHost(host);\n }\n });\n this.fire('store-changed', storeId);\n }\n updateParticleMeta(hostId, meta) {\n const host = this.hosts[hostId];\n host.meta = meta;\n this.updateHost(host);\n }\n updateHost(host) {\n host.inputs = this.computeInputs(host);\n }\n // TODO(sjmiles): debounce? (update is sync-debounced already)\n // complement to `assignOutputs`\n computeInputs(host) {\n const inputs = nob();\n const inputBindings = host.meta?.inputs;\n if (inputBindings === '*') {\n // TODO(sjmiles): we could make the contract that the bindAll inputs are\n // names (or names + meta) only. The Particle could look up values via\n // service (to reduce throughput requirements)\n entries(this.stores).forEach(([name, store]) => inputs[name] = store.pojo);\n }\n else {\n const staticInputs = host.meta?.staticInputs;\n assign(inputs, staticInputs);\n if (inputBindings) {\n inputBindings.forEach(input => this.computeInput(entries(input)[0], inputs));\n this.log(`computeInputs(${host.id}) =`, inputs);\n }\n }\n return inputs;\n }\n computeInput([name, binding], inputs) {\n const storeName = binding || name;\n const store = this.stores[storeName];\n if (store) {\n inputs[name] = store.pojo;\n }\n else {\n // TODO(sjmiles): is this ok or not?\n //this.log.warn(`computeInput: \"${storeName}\" (bound to \"${name}\") not found`);\n }\n }\n // complement to `computeInputs`\n assignOutputs({ id, meta }, outputs) {\n const names = keys(outputs);\n if (meta?.outputs && names.length) {\n names.forEach(name => this.assignOutput(name, outputs[name], meta.outputs));\n this.log(`[end][${id}] assignOutputs:`, outputs);\n }\n }\n assignOutput(name, output, outputs) {\n if (output !== undefined) {\n const binding = this.findOutputByName(outputs, name) || name;\n const store = this.stores[binding];\n if (!store) {\n if (outputs?.[name]) {\n this.log.warn(`assignOutputs: no \"${binding}\" store for output \"${name}\"`);\n }\n }\n else {\n // Note: users can mess up output data in any way they see fit, so we should\n // probably invent `outputCleansing`.\n this.log(`assignOutputs: \"${name}\" is dirty, updating Store \"${binding}\"`, output);\n store.data = output;\n }\n }\n }\n findOutputByName(outputs, name) {\n const output = outputs?.find(output => keys(output || 0)[0] === name);\n if (output) {\n return values(output)[0];\n }\n }\n async render(packet) {\n if (this.composer) {\n this.composer.render(packet);\n }\n else {\n //this.log.low('render called, but composer is null', packet);\n }\n }\n onevent(pid, eventlet) {\n const host = this.hosts[pid];\n if (host) {\n host.handleEvent(eventlet);\n }\n }\n async service(host, request) {\n let result = await this.surface?.service(request);\n if (result === undefined) {\n result = this.hostService?.(host, request);\n }\n return result;\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n/*\n * update the fields of `obj` with the fields of `data`,\n * perturbing `obj` as little as possible (since it might be a magic proxy thing\n * like an Automerge document)\n */\nexport const shallowUpdate = (obj, data) => {\n let result = data;\n if (!data) {\n //\n }\n else if (Array.isArray(data)) {\n if (!Array.isArray(obj)) {\n // TODO(sjmiles): eek, very perturbing to obj\n obj = [];\n }\n for (let i = 0; i < data.length; i++) {\n const value = data[i];\n if (obj[i] !== value) {\n obj[i] = value;\n }\n }\n const overage = obj.length - data.length;\n if (overage > 0) {\n obj.splice(data.length, overage);\n }\n }\n else if (typeof data === 'object') {\n result = (obj && typeof obj === 'object') ? obj : Object.create(null);\n const seen = {};\n // for each key in input data ...\n Object.keys(data).forEach(key => {\n // copy that data into output\n result[key] = data[key];\n // remember the key\n seen[key] = true;\n });\n // for each key in the output data...\n Object.keys(result).forEach(key => {\n // if this key was not in the input, remove it\n if (!seen[key]) {\n delete result[key];\n }\n });\n }\n return result;\n};\nexport const shallowMerge = (obj, data) => {\n if (data == null) {\n return null;\n }\n if (typeof data === 'object') {\n const result = (obj && typeof obj === 'object') ? obj : Object.create(null);\n Object.keys(data).forEach(key => result[key] = data[key]);\n return result;\n }\n return data;\n};\nexport function deepCopy(datum) {\n if (!datum) {\n return datum;\n }\n else if (Array.isArray(datum)) {\n // This is trivially type safe but tsc needs help\n return datum.map(element => deepCopy(element));\n }\n else if (typeof datum === 'object') {\n const clone = Object.create(null);\n Object.entries(datum).forEach(([key, value]) => {\n clone[key] = deepCopy(value);\n });\n return clone;\n }\n else {\n return datum;\n }\n}\nexport const deepEqual = (a, b) => {\n const type = typeof a;\n // must be same type to be equal\n if (type !== typeof b) {\n return false;\n }\n // we are `deep` because we recursively study object types\n if (type === 'object' && a && b) {\n const aProps = Object.getOwnPropertyNames(a);\n const bProps = Object.getOwnPropertyNames(b);\n // equal if same # of props, and no prop is not deepEqual\n return (aProps.length == bProps.length) && !aProps.some(name => !deepEqual(a[name], b[name]));\n }\n // finally, perform simple comparison\n return (a === b);\n};\nexport const deepUndefinedToNull = (obj) => {\n if (obj === undefined) {\n return null;\n }\n if (obj && (typeof obj === 'object')) {\n // we are `deep` because we recursively study object types\n const props = Object.getOwnPropertyNames(obj);\n props.forEach(name => {\n const prop = obj[name];\n if (prop === undefined) {\n delete obj[name];\n //obj[name] = null;\n }\n else {\n deepUndefinedToNull(prop);\n }\n });\n }\n return obj;\n};\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nconst { floor, pow, random } = Math;\n// random n-digit number\nexport const key = (digits) => floor((1 + random() * 9) * pow(10, digits - 1));\n// random integer from [0..range)\nexport const irand = (range) => floor(random() * range);\n// random element from array\nexport const arand = (array) => array[irand(array.length)];\n// test if event has occured, where `probability` is between [0..1]\nexport const prob = (probability) => Boolean(random() < probability);\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nimport { deepCopy } from '../utils/object.js';\nconst log = logFactory(logFactory.flags.decorator, 'Decorator', 'plum');\nconst { values, entries } = Object;\nconst opaqueData = {};\nexport const Decorator = {\n setOpaqueData(name, data) {\n opaqueData[name] = data; //deepCopy(data);\n return name;\n },\n getOpaqueData(name) {\n return opaqueData[name];\n },\n maybeDecorateModel(model, particle) {\n if (model && !Array.isArray(model)) {\n // for each item in model, regardless of key\n values(model).forEach((item) => {\n // is an object?\n if (item && (typeof item === 'object')) {\n // are there sub-models\n if (item['models']) {\n // the decorate this item\n log('applying decorator(s) to list:', item);\n this.maybeDecorateItem(item, particle);\n }\n else {\n // otherwise, check if there are sub-items to decorate\n if (model?.filter || model?.decorator || model?.collateBy) {\n log('scanning for lists in sub-model:', item);\n this.maybeDecorateModel(item, particle);\n }\n }\n }\n });\n }\n // possibly decorated model\n return model;\n },\n maybeDecorateItem(item, particle) {\n let models = (typeof item.models === 'string') ? this.getOpaqueData(item.models) : item.models;\n if (models) {\n // do a decorator\n models = maybeDecorate(models, item.decorator, particle);\n // do a filter\n models = maybeFilter(models, item.filter, particle.impl);\n // do a collator\n models = maybeCollateBy(models, item);\n // mutate items\n item.models = models;\n //console.log(JSON.stringify(models, null, ' '));\n }\n },\n};\nconst maybeDecorate = (models, decorator, particle) => {\n decorator = particle.impl[decorator] ?? decorator;\n const { inputs, state } = particle.internal;\n if (decorator) {\n // TODO(cromwellian): Could be expensive to do everything, store responsibility?\n const immutableInputs = Object.freeze(deepCopy(inputs));\n // we don't want the decorator to have access to mutable globals\n const immutableState = Object.freeze(deepCopy(state));\n // models become decorous\n models = models.map(model => {\n // use previously mutated data or initialize\n // TODO(cromwellian): I'd like to do Object.freeze() here, also somehow not mutate the models inplace\n // Possibly have setOpaqueData wrap the data so the privateData lives on the wrapper + internal immutable data\n model.privateData = model.privateData || {};\n // TODO(cromwellian): also could be done once during setOpaqueData() if we can track privateData differently\n const immutableModel = Object.freeze(deepCopy(model));\n const decorated = decorator(immutableModel, immutableInputs, immutableState);\n // set new privateData from returned\n model.privateData = decorated.privateData;\n return { ...decorated, ...model, };\n });\n // sort (possible that all values undefined)\n models.sort(sortByLc('sortKey'));\n log('decoration was performed');\n }\n //models.forEach(model => delete model.privateData);\n return models;\n};\nconst maybeFilter = (models, filter, impl) => {\n filter = impl[filter] ?? filter;\n if (filter && models) {\n // models become filtrated\n models = models.filter(filter);\n }\n return models;\n};\nconst maybeCollateBy = (models, item) => {\n // construct requested sub-lists\n entries(item).forEach(([name, collator]) => {\n // generate named collations for items of the form `[name]: {collateBy}`\n if (collator?.['collateBy']) {\n // group the models into buckets based on the model-field named by `collateBy`\n const collation = collate(models, collator['collateBy']);\n models = collationToRenderModels(collation, name, collator['$template']);\n }\n });\n return models;\n};\nconst sortByLc = key => (a, b) => sort(String(a[key]).toLowerCase(), String(b[key]).toLowerCase());\n//const sortBy = key => (a, b) => sort(a[key], b[key]);\nconst sort = (a, b) => a < b ? -1 : a > b ? 1 : 0;\nconst collate = (models, collateBy) => {\n const collation = {};\n models.forEach(model => {\n const keyValue = model[collateBy];\n if (keyValue) {\n const category = collation[keyValue] || (collation[keyValue] = []);\n category.push(model);\n }\n });\n return collation;\n};\nconst collationToRenderModels = (collation, name, $template) => {\n return entries(collation).map(([key, models]) => ({\n key,\n [name]: { models, $template },\n single: !(models['length'] !== 1),\n ...models?.[0]\n }));\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nimport { deepEqual, deepCopy } from '../utils/object.js';\nimport { arand } from '../utils/rand.js';\nimport { EventEmitter } from './EventEmitter.js';\nimport { Decorator } from './Decorator.js';\nconst { entries, keys } = Object;\nconst customLogFactory = (id) => logFactory(logFactory.flags.host, `Host (${id})`, arand(['#5a189a', '#51168b', '#48137b', '#6b2fa4', '#7b46ae', '#3f116c']));\n/**\n * Host owns metadata (e.g. `id`, `container`) that its Particle is not allowed to access.\n * Host knows how to talk, asynchronously, to its Particle (potentially using a bus).\n**/\n/* TODO(sjmiles):\nUpdate Cycle Documented Briefly\n1. when a Store changes it invokes it's listeners\n2. when an Arc hears a Store change, it updates Hosts bound to the Store\n3. Arc updates Host by creating an `inputs` object from Stores and metadata\n - ignores fact inputs are accumulated\n - ignores information about which Store has updated\n4. `inputs` object is assigned to `hosts.inputs` \uD83D\uDE43\n5. Host does an expensive `deepEqual` equality check. Turning on `host` logging should reveal `this.log('inputs are not interesting, skipping update');` if data is caught in this trap\n - we can use reference testing here if we are more careful\n about using immutable data\n6. the particle.inputs are assigned (but is really a *merge*)\n*/\nexport class Host extends EventEmitter {\n arc;\n id;\n lastOutput;\n lastPacket;\n lastRenderModel;\n log;\n meta;\n particle;\n constructor(id) {\n super();\n this.log = customLogFactory(id);\n this.id = id;\n }\n onevent(eventlet) {\n this.arc?.onevent(eventlet);\n }\n // Particle and ParticleMeta are separate, host specifically integrates these on behalf of Particle\n installParticle(particle, meta) {\n if (this.particle) {\n this.detachParticle();\n }\n if (particle) {\n this.particle = particle;\n this.meta = meta || this.meta;\n }\n }\n get container() {\n return this.meta?.container || 'root';\n }\n detach() {\n this.detachParticle();\n this.arc = null;\n }\n detachParticle() {\n if (this.particle) {\n this.render({ $clear: true });\n this.particle = null;\n this.meta = null;\n }\n }\n async service(request) {\n if (request?.decorate) {\n return Decorator.maybeDecorateModel(request.model, this.particle);\n }\n return this.arc?.service(this, request);\n }\n output(outputModel, renderModel) {\n if (outputModel) {\n this.lastOutput = outputModel;\n this.arc?.assignOutputs(this, outputModel);\n }\n if (this.template) {\n Decorator.maybeDecorateModel(renderModel, this.particle);\n this.lastRenderModel = { ...renderModel };\n this.render(renderModel);\n }\n }\n rerender() {\n // does not re-render Frame/Slot content\n // you probably want Arc::rerender\n if (this.lastRenderModel) {\n this.render(this.lastRenderModel);\n }\n }\n render(model) {\n const { id, container, template } = this;\n const content = { model, template };\n const packet = { id, container, content };\n this.arc?.render(packet);\n this.lastPacket = packet;\n }\n set inputs(inputs) {\n if (this.particle && inputs) {\n const lastInputs = this.particle.internal.inputs;\n if (this.dirtyCheck(inputs, lastInputs, this.lastOutput)) {\n this.particle.inputs = deepCopy({ ...this.meta?.staticInputs, ...inputs });\n this.fire('inputs-changed');\n }\n else {\n this.log('inputs are uninteresting, skipping update');\n }\n }\n }\n dirtyCheck(inputs, lastInputs, lastOutput) {\n const dirtyBits = ([n, v]) => (lastOutput?.[n] && !deepEqual(lastOutput[n], v))\n || !deepEqual(lastInputs?.[n], v);\n return !lastInputs\n || entries(inputs).length !== this.lastInputsLength(lastInputs)\n || entries(inputs).some(dirtyBits);\n }\n lastInputsLength(lastInputs) {\n return keys(lastInputs).filter(key => !this.meta?.staticInputs?.[key] && key !== 'eventlet').length;\n }\n get config() {\n return this.particle?.config;\n }\n get template() {\n return this.config?.template;\n }\n invalidate() {\n this.particle?.invalidate();\n }\n handleEvent(eventlet) {\n return this.particle?.handleEvent(eventlet);\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { EventEmitter } from './EventEmitter.js';\nconst { create, keys } = Object;\nconst { stringify, parse } = JSON;\nexport class DataStore extends EventEmitter {\n privateData;\n constructor() {\n super();\n }\n setPrivateData(data) {\n this.privateData = data;\n }\n set data(data) {\n this.setPrivateData(data);\n }\n get data() {\n return this.privateData;\n }\n toString() {\n return this.pretty;\n }\n get isObject() {\n return this.data && typeof this.data === 'object';\n }\n get pojo() {\n return this.data;\n }\n get json() {\n return stringify(this.data);\n }\n set json(json) {\n let value = null;\n try {\n value = parse(json);\n }\n catch (x) {\n //\n }\n this.data = value;\n }\n get pretty() {\n const sorted = {};\n const pojo = this.pojo;\n keys(pojo).sort().forEach(key => sorted[key] = pojo[key]);\n return stringify(sorted, null, ' ');\n }\n}\nclass ObservableStore extends DataStore {\n change(mutator) {\n mutator(this);\n this.doChange();\n }\n doChange() {\n this.fire('change', this);\n this.onChange(this);\n }\n onChange(store) {\n // override\n }\n set data(data) {\n this.change(self => self.setPrivateData(data));\n }\n // TODO(sjmiles): one of the compile/build/bundle tools\n // evacipates the inherited getter, so we clone it\n get data() {\n return this['privateData'];\n }\n set(key, value) {\n if (!this.data) {\n this.setPrivateData(create(null));\n }\n if (value !== undefined) {\n this.change(self => self.data[key] = value);\n }\n else {\n this.delete(key);\n }\n }\n delete(key) {\n this.change(doc => delete doc.data[key]);\n }\n}\nclass PersistableStore extends ObservableStore {\n meta;\n constructor(meta) {\n super();\n this.meta = { ...meta };\n }\n toString() {\n return `${JSON.stringify(this.meta, null, ' ')}, ${this.pretty}`;\n }\n get tags() {\n return this.meta.tags ?? (this.meta.tags = []);\n }\n is(...tags) {\n // true if every member of `tags` is also in `this.tags`\n return tags.every(tag => this.tags.includes(tag));\n }\n isCollection() {\n return this.meta.type?.[0] === '[';\n }\n shouldPersist() {\n return this.is('persisted') && !this.is('volatile');\n }\n async doChange() {\n // do not await\n this.persist();\n return super.doChange();\n }\n // TODO(sjmiles): as of now the persist/restore methods\n // are bound in Runtime:addStore\n async persist() {\n }\n async restore( /*value: any*/) {\n }\n // delete() {\n // this.persistor?.remove(this);\n // }\n save() {\n return this.json;\n }\n load(serial, defaultValue) {\n let value = defaultValue;\n try {\n if (serial) {\n value = parse(serial);\n }\n }\n catch (x) {\n //\n }\n if (value !== undefined) {\n this.data = value;\n }\n }\n}\nexport class Store extends PersistableStore {\n}\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { irand } from \"./rand.js\";\nexport const makeId = (pairs, digits, delim) => {\n pairs = pairs || 2;\n digits = digits || 2;\n delim = delim || '-';\n const min = Math.pow(10, digits - 1);\n const range = Math.pow(10, digits) - min;\n const result = [];\n for (let i = 0; i < pairs; i++) {\n result.push(`${irand(range - min) + min}`);\n }\n return result.join(delim);\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { Arc } from './core/Arc.js';\nimport { Host } from './core/Host.js';\nimport { Store } from './core/Store.js';\nimport { EventEmitter } from './core/EventEmitter.js';\nimport { logFactory } from './utils/log.js';\nimport { makeId } from './utils/id.js';\nconst log = logFactory(logFactory.flags.runtime, 'runtime', '#873600');\nconst particleFactoryCache = {};\nconst storeFactories = {};\nconst { keys } = Object;\nexport class Runtime extends EventEmitter {\n log;\n uid; // user id\n nid; // network id\n arcs;\n stores;\n peers;\n shares;\n endpoint;\n network;\n surfaces;\n persistor;\n prettyUid;\n static securityLockdown;\n static particleIndustry;\n static particleOptions;\n constructor(uid) {\n uid = uid || 'user';\n super();\n this.arcs = {};\n this.surfaces = {};\n this.stores = {};\n this.peers = new Set();\n this.shares = new Set();\n this.setUid(uid);\n this.log = logFactory(logFactory.flags.runtime, `runtime:[${this.prettyUid}]`, '#873600');\n //Runtime.securityLockdown?.(Runtime.particleOptions);\n }\n setUid(uid) {\n this.uid = uid;\n this.nid = `${uid}:${makeId(1, 2)}`;\n this.prettyUid = uid.substring(0, uid.indexOf('@') + 1) || uid;\n }\n async bootstrapArc(name, meta, surface, service) {\n // make an arc on `surface`\n const arc = new Arc(name, meta, surface);\n // install service handler\n arc.hostService = this.serviceFactory(service);\n // add `arc` to runtime\n await this.addArc(arc);\n // fin\n return arc;\n }\n serviceFactory(service) {\n return async (host, request) => service.handle(this, host, request);\n }\n async bootstrapParticle(arc, id, meta) {\n // make a host\n const host = new Host(id);\n // make a particle\n await this.marshalParticle(host, meta);\n // add `host` to `arc`\n const promise = arc.addHost(host);\n // report\n log('bootstrapped particle', id);\n //log(host);\n // we'll call you when it's ready\n return promise;\n }\n // no-op surface mapping\n addSurface(id, surface) {\n this.surfaces[id] = surface;\n }\n getSurface(id) {\n return this.surfaces[id];\n }\n // map arcs by arc.id\n addArc(arc) {\n const { id } = arc;\n if (id && !this.arcs[id]) {\n return this.arcs[id] = arc;\n }\n throw `arc has no id, or id \"${id}\" is already in use`;\n }\n removeArc(arc) {\n const { id } = arc;\n if (!id || !this.arcs[id]) {\n throw !id ? `arc has no id` : `id \"${id}\" is not in use`;\n }\n delete this.arcs[id];\n }\n // create a particle inside of host\n async marshalParticle(host, particleMeta) {\n const particle = await this.createParticle(host, particleMeta.kind);\n host.installParticle(particle, particleMeta);\n }\n // create a host, install a particle, add host to arc\n async installParticle(arc, particleMeta, name) {\n this.log('installParticle', name, particleMeta, arc.id);\n // provide a default name\n name = name || makeId();\n // deduplicate name\n if (arc.hosts[name]) {\n let n = 1;\n for (; (arc.hosts[`${name}-${n}`]); n++)\n ;\n name = `${name}-${n}`;\n }\n // build the structure\n const host = new Host(name);\n await this.marshalParticle(host, particleMeta);\n arc.addHost(host);\n return host;\n }\n // map a store by a Runtime-specific storeId\n // Stores have no intrinsic id\n addStore(storeId, store) {\n // if the store needs to discuss things with Runtime\n // TODO(sjmiles): this is likely unsafe for re-entry\n if (store.marshal) {\n store.marshal(this);\n }\n // bind to persist/restore functions\n store.persist = async () => this.persistStore(storeId, store);\n store.restore = async () => this.restoreStore(storeId, store);\n // override the Store's own persistor to use the runtime persistor\n // TODO(sjmiles): why?\n // if (store.persistor) {\n // store.persistor.persist = store => this.persistor?.persist(storeId, store);\n // }\n // bind this.storeChanged to store.change (and name the binding)\n const name = `${this.nid}:${storeId}-changed`;\n const onChange = this.storeChanged.bind(this, storeId);\n store.listen('change', onChange, name);\n // map the store\n this.stores[storeId] = store;\n // evaluate for sharing\n this.maybeShareStore(storeId);\n // notify listeners that a thing happened\n // TODO(sjmiles): makes no sense without id\n //this.fire('store-added', store);\n }\n async persistStore(storeId, store) {\n if (store.shouldPersist()) {\n this.log(`persistStore \"${storeId}\"`);\n return this.persistor.persist?.(storeId, store);\n }\n }\n async restoreStore(storeId, store) {\n if (store.shouldPersist()) {\n this.log(`restoreStore \"${storeId}\"`);\n return this.persistor.restore?.(storeId);\n }\n }\n storeChanged(storeId, store) {\n this.log('storeChanged', storeId);\n this.network?.invalidatePeers(storeId);\n this.onStoreChange(storeId, store);\n this.fire('store-changed', { storeId, store });\n }\n // TODO(sjmiles): evacipate this method\n onStoreChange(storeId, store) {\n // override for bespoke response\n }\n do(storeId, task) {\n task(this.stores[storeId]);\n }\n removeStore(storeId) {\n this.do(storeId, store => {\n store?.unlisten('change', `${this.nid}:${storeId}-changed`);\n });\n delete this.stores[storeId];\n }\n maybeShareStore(storeId) {\n this.do(storeId, store => {\n if (store?.is('shared')) {\n this.shareStore(storeId);\n }\n });\n }\n addPeer(peerId) {\n this.peers.add(peerId);\n [...this.shares].forEach(storeId => this.maybeShareStoreWithPeer(storeId, peerId));\n }\n shareStore(storeId) {\n this.shares.add(storeId);\n [...this.peers].forEach(peerId => this.maybeShareStoreWithPeer(storeId, peerId));\n }\n maybeShareStoreWithPeer(storeId, peerId) {\n this.do(storeId, store => {\n const nid = this.uid.replace(/\\./g, '_');\n if (!store.is('private') || (peerId.startsWith(nid))) {\n this.shareStoreWithPeer(storeId, peerId);\n }\n });\n }\n shareStoreWithPeer(storeId, peerId) {\n this.network?.shareStore(storeId, peerId);\n }\n async createParticle(host, kind) {\n try {\n const factory = await this.marshalParticleFactory(kind);\n return factory(host);\n }\n catch (x) {\n log.error(`createParticle(${kind}):`, x);\n }\n }\n async marshalParticleFactory(kind) {\n return particleFactoryCache[kind] ?? this.lateBindParticle(kind);\n }\n lateBindParticle(kind, code) {\n return Runtime.registerParticleFactory(kind, Runtime?.particleIndustry(kind, { ...Runtime.particleOptions, code }));\n }\n static registerParticleFactory(kind, factoryPromise) {\n return particleFactoryCache[kind] = factoryPromise;\n }\n requireStore(meta) {\n let store = this.stores[meta.name];\n if (!store) {\n store = this.createStore(meta);\n this.addStore(meta.name, store);\n }\n return store;\n }\n createStore(meta) {\n const key = keys(storeFactories).find(tag => meta.tags?.includes?.(tag));\n const storeClass = storeFactories[String(key)] || Store;\n return new storeClass(meta);\n }\n static registerStoreClass(tag, storeClass) {\n storeFactories[tag] = storeClass;\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nconst log = logFactory(logFactory.flags.recipe, 'flan', 'violet');\nconst { entries, create } = Object;\nexport class Parser {\n stores;\n particles;\n slots;\n meta;\n constructor(recipe) {\n this.stores = [];\n this.particles = [];\n this.slots = [];\n this.meta = create(null);\n if (recipe) {\n this.parse(recipe);\n }\n }\n parse(recipe) {\n // `normalize` converts shorthand to longhand before parsing\n const normalized = this.normalize(recipe);\n this.parseSlotSpec(normalized, 'root', '');\n return this;\n }\n normalize(recipe) {\n if (typeof recipe !== 'object') {\n throw Error('recipe must be an Object');\n }\n // TODO(sjmiles): would be great if `normalize` normalized all the things\n return recipe;\n }\n parseSlotSpec(spec, slotName, parentName) {\n // process entries\n for (const key in spec) {\n switch (key) {\n case '$meta':\n // value is a dictionary\n this.meta = { ...this.meta, ...spec.$meta };\n break;\n case '$stores':\n // value is a StoreSpec\n this.parseStoresNode(spec.$stores);\n break;\n default: {\n // value is a ParticleSpec\n const container = parentName ? `${parentName}#${slotName}` : slotName;\n this.parseParticleSpec(container, key, spec[key]);\n break;\n }\n }\n }\n }\n parseStoresNode(stores) {\n for (const key in stores) {\n this.parseStoreSpec(key, stores[key]);\n }\n }\n parseStoreSpec(name, spec) {\n if (this.stores.find(s => s.name === name)) {\n log('duplicate store name');\n return;\n }\n const meta = {\n name,\n type: spec.$type,\n tags: spec.$tags,\n value: spec.$value\n };\n this.stores.push(meta);\n }\n parseParticleSpec(container, id, spec) {\n if (!spec.$kind) {\n log.warn(`parseParticleSpec: malformed spec has no \"kind\":`, spec);\n throw Error();\n }\n if (this.particles.find(s => s.id === id)) {\n log('duplicate particle name');\n return;\n }\n this.particles.push({ id, container, spec });\n if (spec.$slots) {\n this.parseSlotsNode(spec.$slots, id);\n }\n }\n parseSlotsNode(slots, parent) {\n entries(slots).forEach(([key, spec]) => this.parseSlotSpec(spec, key, parent));\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport function matches(candidateMeta, targetMeta) {\n for (const property in targetMeta) {\n if (candidateMeta[property] !== targetMeta[property]) {\n return false;\n }\n }\n return true;\n}\n;\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nimport { matches } from '../utils/matching.js';\nconst log = logFactory(logFactory.flags.recipe, 'StoreCook', '#99bb15');\nconst { values } = Object;\nconst findStores = (runtime, criteria) => {\n return values(runtime.stores).filter(store => matches(store?.meta, criteria));\n};\nconst mapStore = (runtime, { name, type }) => {\n // TODO(b/244191110): Type matching API to be wired here.\n return findStores(runtime, { name, type })?.[0];\n};\nexport class StoreCook {\n static async execute(runtime, arc, stores) {\n return this.forEachStore(this.realizeStore, runtime, arc, stores);\n }\n static async evacipate(runtime, arc, stores) {\n return this.forEachStore(this.derealizeStore, runtime, arc, stores);\n }\n static async forEachStore(task, runtime, arc, stores) {\n return Promise.all(stores.map(store => task.call(this, runtime, arc, store)));\n }\n static async realizeStore(runtime, arc, rawMeta) {\n const meta = this.constructMeta(runtime, arc, rawMeta);\n let value = meta?.value;\n let store = mapStore(runtime, meta);\n if (store) {\n log(`realizeStore: mapped \"${rawMeta.name}\" to \"${store.meta.name}\"`);\n }\n else {\n store = runtime.createStore(meta);\n log(`realizeStore: created \"${meta.name}\"`);\n // TODO(sjmiles): Stores no longer know their own id, so there is a wrinkle here as we\n // re-route persistence through runtime (so we can bind in the id)\n // Also: the 'id' is known as 'meta.name' here, this is also a problem\n // store && (store.persistor = {\n // restore: store => runtime.persistor?.restore(meta.name, store),\n // persist: () => {}\n // });\n // runtime.addStore(meta.name, store);\n //await store?.restore(meta?.value)\n runtime.addStore(meta.name, store);\n if (store.shouldPersist()) {\n const cached = await store.restore();\n value = cached === undefined ? value : cached;\n }\n }\n if (value !== undefined) {\n log(`setting data to:`, value);\n store.data = value;\n }\n arc.addStore(meta.name, store);\n }\n static async derealizeStore(runtime, arc, spec) {\n runtime.removeStore(spec.$name);\n arc.removeStore(spec.$name);\n }\n static constructMeta(runtime, arc, rawMeta) {\n const meta = {\n ...rawMeta,\n arcid: arc.id,\n uid: runtime.uid,\n };\n return {\n ...meta,\n owner: meta.uid,\n shareid: `${meta.name}:${meta.arcid}:${meta.uid}`\n };\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nconst log = logFactory(logFactory.flags.recipe, 'ParticleCook', '#5fa530');\nexport class ParticleCook {\n static async execute(runtime, arc, particles) {\n // serial\n for (const particle of particles) {\n await this.realizeParticle(runtime, arc, particle);\n }\n // parallel\n //return Promise.all(particles.map(particle => this.realizeParticle(runtime, arc, particle)));\n }\n static async realizeParticle(runtime, arc, node) {\n log('realizedParticle:', node.id);\n // convert spec to metadata\n const meta = this.specToMeta(node.spec);\n meta.container ||= node.container;\n // make a (hosted) particle\n return runtime.bootstrapParticle(arc, node.id, meta);\n }\n static specToMeta(spec) {\n if (spec.$bindings) {\n console.warn(`Particle '${spec.$kind}' spec contains deprecated $bindings property (${JSON.stringify(spec.$bindings)})`);\n }\n // TODO(sjmiles): impedance mismatch here is likely to cause problems\n const { $kind: kind, $container: container, $staticInputs: staticInputs } = spec;\n const inputs = this.formatBindings(spec.$inputs);\n const outputs = this.formatBindings(spec.$outputs);\n return { kind, staticInputs, inputs, outputs, container };\n }\n static formatBindings(bindings) {\n return bindings?.map?.(binding => typeof binding === 'string' ? { [binding]: binding } : binding);\n }\n static async evacipate(runtime, arc, particles) {\n return Promise.all(particles.map(particle => this.derealizeParticle(runtime, arc, particle)));\n }\n static async derealizeParticle(runtime, arc, node) {\n arc.removeHost(node.id);\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nimport { Parser } from './RecipeParser.js';\nimport { StoreCook } from './StoreCook.js';\nimport { ParticleCook } from './ParticleCook.js';\nconst log = logFactory(logFactory.flags.recipe, 'Chef', '#087f23');\nexport class Chef {\n static async execute(recipe, runtime, arc) {\n if (arc instanceof Promise) {\n log.error('`arc` must be an Arc, not a Promise. Make sure `boostrapArc` is awaited.');\n return;\n }\n //log.groupCollapsed('executing recipe...', recipe.$meta);\n log('|-->...| executing recipe: ', recipe.$meta ?? '');\n const plan = new Parser(recipe);\n // `store` preparation\n await StoreCook.execute(runtime, arc, plan.stores);\n // `particle` preparation\n await ParticleCook.execute(runtime, arc, plan.particles);\n // seasoning\n // TODO(sjmiles): what do we use this for?\n arc.meta = { ...arc.meta, ...plan.meta };\n log('|...-->| recipe complete: ', recipe.$meta ?? '');\n //log.groupEnd();\n }\n static async evacipate(recipe, runtime, arc) {\n //log.groupCollapsed('evacipating recipe...', recipe.$meta);\n log('|-->...| evacipating recipe: ', recipe.$meta);\n // TODO(sjmiles): this is work we already did\n const plan = new Parser(recipe);\n // `store` work\n // TODO(sjmiles): not sure what stores are unique to this plan\n //await StoreCook.evacipate(runtime, arc, plan);\n // `particle` work\n await ParticleCook.evacipate(runtime, arc, plan.particles);\n // seasoning\n // TODO(sjmiles): doh\n //arc.meta = {...arc.meta, ...plan.meta};\n log('|...-->| recipe evacipated: ', recipe.$meta);\n //log.groupEnd();\n }\n static async executeAll(recipes, runtime, arc) {\n for (const recipe of recipes) {\n await this.execute(recipe, runtime, arc);\n }\n //return Promise.all(recipes?.map(recipe => this.execute(recipe, runtime, arc)));\n }\n static async evacipateAll(recipes, runtime, arc) {\n return Promise.all(recipes?.map(recipe => this.evacipate(recipe, runtime, arc)));\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const PathMapper = class {\n map;\n constructor(root) {\n this.map = {};\n this.setRoot(root);\n }\n add(mappings) {\n Object.assign(this.map, mappings || {});\n }\n resolve(path) {\n const bits = path.split('/');\n const top = bits.shift();\n const prefix = this.map[top] || top;\n return [prefix, ...bits].join('/');\n }\n setRoot(root) {\n if (root.length && root[root.length - 1] === '/') {\n root = root.slice(0, -1);\n }\n this.add({\n '$root': root,\n '$arcs': root\n });\n }\n getAbsoluteHereUrl(meta, depth) {\n // you are here\n const localRelative = meta.url.split('/').slice(0, -(depth ?? 1)).join('/');\n if (!globalThis?.document) {\n return localRelative;\n }\n else {\n // document root is here\n let base = document.URL;\n // if document URL has a filename, remove it\n if (base[base.length - 1] !== '/') {\n base = `${base.split('/').slice(0, -1).join('/')}/`;\n }\n // create absoute path to here (aka 'local')\n let localAbsolute = new URL(localRelative, base).href;\n // no trailing slash!\n if (localAbsolute[localAbsolute.length - 1] === '/') {\n localAbsolute = localAbsolute.slice(0, -1);\n }\n return localAbsolute;\n }\n }\n};\nconst root = import.meta.url.split('/').slice(0, -3).join('/');\nexport const Paths = globalThis['Paths'] = new PathMapper(root);\nPaths.add(globalThis.config?.paths);\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { Paths } from '../utils/paths.js';\nimport { logFactory } from '../utils/log.js';\nconst log = logFactory(logFactory.flags.code, 'code', 'gold');\nconst defaultParticleBasePath = '$arcs/js/core/Particle.js';\nexport const requireParticleBaseCode = async (sourcePath) => {\n if (!requireParticleBaseCode.source) {\n const path = Paths.resolve(sourcePath || defaultParticleBasePath);\n log('particle base code path: ', path);\n const response = await fetch(path);\n const moduleText = await response.text() + \"\\n//# sourceURL=\" + path + \"\\n\";\n requireParticleBaseCode.source = moduleText.replace(/export /g, '');\n }\n return requireParticleBaseCode.source;\n};\nrequireParticleBaseCode.source = null;\nexport const requireParticleImplCode = async (kind, options) => {\n const code = options?.code || await fetchParticleCode(kind);\n // TODO(sjmiles): brittle content processing, needs to be documented\n return code.slice(code.indexOf('({'));\n};\nexport const fetchParticleCode = async (kind) => {\n if (kind) {\n return await maybeFetchParticleCode(kind);\n }\n log.error(`fetchParticleCode: empty 'kind'`);\n};\nexport const maybeFetchParticleCode = async (kind) => {\n const path = pathForKind(kind);\n try {\n const response = await fetch(path);\n //if (response.ok) {\n return await response.text();\n //}\n }\n catch (x) {\n log.error(`could not locate implementation for particle \"${kind}\" [${path}]`);\n }\n};\nexport const pathForKind = (kind) => {\n if (kind) {\n if (!'$./'.includes(kind[0]) && !kind.includes('://')) {\n kind = `$library/${kind}`;\n }\n if (!kind?.split('/').pop().includes('.')) {\n kind = `${kind}.js`;\n }\n return Paths.resolve(kind);\n }\n return '404';\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { Paths } from '../utils/paths.js';\nimport { Runtime } from '../Runtime.js';\nimport { logFactory } from '../utils/log.js';\nimport { deepEqual } from '../utils/object.js';\nimport { requireParticleImplCode, pathForKind } from './code.js';\nconst log = logFactory(logFactory.flags.isolation, 'vanilla', 'goldenrod');\nconst harden = object => object;\nglobalThis.harden = harden;\nglobalThis.scope = {\n harden\n};\nconst makeKey = () => `i${Math.floor((1 + Math.random() * 9) * 1e14)}`;\nconst timeout = async (func, delayMs) => new Promise(resolve => setTimeout(() => resolve(func()), delayMs));\nexport const initVanilla = (options) => {\n // requiredLog.groupCollapsed('LOCKDOWN');\n try {\n log(deepEqual);\n const utils = { log, resolve, html, makeKey, deepEqual, timeout };\n const scope = {\n // default injections\n ...utils,\n // app injections\n ...options?.injections,\n };\n Object.assign(globalThis.scope, scope);\n Object.assign(globalThis, scope);\n }\n finally {\n /**/\n }\n};\nconst resolve = Paths.resolve.bind(Paths);\nconst html = (strings, ...values) => `${strings[0]}${values.map((v, i) => `${v}${strings[i + 1]}`).join('')}`.trim();\nconst createParticleFactory = async (kind, options) => {\n // ensure our canonical Particle class exists in the isolation chamber\n const { Particle } = await import('../core/Particle.js');\n //const Particle = await requireParticle();\n // // evaluate custom code in isolation chamber\n const implFactory = await requireImplFactory(kind, options);\n // injections\n const log = createLogger(kind);\n const injections = { log, resolve, html, ...options?.injections };\n // construct 3P prototype\n const proto = implFactory(injections);\n // // construct particleFactory\n const particleFactory = (host) => {\n const pipe = {\n log,\n output: host.output.bind(host),\n service: host.service.bind(host)\n };\n return new Particle(proto, pipe, true);\n };\n return particleFactory;\n};\nconst requireImplFactory = async (kind, options) => {\n // snatch up the custom particle code\n const implCode = await requireParticleImplCode(kind, options);\n let factory = (0, eval)(implCode);\n // if it's an object\n if (typeof factory === 'object') {\n // repackage the code to eliminate closures\n factory = repackageImplFactory(factory, kind);\n log('repackaged factory:\\n', factory);\n }\n return globalThis.harden(factory);\n};\nconst { assign, keys, entries, values, create } = Object;\nglobalThis.SafeObject = {\n create,\n assign,\n keys(o) {\n return o ? keys(o) : [];\n },\n values(o) {\n return o ? values(o) : [];\n },\n entries(o) {\n return o ? entries(o) : [];\n },\n mapBy(a, keyGetter) {\n return a ? values(a).reduce((map, item) => (map[keyGetter(item)] = item, map), {}) : {};\n }\n};\nconst repackageImplFactory = (factory, kind) => {\n const { constNames, rewriteConsts, funcNames, rewriteFuncs } = collectDecls(factory);\n const proto = `{${[...constNames, ...funcNames]}}`;\n const moduleRewrite = `\n({log, ...utils}) => {\n// protect utils\nglobalThis.harden(utils);\n// these are just handy\nconst {assign, keys, entries, values, create, mapBy} = globalThis.SafeObject;\n// declarations\n${[...rewriteConsts, ...rewriteFuncs].join('\\n\\n')}\n// hardened Object (map) of declarations,\n// suitable to be a prototype\nreturn globalThis.harden(${proto});\n// name the file for debuggers\n//# sourceURL=sandbox/${pathForKind(kind).split('/').pop()}\n};\n `;\n log('rewritten:\\n\\n', moduleRewrite);\n return (0, eval)(moduleRewrite);\n};\nconst collectDecls = factory => {\n // dictionary to 2-tuples\n const props = Object.entries(factory);\n // filter by typeof\n const isFunc = ([n, p]) => typeof p === 'function';\n // filter out forbidden names\n const isForbidden = ([n, p]) => n == 'harden' || n == 'globalThis';\n // get props that are functions\n const funcs = props.filter(item => isFunc(item) && !isForbidden(item));\n // rewrite object declarations as module declarations\n const rewriteFuncs = funcs.map(([n, f]) => {\n const code = f?.toString?.() ?? '';\n const async = code.includes('async');\n const body = code.replace('async ', '').replace('function ', '');\n return `${async ? 'async' : ''} function ${body};`;\n });\n // array up the function names\n const funcNames = funcs.map(([n]) => n);\n // if it's not a Function, it's a const\n const consts = props.filter(item => !isFunc(item) && !isForbidden(item));\n // build const decls\n const rewriteConsts = consts.map(([n, p]) => {\n return `const ${n} = \\`${p}\\`;`;\n });\n // array up the const names\n const constNames = consts.map(([n]) => n);\n return {\n constNames,\n rewriteConsts,\n funcNames,\n rewriteFuncs\n };\n};\nconst createLogger = kind => {\n const _log = logFactory(logFactory.flags.particles, kind, '#002266');\n return (msg, ...args) => {\n const stack = msg?.stack?.split('\\n')?.slice(1, 2) || (new Error()).stack?.split('\\n').slice(2, 3);\n const where = stack\n .map(entry => entry\n .replace(/\\([^()]*?\\)/, '')\n .replace(/ \\([^()]*?\\)/, '')\n .replace('
, ', '')\n .replace('Object.', '')\n .replace('eval at :', '')\n .replace(/\\(|\\)/g, '')\n .replace(/\\[[^\\]]*?\\] /, '')\n .replace(/at (.*) (\\d)/, 'at \"$1\" $2'))\n .reverse()\n .join('\\n')\n .trim();\n if (msg?.message) {\n _log.error(msg.message, ...args, `(${where})`);\n }\n else {\n _log(msg, ...args, `(${where})`);\n }\n };\n};\n// give the runtime a safe way to instantiate Particles\nRuntime.particleIndustry = createParticleFactory;\nRuntime.securityLockdown = initVanilla;\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport * from './date.js';\nexport * from './id.js';\nexport * from './log.js';\nexport * from './matching.js';\nexport * from './object.js';\nexport * from './paths.js';\nexport * from './rand.js';\nexport * from './task.js';\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const computeAgeString = (date, now) => {\n let deltaTime = Math.round((now - date) / 1000);\n if (isNaN(deltaTime)) {\n return `\u2022`;\n }\n let plural = '';\n if (deltaTime < 60) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} second${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 60);\n if (deltaTime < 60) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} minute${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 60);\n if (deltaTime < 24) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} hour${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 24);\n if (deltaTime < 30) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} day${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 30);\n if (deltaTime < 12) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} month${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 12);\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} year${plural} ago`;\n};\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n/**\n * Perform `action` if `delay` ms have elapsed since last debounce call for `key`.\n *\n * ```\n * // invoke 'task' one second after last time this line executed\n * this.debounceTask = debounce(this.debounceTask, task, 1000);\n * ```\n */\nexport const debounce = (key, action, delay) => {\n if (key) {\n clearTimeout(key);\n }\n if (action && delay) {\n return setTimeout(action, delay);\n }\n};\nexport const async = task => {\n return async (...args) => {\n await Promise.resolve();\n task(...args);\n };\n};\nexport const asyncTask = (task, delayMs) => {\n setTimeout(task, delayMs ?? 0);\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n\nexport * from '../js/Runtime.js';\nexport * from '../js/core/EventEmitter.js';\nexport * from '../js/core/Store.js';\nexport * from '../js/core/Arc.js';\nexport * from '../js/core/Host.js';\nexport * from '../js/core/Decorator.js';\nexport * from '../js/recipe/Chef.js';\nexport * from '../js/recipe/ParticleCook.js';\nexport * from '../js/recipe/StoreCook.js';\nexport * from '../js/recipe/RecipeParser.js';\nexport * from '../js/isolation/code.js';\nexport * from '../js/isolation/vanilla.js';\n\nimport * as utils from '../js/utils/utils.js';\nconst {logFactory, Paths} = utils;\nexport {logFactory, Paths, utils};\n\nconst root = import.meta.url.split('/').slice(0, -1).join('/');\nPaths.setRoot(root);\n"],
- "mappings": "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",
- "names": []
+ "mappings": "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",
+ "names": ["create", "assign", "keys", "values", "entries", "log", "nob", "key", "log", "output", "key", "values", "entries", "key", "entries", "keys", "customLogFactory", "key", "create", "keys", "key", "log", "keys", "key", "log", "entries", "create", "key", "log", "values", "log", "log", "root", "log", "log", "timeout", "resolve", "scope", "values", "Particle", "assign", "keys", "entries", "create", "async", "key", "logFactory", "Paths", "root", "Paths"]
}
diff --git a/pkg/Library/Core/arcs.min.js.map b/pkg/Library/Core/arcs.min.js.map
index 89b86b0e..94129572 100644
--- a/pkg/Library/Core/arcs.min.js.map
+++ b/pkg/Library/Core/arcs.min.js.map
@@ -2,6 +2,6 @@
"version": 3,
"sources": ["../../../core/js/core/Particle.js", "../../../core/js/core/EventEmitter.js", "../../../core/js/utils/types.js", "../../../core/js/utils/log.js", "../../../core/js/core/Arc.js", "../../../core/js/utils/object.js", "../../../core/js/utils/rand.js", "../../../core/js/core/Decorator.js", "../../../core/js/core/Host.js", "../../../core/js/core/Store.js", "../../../core/js/utils/id.js", "../../../core/js/Runtime.js", "../../../core/js/recipe/RecipeParser.js", "../../../core/js/utils/matching.js", "../../../core/js/recipe/StoreCook.js", "../../../core/js/recipe/ParticleCook.js", "../../../core/js/recipe/Chef.js", "../../../core/js/utils/paths.js", "../../../core/js/isolation/code.js", "../../../core/js/isolation/vanilla.js", "../../../core/js/utils/utils.js", "../../../core/js/utils/date.js", "../../../core/js/utils/task.js", "../../../core/src/arcs.ts"],
"sourcesContent": ["/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n/*\n * PSA: code in this file is subject to isolation restrictions, including runtime processing.\n * Particle module interfaces with 3p code, and is often loaded into isolation contexts.\n**/\nconst { create, assign, keys, values, entries, defineProperty, setPrototypeOf } = Object;\nconst scope = globalThis['scope'] ?? {};\nconst { log, timeout } = scope;\nconst nob = () => create(null);\n// yay lambda, he gets a semi-colon ... named classes not so much\nconst storePrototype = new class {\n get empty() {\n return this.length === 0;\n }\n get data() {\n return this;\n }\n get pojo() {\n return this.data;\n }\n get json() {\n return JSON.stringify(this.pojo);\n }\n get pretty() {\n return JSON.stringify(this.pojo, null, ' ');\n }\n get keys() {\n return keys(this.data);\n }\n get length() {\n return keys(this.data).length;\n }\n get values() {\n return values(this.data);\n }\n get entries() {\n return entries(this.data);\n }\n set(key, value) {\n this.data[key] = value;\n }\n setByIndex(index, value) {\n this.data[this.keys[index]] = value;\n }\n add(...values) {\n values.forEach(value => this.data[scope.makeKey()] = value);\n }\n push(...values) {\n this.add(...values);\n }\n remove(value) {\n entries(this.data).find(([key, entry]) => {\n if (entry === value) {\n delete this.data[key];\n return true;\n }\n });\n }\n has(key) {\n return this.data[key] !== undefined;\n }\n get(key) {\n return this.getByKey(key);\n }\n getByKey(key) {\n return this.data[key];\n }\n getByIndex(index) {\n return this.data[this.keys[index]];\n }\n delete(key) {\n delete this.data[key];\n }\n deleteByIndex(index) {\n delete this.data[this.keys[index]];\n }\n assign(dictionary) {\n assign(this.data, dictionary);\n }\n map(mapFunc) {\n return this.values.map(mapFunc);\n }\n toString() {\n return this.pretty;\n }\n};\n/**\n * ParticleAPI functions are called at various points in the particle's lifecycle.\n * Developers should override these functions as needed to give a particle\n * functionality.\n */\nexport class ParticleApi {\n /**\n * Particles that render on a surface should provide a template. The template\n * can include double curly bracketed keys that will be interpolated at\n * runtime.\n *\n * To dynamically change the template, we double curly braced keys must be\n * the only thing inside a div or span:\n * ```\n * {{key}}.\n * {{key}}
\n * ```\n *\n * The value for each key is returned from the {@link render | render method}.\n *\n * Double curly bracketed keys can also be placed inside div definitions to\n * change attributes. In this instance we place them inside quotation marks.\n * For example:\n * ```\n * \n * ```\n */\n get template() {\n return null;\n }\n /**\n * shouldUpdate returns a boolean that indicates if runtime should update\n * when inputs or state change.\n *\n * This function can be overwritten to implement the desired\n * behaviour.\n *\n * @param inputs\n * @param state\n *\n * @returns a boolean to indicate if updates should be allowed.\n */\n shouldUpdate(inputs, state) {\n return true;\n }\n /**\n * Update is called anytime an input to the particle changes.\n *\n * This function can be overwritten to implement the desired\n * behaviour.\n *\n * Inputs are the stores the particle is bound to.\n * State is an object that can be changed and passed to sub-functions.\n * Tools allow the particle to perform supervised activities -\n * for example services are a tool.\n *\n * The update function can return an object containing the new desired\n * value(s) for the stores. For example, if we wanted to update the\n * `Person` and `Address` stores we would return:\n *\n * ```\n * return {\n * Person: 'Jane Smith',\n * Address: '123 Main Street'\n * };\n * ```\n *\n * @param inputs\n * @param state\n * @param tools\n *\n * @returns [OPTIONAL] object containing store to value mappings\n */\n async update(inputs, state, tools) {\n return null;\n }\n /**\n * shouldRender returns a boolean that indicates if runtime should\n * render the template.\n *\n * This function can be overwritten to implement the desired\n * behaviour.\n *\n * @param inputs\n * @param state\n *\n * @returns a boolean to indicate if the template should be re-rendered.\n */\n shouldRender(inputs, state) {\n return true;\n }\n /**\n * Render returns an object that contains the key: value pairings\n * that will be interpolated into the {@link template | template}.\n * For example, if the template contained keys `class`,\n * `hideDiv`, and `displayTxt` we could return:\n * ```\n * {\n * class: 'title`,\n * hideDiv: false,\n * displayTxt: \"My Page's Title\"\n * }\n * ```\n *\n * This functions can be overwritten to return the desired\n * values.\n *\n * @param inputs\n * @param state\n */\n render(inputs, state) {\n return null;\n }\n}\nconst privateProperty = initialValue => {\n let value = initialValue;\n return { get: () => value, set: v => value = v };\n};\nexport class Particle {\n pipe;\n impl;\n internal;\n constructor(proto, pipe, beStateful) {\n this.pipe = pipe;\n this.impl = create(proto);\n defineProperty(this, 'internal', privateProperty(nob()));\n this.internal.$busy = 0;\n //if (beStateful) {\n this.internal.beStateful = true;\n this.internal.state = nob();\n //}\n }\n get log() {\n return this.pipe?.log || log;\n }\n get template() {\n return this.impl?.template;\n }\n get config() {\n return {\n template: this.template\n };\n }\n // set-trap for inputs, so we can do work when inputs change\n set inputs(inputs) {\n //this.log(inputs);\n this.internal.inputs = inputs;\n this.invalidateInputs();\n }\n get inputs() {\n return this.internal.inputs;\n }\n get state() {\n return this.internal.state;\n }\n async service(request) {\n return this.pipe?.service?.(request);\n }\n invalidateInputs() {\n this.internal.$propChanged = true;\n this.invalidate();\n }\n // validate after the next microtask\n invalidate() {\n if (!this.internal.validator) {\n //this.internal.validator = this.async(this.validate);\n this.internal.validator = timeout(this.validate.bind(this), 1);\n }\n }\n // call fn after a microtask boundary\n async(fn) {\n return Promise.resolve().then(fn.bind(this));\n }\n // activate particle lifecycle\n async validate() {\n //this.log('validate');\n if (this.internal.validator) {\n // try..finally to ensure we nullify `validator`\n try {\n this.internal.$validateAfterBusy = this.internal.$busy;\n if (!this.internal.$busy) {\n // if we're not stateful\n if (!this.internal.beStateful) {\n // then it's a fresh state every validation\n this.internal.state = nob();\n }\n // inputs are immutable (changes to them are ignored)\n this.internal.inputs = this.validateInputs();\n // let the impl decide what to do\n await this.maybeUpdate();\n }\n }\n catch (e) {\n log.error(e);\n }\n // nullify validator _after_ methods so state changes don't reschedule validation\n this.internal.validator = null;\n this.internal.$propChanged = false;\n }\n }\n validateInputs() {\n // shallow-clone our input dictionary\n const inputs = assign(nob(), this.inputs);\n // for each input, try to provide prototypical helpers\n entries(inputs).forEach(([key, value]) => {\n if (value && (typeof value === 'object')) {\n if (!Array.isArray(value)) {\n value = setPrototypeOf({ ...value }, storePrototype);\n }\n inputs[key] = value;\n }\n });\n //return harden(inputs);\n return inputs;\n }\n implements(methodName) {\n return typeof this.impl?.[methodName] === 'function';\n }\n async maybeUpdate() {\n if (await this.checkInit()) {\n if (!this.canUpdate()) {\n // we might want to render even if we don't update,\n // if we `outputData` the system will add render models\n this.outputData(null);\n }\n if (await this.shouldUpdate(this.inputs, this.state)) {\n this.update();\n }\n }\n }\n async checkInit() {\n if (!this.internal.initialized) {\n this.internal.initialized = true;\n if (this.implements('initialize')) {\n await this.asyncMethod(this.impl.initialize);\n }\n }\n return true;\n }\n canUpdate() {\n return this.implements('update');\n }\n async shouldUpdate(inputs, state) {\n //return true;\n // not implementing `shouldUpdate`, means the value should always be true\n // TODO(sjmiles): this violates our 'false by default' convention, but the\n // naming is awkward: `shouldNotUpdate`? `preventUpdate`?\n return !this.impl?.shouldUpdate || (await this.impl.shouldUpdate(inputs, state) !== false);\n }\n update() {\n this.asyncMethod(this.impl?.update);\n }\n outputData(data) {\n this.pipe?.output?.(data, this.maybeRender());\n }\n maybeRender() {\n if (this.template) {\n const { inputs, state } = this.internal;\n if (this.impl?.shouldRender?.(inputs, state) !== false) {\n if (this.implements('render')) {\n return this.impl.render(inputs, state);\n }\n else {\n return { ...inputs, ...state };\n }\n }\n }\n }\n async handleEvent({ handler, data }) {\n const onhandler = this.impl?.[handler];\n if (onhandler) {\n this.internal.inputs.eventlet = data;\n await this.asyncMethod(onhandler.bind(this.impl), { eventlet: data });\n this.internal.inputs.eventlet = null;\n }\n else {\n //this.log(`event handler [${handler}] not found`);\n }\n }\n async asyncMethod(asyncMethod, injections) {\n if (asyncMethod) {\n const { inputs, state } = this.internal;\n const stdlib = {\n service: async (request) => this.service(request),\n invalidate: () => this.invalidate(),\n output: async (data) => this.outputData(data)\n };\n const task = asyncMethod.bind(this.impl, inputs, state, { ...stdlib, ...injections });\n this.outputData(await this.try(task));\n if (!this.internal.$busy && this.internal.$validateAfterBusy) {\n this.invalidate();\n }\n }\n }\n async try(asyncFunc) {\n this.internal.$busy++;\n try {\n return await asyncFunc();\n }\n catch (e) {\n log.error(e);\n }\n finally {\n this.internal.$busy--;\n }\n }\n}\nscope.harden(globalThis);\nscope.harden(Particle);\n// log('Any leaked values? Must pass three tests:');\n// try { globalThis['sneaky'] = 42; } catch(x) { log('sneaky test: pass'); }\n// try { Particle['foo'] = 42; } catch(x) { log('Particle.foo test: pass'); }\n// try { log['foo'] = 42; } catch(x) { log('log.foo test: pass'); };\nParticle;\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport class EventEmitter {\n // map of event name to listener array\n listeners = {};\n getEventListeners(eventName) {\n return this.listeners[eventName] || (this.listeners[eventName] = []);\n }\n fire(eventName, ...args) {\n const listeners = this.getEventListeners(eventName);\n if (listeners?.forEach) {\n listeners.forEach(listener => listener(...args));\n }\n }\n listen(eventName, listener, listenerName) {\n const listeners = this.getEventListeners(eventName);\n listeners.push(listener);\n listener._name = listenerName || '(unnamed listener)';\n return listener;\n }\n unlisten(eventName, listener) {\n const list = this.getEventListeners(eventName);\n const index = (typeof listener === 'string') ? list.findIndex(l => l._name === listener) : list.indexOf(listener);\n if (index >= 0) {\n list.splice(index, 1);\n }\n else {\n console.warn('failed to unlisten from', eventName);\n }\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const logKinds = ['log', 'group', 'groupCollapsed', 'groupEnd', 'dir'];\nexport const errKinds = ['warn', 'error'];\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logKinds, errKinds } from './types.js';\nconst { fromEntries } = Object;\nconst _logFactory = (enable, preamble, bg, color, kind = 'log') => {\n if (!enable) {\n return () => { };\n }\n if (kind === 'dir') {\n return console.dir.bind(console);\n }\n const style = `background: ${bg || 'gray'}; color: ${color || 'white'}; padding: 1px 6px 2px 7px; border-radius: 6px 0 0 6px;`;\n return console[kind].bind(console, `%c${preamble}`, style);\n};\nexport const logFactory = (enable, preamble, bg = '', color = '') => {\n const debugLoggers = fromEntries(logKinds.map(kind => [kind, _logFactory(enable, preamble, bg, color, kind)]));\n const errorLoggers = fromEntries(errKinds.map(kind => [kind, _logFactory(true, preamble, bg, color, kind)]));\n const loggers = { ...debugLoggers, ...errorLoggers };\n // Inject `log` as default, keeping all loggers available to be invoked by name.\n const log = loggers.log;\n Object.assign(log, loggers);\n return log;\n};\nlogFactory.flags = globalThis.config?.logFlags || {};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { EventEmitter } from './EventEmitter.js';\nimport { logFactory } from '../utils/log.js';\nconst customLogFactory = (id) => logFactory(logFactory.flags.arc, `Arc (${id})`, 'slateblue');\nconst { assign, keys, entries, create } = Object;\nconst values = (o) => Object.values(o);\nconst nob = () => create(null);\nexport class Arc extends EventEmitter {\n log;\n id;\n meta;\n stores;\n hosts;\n surface;\n composer;\n hostService;\n constructor(id, meta, surface) {\n super();\n this.id = id;\n this.meta = meta;\n this.surface = surface;\n this.hosts = nob();\n this.stores = nob();\n this.log = customLogFactory(id);\n }\n async addHost(host, surface) {\n // to support hosts we need a composer\n await this.ensureComposer();\n // bookkeep\n this.hosts[host.id] = host;\n host.arc = this;\n // TODO(sjmiles): support per host surfacing?\n //await host.bindToSurface(surface ?? this.surface);\n // begin work\n this.updateHost(host);\n return host;\n }\n async ensureComposer() {\n if (!this.composer && this.surface) {\n // create composer\n this.composer = await this.surface.createComposer('root');\n // pipeline for events from composer to this.onevent\n // TODO(sjmiles): use 'bind' to avoid a closure and improve the stack trace\n this.composer.onevent = this.onevent.bind(this);\n }\n }\n rerender() {\n values(this.hosts).forEach(h => h.rerender());\n }\n removeHost(id) {\n this.hosts[id]?.detach();\n delete this.hosts[id];\n }\n addStore(storeId, store) {\n if (store && !this.stores[storeId]) {\n this.stores[storeId] = store;\n store.listen('change', () => this.storeChanged(storeId, store), this.id);\n }\n }\n removeStore(storeId) {\n const store = this.stores[storeId];\n if (store) {\n store.unlisten('change', this.id);\n }\n delete this.stores[storeId];\n }\n // TODO(sjmiles): 2nd param is used in overrides, make explicit\n storeChanged(storeId, store) {\n this.log(`storeChanged: \"${storeId}\"`);\n const isBound = inputs => inputs && inputs.some(input => values(input)[0] == storeId || keys(input)[0] == storeId);\n values(this.hosts).forEach(host => {\n const inputs = host.meta?.inputs;\n if (inputs === '*' || isBound(inputs)) {\n this.log(`host \"${host.id}\" has interest in \"${storeId}\"`);\n // TODO(sjmiles): we only have to update inputs for storeId, we lose efficiency here\n this.updateHost(host);\n }\n });\n this.fire('store-changed', storeId);\n }\n updateParticleMeta(hostId, meta) {\n const host = this.hosts[hostId];\n host.meta = meta;\n this.updateHost(host);\n }\n updateHost(host) {\n host.inputs = this.computeInputs(host);\n }\n // TODO(sjmiles): debounce? (update is sync-debounced already)\n // complement to `assignOutputs`\n computeInputs(host) {\n const inputs = nob();\n const inputBindings = host.meta?.inputs;\n if (inputBindings === '*') {\n // TODO(sjmiles): we could make the contract that the bindAll inputs are\n // names (or names + meta) only. The Particle could look up values via\n // service (to reduce throughput requirements)\n entries(this.stores).forEach(([name, store]) => inputs[name] = store.pojo);\n }\n else {\n const staticInputs = host.meta?.staticInputs;\n assign(inputs, staticInputs);\n if (inputBindings) {\n inputBindings.forEach(input => this.computeInput(entries(input)[0], inputs));\n this.log(`computeInputs(${host.id}) =`, inputs);\n }\n }\n return inputs;\n }\n computeInput([name, binding], inputs) {\n const storeName = binding || name;\n const store = this.stores[storeName];\n if (store) {\n inputs[name] = store.pojo;\n }\n else {\n // TODO(sjmiles): is this ok or not?\n //this.log.warn(`computeInput: \"${storeName}\" (bound to \"${name}\") not found`);\n }\n }\n // complement to `computeInputs`\n assignOutputs({ id, meta }, outputs) {\n const names = keys(outputs);\n if (meta?.outputs && names.length) {\n names.forEach(name => this.assignOutput(name, outputs[name], meta.outputs));\n this.log(`[end][${id}] assignOutputs:`, outputs);\n }\n }\n assignOutput(name, output, outputs) {\n if (output !== undefined) {\n const binding = this.findOutputByName(outputs, name) || name;\n const store = this.stores[binding];\n if (!store) {\n if (outputs?.[name]) {\n this.log.warn(`assignOutputs: no \"${binding}\" store for output \"${name}\"`);\n }\n }\n else {\n // Note: users can mess up output data in any way they see fit, so we should\n // probably invent `outputCleansing`.\n this.log(`assignOutputs: \"${name}\" is dirty, updating Store \"${binding}\"`, output);\n store.data = output;\n }\n }\n }\n findOutputByName(outputs, name) {\n const output = outputs?.find(output => keys(output || 0)[0] === name);\n if (output) {\n return values(output)[0];\n }\n }\n async render(packet) {\n if (this.composer) {\n this.composer.render(packet);\n }\n else {\n //this.log.low('render called, but composer is null', packet);\n }\n }\n onevent(pid, eventlet) {\n const host = this.hosts[pid];\n if (host) {\n host.handleEvent(eventlet);\n }\n }\n async service(host, request) {\n let result = await this.surface?.service(request);\n if (result === undefined) {\n result = this.hostService?.(host, request);\n }\n return result;\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n/*\n * update the fields of `obj` with the fields of `data`,\n * perturbing `obj` as little as possible (since it might be a magic proxy thing\n * like an Automerge document)\n */\nexport const shallowUpdate = (obj, data) => {\n let result = data;\n if (!data) {\n //\n }\n else if (Array.isArray(data)) {\n if (!Array.isArray(obj)) {\n // TODO(sjmiles): eek, very perturbing to obj\n obj = [];\n }\n for (let i = 0; i < data.length; i++) {\n const value = data[i];\n if (obj[i] !== value) {\n obj[i] = value;\n }\n }\n const overage = obj.length - data.length;\n if (overage > 0) {\n obj.splice(data.length, overage);\n }\n }\n else if (typeof data === 'object') {\n result = (obj && typeof obj === 'object') ? obj : Object.create(null);\n const seen = {};\n // for each key in input data ...\n Object.keys(data).forEach(key => {\n // copy that data into output\n result[key] = data[key];\n // remember the key\n seen[key] = true;\n });\n // for each key in the output data...\n Object.keys(result).forEach(key => {\n // if this key was not in the input, remove it\n if (!seen[key]) {\n delete result[key];\n }\n });\n }\n return result;\n};\nexport const shallowMerge = (obj, data) => {\n if (data == null) {\n return null;\n }\n if (typeof data === 'object') {\n const result = (obj && typeof obj === 'object') ? obj : Object.create(null);\n Object.keys(data).forEach(key => result[key] = data[key]);\n return result;\n }\n return data;\n};\nexport function deepCopy(datum) {\n if (!datum) {\n return datum;\n }\n else if (Array.isArray(datum)) {\n // This is trivially type safe but tsc needs help\n return datum.map(element => deepCopy(element));\n }\n else if (typeof datum === 'object') {\n const clone = Object.create(null);\n Object.entries(datum).forEach(([key, value]) => {\n clone[key] = deepCopy(value);\n });\n return clone;\n }\n else {\n return datum;\n }\n}\nexport const deepEqual = (a, b) => {\n const type = typeof a;\n // must be same type to be equal\n if (type !== typeof b) {\n return false;\n }\n // we are `deep` because we recursively study object types\n if (type === 'object' && a && b) {\n const aProps = Object.getOwnPropertyNames(a);\n const bProps = Object.getOwnPropertyNames(b);\n // equal if same # of props, and no prop is not deepEqual\n return (aProps.length == bProps.length) && !aProps.some(name => !deepEqual(a[name], b[name]));\n }\n // finally, perform simple comparison\n return (a === b);\n};\nexport const deepUndefinedToNull = (obj) => {\n if (obj === undefined) {\n return null;\n }\n if (obj && (typeof obj === 'object')) {\n // we are `deep` because we recursively study object types\n const props = Object.getOwnPropertyNames(obj);\n props.forEach(name => {\n const prop = obj[name];\n if (prop === undefined) {\n delete obj[name];\n //obj[name] = null;\n }\n else {\n deepUndefinedToNull(prop);\n }\n });\n }\n return obj;\n};\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nconst { floor, pow, random } = Math;\n// random n-digit number\nexport const key = (digits) => floor((1 + random() * 9) * pow(10, digits - 1));\n// random integer from [0..range)\nexport const irand = (range) => floor(random() * range);\n// random element from array\nexport const arand = (array) => array[irand(array.length)];\n// test if event has occured, where `probability` is between [0..1]\nexport const prob = (probability) => Boolean(random() < probability);\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nimport { deepCopy } from '../utils/object.js';\nconst log = logFactory(logFactory.flags.decorator, 'Decorator', 'plum');\nconst { values, entries } = Object;\nconst opaqueData = {};\nexport const Decorator = {\n setOpaqueData(name, data) {\n opaqueData[name] = data; //deepCopy(data);\n return name;\n },\n getOpaqueData(name) {\n return opaqueData[name];\n },\n maybeDecorateModel(model, particle) {\n if (model && !Array.isArray(model)) {\n // for each item in model, regardless of key\n values(model).forEach((item) => {\n // is an object?\n if (item && (typeof item === 'object')) {\n // are there sub-models\n if (item['models']) {\n // the decorate this item\n log('applying decorator(s) to list:', item);\n this.maybeDecorateItem(item, particle);\n }\n else {\n // otherwise, check if there are sub-items to decorate\n if (model?.filter || model?.decorator || model?.collateBy) {\n log('scanning for lists in sub-model:', item);\n this.maybeDecorateModel(item, particle);\n }\n }\n }\n });\n }\n // possibly decorated model\n return model;\n },\n maybeDecorateItem(item, particle) {\n let models = (typeof item.models === 'string') ? this.getOpaqueData(item.models) : item.models;\n if (models) {\n // do a decorator\n models = maybeDecorate(models, item.decorator, particle);\n // do a filter\n models = maybeFilter(models, item.filter, particle.impl);\n // do a collator\n models = maybeCollateBy(models, item);\n // mutate items\n item.models = models;\n //console.log(JSON.stringify(models, null, ' '));\n }\n },\n};\nconst maybeDecorate = (models, decorator, particle) => {\n decorator = particle.impl[decorator] ?? decorator;\n const { inputs, state } = particle.internal;\n if (decorator) {\n // TODO(cromwellian): Could be expensive to do everything, store responsibility?\n const immutableInputs = Object.freeze(deepCopy(inputs));\n // we don't want the decorator to have access to mutable globals\n const immutableState = Object.freeze(deepCopy(state));\n // models become decorous\n models = models.map(model => {\n // use previously mutated data or initialize\n // TODO(cromwellian): I'd like to do Object.freeze() here, also somehow not mutate the models inplace\n // Possibly have setOpaqueData wrap the data so the privateData lives on the wrapper + internal immutable data\n model.privateData = model.privateData || {};\n // TODO(cromwellian): also could be done once during setOpaqueData() if we can track privateData differently\n const immutableModel = Object.freeze(deepCopy(model));\n const decorated = decorator(immutableModel, immutableInputs, immutableState);\n // set new privateData from returned\n model.privateData = decorated.privateData;\n return { ...decorated, ...model, };\n });\n // sort (possible that all values undefined)\n models.sort(sortByLc('sortKey'));\n log('decoration was performed');\n }\n //models.forEach(model => delete model.privateData);\n return models;\n};\nconst maybeFilter = (models, filter, impl) => {\n filter = impl[filter] ?? filter;\n if (filter && models) {\n // models become filtrated\n models = models.filter(filter);\n }\n return models;\n};\nconst maybeCollateBy = (models, item) => {\n // construct requested sub-lists\n entries(item).forEach(([name, collator]) => {\n // generate named collations for items of the form `[name]: {collateBy}`\n if (collator?.['collateBy']) {\n // group the models into buckets based on the model-field named by `collateBy`\n const collation = collate(models, collator['collateBy']);\n models = collationToRenderModels(collation, name, collator['$template']);\n }\n });\n return models;\n};\nconst sortByLc = key => (a, b) => sort(String(a[key]).toLowerCase(), String(b[key]).toLowerCase());\n//const sortBy = key => (a, b) => sort(a[key], b[key]);\nconst sort = (a, b) => a < b ? -1 : a > b ? 1 : 0;\nconst collate = (models, collateBy) => {\n const collation = {};\n models.forEach(model => {\n const keyValue = model[collateBy];\n if (keyValue) {\n const category = collation[keyValue] || (collation[keyValue] = []);\n category.push(model);\n }\n });\n return collation;\n};\nconst collationToRenderModels = (collation, name, $template) => {\n return entries(collation).map(([key, models]) => ({\n key,\n [name]: { models, $template },\n single: !(models['length'] !== 1),\n ...models?.[0]\n }));\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nimport { deepEqual, deepCopy } from '../utils/object.js';\nimport { arand } from '../utils/rand.js';\nimport { EventEmitter } from './EventEmitter.js';\nimport { Decorator } from './Decorator.js';\nconst { entries, keys } = Object;\nconst customLogFactory = (id) => logFactory(logFactory.flags.host, `Host (${id})`, arand(['#5a189a', '#51168b', '#48137b', '#6b2fa4', '#7b46ae', '#3f116c']));\n/**\n * Host owns metadata (e.g. `id`, `container`) that its Particle is not allowed to access.\n * Host knows how to talk, asynchronously, to its Particle (potentially using a bus).\n**/\n/* TODO(sjmiles):\nUpdate Cycle Documented Briefly\n1. when a Store changes it invokes it's listeners\n2. when an Arc hears a Store change, it updates Hosts bound to the Store\n3. Arc updates Host by creating an `inputs` object from Stores and metadata\n - ignores fact inputs are accumulated\n - ignores information about which Store has updated\n4. `inputs` object is assigned to `hosts.inputs` \uD83D\uDE43\n5. Host does an expensive `deepEqual` equality check. Turning on `host` logging should reveal `this.log('inputs are not interesting, skipping update');` if data is caught in this trap\n - we can use reference testing here if we are more careful\n about using immutable data\n6. the particle.inputs are assigned (but is really a *merge*)\n*/\nexport class Host extends EventEmitter {\n arc;\n id;\n lastOutput;\n lastPacket;\n lastRenderModel;\n log;\n meta;\n particle;\n constructor(id) {\n super();\n this.log = customLogFactory(id);\n this.id = id;\n }\n onevent(eventlet) {\n this.arc?.onevent(eventlet);\n }\n // Particle and ParticleMeta are separate, host specifically integrates these on behalf of Particle\n installParticle(particle, meta) {\n if (this.particle) {\n this.detachParticle();\n }\n if (particle) {\n this.particle = particle;\n this.meta = meta || this.meta;\n }\n }\n get container() {\n return this.meta?.container || 'root';\n }\n detach() {\n this.detachParticle();\n this.arc = null;\n }\n detachParticle() {\n if (this.particle) {\n this.render({ $clear: true });\n this.particle = null;\n this.meta = null;\n }\n }\n async service(request) {\n if (request?.decorate) {\n return Decorator.maybeDecorateModel(request.model, this.particle);\n }\n return this.arc?.service(this, request);\n }\n output(outputModel, renderModel) {\n if (outputModel) {\n this.lastOutput = outputModel;\n this.arc?.assignOutputs(this, outputModel);\n }\n if (this.template) {\n Decorator.maybeDecorateModel(renderModel, this.particle);\n this.lastRenderModel = { ...renderModel };\n this.render(renderModel);\n }\n }\n rerender() {\n // does not re-render Frame/Slot content\n // you probably want Arc::rerender\n if (this.lastRenderModel) {\n this.render(this.lastRenderModel);\n }\n }\n render(model) {\n const { id, container, template } = this;\n const content = { model, template };\n const packet = { id, container, content };\n this.arc?.render(packet);\n this.lastPacket = packet;\n }\n set inputs(inputs) {\n if (this.particle && inputs) {\n const lastInputs = this.particle.internal.inputs;\n if (this.dirtyCheck(inputs, lastInputs, this.lastOutput)) {\n this.particle.inputs = deepCopy({ ...this.meta?.staticInputs, ...inputs });\n this.fire('inputs-changed');\n }\n else {\n this.log('inputs are uninteresting, skipping update');\n }\n }\n }\n dirtyCheck(inputs, lastInputs, lastOutput) {\n const dirtyBits = ([n, v]) => (lastOutput?.[n] && !deepEqual(lastOutput[n], v))\n || !deepEqual(lastInputs?.[n], v);\n return !lastInputs\n || entries(inputs).length !== this.lastInputsLength(lastInputs)\n || entries(inputs).some(dirtyBits);\n }\n lastInputsLength(lastInputs) {\n return keys(lastInputs).filter(key => !this.meta?.staticInputs?.[key] && key !== 'eventlet').length;\n }\n get config() {\n return this.particle?.config;\n }\n get template() {\n return this.config?.template;\n }\n invalidate() {\n this.particle?.invalidate();\n }\n handleEvent(eventlet) {\n return this.particle?.handleEvent(eventlet);\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { EventEmitter } from './EventEmitter.js';\nconst { create, keys } = Object;\nconst { stringify, parse } = JSON;\nexport class DataStore extends EventEmitter {\n privateData;\n constructor() {\n super();\n }\n setPrivateData(data) {\n this.privateData = data;\n }\n set data(data) {\n this.setPrivateData(data);\n }\n get data() {\n return this.privateData;\n }\n toString() {\n return this.pretty;\n }\n get isObject() {\n return this.data && typeof this.data === 'object';\n }\n get pojo() {\n return this.data;\n }\n get json() {\n return stringify(this.data);\n }\n set json(json) {\n let value = null;\n try {\n value = parse(json);\n }\n catch (x) {\n //\n }\n this.data = value;\n }\n get pretty() {\n const sorted = {};\n const pojo = this.pojo;\n keys(pojo).sort().forEach(key => sorted[key] = pojo[key]);\n return stringify(sorted, null, ' ');\n }\n}\nclass ObservableStore extends DataStore {\n change(mutator) {\n mutator(this);\n this.doChange();\n }\n doChange() {\n this.fire('change', this);\n this.onChange(this);\n }\n onChange(store) {\n // override\n }\n set data(data) {\n this.change(self => self.setPrivateData(data));\n }\n // TODO(sjmiles): one of the compile/build/bundle tools\n // evacipates the inherited getter, so we clone it\n get data() {\n return this['privateData'];\n }\n set(key, value) {\n if (!this.data) {\n this.setPrivateData(create(null));\n }\n if (value !== undefined) {\n this.change(self => self.data[key] = value);\n }\n else {\n this.delete(key);\n }\n }\n delete(key) {\n this.change(doc => delete doc.data[key]);\n }\n}\nclass PersistableStore extends ObservableStore {\n meta;\n constructor(meta) {\n super();\n this.meta = { ...meta };\n }\n toString() {\n return `${JSON.stringify(this.meta, null, ' ')}, ${this.pretty}`;\n }\n get tags() {\n return this.meta.tags ?? (this.meta.tags = []);\n }\n is(...tags) {\n // true if every member of `tags` is also in `this.tags`\n return tags.every(tag => this.tags.includes(tag));\n }\n isCollection() {\n return this.meta.type?.[0] === '[';\n }\n shouldPersist() {\n return this.is('persisted') && !this.is('volatile');\n }\n async doChange() {\n // do not await\n this.persist();\n return super.doChange();\n }\n // TODO(sjmiles): as of now the persist/restore methods\n // are bound in Runtime:addStore\n async persist() {\n }\n async restore( /*value: any*/) {\n }\n // delete() {\n // this.persistor?.remove(this);\n // }\n save() {\n return this.json;\n }\n load(serial, defaultValue) {\n let value = defaultValue;\n try {\n if (serial) {\n value = parse(serial);\n }\n }\n catch (x) {\n //\n }\n if (value !== undefined) {\n this.data = value;\n }\n }\n}\nexport class Store extends PersistableStore {\n}\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { irand } from \"./rand.js\";\nexport const makeId = (pairs, digits, delim) => {\n pairs = pairs || 2;\n digits = digits || 2;\n delim = delim || '-';\n const min = Math.pow(10, digits - 1);\n const range = Math.pow(10, digits) - min;\n const result = [];\n for (let i = 0; i < pairs; i++) {\n result.push(`${irand(range - min) + min}`);\n }\n return result.join(delim);\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { Arc } from './core/Arc.js';\nimport { Host } from './core/Host.js';\nimport { Store } from './core/Store.js';\nimport { EventEmitter } from './core/EventEmitter.js';\nimport { logFactory } from './utils/log.js';\nimport { makeId } from './utils/id.js';\nconst log = logFactory(logFactory.flags.runtime, 'runtime', '#873600');\nconst particleFactoryCache = {};\nconst storeFactories = {};\nconst { keys } = Object;\nexport class Runtime extends EventEmitter {\n log;\n uid; // user id\n nid; // network id\n arcs;\n stores;\n peers;\n shares;\n endpoint;\n network;\n surfaces;\n persistor;\n prettyUid;\n static securityLockdown;\n static particleIndustry;\n static particleOptions;\n constructor(uid) {\n uid = uid || 'user';\n super();\n this.arcs = {};\n this.surfaces = {};\n this.stores = {};\n this.peers = new Set();\n this.shares = new Set();\n this.setUid(uid);\n this.log = logFactory(logFactory.flags.runtime, `runtime:[${this.prettyUid}]`, '#873600');\n //Runtime.securityLockdown?.(Runtime.particleOptions);\n }\n setUid(uid) {\n this.uid = uid;\n this.nid = `${uid}:${makeId(1, 2)}`;\n this.prettyUid = uid.substring(0, uid.indexOf('@') + 1) || uid;\n }\n async bootstrapArc(name, meta, surface, service) {\n // make an arc on `surface`\n const arc = new Arc(name, meta, surface);\n // install service handler\n arc.hostService = this.serviceFactory(service);\n // add `arc` to runtime\n await this.addArc(arc);\n // fin\n return arc;\n }\n serviceFactory(service) {\n return async (host, request) => service.handle(this, host, request);\n }\n async bootstrapParticle(arc, id, meta) {\n // make a host\n const host = new Host(id);\n // make a particle\n await this.marshalParticle(host, meta);\n // add `host` to `arc`\n const promise = arc.addHost(host);\n // report\n log('bootstrapped particle', id);\n //log(host);\n // we'll call you when it's ready\n return promise;\n }\n // no-op surface mapping\n addSurface(id, surface) {\n this.surfaces[id] = surface;\n }\n getSurface(id) {\n return this.surfaces[id];\n }\n // map arcs by arc.id\n addArc(arc) {\n const { id } = arc;\n if (id && !this.arcs[id]) {\n return this.arcs[id] = arc;\n }\n throw `arc has no id, or id \"${id}\" is already in use`;\n }\n removeArc(arc) {\n const { id } = arc;\n if (!id || !this.arcs[id]) {\n throw !id ? `arc has no id` : `id \"${id}\" is not in use`;\n }\n delete this.arcs[id];\n }\n // create a particle inside of host\n async marshalParticle(host, particleMeta) {\n const particle = await this.createParticle(host, particleMeta.kind);\n host.installParticle(particle, particleMeta);\n }\n // create a host, install a particle, add host to arc\n async installParticle(arc, particleMeta, name) {\n this.log('installParticle', name, particleMeta, arc.id);\n // provide a default name\n name = name || makeId();\n // deduplicate name\n if (arc.hosts[name]) {\n let n = 1;\n for (; (arc.hosts[`${name}-${n}`]); n++)\n ;\n name = `${name}-${n}`;\n }\n // build the structure\n const host = new Host(name);\n await this.marshalParticle(host, particleMeta);\n arc.addHost(host);\n return host;\n }\n // map a store by a Runtime-specific storeId\n // Stores have no intrinsic id\n addStore(storeId, store) {\n // if the store needs to discuss things with Runtime\n // TODO(sjmiles): this is likely unsafe for re-entry\n if (store.marshal) {\n store.marshal(this);\n }\n // bind to persist/restore functions\n store.persist = async () => this.persistStore(storeId, store);\n store.restore = async () => this.restoreStore(storeId, store);\n // override the Store's own persistor to use the runtime persistor\n // TODO(sjmiles): why?\n // if (store.persistor) {\n // store.persistor.persist = store => this.persistor?.persist(storeId, store);\n // }\n // bind this.storeChanged to store.change (and name the binding)\n const name = `${this.nid}:${storeId}-changed`;\n const onChange = this.storeChanged.bind(this, storeId);\n store.listen('change', onChange, name);\n // map the store\n this.stores[storeId] = store;\n // evaluate for sharing\n this.maybeShareStore(storeId);\n // notify listeners that a thing happened\n // TODO(sjmiles): makes no sense without id\n //this.fire('store-added', store);\n }\n async persistStore(storeId, store) {\n if (store.shouldPersist()) {\n this.log(`persistStore \"${storeId}\"`);\n return this.persistor.persist?.(storeId, store);\n }\n }\n async restoreStore(storeId, store) {\n if (store.shouldPersist()) {\n this.log(`restoreStore \"${storeId}\"`);\n return this.persistor.restore?.(storeId);\n }\n }\n storeChanged(storeId, store) {\n this.log('storeChanged', storeId);\n this.network?.invalidatePeers(storeId);\n this.onStoreChange(storeId, store);\n this.fire('store-changed', { storeId, store });\n }\n // TODO(sjmiles): evacipate this method\n onStoreChange(storeId, store) {\n // override for bespoke response\n }\n do(storeId, task) {\n task(this.stores[storeId]);\n }\n removeStore(storeId) {\n this.do(storeId, store => {\n store?.unlisten('change', `${this.nid}:${storeId}-changed`);\n });\n delete this.stores[storeId];\n }\n maybeShareStore(storeId) {\n this.do(storeId, store => {\n if (store?.is('shared')) {\n this.shareStore(storeId);\n }\n });\n }\n addPeer(peerId) {\n this.peers.add(peerId);\n [...this.shares].forEach(storeId => this.maybeShareStoreWithPeer(storeId, peerId));\n }\n shareStore(storeId) {\n this.shares.add(storeId);\n [...this.peers].forEach(peerId => this.maybeShareStoreWithPeer(storeId, peerId));\n }\n maybeShareStoreWithPeer(storeId, peerId) {\n this.do(storeId, store => {\n const nid = this.uid.replace(/\\./g, '_');\n if (!store.is('private') || (peerId.startsWith(nid))) {\n this.shareStoreWithPeer(storeId, peerId);\n }\n });\n }\n shareStoreWithPeer(storeId, peerId) {\n this.network?.shareStore(storeId, peerId);\n }\n async createParticle(host, kind) {\n try {\n const factory = await this.marshalParticleFactory(kind);\n return factory(host);\n }\n catch (x) {\n log.error(`createParticle(${kind}):`, x);\n }\n }\n async marshalParticleFactory(kind) {\n return particleFactoryCache[kind] ?? this.lateBindParticle(kind);\n }\n lateBindParticle(kind, code) {\n return Runtime.registerParticleFactory(kind, Runtime?.particleIndustry(kind, { ...Runtime.particleOptions, code }));\n }\n static registerParticleFactory(kind, factoryPromise) {\n return particleFactoryCache[kind] = factoryPromise;\n }\n requireStore(meta) {\n let store = this.stores[meta.name];\n if (!store) {\n store = this.createStore(meta);\n this.addStore(meta.name, store);\n }\n return store;\n }\n createStore(meta) {\n const key = keys(storeFactories).find(tag => meta.tags?.includes?.(tag));\n const storeClass = storeFactories[String(key)] || Store;\n return new storeClass(meta);\n }\n static registerStoreClass(tag, storeClass) {\n storeFactories[tag] = storeClass;\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nconst log = logFactory(logFactory.flags.recipe, 'flan', 'violet');\nconst { entries, create } = Object;\nexport class Parser {\n stores;\n particles;\n slots;\n meta;\n constructor(recipe) {\n this.stores = [];\n this.particles = [];\n this.slots = [];\n this.meta = create(null);\n if (recipe) {\n this.parse(recipe);\n }\n }\n parse(recipe) {\n // `normalize` converts shorthand to longhand before parsing\n const normalized = this.normalize(recipe);\n this.parseSlotSpec(normalized, 'root', '');\n return this;\n }\n normalize(recipe) {\n if (typeof recipe !== 'object') {\n throw Error('recipe must be an Object');\n }\n // TODO(sjmiles): would be great if `normalize` normalized all the things\n return recipe;\n }\n parseSlotSpec(spec, slotName, parentName) {\n // process entries\n for (const key in spec) {\n switch (key) {\n case '$meta':\n // value is a dictionary\n this.meta = { ...this.meta, ...spec.$meta };\n break;\n case '$stores':\n // value is a StoreSpec\n this.parseStoresNode(spec.$stores);\n break;\n default: {\n // value is a ParticleSpec\n const container = parentName ? `${parentName}#${slotName}` : slotName;\n this.parseParticleSpec(container, key, spec[key]);\n break;\n }\n }\n }\n }\n parseStoresNode(stores) {\n for (const key in stores) {\n this.parseStoreSpec(key, stores[key]);\n }\n }\n parseStoreSpec(name, spec) {\n if (this.stores.find(s => s.name === name)) {\n log('duplicate store name');\n return;\n }\n const meta = {\n name,\n type: spec.$type,\n tags: spec.$tags,\n value: spec.$value\n };\n this.stores.push(meta);\n }\n parseParticleSpec(container, id, spec) {\n if (!spec.$kind) {\n log.warn(`parseParticleSpec: malformed spec has no \"kind\":`, spec);\n throw Error();\n }\n if (this.particles.find(s => s.id === id)) {\n log('duplicate particle name');\n return;\n }\n this.particles.push({ id, container, spec });\n if (spec.$slots) {\n this.parseSlotsNode(spec.$slots, id);\n }\n }\n parseSlotsNode(slots, parent) {\n entries(slots).forEach(([key, spec]) => this.parseSlotSpec(spec, key, parent));\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport function matches(candidateMeta, targetMeta) {\n for (const property in targetMeta) {\n if (candidateMeta[property] !== targetMeta[property]) {\n return false;\n }\n }\n return true;\n}\n;\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nimport { matches } from '../utils/matching.js';\nconst log = logFactory(logFactory.flags.recipe, 'StoreCook', '#99bb15');\nconst { values } = Object;\nconst findStores = (runtime, criteria) => {\n return values(runtime.stores).filter(store => matches(store?.meta, criteria));\n};\nconst mapStore = (runtime, { name, type }) => {\n // TODO(b/244191110): Type matching API to be wired here.\n return findStores(runtime, { name, type })?.[0];\n};\nexport class StoreCook {\n static async execute(runtime, arc, stores) {\n return this.forEachStore(this.realizeStore, runtime, arc, stores);\n }\n static async evacipate(runtime, arc, stores) {\n return this.forEachStore(this.derealizeStore, runtime, arc, stores);\n }\n static async forEachStore(task, runtime, arc, stores) {\n return Promise.all(stores.map(store => task.call(this, runtime, arc, store)));\n }\n static async realizeStore(runtime, arc, rawMeta) {\n const meta = this.constructMeta(runtime, arc, rawMeta);\n let value = meta?.value;\n let store = mapStore(runtime, meta);\n if (store) {\n log(`realizeStore: mapped \"${rawMeta.name}\" to \"${store.meta.name}\"`);\n }\n else {\n store = runtime.createStore(meta);\n log(`realizeStore: created \"${meta.name}\"`);\n // TODO(sjmiles): Stores no longer know their own id, so there is a wrinkle here as we\n // re-route persistence through runtime (so we can bind in the id)\n // Also: the 'id' is known as 'meta.name' here, this is also a problem\n // store && (store.persistor = {\n // restore: store => runtime.persistor?.restore(meta.name, store),\n // persist: () => {}\n // });\n // runtime.addStore(meta.name, store);\n //await store?.restore(meta?.value)\n runtime.addStore(meta.name, store);\n if (store.shouldPersist()) {\n const cached = await store.restore();\n value = cached === undefined ? value : cached;\n }\n }\n if (value !== undefined) {\n log(`setting data to:`, value);\n store.data = value;\n }\n arc.addStore(meta.name, store);\n }\n static async derealizeStore(runtime, arc, spec) {\n runtime.removeStore(spec.$name);\n arc.removeStore(spec.$name);\n }\n static constructMeta(runtime, arc, rawMeta) {\n const meta = {\n ...rawMeta,\n arcid: arc.id,\n uid: runtime.uid,\n };\n return {\n ...meta,\n owner: meta.uid,\n shareid: `${meta.name}:${meta.arcid}:${meta.uid}`\n };\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nconst log = logFactory(logFactory.flags.recipe, 'ParticleCook', '#5fa530');\nexport class ParticleCook {\n static async execute(runtime, arc, particles) {\n // serial\n for (const particle of particles) {\n await this.realizeParticle(runtime, arc, particle);\n }\n // parallel\n //return Promise.all(particles.map(particle => this.realizeParticle(runtime, arc, particle)));\n }\n static async realizeParticle(runtime, arc, node) {\n log('realizedParticle:', node.id);\n // convert spec to metadata\n const meta = this.specToMeta(node.spec);\n meta.container ||= node.container;\n // make a (hosted) particle\n return runtime.bootstrapParticle(arc, node.id, meta);\n }\n static specToMeta(spec) {\n if (spec.$bindings) {\n console.warn(`Particle '${spec.$kind}' spec contains deprecated $bindings property (${JSON.stringify(spec.$bindings)})`);\n }\n // TODO(sjmiles): impedance mismatch here is likely to cause problems\n const { $kind: kind, $container: container, $staticInputs: staticInputs } = spec;\n const inputs = this.formatBindings(spec.$inputs);\n const outputs = this.formatBindings(spec.$outputs);\n return { kind, staticInputs, inputs, outputs, container };\n }\n static formatBindings(bindings) {\n return bindings?.map?.(binding => typeof binding === 'string' ? { [binding]: binding } : binding);\n }\n static async evacipate(runtime, arc, particles) {\n return Promise.all(particles.map(particle => this.derealizeParticle(runtime, arc, particle)));\n }\n static async derealizeParticle(runtime, arc, node) {\n arc.removeHost(node.id);\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logFactory } from '../utils/log.js';\nimport { Parser } from './RecipeParser.js';\nimport { StoreCook } from './StoreCook.js';\nimport { ParticleCook } from './ParticleCook.js';\nconst log = logFactory(logFactory.flags.recipe, 'Chef', '#087f23');\nexport class Chef {\n static async execute(recipe, runtime, arc) {\n if (arc instanceof Promise) {\n log.error('`arc` must be an Arc, not a Promise. Make sure `boostrapArc` is awaited.');\n return;\n }\n //log.groupCollapsed('executing recipe...', recipe.$meta);\n log('|-->...| executing recipe: ', recipe.$meta ?? '');\n const plan = new Parser(recipe);\n // `store` preparation\n await StoreCook.execute(runtime, arc, plan.stores);\n // `particle` preparation\n await ParticleCook.execute(runtime, arc, plan.particles);\n // seasoning\n // TODO(sjmiles): what do we use this for?\n arc.meta = { ...arc.meta, ...plan.meta };\n log('|...-->| recipe complete: ', recipe.$meta ?? '');\n //log.groupEnd();\n }\n static async evacipate(recipe, runtime, arc) {\n //log.groupCollapsed('evacipating recipe...', recipe.$meta);\n log('|-->...| evacipating recipe: ', recipe.$meta);\n // TODO(sjmiles): this is work we already did\n const plan = new Parser(recipe);\n // `store` work\n // TODO(sjmiles): not sure what stores are unique to this plan\n //await StoreCook.evacipate(runtime, arc, plan);\n // `particle` work\n await ParticleCook.evacipate(runtime, arc, plan.particles);\n // seasoning\n // TODO(sjmiles): doh\n //arc.meta = {...arc.meta, ...plan.meta};\n log('|...-->| recipe evacipated: ', recipe.$meta);\n //log.groupEnd();\n }\n static async executeAll(recipes, runtime, arc) {\n for (const recipe of recipes) {\n await this.execute(recipe, runtime, arc);\n }\n //return Promise.all(recipes?.map(recipe => this.execute(recipe, runtime, arc)));\n }\n static async evacipateAll(recipes, runtime, arc) {\n return Promise.all(recipes?.map(recipe => this.evacipate(recipe, runtime, arc)));\n }\n}\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const PathMapper = class {\n map;\n constructor(root) {\n this.map = {};\n this.setRoot(root);\n }\n add(mappings) {\n Object.assign(this.map, mappings || {});\n }\n resolve(path) {\n const bits = path.split('/');\n const top = bits.shift();\n const prefix = this.map[top] || top;\n return [prefix, ...bits].join('/');\n }\n setRoot(root) {\n if (root.length && root[root.length - 1] === '/') {\n root = root.slice(0, -1);\n }\n this.add({\n '$root': root,\n '$arcs': root\n });\n }\n getAbsoluteHereUrl(meta, depth) {\n // you are here\n const localRelative = meta.url.split('/').slice(0, -(depth ?? 1)).join('/');\n if (!globalThis?.document) {\n return localRelative;\n }\n else {\n // document root is here\n let base = document.URL;\n // if document URL has a filename, remove it\n if (base[base.length - 1] !== '/') {\n base = `${base.split('/').slice(0, -1).join('/')}/`;\n }\n // create absoute path to here (aka 'local')\n let localAbsolute = new URL(localRelative, base).href;\n // no trailing slash!\n if (localAbsolute[localAbsolute.length - 1] === '/') {\n localAbsolute = localAbsolute.slice(0, -1);\n }\n return localAbsolute;\n }\n }\n};\nconst root = import.meta.url.split('/').slice(0, -3).join('/');\nexport const Paths = globalThis['Paths'] = new PathMapper(root);\nPaths.add(globalThis.config?.paths);\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { Paths } from '../utils/paths.js';\nimport { logFactory } from '../utils/log.js';\nconst log = logFactory(logFactory.flags.code, 'code', 'gold');\nconst defaultParticleBasePath = '$arcs/js/core/Particle.js';\nexport const requireParticleBaseCode = async (sourcePath) => {\n if (!requireParticleBaseCode.source) {\n const path = Paths.resolve(sourcePath || defaultParticleBasePath);\n log('particle base code path: ', path);\n const response = await fetch(path);\n const moduleText = await response.text() + \"\\n//# sourceURL=\" + path + \"\\n\";\n requireParticleBaseCode.source = moduleText.replace(/export /g, '');\n }\n return requireParticleBaseCode.source;\n};\nrequireParticleBaseCode.source = null;\nexport const requireParticleImplCode = async (kind, options) => {\n const code = options?.code || await fetchParticleCode(kind);\n // TODO(sjmiles): brittle content processing, needs to be documented\n return code.slice(code.indexOf('({'));\n};\nexport const fetchParticleCode = async (kind) => {\n if (kind) {\n return await maybeFetchParticleCode(kind);\n }\n log.error(`fetchParticleCode: empty 'kind'`);\n};\nexport const maybeFetchParticleCode = async (kind) => {\n const path = pathForKind(kind);\n try {\n const response = await fetch(path);\n //if (response.ok) {\n return await response.text();\n //}\n }\n catch (x) {\n log.error(`could not locate implementation for particle \"${kind}\" [${path}]`);\n }\n};\nexport const pathForKind = (kind) => {\n if (kind) {\n if (!'$./'.includes(kind[0]) && !kind.includes('://')) {\n kind = `$library/${kind}`;\n }\n if (!kind?.split('/').pop().includes('.')) {\n kind = `${kind}.js`;\n }\n return Paths.resolve(kind);\n }\n return '404';\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { Paths } from '../utils/paths.js';\nimport { Runtime } from '../Runtime.js';\nimport { logFactory } from '../utils/log.js';\nimport { deepEqual } from '../utils/object.js';\nimport { requireParticleImplCode, pathForKind } from './code.js';\nconst log = logFactory(logFactory.flags.isolation, 'vanilla', 'goldenrod');\nconst harden = object => object;\nglobalThis.harden = harden;\nglobalThis.scope = {\n harden\n};\nconst makeKey = () => `i${Math.floor((1 + Math.random() * 9) * 1e14)}`;\nconst timeout = async (func, delayMs) => new Promise(resolve => setTimeout(() => resolve(func()), delayMs));\nexport const initVanilla = (options) => {\n // requiredLog.groupCollapsed('LOCKDOWN');\n try {\n log(deepEqual);\n const utils = { log, resolve, html, makeKey, deepEqual, timeout };\n const scope = {\n // default injections\n ...utils,\n // app injections\n ...options?.injections,\n };\n Object.assign(globalThis.scope, scope);\n Object.assign(globalThis, scope);\n }\n finally {\n /**/\n }\n};\nconst resolve = Paths.resolve.bind(Paths);\nconst html = (strings, ...values) => `${strings[0]}${values.map((v, i) => `${v}${strings[i + 1]}`).join('')}`.trim();\nconst createParticleFactory = async (kind, options) => {\n // ensure our canonical Particle class exists in the isolation chamber\n const { Particle } = await import('../core/Particle.js');\n //const Particle = await requireParticle();\n // // evaluate custom code in isolation chamber\n const implFactory = await requireImplFactory(kind, options);\n // injections\n const log = createLogger(kind);\n const injections = { log, resolve, html, ...options?.injections };\n // construct 3P prototype\n const proto = implFactory(injections);\n // // construct particleFactory\n const particleFactory = (host) => {\n const pipe = {\n log,\n output: host.output.bind(host),\n service: host.service.bind(host)\n };\n return new Particle(proto, pipe, true);\n };\n return particleFactory;\n};\nconst requireImplFactory = async (kind, options) => {\n // snatch up the custom particle code\n const implCode = await requireParticleImplCode(kind, options);\n let factory = (0, eval)(implCode);\n // if it's an object\n if (typeof factory === 'object') {\n // repackage the code to eliminate closures\n factory = repackageImplFactory(factory, kind);\n log('repackaged factory:\\n', factory);\n }\n return globalThis.harden(factory);\n};\nconst { assign, keys, entries, values, create } = Object;\nglobalThis.SafeObject = {\n create,\n assign,\n keys(o) {\n return o ? keys(o) : [];\n },\n values(o) {\n return o ? values(o) : [];\n },\n entries(o) {\n return o ? entries(o) : [];\n },\n mapBy(a, keyGetter) {\n return a ? values(a).reduce((map, item) => (map[keyGetter(item)] = item, map), {}) : {};\n }\n};\nconst repackageImplFactory = (factory, kind) => {\n const { constNames, rewriteConsts, funcNames, rewriteFuncs } = collectDecls(factory);\n const proto = `{${[...constNames, ...funcNames]}}`;\n const moduleRewrite = `\n({log, ...utils}) => {\n// protect utils\nglobalThis.harden(utils);\n// these are just handy\nconst {assign, keys, entries, values, create, mapBy} = globalThis.SafeObject;\n// declarations\n${[...rewriteConsts, ...rewriteFuncs].join('\\n\\n')}\n// hardened Object (map) of declarations,\n// suitable to be a prototype\nreturn globalThis.harden(${proto});\n// name the file for debuggers\n//# sourceURL=sandbox/${pathForKind(kind).split('/').pop()}\n};\n `;\n log('rewritten:\\n\\n', moduleRewrite);\n return (0, eval)(moduleRewrite);\n};\nconst collectDecls = factory => {\n // dictionary to 2-tuples\n const props = Object.entries(factory);\n // filter by typeof\n const isFunc = ([n, p]) => typeof p === 'function';\n // filter out forbidden names\n const isForbidden = ([n, p]) => n == 'harden' || n == 'globalThis';\n // get props that are functions\n const funcs = props.filter(item => isFunc(item) && !isForbidden(item));\n // rewrite object declarations as module declarations\n const rewriteFuncs = funcs.map(([n, f]) => {\n const code = f?.toString?.() ?? '';\n const async = code.includes('async');\n const body = code.replace('async ', '').replace('function ', '');\n return `${async ? 'async' : ''} function ${body};`;\n });\n // array up the function names\n const funcNames = funcs.map(([n]) => n);\n // if it's not a Function, it's a const\n const consts = props.filter(item => !isFunc(item) && !isForbidden(item));\n // build const decls\n const rewriteConsts = consts.map(([n, p]) => {\n return `const ${n} = \\`${p}\\`;`;\n });\n // array up the const names\n const constNames = consts.map(([n]) => n);\n return {\n constNames,\n rewriteConsts,\n funcNames,\n rewriteFuncs\n };\n};\nconst createLogger = kind => {\n const _log = logFactory(logFactory.flags.particles, kind, '#002266');\n return (msg, ...args) => {\n const stack = msg?.stack?.split('\\n')?.slice(1, 2) || (new Error()).stack?.split('\\n').slice(2, 3);\n const where = stack\n .map(entry => entry\n .replace(/\\([^()]*?\\)/, '')\n .replace(/ \\([^()]*?\\)/, '')\n .replace('
, ', '')\n .replace('Object.', '')\n .replace('eval at :', '')\n .replace(/\\(|\\)/g, '')\n .replace(/\\[[^\\]]*?\\] /, '')\n .replace(/at (.*) (\\d)/, 'at \"$1\" $2'))\n .reverse()\n .join('\\n')\n .trim();\n if (msg?.message) {\n _log.error(msg.message, ...args, `(${where})`);\n }\n else {\n _log(msg, ...args, `(${where})`);\n }\n };\n};\n// give the runtime a safe way to instantiate Particles\nRuntime.particleIndustry = createParticleFactory;\nRuntime.securityLockdown = initVanilla;\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport * from './date.js';\nexport * from './id.js';\nexport * from './log.js';\nexport * from './matching.js';\nexport * from './object.js';\nexport * from './paths.js';\nexport * from './rand.js';\nexport * from './task.js';\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const computeAgeString = (date, now) => {\n let deltaTime = Math.round((now - date) / 1000);\n if (isNaN(deltaTime)) {\n return `\u2022`;\n }\n let plural = '';\n if (deltaTime < 60) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} second${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 60);\n if (deltaTime < 60) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} minute${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 60);\n if (deltaTime < 24) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} hour${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 24);\n if (deltaTime < 30) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} day${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 30);\n if (deltaTime < 12) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} month${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 12);\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} year${plural} ago`;\n};\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n/**\n * Perform `action` if `delay` ms have elapsed since last debounce call for `key`.\n *\n * ```\n * // invoke 'task' one second after last time this line executed\n * this.debounceTask = debounce(this.debounceTask, task, 1000);\n * ```\n */\nexport const debounce = (key, action, delay) => {\n if (key) {\n clearTimeout(key);\n }\n if (action && delay) {\n return setTimeout(action, delay);\n }\n};\nexport const async = task => {\n return async (...args) => {\n await Promise.resolve();\n task(...args);\n };\n};\nexport const asyncTask = (task, delayMs) => {\n setTimeout(task, delayMs ?? 0);\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n\nexport * from '../js/Runtime.js';\nexport * from '../js/core/EventEmitter.js';\nexport * from '../js/core/Store.js';\nexport * from '../js/core/Arc.js';\nexport * from '../js/core/Host.js';\nexport * from '../js/core/Decorator.js';\nexport * from '../js/recipe/Chef.js';\nexport * from '../js/recipe/ParticleCook.js';\nexport * from '../js/recipe/StoreCook.js';\nexport * from '../js/recipe/RecipeParser.js';\nexport * from '../js/isolation/code.js';\nexport * from '../js/isolation/vanilla.js';\n\nimport * as utils from '../js/utils/utils.js';\nconst {logFactory, Paths} = utils;\nexport {logFactory, Paths, utils};\n\nconst root = import.meta.url.split('/').slice(0, -1).join('/');\nPaths.setRoot(root);\n"],
- "mappings": "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",
- "names": []
+ "mappings": "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",
+ "names": ["Particle_exports", "__export", "Particle", "ParticleApi", "create", "assign", "keys", "values", "entries", "defineProperty", "setPrototypeOf", "scope", "log", "timeout", "nob", "storePrototype", "privateProperty", "init_Particle", "__esmMin", "key", "value", "index", "entry", "dictionary", "mapFunc", "inputs", "state", "tools", "initialValue", "v", "proto", "pipe", "beStateful", "request", "fn", "e", "methodName", "data", "handler", "onhandler", "asyncMethod", "injections", "stdlib", "task", "asyncFunc", "EventEmitter", "eventName", "args", "listeners", "listener", "listenerName", "list", "index", "l", "logKinds", "errKinds", "fromEntries", "_logFactory", "enable", "preamble", "bg", "color", "kind", "style", "logFactory", "debugLoggers", "logKinds", "errorLoggers", "errKinds", "loggers", "log", "customLogFactory", "id", "logFactory", "assign", "keys", "entries", "create", "values", "o", "nob", "Arc", "EventEmitter", "meta", "surface", "host", "h", "storeId", "store", "isBound", "inputs", "input", "hostId", "inputBindings", "name", "staticInputs", "binding", "storeName", "outputs", "names", "output", "packet", "pid", "eventlet", "request", "result", "shallowUpdate", "obj", "data", "result", "value", "overage", "seen", "key", "shallowMerge", "deepCopy", "datum", "element", "clone", "deepEqual", "a", "b", "type", "aProps", "bProps", "name", "deepUndefinedToNull", "prop", "floor", "pow", "random", "key", "digits", "irand", "range", "arand", "array", "prob", "probability", "log", "logFactory", "values", "entries", "opaqueData", "Decorator", "name", "data", "model", "particle", "item", "models", "maybeDecorate", "maybeFilter", "maybeCollateBy", "decorator", "inputs", "state", "immutableInputs", "deepCopy", "immutableState", "immutableModel", "decorated", "sortByLc", "filter", "impl", "collator", "collation", "collate", "collationToRenderModels", "key", "a", "b", "sort", "collateBy", "keyValue", "$template", "entries", "keys", "customLogFactory", "id", "logFactory", "arand", "Host", "EventEmitter", "eventlet", "particle", "meta", "request", "Decorator", "outputModel", "renderModel", "model", "container", "template", "packet", "inputs", "lastInputs", "deepCopy", "lastOutput", "dirtyBits", "n", "v", "deepEqual", "key", "create", "keys", "stringify", "parse", "DataStore", "EventEmitter", "data", "json", "value", "sorted", "pojo", "key", "ObservableStore", "mutator", "store", "self", "doc", "PersistableStore", "meta", "tags", "tag", "serial", "defaultValue", "Store", "makeId", "pairs", "digits", "delim", "min", "range", "result", "i", "irand", "log", "logFactory", "particleFactoryCache", "storeFactories", "keys", "_Runtime", "EventEmitter", "uid", "makeId", "name", "meta", "surface", "service", "arc", "Arc", "host", "request", "id", "Host", "promise", "particleMeta", "particle", "n", "storeId", "store", "onChange", "task", "peerId", "nid", "kind", "x", "code", "factoryPromise", "key", "tag", "storeClass", "Store", "Runtime", "__publicField", "log", "logFactory", "entries", "create", "Parser", "recipe", "normalized", "spec", "slotName", "parentName", "key", "container", "stores", "name", "s", "meta", "id", "slots", "parent", "matches", "candidateMeta", "targetMeta", "property", "log", "logFactory", "values", "findStores", "runtime", "criteria", "store", "matches", "mapStore", "name", "type", "StoreCook", "arc", "stores", "task", "rawMeta", "meta", "value", "cached", "spec", "log", "logFactory", "ParticleCook", "runtime", "arc", "particles", "particle", "node", "meta", "spec", "kind", "container", "staticInputs", "inputs", "outputs", "bindings", "binding", "log", "logFactory", "Chef", "recipe", "runtime", "arc", "plan", "Parser", "StoreCook", "ParticleCook", "recipes", "PathMapper", "root", "mappings", "path", "bits", "top", "meta", "depth", "localRelative", "base", "localAbsolute", "Paths", "log", "logFactory", "defaultParticleBasePath", "requireParticleBaseCode", "sourcePath", "path", "Paths", "moduleText", "requireParticleImplCode", "kind", "options", "code", "fetchParticleCode", "maybeFetchParticleCode", "pathForKind", "log", "logFactory", "harden", "object", "makeKey", "timeout", "func", "delayMs", "resolve", "initVanilla", "options", "deepEqual", "scope", "html", "Paths", "strings", "values", "v", "i", "createParticleFactory", "kind", "Particle", "implFactory", "requireImplFactory", "createLogger", "injections", "proto", "host", "pipe", "implCode", "requireParticleImplCode", "factory", "repackageImplFactory", "assign", "keys", "entries", "create", "o", "a", "keyGetter", "map", "item", "constNames", "rewriteConsts", "funcNames", "rewriteFuncs", "collectDecls", "moduleRewrite", "pathForKind", "props", "isFunc", "n", "p", "isForbidden", "funcs", "f", "code", "async", "body", "consts", "_log", "msg", "args", "where", "entry", "Runtime", "utils_exports", "__export", "PathMapper", "Paths", "arand", "async", "asyncTask", "computeAgeString", "debounce", "deepCopy", "deepEqual", "deepUndefinedToNull", "irand", "key", "logFactory", "makeId", "matches", "prob", "shallowMerge", "shallowUpdate", "computeAgeString", "date", "now", "deltaTime", "plural", "debounce", "key", "action", "delay", "async", "task", "args", "asyncTask", "delayMs", "logFactory", "Paths", "utils_exports", "root", "Paths"]
}
diff --git a/pkg/Library/Core/utils.min.js.map b/pkg/Library/Core/utils.min.js.map
index 8ebfcf76..a850c048 100644
--- a/pkg/Library/Core/utils.min.js.map
+++ b/pkg/Library/Core/utils.min.js.map
@@ -1,7 +1,7 @@
{
"version": 3,
- "sources": ["../../../core/js/utils/date.js", "../../../core/js/utils/rand.js", "../../../core/js/utils/id.js", "../../../core/js/utils/types.js", "../../../core/js/utils/log.js", "../../../core/js/utils/matching.js", "../../../core/js/utils/object.js", "../../../core/js/utils/paths.js", "../../../core/js/utils/task.js", "../../../core/js/utils/names.js", "../../../core/src/utils.ts"],
- "sourcesContent": ["/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const computeAgeString = (date, now) => {\n let deltaTime = Math.round((now - date) / 1000);\n if (isNaN(deltaTime)) {\n return `\u2022`;\n }\n let plural = '';\n if (deltaTime < 60) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} second${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 60);\n if (deltaTime < 60) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} minute${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 60);\n if (deltaTime < 24) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} hour${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 24);\n if (deltaTime < 30) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} day${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 30);\n if (deltaTime < 12) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} month${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 12);\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} year${plural} ago`;\n};\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nconst { floor, pow, random } = Math;\n// random n-digit number\nexport const key = (digits) => floor((1 + random() * 9) * pow(10, digits - 1));\n// random integer from [0..range)\nexport const irand = (range) => floor(random() * range);\n// random element from array\nexport const arand = (array) => array[irand(array.length)];\n// test if event has occured, where `probability` is between [0..1]\nexport const prob = (probability) => Boolean(random() < probability);\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { irand } from \"./rand.js\";\nexport const makeId = (pairs, digits, delim) => {\n pairs = pairs || 2;\n digits = digits || 2;\n delim = delim || '-';\n const min = Math.pow(10, digits - 1);\n const range = Math.pow(10, digits) - min;\n const result = [];\n for (let i = 0; i < pairs; i++) {\n result.push(`${irand(range - min) + min}`);\n }\n return result.join(delim);\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const logKinds = ['log', 'group', 'groupCollapsed', 'groupEnd', 'dir'];\nexport const errKinds = ['warn', 'error'];\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logKinds, errKinds } from './types.js';\nconst { fromEntries } = Object;\nconst _logFactory = (enable, preamble, bg, color, kind = 'log') => {\n if (!enable) {\n return () => { };\n }\n if (kind === 'dir') {\n return console.dir.bind(console);\n }\n const style = `background: ${bg || 'gray'}; color: ${color || 'white'}; padding: 1px 6px 2px 7px; border-radius: 6px 0 0 6px;`;\n return console[kind].bind(console, `%c${preamble}`, style);\n};\nexport const logFactory = (enable, preamble, bg = '', color = '') => {\n const debugLoggers = fromEntries(logKinds.map(kind => [kind, _logFactory(enable, preamble, bg, color, kind)]));\n const errorLoggers = fromEntries(errKinds.map(kind => [kind, _logFactory(true, preamble, bg, color, kind)]));\n const loggers = { ...debugLoggers, ...errorLoggers };\n // Inject `log` as default, keeping all loggers available to be invoked by name.\n const log = loggers.log;\n Object.assign(log, loggers);\n return log;\n};\nlogFactory.flags = globalThis.config?.logFlags || {};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport function matches(candidateMeta, targetMeta) {\n for (const property in targetMeta) {\n if (candidateMeta[property] !== targetMeta[property]) {\n return false;\n }\n }\n return true;\n}\n;\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n/*\n * update the fields of `obj` with the fields of `data`,\n * perturbing `obj` as little as possible (since it might be a magic proxy thing\n * like an Automerge document)\n */\nexport const shallowUpdate = (obj, data) => {\n let result = data;\n if (!data) {\n //\n }\n else if (Array.isArray(data)) {\n if (!Array.isArray(obj)) {\n // TODO(sjmiles): eek, very perturbing to obj\n obj = [];\n }\n for (let i = 0; i < data.length; i++) {\n const value = data[i];\n if (obj[i] !== value) {\n obj[i] = value;\n }\n }\n const overage = obj.length - data.length;\n if (overage > 0) {\n obj.splice(data.length, overage);\n }\n }\n else if (typeof data === 'object') {\n result = (obj && typeof obj === 'object') ? obj : Object.create(null);\n const seen = {};\n // for each key in input data ...\n Object.keys(data).forEach(key => {\n // copy that data into output\n result[key] = data[key];\n // remember the key\n seen[key] = true;\n });\n // for each key in the output data...\n Object.keys(result).forEach(key => {\n // if this key was not in the input, remove it\n if (!seen[key]) {\n delete result[key];\n }\n });\n }\n return result;\n};\nexport const shallowMerge = (obj, data) => {\n if (data == null) {\n return null;\n }\n if (typeof data === 'object') {\n const result = (obj && typeof obj === 'object') ? obj : Object.create(null);\n Object.keys(data).forEach(key => result[key] = data[key]);\n return result;\n }\n return data;\n};\nexport function deepCopy(datum) {\n if (!datum) {\n return datum;\n }\n else if (Array.isArray(datum)) {\n // This is trivially type safe but tsc needs help\n return datum.map(element => deepCopy(element));\n }\n else if (typeof datum === 'object') {\n const clone = Object.create(null);\n Object.entries(datum).forEach(([key, value]) => {\n clone[key] = deepCopy(value);\n });\n return clone;\n }\n else {\n return datum;\n }\n}\nexport const deepEqual = (a, b) => {\n const type = typeof a;\n // must be same type to be equal\n if (type !== typeof b) {\n return false;\n }\n // we are `deep` because we recursively study object types\n if (type === 'object' && a && b) {\n const aProps = Object.getOwnPropertyNames(a);\n const bProps = Object.getOwnPropertyNames(b);\n // equal if same # of props, and no prop is not deepEqual\n return (aProps.length == bProps.length) && !aProps.some(name => !deepEqual(a[name], b[name]));\n }\n // finally, perform simple comparison\n return (a === b);\n};\nexport const deepUndefinedToNull = (obj) => {\n if (obj === undefined) {\n return null;\n }\n if (obj && (typeof obj === 'object')) {\n // we are `deep` because we recursively study object types\n const props = Object.getOwnPropertyNames(obj);\n props.forEach(name => {\n const prop = obj[name];\n if (prop === undefined) {\n delete obj[name];\n //obj[name] = null;\n }\n else {\n deepUndefinedToNull(prop);\n }\n });\n }\n return obj;\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const PathMapper = class {\n map;\n constructor(root) {\n this.map = {};\n this.setRoot(root);\n }\n add(mappings) {\n Object.assign(this.map, mappings || {});\n }\n resolve(path) {\n const bits = path.split('/');\n const top = bits.shift();\n const prefix = this.map[top] || top;\n return [prefix, ...bits].join('/');\n }\n setRoot(root) {\n if (root.length && root[root.length - 1] === '/') {\n root = root.slice(0, -1);\n }\n this.add({\n '$root': root,\n '$arcs': root\n });\n }\n getAbsoluteHereUrl(meta, depth) {\n // you are here\n const localRelative = meta.url.split('/').slice(0, -(depth ?? 1)).join('/');\n if (!globalThis?.document) {\n return localRelative;\n }\n else {\n // document root is here\n let base = document.URL;\n // if document URL has a filename, remove it\n if (base[base.length - 1] !== '/') {\n base = `${base.split('/').slice(0, -1).join('/')}/`;\n }\n // create absoute path to here (aka 'local')\n let localAbsolute = new URL(localRelative, base).href;\n // no trailing slash!\n if (localAbsolute[localAbsolute.length - 1] === '/') {\n localAbsolute = localAbsolute.slice(0, -1);\n }\n return localAbsolute;\n }\n }\n};\nconst root = import.meta.url.split('/').slice(0, -3).join('/');\nexport const Paths = globalThis['Paths'] = new PathMapper(root);\nPaths.add(globalThis.config?.paths);\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n/**\n * Perform `action` if `delay` ms have elapsed since last debounce call for `key`.\n *\n * ```\n * // invoke 'task' one second after last time this line executed\n * this.debounceTask = debounce(this.debounceTask, task, 1000);\n * ```\n */\nexport const debounce = (key, action, delay) => {\n if (key) {\n clearTimeout(key);\n }\n if (action && delay) {\n return setTimeout(action, delay);\n }\n};\nexport const async = task => {\n return async (...args) => {\n await Promise.resolve();\n task(...args);\n };\n};\nexport const asyncTask = (task, delayMs) => {\n setTimeout(task, delayMs ?? 0);\n};\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { arand } from \"./rand.js\";\nexport const makeName = (delim) => {\n return `${arand(name1)}${delim || '-'}${arand(name2)}`;\n};\nexport const makeCapName = () => {\n return kebabToCaps(makeName());\n};\nexport const kebabToCaps = s => {\n const neo = [];\n for (let i = 0, c; (c = s[i]); i++) {\n neo.push((i > 0) && (c !== '-') ? c : s[i > 0 ? ++i : i].toUpperCase());\n }\n return neo.join('');\n};\nconst name1 = [\"abandoned\", \"able\", \"absolute\", \"adorable\", \"adventurous\", \"academic\", \"acceptable\", \"acclaimed\", \"accomplished\", \"accurate\", \"aching\", \"acidic\", \"acrobatic\", \"active\", \"actual\", \"adept\", \"admirable\", \"admired\", \"adolescent\", \"adorable\", \"adored\", \"advanced\", \"afraid\", \"affectionate\", \"aged\", \"aggravating\", \"aggressive\", \"agile\", \"agitated\", \"agonizing\", \"agreeable\", \"ajar\", \"alarmed\", \"alarming\", \"alert\", \"alienated\", \"alive\", \"all\", \"altruistic\", \"amazing\", \"ambitious\", \"ample\", \"amused\", \"amusing\", \"anchored\", \"ancient\", \"angelic\", \"angry\", \"anguished\", \"animated\", \"annual\", \"another\", \"antique\", \"anxious\", \"any\", \"apprehensive\", \"appropriate\", \"apt\", \"arctic\", \"arid\", \"aromatic\", \"artistic\", \"ashamed\", \"assured\", \"astonishing\", \"athletic\", \"attached\", \"attentive\", \"attractive\", \"austere\", \"authentic\", \"authorized\", \"automatic\", \"avaricious\", \"average\", \"aware\", \"awesome\", \"awful\", \"awkward\", \"babyish\", \"bad\", \"back\", \"baggy\", \"bare\", \"barren\", \"basic\", \"beautiful\", \"belated\", \"beloved\", \"beneficial\", \"better\", \"best\", \"bewitched\", \"big\", \"big-hearted\", \"biodegradable\", \"bite-sized\", \"bitter\", \"black\", \"black-and-white\", \"bland\", \"blank\", \"blaring\", \"bleak\", \"blind\", \"blissful\", \"blond\", \"blue\", \"blushing\", \"bogus\", \"boiling\", \"bold\", \"bony\", \"boring\", \"bossy\", \"both\", \"bouncy\", \"bountiful\", \"bowed\", \"brave\", \"breakable\", \"brief\", \"bright\", \"brilliant\", \"brisk\", \"broken\", \"bronze\", \"brown\", \"bruised\", \"bubbly\", \"bulky\", \"bumpy\", \"buoyant\", \"burdensome\", \"burly\", \"bustling\", \"busy\", \"buttery\", \"buzzing\", \"calculating\", \"calm\", \"candid\", \"canine\", \"capital\", \"carefree\", \"careful\", \"careless\", \"caring\", \"cautious\", \"cavernous\", \"celebrated\", \"charming\", \"cheap\", \"cheerful\", \"cheery\", \"chief\", \"chilly\", \"chubby\", \"circular\", \"classic\", \"clean\", \"clear\", \"clear-cut\", \"clever\", \"close\", \"closed\", \"cloudy\", \"clueless\", \"clumsy\", \"cluttered\", \"coarse\", \"cold\", \"colorful\", \"colorless\", \"colossal\", \"comfortable\", \"common\", \"compassionate\", \"competent\", \"complete\", \"complex\", \"complicated\", \"composed\", \"concerned\", \"concrete\", \"confused\", \"conscious\", \"considerate\", \"constant\", \"content\", \"conventional\", \"cooked\", \"cool\", \"cooperative\", \"coordinated\", \"corny\", \"corrupt\", \"costly\", \"courageous\", \"courteous\", \"crafty\", \"crazy\", \"creamy\", \"creative\", \"creepy\", \"criminal\", \"crisp\", \"critical\", \"crooked\", \"crowded\", \"cruel\", \"crushing\", \"cuddly\", \"cultivated\", \"cultured\", \"cumbersome\", \"curly\", \"curvy\", \"cute\", \"cylindrical\", \"damaged\", \"damp\", \"dangerous\", \"dapper\", \"daring\", \"darling\", \"dark\", \"dazzling\", \"dead\", \"deadly\", \"deafening\", \"dear\", \"dearest\", \"decent\", \"decimal\", \"decisive\", \"deep\", \"defenseless\", \"defensive\", \"defiant\", \"deficient\", \"definite\", \"definitive\", \"delayed\", \"delectable\", \"delicious\", \"delightful\", \"delirious\", \"demanding\", \"dense\", \"dental\", \"dependable\", \"dependent\", \"descriptive\", \"deserted\", \"detailed\", \"determined\", \"devoted\", \"different\", \"difficult\", \"digital\", \"diligent\", \"dim\", \"dimpled\", \"dimwitted\", \"direct\", \"discrete\", \"distant\", \"downright\", \"dreary\", \"dirty\", \"disguised\", \"dishonest\", \"dismal\", \"distant\", \"distinct\", \"distorted\", \"dizzy\", \"dopey\", \"doting\", \"double\", \"downright\", \"drab\", \"drafty\", \"dramatic\", \"droopy\", \"dry\", \"dual\", \"dutiful\", \"each\", \"eager\", \"earnest\", \"early\", \"easy\", \"easy-going\", \"ecstatic\", \"edible\", \"educated\", \"elaborate\", \"elastic\", \"elated\", \"elderly\", \"electric\", \"elegant\", \"elementary\", \"elliptical\", \"embarrassed\", \"embellished\", \"eminent\", \"emotional\", \"empty\", \"enchanted\", \"enchanting\", \"energetic\", \"enlightened\", \"enormous\", \"enraged\", \"entire\", \"envious\", \"equal\", \"equatorial\", \"essential\", \"esteemed\", \"ethical\", \"euphoric\", \"even\", \"evergreen\", \"everlasting\", \"every\", \"evil\", \"exalted\", \"excellent\", \"exemplary\", \"exhausted\", \"excitable\", \"excited\", \"exciting\", \"exotic\", \"expensive\", \"experienced\", \"expert\", \"extraneous\", \"extroverted\", \"extra-large\", \"extra-small\", \"fabulous\", \"failing\", \"faint\", \"fair\", \"faithful\", \"fake\", \"false\", \"familiar\", \"famous\", \"fancy\", \"fantastic\", \"far\", \"faraway\", \"far-flung\", \"far-off\", \"fast\", \"fat\", \"fatal\", \"fatherly\", \"favorable\", \"favorite\", \"fearful\", \"fearless\", \"feisty\", \"feline\", \"female\", \"feminine\", \"few\", \"fickle\", \"filthy\", \"fine\", \"finished\", \"firm\", \"first\", \"firsthand\", \"fitting\", \"fixed\", \"flaky\", \"flamboyant\", \"flashy\", \"flat\", \"flawed\", \"flawless\", \"flickering\", \"flimsy\", \"flippant\", \"flowery\", \"fluffy\", \"fluid\", \"flustered\", \"focused\", \"fond\", \"foolhardy\", \"foolish\", \"forceful\", \"forked\", \"formal\", \"forsaken\", \"forthright\", \"fortunate\", \"fragrant\", \"frail\", \"frank\", \"frayed\", \"free\", \"French\", \"fresh\", \"frequent\", \"friendly\", \"frightened\", \"frightening\", \"frigid\", \"frilly\", \"frizzy\", \"frivolous\", \"front\", \"frosty\", \"frozen\", \"frugal\", \"fruitful\", \"full\", \"fumbling\", \"functional\", \"funny\", \"fussy\", \"fuzzy\", \"gargantuan\", \"gaseous\", \"general\", \"generous\", \"gentle\", \"genuine\", \"giant\", \"giddy\", \"gigantic\", \"gifted\", \"giving\", \"glamorous\", \"glaring\", \"glass\", \"gleaming\", \"gleeful\", \"glistening\", \"glittering\", \"gloomy\", \"glorious\", \"glossy\", \"glum\", \"golden\", \"good\", \"good-natured\", \"gorgeous\", \"graceful\", \"gracious\", \"grand\", \"grandiose\", \"granular\", \"grateful\", \"gray\", \"great\", \"green\", \"gregarious\", \"gripping\", \"grizzled\", \"grouchy\", \"grounded\", \"growing\", \"growling\", \"grown\", \"grubby\", \"gruesome\", \"grumpy\", \"guilty\", \"gullible\", \"gummy\", \"hairy\", \"half\", \"handmade\", \"handsome\", \"handy\", \"happy\", \"happy-go-lucky\", \"hard\", \"hard-to-find\", \"harmful\", \"harmless\", \"harmonious\", \"harsh\", \"hasty\", \"hateful\", \"haunting\", \"healthy\", \"heartfelt\", \"hearty\", \"heavenly\", \"heavy\", \"hefty\", \"helpful\", \"helpless\", \"hidden\", \"hideous\", \"high\", \"high-level\", \"hilarious\", \"hoarse\", \"hollow\", \"homely\", \"honest\", \"honorable\", \"honored\", \"hopeful\", \"horrible\", \"hospitable\", \"hot\", \"huge\", \"humble\", \"humiliating\", \"humming\", \"humongous\", \"hungry\", \"hurtful\", \"husky\", \"icky\", \"icy\", \"ideal\", \"idealistic\", \"identical\", \"idle\", \"idiotic\", \"idolized\", \"ignorant\", \"ill\", \"illegal\", \"ill-fated\", \"ill-informed\", \"illiterate\", \"illustrious\", \"imaginary\", \"imaginative\", \"immaculate\", \"immaterial\", \"immediate\", \"immense\", \"impassioned\", \"impeccable\", \"impartial\", \"imperfect\", \"imperturbable\", \"impish\", \"impolite\", \"important\", \"impossible\", \"impractical\", \"impressionable\", \"impressive\", \"improbable\", \"impure\", \"inborn\", \"incomparable\", \"incompatible\", \"incomplete\", \"inconsequential\", \"incredible\", \"indelible\", \"inexperienced\", \"indolent\", \"infamous\", \"infantile\", \"infatuated\", \"inferior\", \"infinite\", \"informal\", \"innocent\", \"insistent\", \"instructive\", \"insubstantial\", \"intelligent\", \"intent\", \"intentional\", \"interesting\", \"internal\", \"international\", \"intrepid\", \"ironclad\", \"itchy\", \"jaded\", \"jagged\", \"jam-packed\", \"jaunty\", \"jealous\", \"jittery\", \"joint\", \"jolly\", \"jovial\", \"joyful\", \"joyous\", \"jubilant\", \"judicious\", \"juicy\", \"jumbo\", \"junior\", \"jumpy\", \"juvenile\", \"kaleidoscopic\", \"keen\", \"key\", \"kind\", \"kindhearted\", \"kindly\", \"klutzy\", \"knobby\", \"knotty\", \"knowledgeable\", \"knowing\", \"known\", \"kooky\", \"kosher\", \"lanky\", \"large\", \"last\", \"lasting\", \"late\", \"lavish\", \"lawful\", \"lazy\", \"leading\", \"lean\", \"leafy\", \"left\", \"legal\", \"legitimate\", \"light\", \"lighthearted\", \"likable\", \"likely\", \"limited\", \"limp\", \"limping\", \"linear\", \"lined\", \"liquid\", \"little\", \"live\", \"lively\", \"livid\", \"lone\", \"lonely\", \"long\", \"long-term\", \"loose\", \"lopsided\", \"lost\", \"loud\", \"lovable\", \"lovely\", \"loving\", \"low\", \"loyal\", \"lucky\", \"lumbering\", \"luminous\", \"lumpy\", \"lustrous\", \"luxurious\", \"mad\", \"made-up\", \"magnificent\", \"majestic\", \"major\", \"male\", \"mammoth\", \"married\", \"marvelous\", \"masculine\", \"massive\", \"mature\", \"meager\", \"mealy\", \"mean\", \"measly\", \"meaty\", \"medical\", \"mediocre\", \"medium\", \"meek\", \"mellow\", \"melodic\", \"memorable\", \"menacing\", \"merry\", \"messy\", \"metallic\", \"mild\", \"milky\", \"mindless\", \"miniature\", \"minor\", \"minty\", \"miserable\", \"miserly\", \"misguided\", \"misty\", \"mixed\", \"modern\", \"modest\", \"moist\", \"monstrous\", \"monthly\", \"monumental\", \"moral\", \"mortified\", \"motherly\", \"motionless\", \"mountainous\", \"muddy\", \"muffled\", \"multicolored\", \"mundane\", \"murky\", \"mushy\", \"muted\", \"mysterious\", \"naive\", \"narrow\", \"nasty\", \"natural\", \"naughty\", \"nautical\", \"near\", \"neat\", \"necessary\", \"negligible\", \"neighboring\", \"nervous\", \"new\", \"next\", \"nice\", \"nifty\", \"nimble\", \"nippy\", \"nocturnal\", \"noisy\", \"nonstop\", \"normal\", \"notable\", \"noted\", \"noteworthy\", \"novel\", \"numb\", \"nutritious\", \"nutty\", \"obedient\", \"oblong\", \"oily\", \"oblong\", \"obvious\", \"occasional\", \"odd\", \"oddball\", \"offbeat\", \"offensive\", \"official\", \"old\", \"old-fashioned\", \"only\", \"open\", \"optimal\", \"optimistic\", \"opulent\", \"orange\", \"orderly\", \"organic\", \"ornate\", \"ornery\", \"ordinary\", \"original\", \"other\", \"our\", \"outlying\", \"outgoing\", \"outlandish\", \"outrageous\", \"outstanding\", \"oval\", \"overcooked\", \"overdue\", \"overjoyed\", \"overlooked\", \"palatable\", \"pale\", \"paltry\", \"parallel\", \"parched\", \"partial\", \"passionate\", \"past\", \"pastel\", \"peaceful\", \"peppery\", \"perfect\", \"perfumed\", \"periodic\", \"perky\", \"personal\", \"pertinent\", \"pesky\", \"pessimistic\", \"petty\", \"phony\", \"physical\", \"piercing\", \"pink\", \"pitiful\", \"plain\", \"plaintive\", \"plastic\", \"playful\", \"pleasant\", \"pleased\", \"pleasing\", \"plump\", \"plush\", \"polished\", \"polite\", \"political\", \"pointed\", \"pointless\", \"poised\", \"poor\", \"popular\", \"portly\", \"posh\", \"positive\", \"possible\", \"potable\", \"powerful\", \"powerless\", \"practical\", \"precious\", \"present\", \"prestigious\", \"pretty\", \"precious\", \"previous\", \"pricey\", \"prickly\", \"primary\", \"prime\", \"pristine\", \"private\", \"prize\", \"probable\", \"productive\", \"profitable\", \"profuse\", \"proper\", \"proud\", \"prudent\", \"punctual\", \"pungent\", \"puny\", \"pure\", \"purple\", \"pushy\", \"puzzled\", \"puzzling\", \"quaint\", \"qualified\", \"quarrelsome\", \"quarterly\", \"queasy\", \"querulous\", \"questionable\", \"quick\", \"quick-witted\", \"quiet\", \"quintessential\", \"quirky\", \"quixotic\", \"quizzical\", \"radiant\", \"ragged\", \"rapid\", \"rare\", \"rash\", \"raw\", \"recent\", \"reckless\", \"rectangular\", \"ready\", \"real\", \"realistic\", \"reasonable\", \"red\", \"reflecting\", \"regal\", \"regular\", \"reliable\", \"relieved\", \"remarkable\", \"remorseful\", \"remote\", \"repentant\", \"required\", \"respectful\", \"responsible\", \"repulsive\", \"revolving\", \"rewarding\", \"rich\", \"rigid\", \"right\", \"ringed\", \"ripe\", \"roasted\", \"robust\", \"rosy\", \"rotating\", \"rotten\", \"rough\", \"round\", \"rowdy\", \"royal\", \"rubbery\", \"rundown\", \"ruddy\", \"runny\", \"rural\", \"rusty\", \"sad\", \"safe\", \"salty\", \"same\", \"sandy\", \"sane\", \"sarcastic\", \"sardonic\", \"satisfied\", \"scaly\", \"scarce\", \"scared\", \"scary\", \"scented\", \"scholarly\", \"scientific\", \"scratchy\", \"scrawny\", \"second\", \"secondary\", \"second-hand\", \"secret\", \"self-assured\", \"self-reliant\", \"selfish\", \"sentimental\", \"separate\", \"serene\", \"serious\", \"serpentine\", \"several\", \"severe\", \"shabby\", \"shadowy\", \"shady\", \"shallow\", \"shameful\", \"shameless\", \"sharp\", \"shimmering\", \"shiny\", \"shocked\", \"shocking\", \"shoddy\", \"short\", \"short-term\", \"showy\", \"shrill\", \"shy\", \"sick\", \"silent\", \"silky\", \"silly\", \"silver\", \"similar\", \"simple\", \"simplistic\", \"sinful\", \"single\", \"sizzling\", \"skeletal\", \"skinny\", \"sleepy\", \"slight\", \"slim\", \"slimy\", \"slippery\", \"slow\", \"slushy\", \"small\", \"smart\", \"smoggy\", \"smooth\", \"smug\", \"snappy\", \"snarling\", \"sneaky\", \"sniveling\", \"snoopy\", \"sociable\", \"soft\", \"soggy\", \"solid\", \"somber\", \"some\", \"spherical\", \"sophisticated\", \"sore\", \"sorrowful\", \"soulful\", \"soupy\", \"sour\", \"Spanish\", \"sparkling\", \"sparse\", \"specific\", \"spectacular\", \"speedy\", \"spicy\", \"spiffy\", \"spirited\", \"spiteful\", \"splendid\", \"spotless\", \"spotted\", \"spry\", \"square\", \"squeaky\", \"squiggly\", \"stable\", \"staid\", \"stained\", \"stale\", \"standard\", \"starchy\", \"stark\", \"starry\", \"steep\", \"sticky\", \"stiff\", \"stimulating\", \"stingy\", \"stormy\", \"straight\", \"strange\", \"steel\", \"strict\", \"strident\", \"striking\", \"striped\", \"strong\", \"studious\", \"stunning\", \"stupendous\", \"sturdy\", \"stylish\", \"subdued\", \"submissive\", \"substantial\", \"subtle\", \"suburban\", \"sudden\", \"sugary\", \"sunny\", \"super\", \"superb\", \"superficial\", \"superior\", \"supportive\", \"sure-footed\", \"surprised\", \"suspicious\", \"svelte\", \"sweet\", \"sweltering\", \"swift\", \"sympathetic\", \"tall\", \"talkative\", \"tame\", \"tan\", \"tangible\", \"tart\", \"tasty\", \"tattered\", \"taut\", \"tedious\", \"teeming\", \"tempting\", \"tender\", \"tense\", \"tepid\", \"terrible\", \"terrific\", \"testy\", \"thankful\", \"that\", \"these\", \"thick\", \"thin\", \"third\", \"thirsty\", \"this\", \"thorough\", \"thorny\", \"those\", \"thoughtful\", \"threadbare\", \"thrifty\", \"thunderous\", \"tidy\", \"tight\", \"timely\", \"tinted\", \"tiny\", \"tired\", \"torn\", \"total\", \"tough\", \"traumatic\", \"treasured\", \"tremendous\", \"tragic\", \"trained\", \"tremendous\", \"triangular\", \"tricky\", \"trifling\", \"trim\", \"trivial\", \"troubled\", \"true\", \"trusting\", \"trustworthy\", \"trusty\", \"truthful\", \"tubby\", \"turbulent\", \"twin\", \"ugly\", \"ultimate\", \"unacceptable\", \"unaware\", \"uncomfortable\", \"uncommon\", \"unconscious\", \"understated\", \"unequaled\", \"uneven\", \"unfinished\", \"unfit\", \"unfolded\", \"unfortunate\", \"unhappy\", \"unhealthy\", \"uniform\", \"unimportant\", \"unique\", \"united\", \"unkempt\", \"unknown\", \"unlawful\", \"unlined\", \"unlucky\", \"unnatural\", \"unpleasant\", \"unrealistic\", \"unripe\", \"unruly\", \"unselfish\", \"unsightly\", \"unsteady\", \"unsung\", \"untidy\", \"untimely\", \"untried\", \"untrue\", \"unused\", \"unusual\", \"unwelcome\", \"unwieldy\", \"unwilling\", \"unwitting\", \"unwritten\", \"upbeat\", \"upright\", \"upset\", \"urban\", \"usable\", \"used\", \"useful\", \"useless\", \"utilized\", \"utter\", \"vacant\", \"vague\", \"vain\", \"valid\", \"valuable\", \"vapid\", \"variable\", \"vast\", \"velvety\", \"venerated\", \"vengeful\", \"verifiable\", \"vibrant\", \"vicious\", \"victorious\", \"vigilant\", \"vigorous\", \"villainous\", \"violet\", \"violent\", \"virtual\", \"virtuous\", \"visible\", \"vital\", \"vivacious\", \"vivid\", \"voluminous\", \"wan\", \"warlike\", \"warm\", \"warmhearted\", \"warped\", \"wary\", \"wasteful\", \"watchful\", \"waterlogged\", \"watery\", \"wavy\", \"wealthy\", \"weak\", \"weary\", \"webbed\", \"wee\", \"weekly\", \"weepy\", \"weighty\", \"weird\", \"welcome\", \"well-documented\", \"well-groomed\", \"well-informed\", \"well-lit\", \"well-made\", \"well-off\", \"well-to-do\", \"well-worn\", \"wet\", \"which\", \"whimsical\", \"whirlwind\", \"whispered\", \"white\", \"whole\", \"whopping\", \"wicked\", \"wide\", \"wide-eyed\", \"wiggly\", \"wild\", \"willing\", \"wilted\", \"winding\", \"windy\", \"winged\", \"wiry\", \"wise\", \"witty\", \"wobbly\", \"woeful\", \"wonderful\", \"wooden\", \"woozy\", \"wordy\", \"worldly\", \"worn\", \"worried\", \"worrisome\", \"worse\", \"worst\", \"worthless\", \"worthwhile\", \"worthy\", \"wrathful\", \"wretched\", \"writhing\", \"wrong\", \"wry\", \"yawning\", \"yearly\", \"yellow\", \"yellowish\", \"young\", \"youthful\", \"yummy\", \"zany\", \"zealous\", \"zesty\", \"zigzag\", \"rocky\"];\nconst name2 = [\"people\", \"history\", \"way\", \"art\", \"world\", \"information\", \"map\", \"family\", \"government\", \"health\", \"system\", \"computer\", \"meat\", \"year\", \"thanks\", \"music\", \"person\", \"reading\", \"method\", \"data\", \"food\", \"understanding\", \"theory\", \"law\", \"bird\", \"literature\", \"problem\", \"software\", \"control\", \"knowledge\", \"power\", \"ability\", \"economics\", \"love\", \"internet\", \"television\", \"science\", \"library\", \"nature\", \"fact\", \"product\", \"idea\", \"temperature\", \"investment\", \"area\", \"society\", \"activity\", \"story\", \"industry\", \"media\", \"thing\", \"oven\", \"community\", \"definition\", \"safety\", \"quality\", \"development\", \"language\", \"management\", \"player\", \"variety\", \"video\", \"week\", \"security\", \"country\", \"exam\", \"movie\", \"organization\", \"equipment\", \"physics\", \"analysis\", \"policy\", \"series\", \"thought\", \"basis\", \"boyfriend\", \"direction\", \"strategy\", \"technology\", \"army\", \"camera\", \"freedom\", \"paper\", \"environment\", \"child\", \"instance\", \"month\", \"truth\", \"marketing\", \"university\", \"writing\", \"article\", \"department\", \"difference\", \"goal\", \"news\", \"audience\", \"fishing\", \"growth\", \"income\", \"marriage\", \"user\", \"combination\", \"failure\", \"meaning\", \"medicine\", \"philosophy\", \"teacher\", \"communication\", \"night\", \"chemistry\", \"disease\", \"disk\", \"energy\", \"nation\", \"road\", \"role\", \"soup\", \"advertising\", \"location\", \"success\", \"addition\", \"apartment\", \"education\", \"math\", \"moment\", \"painting\", \"politics\", \"attention\", \"decision\", \"event\", \"property\", \"shopping\", \"student\", \"wood\", \"competition\", \"distribution\", \"entertainment\", \"office\", \"population\", \"president\", \"unit\", \"category\", \"cigarette\", \"context\", \"introduction\", \"opportunity\", \"performance\", \"driver\", \"flight\", \"length\", \"magazine\", \"newspaper\", \"relationship\", \"teaching\", \"cell\", \"dealer\", \"debate\", \"finding\", \"lake\", \"member\", \"message\", \"phone\", \"scene\", \"appearance\", \"association\", \"concept\", \"customer\", \"death\", \"discussion\", \"housing\", \"inflation\", \"insurance\", \"mood\", \"woman\", \"advice\", \"blood\", \"effort\", \"expression\", \"importance\", \"opinion\", \"payment\", \"reality\", \"responsibility\", \"situation\", \"skill\", \"statement\", \"wealth\", \"application\", \"city\", \"county\", \"depth\", \"estate\", \"foundation\", \"grandmother\", \"heart\", \"perspective\", \"photo\", \"recipe\", \"studio\", \"topic\", \"collection\", \"depression\", \"imagination\", \"passion\", \"percentage\", \"resource\", \"setting\", \"ad\", \"agency\", \"college\", \"connection\", \"criticism\", \"debt\", \"description\", \"memory\", \"patience\", \"secretary\", \"solution\", \"administration\", \"aspect\", \"attitude\", \"director\", \"personality\", \"psychology\", \"recommendation\", \"response\", \"selection\", \"storage\", \"version\", \"alcohol\", \"argument\", \"complaint\", \"contract\", \"emphasis\", \"highway\", \"loss\", \"membership\", \"possession\", \"preparation\", \"steak\", \"union\", \"agreement\", \"cancer\", \"currency\", \"employment\", \"engineering\", \"entry\", \"interaction\", \"limit\", \"mixture\", \"preference\", \"region\", \"republic\", \"seat\", \"tradition\", \"virus\", \"actor\", \"classroom\", \"delivery\", \"device\", \"difficulty\", \"drama\", \"election\", \"engine\", \"football\", \"guidance\", \"hotel\", \"match\", \"owner\", \"priority\", \"protection\", \"suggestion\", \"tension\", \"variation\", \"anxiety\", \"atmosphere\", \"awareness\", \"bread\", \"climate\", \"comparison\", \"confusion\", \"construction\", \"elevator\", \"emotion\", \"employee\", \"employer\", \"guest\", \"height\", \"leadership\", \"mall\", \"manager\", \"operation\", \"recording\", \"respect\", \"sample\", \"transportation\", \"boring\", \"charity\", \"cousin\", \"disaster\", \"editor\", \"efficiency\", \"excitement\", \"extent\", \"feedback\", \"guitar\", \"homework\", \"leader\", \"mom\", \"outcome\", \"permission\", \"presentation\", \"promotion\", \"reflection\", \"refrigerator\", \"resolution\", \"revenue\", \"session\", \"singer\", \"tennis\", \"basket\", \"bonus\", \"cabinet\", \"childhood\", \"church\", \"clothes\", \"coffee\", \"dinner\", \"drawing\", \"hair\", \"hearing\", \"initiative\", \"judgment\", \"lab\", \"measurement\", \"mode\", \"mud\", \"orange\", \"poetry\", \"police\", \"possibility\", \"procedure\", \"queen\", \"ratio\", \"relation\", \"restaurant\", \"satisfaction\", \"sector\", \"signature\", \"significance\", \"song\", \"tooth\", \"town\", \"vehicle\", \"volume\", \"wife\", \"accident\", \"airport\", \"appointment\", \"arrival\", \"assumption\", \"baseball\", \"chapter\", \"committee\", \"conversation\", \"database\", \"enthusiasm\", \"error\", \"explanation\", \"farmer\", \"gate\", \"girl\", \"hall\", \"historian\", \"hospital\", \"injury\", \"instruction\", \"maintenance\", \"manufacturer\", \"meal\", \"perception\", \"pie\", \"poem\", \"presence\", \"proposal\", \"reception\", \"replacement\", \"revolution\", \"river\", \"son\", \"speech\", \"tea\", \"village\", \"warning\", \"winner\", \"worker\", \"writer\", \"assistance\", \"breath\", \"buyer\", \"chest\", \"chocolate\", \"conclusion\", \"contribution\", \"cookie\", \"courage\", \"desk\", \"drawer\", \"establishment\", \"examination\", \"garbage\", \"grocery\", \"honey\", \"impression\", \"improvement\", \"independence\", \"insect\", \"inspection\", \"inspector\", \"king\", \"ladder\", \"menu\", \"penalty\", \"piano\", \"potato\", \"profession\", \"professor\", \"quantity\", \"reaction\", \"requirement\", \"salad\", \"sister\", \"supermarket\", \"tongue\", \"weakness\", \"wedding\", \"affair\", \"ambition\", \"analyst\", \"apple\", \"assignment\", \"assistant\", \"beer\", \"birthday\", \"celebration\", \"championship\", \"cheek\", \"client\", \"consequence\", \"departure\", \"diamond\", \"dirt\", \"ear\", \"fortune\", \"friendship\", \"funeral\", \"gene\", \"girlfriend\", \"hat\", \"indication\", \"intention\", \"lady\", \"midnight\", \"negotiation\", \"obligation\", \"passenger\", \"pizza\", \"platform\", \"poet\", \"pollution\", \"recognition\", \"reputation\", \"shirt\", \"speaker\", \"stranger\", \"surgery\", \"sympathy\", \"tale\", \"throat\", \"trainer\", \"uncle\", \"youth\", \"time\", \"work\", \"film\", \"water\", \"money\", \"example\", \"while\", \"business\", \"study\", \"game\", \"life\", \"form\", \"air\", \"day\", \"place\", \"number\", \"part\", \"field\", \"fish\", \"back\", \"process\", \"heat\", \"hand\", \"experience\", \"job\", \"book\", \"end\", \"point\", \"type\", \"home\", \"economy\", \"value\", \"body\", \"market\", \"guide\", \"interest\", \"state\", \"radio\", \"course\", \"company\", \"price\", \"size\", \"card\", \"list\", \"mind\", \"trade\", \"line\", \"care\", \"group\", \"risk\", \"word\", \"fat\", \"force\", \"key\", \"light\", \"training\", \"name\", \"school\", \"top\", \"amount\", \"level\", \"order\", \"practice\", \"research\", \"sense\", \"service\", \"piece\", \"web\", \"boss\", \"sport\", \"fun\", \"house\", \"page\", \"term\", \"test\", \"answer\", \"sound\", \"focus\", \"matter\", \"kind\", \"soil\", \"board\", \"oil\", \"picture\", \"access\", \"garden\", \"range\", \"rate\", \"reason\", \"future\", \"site\", \"demand\", \"exercise\", \"image\", \"case\", \"cause\", \"coast\", \"action\", \"age\", \"bad\", \"boat\", \"record\", \"result\", \"section\", \"building\", \"mouse\", \"cash\", \"class\", \"period\", \"plan\", \"store\", \"tax\", \"side\", \"subject\", \"space\", \"rule\", \"stock\", \"weather\", \"chance\", \"figure\", \"man\", \"model\", \"source\", \"beginning\", \"earth\", \"program\", \"chicken\", \"design\", \"feature\", \"head\", \"material\", \"purpose\", \"question\", \"rock\", \"salt\", \"act\", \"birth\", \"car\", \"dog\", \"object\", \"scale\", \"sun\", \"note\", \"profit\", \"rent\", \"speed\", \"style\", \"war\", \"bank\", \"craft\", \"half\", \"inside\", \"outside\", \"standard\", \"bus\", \"exchange\", \"eye\", \"fire\", \"position\", \"pressure\", \"stress\", \"advantage\", \"benefit\", \"box\", \"frame\", \"issue\", \"step\", \"cycle\", \"face\", \"item\", \"metal\", \"paint\", \"review\", \"room\", \"screen\", \"structure\", \"view\", \"account\", \"ball\", \"discipline\", \"medium\", \"share\", \"balance\", \"bit\", \"black\", \"bottom\", \"choice\", \"gift\", \"impact\", \"machine\", \"shape\", \"tool\", \"wind\", \"address\", \"average\", \"career\", \"culture\", \"morning\", \"pot\", \"sign\", \"table\", \"task\", \"condition\", \"contact\", \"credit\", \"egg\", \"hope\", \"ice\", \"network\", \"north\", \"square\", \"attempt\", \"date\", \"effect\", \"link\", \"post\", \"star\", \"voice\", \"capital\", \"challenge\", \"friend\", \"self\", \"shot\", \"brush\", \"couple\", \"exit\", \"front\", \"function\", \"lack\", \"living\", \"plant\", \"plastic\", \"spot\", \"summer\", \"taste\", \"theme\", \"track\", \"wing\", \"brain\", \"button\", \"click\", \"desire\", \"foot\", \"gas\", \"influence\", \"notice\", \"rain\", \"wall\", \"base\", \"damage\", \"distance\", \"feeling\", \"pair\", \"savings\", \"staff\", \"sugar\", \"target\", \"text\", \"animal\", \"author\", \"budget\", \"discount\", \"file\", \"ground\", \"lesson\", \"minute\", \"officer\", \"phase\", \"reference\", \"register\", \"sky\", \"stage\", \"stick\", \"title\", \"trouble\", \"bowl\", \"bridge\", \"campaign\", \"character\", \"club\", \"edge\", \"evidence\", \"fan\", \"letter\", \"lock\", \"maximum\", \"novel\", \"option\", \"pack\", \"park\", \"quarter\", \"skin\", \"sort\", \"weight\", \"baby\", \"background\", \"carry\", \"dish\", \"factor\", \"fruit\", \"glass\", \"joint\", \"master\", \"muscle\", \"red\", \"strength\", \"traffic\", \"trip\", \"vegetable\", \"appeal\", \"chart\", \"gear\", \"ideal\", \"librarychen\", \"land\", \"log\", \"mother\", \"net\", \"party\", \"principle\", \"relative\", \"sale\", \"season\", \"signal\", \"spirit\", \"street\", \"tree\", \"wave\", \"belt\", \"bench\", \"commission\", \"copy\", \"drop\", \"minimum\", \"path\", \"progress\", \"project\", \"sea\", \"south\", \"status\", \"stuff\", \"ticket\", \"tour\", \"angle\", \"blue\", \"breakfast\", \"confidence\", \"daughter\", \"degree\", \"doctor\", \"dot\", \"dream\", \"duty\", \"essay\", \"father\", \"fee\", \"finance\", \"hour\", \"juice\", \"luck\", \"milk\", \"mouth\", \"peace\", \"pipe\", \"stable\", \"storm\", \"substance\", \"team\", \"trick\", \"afternoon\", \"bat\", \"beach\", \"blank\", \"catch\", \"chain\", \"consideration\", \"cream\", \"crew\", \"detail\", \"gold\", \"interview\", \"kid\", \"mark\", \"mission\", \"pain\", \"pleasure\", \"score\", \"screw\", \"sex\", \"shop\", \"shower\", \"suit\", \"tone\", \"window\", \"agent\", \"band\", \"bath\", \"block\", \"bone\", \"calendar\", \"candidate\", \"cap\", \"coat\", \"contest\", \"corner\", \"court\", \"cup\", \"district\", \"door\", \"east\", \"finger\", \"garage\", \"guarantee\", \"hole\", \"hook\", \"implement\", \"layer\", \"lecture\", \"lie\", \"manner\", \"meeting\", \"nose\", \"parking\", \"partner\", \"profile\", \"rice\", \"routine\", \"schedule\", \"swimming\", \"telephone\", \"tip\", \"winter\", \"airline\", \"bag\", \"battle\", \"bed\", \"bill\", \"bother\", \"cake\", \"code\", \"curve\", \"designer\", \"dimension\", \"dress\", \"ease\", \"emergency\", \"evening\", \"extension\", \"farm\", \"fight\", \"gap\", \"grade\", \"holiday\", \"horror\", \"horse\", \"host\", \"husband\", \"loan\", \"mistake\", \"mountain\", \"nail\", \"noise\", \"occasion\", \"package\", \"patient\", \"pause\", \"phrase\", \"proof\", \"race\", \"relief\", \"sand\", \"sentence\", \"shoulder\", \"smoke\", \"stomach\", \"string\", \"tourist\", \"towel\", \"vacation\", \"west\", \"wheel\", \"wine\", \"arm\", \"aside\", \"associate\", \"bet\", \"blow\", \"border\", \"branch\", \"breast\", \"brother\", \"buddy\", \"bunch\", \"chip\", \"coach\", \"cross\", \"document\", \"draft\", \"dust\", \"expert\", \"floor\", \"god\", \"golf\", \"habit\", \"iron\", \"judge\", \"knife\", \"landscape\", \"league\", \"mail\", \"mess\", \"native\", \"opening\", \"parent\", \"pattern\", \"pin\", \"pool\", \"pound\", \"request\", \"salary\", \"shame\", \"shelter\", \"shoe\", \"silver\", \"tackle\", \"tank\", \"trust\", \"assist\", \"bake\", \"bar\", \"bell\", \"bike\", \"blame\", \"boy\", \"brick\", \"chair\", \"closet\", \"clue\", \"collar\", \"comment\", \"conference\", \"devil\", \"diet\", \"fear\", \"fuel\", \"glove\", \"jacket\", \"lunch\", \"monitor\", \"mortgage\", \"nurse\", \"pace\", \"panic\", \"peak\", \"plane\", \"reward\", \"row\", \"sandwich\", \"shock\", \"spite\", \"spray\", \"surprise\", \"till\", \"transition\", \"weekend\", \"welcome\", \"yard\", \"alarm\", \"bend\", \"bicycle\", \"bite\", \"blind\", \"bottle\", \"cable\", \"candle\", \"clerk\", \"cloud\", \"concert\", \"counter\", \"flower\", \"grandfather\", \"harm\", \"knee\", \"lawyer\", \"leather\", \"load\", \"mirror\", \"neck\", \"pension\", \"plate\", \"purple\", \"ruin\", \"ship\", \"skirt\", \"slice\", \"snow\", \"specialist\", \"stroke\", \"switch\", \"trash\", \"tune\", \"zone\", \"anger\", \"award\", \"bid\", \"bitter\", \"boot\", \"bug\", \"camp\", \"candy\", \"carpet\", \"cat\", \"champion\", \"channel\", \"clock\", \"comfort\", \"cow\", \"crack\", \"engineer\", \"entrance\", \"fault\", \"grass\", \"guy\", \"hell\", \"highlight\", \"incident\", \"island\", \"joke\", \"jury\", \"leg\", \"lip\", \"mate\", \"motor\", \"nerve\", \"passage\", \"pen\", \"pride\", \"priest\", \"prize\", \"promise\", \"resident\", \"resort\", \"ring\", \"roof\", \"rope\", \"sail\", \"scheme\", \"script\", \"sock\", \"station\", \"toe\", \"tower\", \"truck\", \"witness\", \"can\", \"will\", \"other\", \"use\", \"make\", \"good\", \"look\", \"help\", \"go\", \"great\", \"being\", \"still\", \"public\", \"read\", \"keep\", \"start\", \"give\", \"human\", \"local\", \"general\", \"specific\", \"long\", \"play\", \"feel\", \"high\", \"put\", \"common\", \"set\", \"change\", \"simple\", \"past\", \"big\", \"possible\", \"particular\", \"major\", \"personal\", \"current\", \"national\", \"cut\", \"natural\", \"physical\", \"show\", \"try\", \"check\", \"second\", \"call\", \"move\", \"pay\", \"let\", \"increase\", \"single\", \"individual\", \"turn\", \"ask\", \"buy\", \"guard\", \"hold\", \"main\", \"offer\", \"potential\", \"professional\", \"international\", \"travel\", \"cook\", \"alternative\", \"special\", \"working\", \"whole\", \"dance\", \"excuse\", \"cold\", \"commercial\", \"low\", \"purchase\", \"deal\", \"primary\", \"worth\", \"fall\", \"necessary\", \"positive\", \"produce\", \"search\", \"present\", \"spend\", \"talk\", \"creative\", \"tell\", \"cost\", \"drive\", \"green\", \"support\", \"glad\", \"remove\", \"return\", \"run\", \"complex\", \"due\", \"effective\", \"middle\", \"regular\", \"reserve\", \"independent\", \"leave\", \"original\", \"reach\", \"rest\", \"serve\", \"watch\", \"beautiful\", \"charge\", \"active\", \"break\", \"negative\", \"safe\", \"stay\", \"visit\", \"visual\", \"affect\", \"cover\", \"report\", \"rise\", \"walk\", \"white\", \"junior\", \"pick\", \"unique\", \"classic\", \"final\", \"lift\", \"mix\", \"private\", \"stop\", \"teach\", \"western\", \"concern\", \"familiar\", \"fly\", \"official\", \"broad\", \"comfortable\", \"gain\", \"rich\", \"save\", \"stand\", \"young\", \"heavy\", \"lead\", \"listen\", \"valuable\", \"worry\", \"handle\", \"leading\", \"meet\", \"release\", \"sell\", \"finish\", \"normal\", \"press\", \"ride\", \"secret\", \"spread\", \"spring\", \"tough\", \"wait\", \"brown\", \"deep\", \"display\", \"flow\", \"hit\", \"objective\", \"shoot\", \"touch\", \"cancel\", \"chemical\", \"cry\", \"dump\", \"extreme\", \"push\", \"conflict\", \"eat\", \"fill\", \"formal\", \"jump\", \"kick\", \"opposite\", \"pass\", \"pitch\", \"remote\", \"total\", \"treat\", \"vast\", \"abuse\", \"beat\", \"burn\", \"deposit\", \"print\", \"raise\", \"sleep\", \"somewhere\", \"advance\", \"consist\", \"dark\", \"double\", \"draw\", \"equal\", \"fix\", \"hire\", \"internal\", \"join\", \"sensitive\", \"tap\", \"win\", \"attack\", \"claim\", \"constant\", \"drag\", \"drink\", \"guess\", \"minor\", \"pull\", \"raw\", \"soft\", \"solid\", \"wear\", \"weird\", \"wonder\", \"annual\", \"count\", \"dead\", \"doubt\", \"feed\", \"forever\", \"impress\", \"repeat\", \"round\", \"sing\", \"slide\", \"strip\", \"wish\", \"combine\", \"command\", \"dig\", \"divide\", \"equivalent\", \"hang\", \"hunt\", \"initial\", \"march\", \"mention\", \"spiritual\", \"survey\", \"tie\", \"adult\", \"brief\", \"crazy\", \"escape\", \"gather\", \"hate\", \"prior\", \"repair\", \"rough\", \"sad\", \"scratch\", \"sick\", \"strike\", \"employ\", \"external\", \"hurt\", \"illegal\", \"laugh\", \"lay\", \"mobile\", \"nasty\", \"ordinary\", \"respond\", \"royal\", \"senior\", \"split\", \"strain\", \"struggle\", \"swim\", \"train\", \"upper\", \"wash\", \"yellow\", \"convert\", \"crash\", \"dependent\", \"fold\", \"funny\", \"grab\", \"hide\", \"miss\", \"permit\", \"quote\", \"recover\", \"resolve\", \"roll\", \"sink\", \"slip\", \"spare\", \"suspect\", \"sweet\", \"swing\", \"twist\", \"upstairs\", \"usual\", \"abroad\", \"brave\", \"calm\", \"concentrate\", \"estimate\", \"grand\", \"male\", \"mine\", \"prompt\", \"quiet\", \"refuse\", \"regret\", \"reveal\", \"rush\", \"shake\", \"shift\", \"shine\", \"steal\", \"suck\", \"surround\", \"bear\", \"brilliant\", \"dare\", \"dear\", \"delay\", \"drunk\", \"female\", \"hurry\", \"inevitable\", \"invite\", \"kiss\", \"neat\", \"pop\", \"punch\", \"quit\", \"reply\", \"representative\", \"resist\", \"rip\", \"rub\", \"silly\", \"smile\", \"spell\", \"stretch\", \"tear\", \"temporary\", \"tomorrow\", \"wake\", \"wrap\", \"yesterday\"];\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n\nexport * from '../js/utils/utils.js';\nexport * from '../js/utils/names.js';\n"],
- "mappings": "AAOO,GAAM,GAAmB,CAAC,EAAM,IAAQ,CAC3C,GAAI,GAAY,KAAK,MAAO,GAAM,GAAQ,GAAI,EAC9C,GAAI,MAAM,CAAS,EACf,MAAO,SAEX,GAAI,GAAS,GACb,MAAI,GAAY,GACR,GAAY,GACZ,GAAS,KACN,GAAG,WAAmB,SAEjC,GAAY,KAAK,MAAM,EAAY,EAAE,EACjC,EAAY,GACR,GAAY,GACZ,GAAS,KACN,GAAG,WAAmB,SAEjC,GAAY,KAAK,MAAM,EAAY,EAAE,EACjC,EAAY,GACR,GAAY,GACZ,GAAS,KACN,GAAG,SAAiB,SAE/B,GAAY,KAAK,MAAM,EAAY,EAAE,EACjC,EAAY,GACR,GAAY,GACZ,GAAS,KACN,GAAG,QAAgB,SAE9B,GAAY,KAAK,MAAM,EAAY,EAAE,EACjC,EAAY,GACR,GAAY,GACZ,GAAS,KACN,GAAG,UAAkB,SAEhC,GAAY,KAAK,MAAM,EAAY,EAAE,EACjC,EAAY,GACZ,GAAS,KACN,GAAG,SAAiB,YAC/B,ECvCA,GAAM,CAAE,QAAO,MAAK,UAAW,KAElB,EAAM,AAAC,GAAW,EAAO,GAAI,EAAO,EAAI,GAAK,EAAI,GAAI,EAAS,CAAC,CAAC,EAEhE,EAAQ,AAAC,GAAU,EAAM,EAAO,EAAI,CAAK,EAEzC,EAAQ,AAAC,GAAU,EAAM,EAAM,EAAM,MAAM,GAE3C,EAAO,AAAC,GAAgB,QAAQ,EAAO,EAAI,CAAW,ECP5D,GAAM,GAAS,CAAC,EAAO,EAAQ,IAAU,CAC5C,EAAQ,GAAS,EACjB,EAAS,GAAU,EACnB,EAAQ,GAAS,IACjB,GAAM,GAAM,KAAK,IAAI,GAAI,EAAS,CAAC,EAC7B,EAAQ,KAAK,IAAI,GAAI,CAAM,EAAI,EAC/B,EAAS,CAAC,EAChB,OAAS,GAAI,EAAG,EAAI,EAAO,IACvB,EAAO,KAAK,GAAG,EAAM,EAAQ,CAAG,EAAI,GAAK,EAE7C,MAAO,GAAO,KAAK,CAAK,CAC5B,ECnBA,AAQO,GAAM,GAAW,CAAC,MAAO,QAAS,iBAAkB,WAAY,KAAK,EAC/D,EAAW,CAAC,OAAQ,OAAO,ECTxC,AASA,GAAM,CAAE,eAAgB,OAClB,EAAc,CAAC,EAAQ,EAAU,EAAI,EAAO,EAAO,QAAU,CAC/D,GAAI,CAAC,EACD,MAAO,IAAM,CAAE,EAEnB,GAAI,IAAS,MACT,MAAO,SAAQ,IAAI,KAAK,OAAO,EAEnC,GAAM,GAAQ,eAAe,GAAM,kBAAkB,GAAS,iEAC9D,MAAO,SAAQ,GAAM,KAAK,QAAS,KAAK,IAAY,CAAK,CAC7D,EACa,EAAa,CAAC,EAAQ,EAAU,EAAK,GAAI,EAAQ,KAAO,CACjE,GAAM,GAAe,EAAY,EAAS,IAAI,GAAQ,CAAC,EAAM,EAAY,EAAQ,EAAU,EAAI,EAAO,CAAI,CAAC,CAAC,CAAC,EACvG,EAAe,EAAY,EAAS,IAAI,GAAQ,CAAC,EAAM,EAAY,GAAM,EAAU,EAAI,EAAO,CAAI,CAAC,CAAC,CAAC,EACrG,EAAU,CAAE,GAAG,EAAc,GAAG,CAAa,EAE7C,EAAM,EAAQ,IACpB,cAAO,OAAO,EAAK,CAAO,EACnB,CACX,EACA,EAAW,MAAQ,WAAW,QAAQ,UAAY,CAAC,EC7BnD,AAQO,WAAiB,EAAe,EAAY,CAC/C,OAAW,KAAY,GACnB,GAAI,EAAc,KAAc,EAAW,GACvC,MAAO,GAGf,MAAO,EACX,CCfA,AAaO,GAAM,GAAgB,CAAC,EAAK,IAAS,CACxC,GAAI,GAAS,EACb,GAAK,GAGA,GAAI,MAAM,QAAQ,CAAI,EAAG,CAC1B,AAAK,MAAM,QAAQ,CAAG,GAElB,GAAM,CAAC,GAEX,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CAClC,GAAM,GAAQ,EAAK,GACnB,AAAI,EAAI,KAAO,GACX,GAAI,GAAK,EAEjB,CACA,GAAM,GAAU,EAAI,OAAS,EAAK,OAClC,AAAI,EAAU,GACV,EAAI,OAAO,EAAK,OAAQ,CAAO,CAEvC,SACS,MAAO,IAAS,SAAU,CAC/B,EAAU,GAAO,MAAO,IAAQ,SAAY,EAAM,OAAO,OAAO,IAAI,EACpE,GAAM,GAAO,CAAC,EAEd,OAAO,KAAK,CAAI,EAAE,QAAQ,GAAO,CAE7B,EAAO,GAAO,EAAK,GAEnB,EAAK,GAAO,EAChB,CAAC,EAED,OAAO,KAAK,CAAM,EAAE,QAAQ,GAAO,CAE/B,AAAK,EAAK,IACN,MAAO,GAAO,EAEtB,CAAC,CACL,EACA,MAAO,EACX,EACa,EAAe,CAAC,EAAK,IAAS,CACvC,GAAI,GAAQ,KACR,MAAO,MAEX,GAAI,MAAO,IAAS,SAAU,CAC1B,GAAM,GAAU,GAAO,MAAO,IAAQ,SAAY,EAAM,OAAO,OAAO,IAAI,EAC1E,cAAO,KAAK,CAAI,EAAE,QAAQ,GAAO,EAAO,GAAO,EAAK,EAAI,EACjD,CACX,CACA,MAAO,EACX,EACO,WAAkB,EAAO,CAC5B,GAAK,EAGA,IAAI,MAAM,QAAQ,CAAK,EAExB,MAAO,GAAM,IAAI,GAAW,EAAS,CAAO,CAAC,EAE5C,GAAI,MAAO,IAAU,SAAU,CAChC,GAAM,GAAQ,OAAO,OAAO,IAAI,EAChC,cAAO,QAAQ,CAAK,EAAE,QAAQ,CAAC,CAAC,EAAK,KAAW,CAC5C,EAAM,GAAO,EAAS,CAAK,CAC/B,CAAC,EACM,CACX,KAEI,OAAO,OAdP,OAAO,EAgBf,CACO,GAAM,GAAY,CAAC,EAAG,IAAM,CAC/B,GAAM,GAAO,MAAO,GAEpB,GAAI,IAAS,MAAO,GAChB,MAAO,GAGX,GAAI,IAAS,UAAY,GAAK,EAAG,CAC7B,GAAM,GAAS,OAAO,oBAAoB,CAAC,EACrC,EAAS,OAAO,oBAAoB,CAAC,EAE3C,MAAQ,GAAO,QAAU,EAAO,QAAW,CAAC,EAAO,KAAK,GAAQ,CAAC,EAAU,EAAE,GAAO,EAAE,EAAK,CAAC,CAChG,CAEA,MAAQ,KAAM,CAClB,EACa,EAAsB,AAAC,GAC5B,IAAQ,OACD,KAEP,IAAQ,MAAO,IAAQ,UAGvB,AADc,OAAO,oBAAoB,CAAG,EACtC,QAAQ,GAAQ,CAClB,GAAM,GAAO,EAAI,GACjB,AAAI,IAAS,OACT,MAAO,GAAI,GAIX,EAAoB,CAAI,CAEhC,CAAC,EAEE,GCtHX,AAQO,GAAM,GAAa,KAAM,CAC5B,IACA,YAAY,EAAM,CACd,KAAK,IAAM,CAAC,EACZ,KAAK,QAAQ,CAAI,CACrB,CACA,IAAI,EAAU,CACV,OAAO,OAAO,KAAK,IAAK,GAAY,CAAC,CAAC,CAC1C,CACA,QAAQ,EAAM,CACV,GAAM,GAAO,EAAK,MAAM,GAAG,EACrB,EAAM,EAAK,MAAM,EAEvB,MAAO,CADQ,KAAK,IAAI,IAAQ,EAChB,GAAG,CAAI,EAAE,KAAK,GAAG,CACrC,CACA,QAAQ,EAAM,CACV,AAAI,EAAK,QAAU,EAAK,EAAK,OAAS,KAAO,KACzC,GAAO,EAAK,MAAM,EAAG,EAAE,GAE3B,KAAK,IAAI,CACL,MAAS,EACT,MAAS,CACb,CAAC,CACL,CACA,mBAAmB,EAAM,EAAO,CAE5B,GAAM,GAAgB,EAAK,IAAI,MAAM,GAAG,EAAE,MAAM,EAAG,CAAE,IAAS,EAAE,EAAE,KAAK,GAAG,EAC1E,GAAK,YAAY,SAGZ,CAED,GAAI,GAAO,SAAS,IAEpB,AAAI,EAAK,EAAK,OAAS,KAAO,KAC1B,GAAO,GAAG,EAAK,MAAM,GAAG,EAAE,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,MAGnD,GAAI,GAAgB,GAAI,KAAI,EAAe,CAAI,EAAE,KAEjD,MAAI,GAAc,EAAc,OAAS,KAAO,KAC5C,GAAgB,EAAc,MAAM,EAAG,EAAE,GAEtC,CACX,KAhBI,OAAO,EAiBf,CACJ,EACM,EAAO,YAAY,IAAI,MAAM,GAAG,EAAE,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,EAChD,EAAQ,WAAW,MAAW,GAAI,GAAW,CAAI,EAC9D,EAAM,IAAI,WAAW,QAAQ,KAAK,EC1C3B,GAAM,GAAW,CAAC,EAAK,EAAQ,IAAU,CAI5C,GAHI,GACA,aAAa,CAAG,EAEhB,GAAU,EACV,MAAO,YAAW,EAAQ,CAAK,CAEvC,EACa,EAAQ,GACV,SAAU,IAAS,CACtB,KAAM,SAAQ,QAAQ,EACtB,EAAK,GAAG,CAAI,CAChB,EAES,EAAY,CAAC,EAAM,IAAY,CACxC,WAAW,EAAM,GAAW,CAAC,CACjC,ECvBO,GAAM,GAAW,AAAC,GACd,GAAG,EAAM,CAAK,IAAI,GAAS,MAAM,EAAM,CAAK,IAE1C,GAAc,IAChB,EAAY,EAAS,CAAC,EAEpB,EAAc,GAAK,CAC5B,GAAM,GAAM,CAAC,EACb,OAAS,GAAI,EAAG,EAAI,EAAI,EAAE,GAAK,IAC3B,EAAI,KAAM,EAAI,GAAO,IAAM,IAAO,EAAI,EAAE,EAAI,EAAI,EAAE,EAAI,GAAG,YAAY,CAAC,EAE1E,MAAO,GAAI,KAAK,EAAE,CACtB,EACM,EAAQ,CAAC,YAAa,OAAQ,WAAY,WAAY,cAAe,WAAY,aAAc,YAAa,eAAgB,WAAY,SAAU,SAAU,YAAa,SAAU,SAAU,QAAS,YAAa,UAAW,aAAc,WAAY,SAAU,WAAY,SAAU,eAAgB,OAAQ,cAAe,aAAc,QAAS,WAAY,YAAa,YAAa,OAAQ,UAAW,WAAY,QAAS,YAAa,QAAS,MAAO,aAAc,UAAW,YAAa,QAAS,SAAU,UAAW,WAAY,UAAW,UAAW,QAAS,YAAa,WAAY,SAAU,UAAW,UAAW,UAAW,MAAO,eAAgB,cAAe,MAAO,SAAU,OAAQ,WAAY,WAAY,UAAW,UAAW,cAAe,WAAY,WAAY,YAAa,aAAc,UAAW,YAAa,aAAc,YAAa,aAAc,UAAW,QAAS,UAAW,QAAS,UAAW,UAAW,MAAO,OAAQ,QAAS,OAAQ,SAAU,QAAS,YAAa,UAAW,UAAW,aAAc,SAAU,OAAQ,YAAa,MAAO,cAAe,gBAAiB,aAAc,SAAU,QAAS,kBAAmB,QAAS,QAAS,UAAW,QAAS,QAAS,WAAY,QAAS,OAAQ,WAAY,QAAS,UAAW,OAAQ,OAAQ,SAAU,QAAS,OAAQ,SAAU,YAAa,QAAS,QAAS,YAAa,QAAS,SAAU,YAAa,QAAS,SAAU,SAAU,QAAS,UAAW,SAAU,QAAS,QAAS,UAAW,aAAc,QAAS,WAAY,OAAQ,UAAW,UAAW,cAAe,OAAQ,SAAU,SAAU,UAAW,WAAY,UAAW,WAAY,SAAU,WAAY,YAAa,aAAc,WAAY,QAAS,WAAY,SAAU,QAAS,SAAU,SAAU,WAAY,UAAW,QAAS,QAAS,YAAa,SAAU,QAAS,SAAU,SAAU,WAAY,SAAU,YAAa,SAAU,OAAQ,WAAY,YAAa,WAAY,cAAe,SAAU,gBAAiB,YAAa,WAAY,UAAW,cAAe,WAAY,YAAa,WAAY,WAAY,YAAa,cAAe,WAAY,UAAW,eAAgB,SAAU,OAAQ,cAAe,cAAe,QAAS,UAAW,SAAU,aAAc,YAAa,SAAU,QAAS,SAAU,WAAY,SAAU,WAAY,QAAS,WAAY,UAAW,UAAW,QAAS,WAAY,SAAU,aAAc,WAAY,aAAc,QAAS,QAAS,OAAQ,cAAe,UAAW,OAAQ,YAAa,SAAU,SAAU,UAAW,OAAQ,WAAY,OAAQ,SAAU,YAAa,OAAQ,UAAW,SAAU,UAAW,WAAY,OAAQ,cAAe,YAAa,UAAW,YAAa,WAAY,aAAc,UAAW,aAAc,YAAa,aAAc,YAAa,YAAa,QAAS,SAAU,aAAc,YAAa,cAAe,WAAY,WAAY,aAAc,UAAW,YAAa,YAAa,UAAW,WAAY,MAAO,UAAW,YAAa,SAAU,WAAY,UAAW,YAAa,SAAU,QAAS,YAAa,YAAa,SAAU,UAAW,WAAY,YAAa,QAAS,QAAS,SAAU,SAAU,YAAa,OAAQ,SAAU,WAAY,SAAU,MAAO,OAAQ,UAAW,OAAQ,QAAS,UAAW,QAAS,OAAQ,aAAc,WAAY,SAAU,WAAY,YAAa,UAAW,SAAU,UAAW,WAAY,UAAW,aAAc,aAAc,cAAe,cAAe,UAAW,YAAa,QAAS,YAAa,aAAc,YAAa,cAAe,WAAY,UAAW,SAAU,UAAW,QAAS,aAAc,YAAa,WAAY,UAAW,WAAY,OAAQ,YAAa,cAAe,QAAS,OAAQ,UAAW,YAAa,YAAa,YAAa,YAAa,UAAW,WAAY,SAAU,YAAa,cAAe,SAAU,aAAc,cAAe,cAAe,cAAe,WAAY,UAAW,QAAS,OAAQ,WAAY,OAAQ,QAAS,WAAY,SAAU,QAAS,YAAa,MAAO,UAAW,YAAa,UAAW,OAAQ,MAAO,QAAS,WAAY,YAAa,WAAY,UAAW,WAAY,SAAU,SAAU,SAAU,WAAY,MAAO,SAAU,SAAU,OAAQ,WAAY,OAAQ,QAAS,YAAa,UAAW,QAAS,QAAS,aAAc,SAAU,OAAQ,SAAU,WAAY,aAAc,SAAU,WAAY,UAAW,SAAU,QAAS,YAAa,UAAW,OAAQ,YAAa,UAAW,WAAY,SAAU,SAAU,WAAY,aAAc,YAAa,WAAY,QAAS,QAAS,SAAU,OAAQ,SAAU,QAAS,WAAY,WAAY,aAAc,cAAe,SAAU,SAAU,SAAU,YAAa,QAAS,SAAU,SAAU,SAAU,WAAY,OAAQ,WAAY,aAAc,QAAS,QAAS,QAAS,aAAc,UAAW,UAAW,WAAY,SAAU,UAAW,QAAS,QAAS,WAAY,SAAU,SAAU,YAAa,UAAW,QAAS,WAAY,UAAW,aAAc,aAAc,SAAU,WAAY,SAAU,OAAQ,SAAU,OAAQ,eAAgB,WAAY,WAAY,WAAY,QAAS,YAAa,WAAY,WAAY,OAAQ,QAAS,QAAS,aAAc,WAAY,WAAY,UAAW,WAAY,UAAW,WAAY,QAAS,SAAU,WAAY,SAAU,SAAU,WAAY,QAAS,QAAS,OAAQ,WAAY,WAAY,QAAS,QAAS,iBAAkB,OAAQ,eAAgB,UAAW,WAAY,aAAc,QAAS,QAAS,UAAW,WAAY,UAAW,YAAa,SAAU,WAAY,QAAS,QAAS,UAAW,WAAY,SAAU,UAAW,OAAQ,aAAc,YAAa,SAAU,SAAU,SAAU,SAAU,YAAa,UAAW,UAAW,WAAY,aAAc,MAAO,OAAQ,SAAU,cAAe,UAAW,YAAa,SAAU,UAAW,QAAS,OAAQ,MAAO,QAAS,aAAc,YAAa,OAAQ,UAAW,WAAY,WAAY,MAAO,UAAW,YAAa,eAAgB,aAAc,cAAe,YAAa,cAAe,aAAc,aAAc,YAAa,UAAW,cAAe,aAAc,YAAa,YAAa,gBAAiB,SAAU,WAAY,YAAa,aAAc,cAAe,iBAAkB,aAAc,aAAc,SAAU,SAAU,eAAgB,eAAgB,aAAc,kBAAmB,aAAc,YAAa,gBAAiB,WAAY,WAAY,YAAa,aAAc,WAAY,WAAY,WAAY,WAAY,YAAa,cAAe,gBAAiB,cAAe,SAAU,cAAe,cAAe,WAAY,gBAAiB,WAAY,WAAY,QAAS,QAAS,SAAU,aAAc,SAAU,UAAW,UAAW,QAAS,QAAS,SAAU,SAAU,SAAU,WAAY,YAAa,QAAS,QAAS,SAAU,QAAS,WAAY,gBAAiB,OAAQ,MAAO,OAAQ,cAAe,SAAU,SAAU,SAAU,SAAU,gBAAiB,UAAW,QAAS,QAAS,SAAU,QAAS,QAAS,OAAQ,UAAW,OAAQ,SAAU,SAAU,OAAQ,UAAW,OAAQ,QAAS,OAAQ,QAAS,aAAc,QAAS,eAAgB,UAAW,SAAU,UAAW,OAAQ,UAAW,SAAU,QAAS,SAAU,SAAU,OAAQ,SAAU,QAAS,OAAQ,SAAU,OAAQ,YAAa,QAAS,WAAY,OAAQ,OAAQ,UAAW,SAAU,SAAU,MAAO,QAAS,QAAS,YAAa,WAAY,QAAS,WAAY,YAAa,MAAO,UAAW,cAAe,WAAY,QAAS,OAAQ,UAAW,UAAW,YAAa,YAAa,UAAW,SAAU,SAAU,QAAS,OAAQ,SAAU,QAAS,UAAW,WAAY,SAAU,OAAQ,SAAU,UAAW,YAAa,WAAY,QAAS,QAAS,WAAY,OAAQ,QAAS,WAAY,YAAa,QAAS,QAAS,YAAa,UAAW,YAAa,QAAS,QAAS,SAAU,SAAU,QAAS,YAAa,UAAW,aAAc,QAAS,YAAa,WAAY,aAAc,cAAe,QAAS,UAAW,eAAgB,UAAW,QAAS,QAAS,QAAS,aAAc,QAAS,SAAU,QAAS,UAAW,UAAW,WAAY,OAAQ,OAAQ,YAAa,aAAc,cAAe,UAAW,MAAO,OAAQ,OAAQ,QAAS,SAAU,QAAS,YAAa,QAAS,UAAW,SAAU,UAAW,QAAS,aAAc,QAAS,OAAQ,aAAc,QAAS,WAAY,SAAU,OAAQ,SAAU,UAAW,aAAc,MAAO,UAAW,UAAW,YAAa,WAAY,MAAO,gBAAiB,OAAQ,OAAQ,UAAW,aAAc,UAAW,SAAU,UAAW,UAAW,SAAU,SAAU,WAAY,WAAY,QAAS,MAAO,WAAY,WAAY,aAAc,aAAc,cAAe,OAAQ,aAAc,UAAW,YAAa,aAAc,YAAa,OAAQ,SAAU,WAAY,UAAW,UAAW,aAAc,OAAQ,SAAU,WAAY,UAAW,UAAW,WAAY,WAAY,QAAS,WAAY,YAAa,QAAS,cAAe,QAAS,QAAS,WAAY,WAAY,OAAQ,UAAW,QAAS,YAAa,UAAW,UAAW,WAAY,UAAW,WAAY,QAAS,QAAS,WAAY,SAAU,YAAa,UAAW,YAAa,SAAU,OAAQ,UAAW,SAAU,OAAQ,WAAY,WAAY,UAAW,WAAY,YAAa,YAAa,WAAY,UAAW,cAAe,SAAU,WAAY,WAAY,SAAU,UAAW,UAAW,QAAS,WAAY,UAAW,QAAS,WAAY,aAAc,aAAc,UAAW,SAAU,QAAS,UAAW,WAAY,UAAW,OAAQ,OAAQ,SAAU,QAAS,UAAW,WAAY,SAAU,YAAa,cAAe,YAAa,SAAU,YAAa,eAAgB,QAAS,eAAgB,QAAS,iBAAkB,SAAU,WAAY,YAAa,UAAW,SAAU,QAAS,OAAQ,OAAQ,MAAO,SAAU,WAAY,cAAe,QAAS,OAAQ,YAAa,aAAc,MAAO,aAAc,QAAS,UAAW,WAAY,WAAY,aAAc,aAAc,SAAU,YAAa,WAAY,aAAc,cAAe,YAAa,YAAa,YAAa,OAAQ,QAAS,QAAS,SAAU,OAAQ,UAAW,SAAU,OAAQ,WAAY,SAAU,QAAS,QAAS,QAAS,QAAS,UAAW,UAAW,QAAS,QAAS,QAAS,QAAS,MAAO,OAAQ,QAAS,OAAQ,QAAS,OAAQ,YAAa,WAAY,YAAa,QAAS,SAAU,SAAU,QAAS,UAAW,YAAa,aAAc,WAAY,UAAW,SAAU,YAAa,cAAe,SAAU,eAAgB,eAAgB,UAAW,cAAe,WAAY,SAAU,UAAW,aAAc,UAAW,SAAU,SAAU,UAAW,QAAS,UAAW,WAAY,YAAa,QAAS,aAAc,QAAS,UAAW,WAAY,SAAU,QAAS,aAAc,QAAS,SAAU,MAAO,OAAQ,SAAU,QAAS,QAAS,SAAU,UAAW,SAAU,aAAc,SAAU,SAAU,WAAY,WAAY,SAAU,SAAU,SAAU,OAAQ,QAAS,WAAY,OAAQ,SAAU,QAAS,QAAS,SAAU,SAAU,OAAQ,SAAU,WAAY,SAAU,YAAa,SAAU,WAAY,OAAQ,QAAS,QAAS,SAAU,OAAQ,YAAa,gBAAiB,OAAQ,YAAa,UAAW,QAAS,OAAQ,UAAW,YAAa,SAAU,WAAY,cAAe,SAAU,QAAS,SAAU,WAAY,WAAY,WAAY,WAAY,UAAW,OAAQ,SAAU,UAAW,WAAY,SAAU,QAAS,UAAW,QAAS,WAAY,UAAW,QAAS,SAAU,QAAS,SAAU,QAAS,cAAe,SAAU,SAAU,WAAY,UAAW,QAAS,SAAU,WAAY,WAAY,UAAW,SAAU,WAAY,WAAY,aAAc,SAAU,UAAW,UAAW,aAAc,cAAe,SAAU,WAAY,SAAU,SAAU,QAAS,QAAS,SAAU,cAAe,WAAY,aAAc,cAAe,YAAa,aAAc,SAAU,QAAS,aAAc,QAAS,cAAe,OAAQ,YAAa,OAAQ,MAAO,WAAY,OAAQ,QAAS,WAAY,OAAQ,UAAW,UAAW,WAAY,SAAU,QAAS,QAAS,WAAY,WAAY,QAAS,WAAY,OAAQ,QAAS,QAAS,OAAQ,QAAS,UAAW,OAAQ,WAAY,SAAU,QAAS,aAAc,aAAc,UAAW,aAAc,OAAQ,QAAS,SAAU,SAAU,OAAQ,QAAS,OAAQ,QAAS,QAAS,YAAa,YAAa,aAAc,SAAU,UAAW,aAAc,aAAc,SAAU,WAAY,OAAQ,UAAW,WAAY,OAAQ,WAAY,cAAe,SAAU,WAAY,QAAS,YAAa,OAAQ,OAAQ,WAAY,eAAgB,UAAW,gBAAiB,WAAY,cAAe,cAAe,YAAa,SAAU,aAAc,QAAS,WAAY,cAAe,UAAW,YAAa,UAAW,cAAe,SAAU,SAAU,UAAW,UAAW,WAAY,UAAW,UAAW,YAAa,aAAc,cAAe,SAAU,SAAU,YAAa,YAAa,WAAY,SAAU,SAAU,WAAY,UAAW,SAAU,SAAU,UAAW,YAAa,WAAY,YAAa,YAAa,YAAa,SAAU,UAAW,QAAS,QAAS,SAAU,OAAQ,SAAU,UAAW,WAAY,QAAS,SAAU,QAAS,OAAQ,QAAS,WAAY,QAAS,WAAY,OAAQ,UAAW,YAAa,WAAY,aAAc,UAAW,UAAW,aAAc,WAAY,WAAY,aAAc,SAAU,UAAW,UAAW,WAAY,UAAW,QAAS,YAAa,QAAS,aAAc,MAAO,UAAW,OAAQ,cAAe,SAAU,OAAQ,WAAY,WAAY,cAAe,SAAU,OAAQ,UAAW,OAAQ,QAAS,SAAU,MAAO,SAAU,QAAS,UAAW,QAAS,UAAW,kBAAmB,eAAgB,gBAAiB,WAAY,YAAa,WAAY,aAAc,YAAa,MAAO,QAAS,YAAa,YAAa,YAAa,QAAS,QAAS,WAAY,SAAU,OAAQ,YAAa,SAAU,OAAQ,UAAW,SAAU,UAAW,QAAS,SAAU,OAAQ,OAAQ,QAAS,SAAU,SAAU,YAAa,SAAU,QAAS,QAAS,UAAW,OAAQ,UAAW,YAAa,QAAS,QAAS,YAAa,aAAc,SAAU,WAAY,WAAY,WAAY,QAAS,MAAO,UAAW,SAAU,SAAU,YAAa,QAAS,WAAY,QAAS,OAAQ,UAAW,QAAS,SAAU,OAAO,EAC/tc,EAAQ,CAAC,SAAU,UAAW,MAAO,MAAO,QAAS,cAAe,MAAO,SAAU,aAAc,SAAU,SAAU,WAAY,OAAQ,OAAQ,SAAU,QAAS,SAAU,UAAW,SAAU,OAAQ,OAAQ,gBAAiB,SAAU,MAAO,OAAQ,aAAc,UAAW,WAAY,UAAW,YAAa,QAAS,UAAW,YAAa,OAAQ,WAAY,aAAc,UAAW,UAAW,SAAU,OAAQ,UAAW,OAAQ,cAAe,aAAc,OAAQ,UAAW,WAAY,QAAS,WAAY,QAAS,QAAS,OAAQ,YAAa,aAAc,SAAU,UAAW,cAAe,WAAY,aAAc,SAAU,UAAW,QAAS,OAAQ,WAAY,UAAW,OAAQ,QAAS,eAAgB,YAAa,UAAW,WAAY,SAAU,SAAU,UAAW,QAAS,YAAa,YAAa,WAAY,aAAc,OAAQ,SAAU,UAAW,QAAS,cAAe,QAAS,WAAY,QAAS,QAAS,YAAa,aAAc,UAAW,UAAW,aAAc,aAAc,OAAQ,OAAQ,WAAY,UAAW,SAAU,SAAU,WAAY,OAAQ,cAAe,UAAW,UAAW,WAAY,aAAc,UAAW,gBAAiB,QAAS,YAAa,UAAW,OAAQ,SAAU,SAAU,OAAQ,OAAQ,OAAQ,cAAe,WAAY,UAAW,WAAY,YAAa,YAAa,OAAQ,SAAU,WAAY,WAAY,YAAa,WAAY,QAAS,WAAY,WAAY,UAAW,OAAQ,cAAe,eAAgB,gBAAiB,SAAU,aAAc,YAAa,OAAQ,WAAY,YAAa,UAAW,eAAgB,cAAe,cAAe,SAAU,SAAU,SAAU,WAAY,YAAa,eAAgB,WAAY,OAAQ,SAAU,SAAU,UAAW,OAAQ,SAAU,UAAW,QAAS,QAAS,aAAc,cAAe,UAAW,WAAY,QAAS,aAAc,UAAW,YAAa,YAAa,OAAQ,QAAS,SAAU,QAAS,SAAU,aAAc,aAAc,UAAW,UAAW,UAAW,iBAAkB,YAAa,QAAS,YAAa,SAAU,cAAe,OAAQ,SAAU,QAAS,SAAU,aAAc,cAAe,QAAS,cAAe,QAAS,SAAU,SAAU,QAAS,aAAc,aAAc,cAAe,UAAW,aAAc,WAAY,UAAW,KAAM,SAAU,UAAW,aAAc,YAAa,OAAQ,cAAe,SAAU,WAAY,YAAa,WAAY,iBAAkB,SAAU,WAAY,WAAY,cAAe,aAAc,iBAAkB,WAAY,YAAa,UAAW,UAAW,UAAW,WAAY,YAAa,WAAY,WAAY,UAAW,OAAQ,aAAc,aAAc,cAAe,QAAS,QAAS,YAAa,SAAU,WAAY,aAAc,cAAe,QAAS,cAAe,QAAS,UAAW,aAAc,SAAU,WAAY,OAAQ,YAAa,QAAS,QAAS,YAAa,WAAY,SAAU,aAAc,QAAS,WAAY,SAAU,WAAY,WAAY,QAAS,QAAS,QAAS,WAAY,aAAc,aAAc,UAAW,YAAa,UAAW,aAAc,YAAa,QAAS,UAAW,aAAc,YAAa,eAAgB,WAAY,UAAW,WAAY,WAAY,QAAS,SAAU,aAAc,OAAQ,UAAW,YAAa,YAAa,UAAW,SAAU,iBAAkB,SAAU,UAAW,SAAU,WAAY,SAAU,aAAc,aAAc,SAAU,WAAY,SAAU,WAAY,SAAU,MAAO,UAAW,aAAc,eAAgB,YAAa,aAAc,eAAgB,aAAc,UAAW,UAAW,SAAU,SAAU,SAAU,QAAS,UAAW,YAAa,SAAU,UAAW,SAAU,SAAU,UAAW,OAAQ,UAAW,aAAc,WAAY,MAAO,cAAe,OAAQ,MAAO,SAAU,SAAU,SAAU,cAAe,YAAa,QAAS,QAAS,WAAY,aAAc,eAAgB,SAAU,YAAa,eAAgB,OAAQ,QAAS,OAAQ,UAAW,SAAU,OAAQ,WAAY,UAAW,cAAe,UAAW,aAAc,WAAY,UAAW,YAAa,eAAgB,WAAY,aAAc,QAAS,cAAe,SAAU,OAAQ,OAAQ,OAAQ,YAAa,WAAY,SAAU,cAAe,cAAe,eAAgB,OAAQ,aAAc,MAAO,OAAQ,WAAY,WAAY,YAAa,cAAe,aAAc,QAAS,MAAO,SAAU,MAAO,UAAW,UAAW,SAAU,SAAU,SAAU,aAAc,SAAU,QAAS,QAAS,YAAa,aAAc,eAAgB,SAAU,UAAW,OAAQ,SAAU,gBAAiB,cAAe,UAAW,UAAW,QAAS,aAAc,cAAe,eAAgB,SAAU,aAAc,YAAa,OAAQ,SAAU,OAAQ,UAAW,QAAS,SAAU,aAAc,YAAa,WAAY,WAAY,cAAe,QAAS,SAAU,cAAe,SAAU,WAAY,UAAW,SAAU,WAAY,UAAW,QAAS,aAAc,YAAa,OAAQ,WAAY,cAAe,eAAgB,QAAS,SAAU,cAAe,YAAa,UAAW,OAAQ,MAAO,UAAW,aAAc,UAAW,OAAQ,aAAc,MAAO,aAAc,YAAa,OAAQ,WAAY,cAAe,aAAc,YAAa,QAAS,WAAY,OAAQ,YAAa,cAAe,aAAc,QAAS,UAAW,WAAY,UAAW,WAAY,OAAQ,SAAU,UAAW,QAAS,QAAS,OAAQ,OAAQ,OAAQ,QAAS,QAAS,UAAW,QAAS,WAAY,QAAS,OAAQ,OAAQ,OAAQ,MAAO,MAAO,QAAS,SAAU,OAAQ,QAAS,OAAQ,OAAQ,UAAW,OAAQ,OAAQ,aAAc,MAAO,OAAQ,MAAO,QAAS,OAAQ,OAAQ,UAAW,QAAS,OAAQ,SAAU,QAAS,WAAY,QAAS,QAAS,SAAU,UAAW,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,MAAO,QAAS,MAAO,QAAS,WAAY,OAAQ,SAAU,MAAO,SAAU,QAAS,QAAS,WAAY,WAAY,QAAS,UAAW,QAAS,MAAO,OAAQ,QAAS,MAAO,QAAS,OAAQ,OAAQ,OAAQ,SAAU,QAAS,QAAS,SAAU,OAAQ,OAAQ,QAAS,MAAO,UAAW,SAAU,SAAU,QAAS,OAAQ,SAAU,SAAU,OAAQ,SAAU,WAAY,QAAS,OAAQ,QAAS,QAAS,SAAU,MAAO,MAAO,OAAQ,SAAU,SAAU,UAAW,WAAY,QAAS,OAAQ,QAAS,SAAU,OAAQ,QAAS,MAAO,OAAQ,UAAW,QAAS,OAAQ,QAAS,UAAW,SAAU,SAAU,MAAO,QAAS,SAAU,YAAa,QAAS,UAAW,UAAW,SAAU,UAAW,OAAQ,WAAY,UAAW,WAAY,OAAQ,OAAQ,MAAO,QAAS,MAAO,MAAO,SAAU,QAAS,MAAO,OAAQ,SAAU,OAAQ,QAAS,QAAS,MAAO,OAAQ,QAAS,OAAQ,SAAU,UAAW,WAAY,MAAO,WAAY,MAAO,OAAQ,WAAY,WAAY,SAAU,YAAa,UAAW,MAAO,QAAS,QAAS,OAAQ,QAAS,OAAQ,OAAQ,QAAS,QAAS,SAAU,OAAQ,SAAU,YAAa,OAAQ,UAAW,OAAQ,aAAc,SAAU,QAAS,UAAW,MAAO,QAAS,SAAU,SAAU,OAAQ,SAAU,UAAW,QAAS,OAAQ,OAAQ,UAAW,UAAW,SAAU,UAAW,UAAW,MAAO,OAAQ,QAAS,OAAQ,YAAa,UAAW,SAAU,MAAO,OAAQ,MAAO,UAAW,QAAS,SAAU,UAAW,OAAQ,SAAU,OAAQ,OAAQ,OAAQ,QAAS,UAAW,YAAa,SAAU,OAAQ,OAAQ,QAAS,SAAU,OAAQ,QAAS,WAAY,OAAQ,SAAU,QAAS,UAAW,OAAQ,SAAU,QAAS,QAAS,QAAS,OAAQ,QAAS,SAAU,QAAS,SAAU,OAAQ,MAAO,YAAa,SAAU,OAAQ,OAAQ,OAAQ,SAAU,WAAY,UAAW,OAAQ,UAAW,QAAS,QAAS,SAAU,OAAQ,SAAU,SAAU,SAAU,WAAY,OAAQ,SAAU,SAAU,SAAU,UAAW,QAAS,YAAa,WAAY,MAAO,QAAS,QAAS,QAAS,UAAW,OAAQ,SAAU,WAAY,YAAa,OAAQ,OAAQ,WAAY,MAAO,SAAU,OAAQ,UAAW,QAAS,SAAU,OAAQ,OAAQ,UAAW,OAAQ,OAAQ,SAAU,OAAQ,aAAc,QAAS,OAAQ,SAAU,QAAS,QAAS,QAAS,SAAU,SAAU,MAAO,WAAY,UAAW,OAAQ,YAAa,SAAU,QAAS,OAAQ,QAAS,cAAe,OAAQ,MAAO,SAAU,MAAO,QAAS,YAAa,WAAY,OAAQ,SAAU,SAAU,SAAU,SAAU,OAAQ,OAAQ,OAAQ,QAAS,aAAc,OAAQ,OAAQ,UAAW,OAAQ,WAAY,UAAW,MAAO,QAAS,SAAU,QAAS,SAAU,OAAQ,QAAS,OAAQ,YAAa,aAAc,WAAY,SAAU,SAAU,MAAO,QAAS,OAAQ,QAAS,SAAU,MAAO,UAAW,OAAQ,QAAS,OAAQ,OAAQ,QAAS,QAAS,OAAQ,SAAU,QAAS,YAAa,OAAQ,QAAS,YAAa,MAAO,QAAS,QAAS,QAAS,QAAS,gBAAiB,QAAS,OAAQ,SAAU,OAAQ,YAAa,MAAO,OAAQ,UAAW,OAAQ,WAAY,QAAS,QAAS,MAAO,OAAQ,SAAU,OAAQ,OAAQ,SAAU,QAAS,OAAQ,OAAQ,QAAS,OAAQ,WAAY,YAAa,MAAO,OAAQ,UAAW,SAAU,QAAS,MAAO,WAAY,OAAQ,OAAQ,SAAU,SAAU,YAAa,OAAQ,OAAQ,YAAa,QAAS,UAAW,MAAO,SAAU,UAAW,OAAQ,UAAW,UAAW,UAAW,OAAQ,UAAW,WAAY,WAAY,YAAa,MAAO,SAAU,UAAW,MAAO,SAAU,MAAO,OAAQ,SAAU,OAAQ,OAAQ,QAAS,WAAY,YAAa,QAAS,OAAQ,YAAa,UAAW,YAAa,OAAQ,QAAS,MAAO,QAAS,UAAW,SAAU,QAAS,OAAQ,UAAW,OAAQ,UAAW,WAAY,OAAQ,QAAS,WAAY,UAAW,UAAW,QAAS,SAAU,QAAS,OAAQ,SAAU,OAAQ,WAAY,WAAY,QAAS,UAAW,SAAU,UAAW,QAAS,WAAY,OAAQ,QAAS,OAAQ,MAAO,QAAS,YAAa,MAAO,OAAQ,SAAU,SAAU,SAAU,UAAW,QAAS,QAAS,OAAQ,QAAS,QAAS,WAAY,QAAS,OAAQ,SAAU,QAAS,MAAO,OAAQ,QAAS,OAAQ,QAAS,QAAS,YAAa,SAAU,OAAQ,OAAQ,SAAU,UAAW,SAAU,UAAW,MAAO,OAAQ,QAAS,UAAW,SAAU,QAAS,UAAW,OAAQ,SAAU,SAAU,OAAQ,QAAS,SAAU,OAAQ,MAAO,OAAQ,OAAQ,QAAS,MAAO,QAAS,QAAS,SAAU,OAAQ,SAAU,UAAW,aAAc,QAAS,OAAQ,OAAQ,OAAQ,QAAS,SAAU,QAAS,UAAW,WAAY,QAAS,OAAQ,QAAS,OAAQ,QAAS,SAAU,MAAO,WAAY,QAAS,QAAS,QAAS,WAAY,OAAQ,aAAc,UAAW,UAAW,OAAQ,QAAS,OAA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",
- "names": []
+ "sources": ["../../../core/js/utils/date.js", "../../../core/js/utils/rand.js", "../../../core/js/utils/id.js", "../../../core/js/utils/types.js", "../../../core/js/utils/log.js", "../../../core/js/utils/matching.js", "../../../core/js/utils/object.js", "../../../core/js/utils/paths.js", "../../../core/js/utils/task.js", "../../../core/js/utils/names.js"],
+ "sourcesContent": ["/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const computeAgeString = (date, now) => {\n let deltaTime = Math.round((now - date) / 1000);\n if (isNaN(deltaTime)) {\n return `\u2022`;\n }\n let plural = '';\n if (deltaTime < 60) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} second${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 60);\n if (deltaTime < 60) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} minute${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 60);\n if (deltaTime < 24) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} hour${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 24);\n if (deltaTime < 30) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} day${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 30);\n if (deltaTime < 12) {\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} month${plural} ago`;\n }\n deltaTime = Math.round(deltaTime / 12);\n if (deltaTime > 1)\n plural = 's';\n return `${deltaTime} year${plural} ago`;\n};\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nconst { floor, pow, random } = Math;\n// random n-digit number\nexport const key = (digits) => floor((1 + random() * 9) * pow(10, digits - 1));\n// random integer from [0..range)\nexport const irand = (range) => floor(random() * range);\n// random element from array\nexport const arand = (array) => array[irand(array.length)];\n// test if event has occured, where `probability` is between [0..1]\nexport const prob = (probability) => Boolean(random() < probability);\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { irand } from \"./rand.js\";\nexport const makeId = (pairs, digits, delim) => {\n pairs = pairs || 2;\n digits = digits || 2;\n delim = delim || '-';\n const min = Math.pow(10, digits - 1);\n const range = Math.pow(10, digits) - min;\n const result = [];\n for (let i = 0; i < pairs; i++) {\n result.push(`${irand(range - min) + min}`);\n }\n return result.join(delim);\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const logKinds = ['log', 'group', 'groupCollapsed', 'groupEnd', 'dir'];\nexport const errKinds = ['warn', 'error'];\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { logKinds, errKinds } from './types.js';\nconst { fromEntries } = Object;\nconst _logFactory = (enable, preamble, bg, color, kind = 'log') => {\n if (!enable) {\n return () => { };\n }\n if (kind === 'dir') {\n return console.dir.bind(console);\n }\n const style = `background: ${bg || 'gray'}; color: ${color || 'white'}; padding: 1px 6px 2px 7px; border-radius: 6px 0 0 6px;`;\n return console[kind].bind(console, `%c${preamble}`, style);\n};\nexport const logFactory = (enable, preamble, bg = '', color = '') => {\n const debugLoggers = fromEntries(logKinds.map(kind => [kind, _logFactory(enable, preamble, bg, color, kind)]));\n const errorLoggers = fromEntries(errKinds.map(kind => [kind, _logFactory(true, preamble, bg, color, kind)]));\n const loggers = { ...debugLoggers, ...errorLoggers };\n // Inject `log` as default, keeping all loggers available to be invoked by name.\n const log = loggers.log;\n Object.assign(log, loggers);\n return log;\n};\nlogFactory.flags = globalThis.config?.logFlags || {};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport function matches(candidateMeta, targetMeta) {\n for (const property in targetMeta) {\n if (candidateMeta[property] !== targetMeta[property]) {\n return false;\n }\n }\n return true;\n}\n;\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n/*\n * update the fields of `obj` with the fields of `data`,\n * perturbing `obj` as little as possible (since it might be a magic proxy thing\n * like an Automerge document)\n */\nexport const shallowUpdate = (obj, data) => {\n let result = data;\n if (!data) {\n //\n }\n else if (Array.isArray(data)) {\n if (!Array.isArray(obj)) {\n // TODO(sjmiles): eek, very perturbing to obj\n obj = [];\n }\n for (let i = 0; i < data.length; i++) {\n const value = data[i];\n if (obj[i] !== value) {\n obj[i] = value;\n }\n }\n const overage = obj.length - data.length;\n if (overage > 0) {\n obj.splice(data.length, overage);\n }\n }\n else if (typeof data === 'object') {\n result = (obj && typeof obj === 'object') ? obj : Object.create(null);\n const seen = {};\n // for each key in input data ...\n Object.keys(data).forEach(key => {\n // copy that data into output\n result[key] = data[key];\n // remember the key\n seen[key] = true;\n });\n // for each key in the output data...\n Object.keys(result).forEach(key => {\n // if this key was not in the input, remove it\n if (!seen[key]) {\n delete result[key];\n }\n });\n }\n return result;\n};\nexport const shallowMerge = (obj, data) => {\n if (data == null) {\n return null;\n }\n if (typeof data === 'object') {\n const result = (obj && typeof obj === 'object') ? obj : Object.create(null);\n Object.keys(data).forEach(key => result[key] = data[key]);\n return result;\n }\n return data;\n};\nexport function deepCopy(datum) {\n if (!datum) {\n return datum;\n }\n else if (Array.isArray(datum)) {\n // This is trivially type safe but tsc needs help\n return datum.map(element => deepCopy(element));\n }\n else if (typeof datum === 'object') {\n const clone = Object.create(null);\n Object.entries(datum).forEach(([key, value]) => {\n clone[key] = deepCopy(value);\n });\n return clone;\n }\n else {\n return datum;\n }\n}\nexport const deepEqual = (a, b) => {\n const type = typeof a;\n // must be same type to be equal\n if (type !== typeof b) {\n return false;\n }\n // we are `deep` because we recursively study object types\n if (type === 'object' && a && b) {\n const aProps = Object.getOwnPropertyNames(a);\n const bProps = Object.getOwnPropertyNames(b);\n // equal if same # of props, and no prop is not deepEqual\n return (aProps.length == bProps.length) && !aProps.some(name => !deepEqual(a[name], b[name]));\n }\n // finally, perform simple comparison\n return (a === b);\n};\nexport const deepUndefinedToNull = (obj) => {\n if (obj === undefined) {\n return null;\n }\n if (obj && (typeof obj === 'object')) {\n // we are `deep` because we recursively study object types\n const props = Object.getOwnPropertyNames(obj);\n props.forEach(name => {\n const prop = obj[name];\n if (prop === undefined) {\n delete obj[name];\n //obj[name] = null;\n }\n else {\n deepUndefinedToNull(prop);\n }\n });\n }\n return obj;\n};\n", "/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nexport const PathMapper = class {\n map;\n constructor(root) {\n this.map = {};\n this.setRoot(root);\n }\n add(mappings) {\n Object.assign(this.map, mappings || {});\n }\n resolve(path) {\n const bits = path.split('/');\n const top = bits.shift();\n const prefix = this.map[top] || top;\n return [prefix, ...bits].join('/');\n }\n setRoot(root) {\n if (root.length && root[root.length - 1] === '/') {\n root = root.slice(0, -1);\n }\n this.add({\n '$root': root,\n '$arcs': root\n });\n }\n getAbsoluteHereUrl(meta, depth) {\n // you are here\n const localRelative = meta.url.split('/').slice(0, -(depth ?? 1)).join('/');\n if (!globalThis?.document) {\n return localRelative;\n }\n else {\n // document root is here\n let base = document.URL;\n // if document URL has a filename, remove it\n if (base[base.length - 1] !== '/') {\n base = `${base.split('/').slice(0, -1).join('/')}/`;\n }\n // create absoute path to here (aka 'local')\n let localAbsolute = new URL(localRelative, base).href;\n // no trailing slash!\n if (localAbsolute[localAbsolute.length - 1] === '/') {\n localAbsolute = localAbsolute.slice(0, -1);\n }\n return localAbsolute;\n }\n }\n};\nconst root = import.meta.url.split('/').slice(0, -3).join('/');\nexport const Paths = globalThis['Paths'] = new PathMapper(root);\nPaths.add(globalThis.config?.paths);\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\n/**\n * Perform `action` if `delay` ms have elapsed since last debounce call for `key`.\n *\n * ```\n * // invoke 'task' one second after last time this line executed\n * this.debounceTask = debounce(this.debounceTask, task, 1000);\n * ```\n */\nexport const debounce = (key, action, delay) => {\n if (key) {\n clearTimeout(key);\n }\n if (action && delay) {\n return setTimeout(action, delay);\n }\n};\nexport const async = task => {\n return async (...args) => {\n await Promise.resolve();\n task(...args);\n };\n};\nexport const asyncTask = (task, delayMs) => {\n setTimeout(task, delayMs ?? 0);\n};\n", "/**\n * Copyright 2022 Google LLC\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nimport { arand } from \"./rand.js\";\nexport const makeName = (delim) => {\n return `${arand(name1)}${delim || '-'}${arand(name2)}`;\n};\nexport const makeCapName = () => {\n return kebabToCaps(makeName());\n};\nexport const kebabToCaps = s => {\n const neo = [];\n for (let i = 0, c; (c = s[i]); i++) {\n neo.push((i > 0) && (c !== '-') ? c : s[i > 0 ? ++i : i].toUpperCase());\n }\n return neo.join('');\n};\nconst name1 = [\"abandoned\", \"able\", \"absolute\", \"adorable\", \"adventurous\", \"academic\", \"acceptable\", \"acclaimed\", \"accomplished\", \"accurate\", \"aching\", \"acidic\", \"acrobatic\", \"active\", \"actual\", \"adept\", \"admirable\", \"admired\", \"adolescent\", \"adorable\", \"adored\", \"advanced\", \"afraid\", \"affectionate\", \"aged\", \"aggravating\", \"aggressive\", \"agile\", \"agitated\", \"agonizing\", \"agreeable\", \"ajar\", \"alarmed\", \"alarming\", \"alert\", \"alienated\", \"alive\", \"all\", \"altruistic\", \"amazing\", \"ambitious\", \"ample\", \"amused\", \"amusing\", \"anchored\", \"ancient\", \"angelic\", \"angry\", \"anguished\", \"animated\", \"annual\", \"another\", \"antique\", \"anxious\", \"any\", \"apprehensive\", \"appropriate\", \"apt\", \"arctic\", \"arid\", \"aromatic\", \"artistic\", \"ashamed\", \"assured\", \"astonishing\", \"athletic\", \"attached\", \"attentive\", \"attractive\", \"austere\", \"authentic\", \"authorized\", \"automatic\", \"avaricious\", \"average\", \"aware\", \"awesome\", \"awful\", \"awkward\", \"babyish\", \"bad\", \"back\", \"baggy\", \"bare\", \"barren\", \"basic\", \"beautiful\", \"belated\", \"beloved\", \"beneficial\", \"better\", \"best\", \"bewitched\", \"big\", \"big-hearted\", \"biodegradable\", \"bite-sized\", \"bitter\", \"black\", \"black-and-white\", \"bland\", \"blank\", \"blaring\", \"bleak\", \"blind\", \"blissful\", \"blond\", \"blue\", \"blushing\", \"bogus\", \"boiling\", \"bold\", \"bony\", \"boring\", \"bossy\", \"both\", \"bouncy\", \"bountiful\", \"bowed\", \"brave\", \"breakable\", \"brief\", \"bright\", \"brilliant\", \"brisk\", \"broken\", \"bronze\", \"brown\", \"bruised\", \"bubbly\", \"bulky\", \"bumpy\", \"buoyant\", \"burdensome\", \"burly\", \"bustling\", \"busy\", \"buttery\", \"buzzing\", \"calculating\", \"calm\", \"candid\", \"canine\", \"capital\", \"carefree\", \"careful\", \"careless\", \"caring\", \"cautious\", \"cavernous\", \"celebrated\", \"charming\", \"cheap\", \"cheerful\", \"cheery\", \"chief\", \"chilly\", \"chubby\", \"circular\", \"classic\", \"clean\", \"clear\", \"clear-cut\", \"clever\", \"close\", \"closed\", \"cloudy\", \"clueless\", \"clumsy\", \"cluttered\", \"coarse\", \"cold\", \"colorful\", \"colorless\", \"colossal\", \"comfortable\", \"common\", \"compassionate\", \"competent\", \"complete\", \"complex\", \"complicated\", \"composed\", \"concerned\", \"concrete\", \"confused\", \"conscious\", \"considerate\", \"constant\", \"content\", \"conventional\", \"cooked\", \"cool\", \"cooperative\", \"coordinated\", \"corny\", \"corrupt\", \"costly\", \"courageous\", \"courteous\", \"crafty\", \"crazy\", \"creamy\", \"creative\", \"creepy\", \"criminal\", \"crisp\", \"critical\", \"crooked\", \"crowded\", \"cruel\", \"crushing\", \"cuddly\", \"cultivated\", \"cultured\", \"cumbersome\", \"curly\", \"curvy\", \"cute\", \"cylindrical\", \"damaged\", \"damp\", \"dangerous\", \"dapper\", \"daring\", \"darling\", \"dark\", \"dazzling\", \"dead\", \"deadly\", \"deafening\", \"dear\", \"dearest\", \"decent\", \"decimal\", \"decisive\", \"deep\", \"defenseless\", \"defensive\", \"defiant\", \"deficient\", \"definite\", \"definitive\", \"delayed\", \"delectable\", \"delicious\", \"delightful\", \"delirious\", \"demanding\", \"dense\", \"dental\", \"dependable\", \"dependent\", \"descriptive\", \"deserted\", \"detailed\", \"determined\", \"devoted\", \"different\", \"difficult\", \"digital\", \"diligent\", \"dim\", \"dimpled\", \"dimwitted\", \"direct\", \"discrete\", \"distant\", \"downright\", \"dreary\", \"dirty\", \"disguised\", \"dishonest\", \"dismal\", \"distant\", \"distinct\", \"distorted\", \"dizzy\", \"dopey\", \"doting\", \"double\", \"downright\", \"drab\", \"drafty\", \"dramatic\", \"droopy\", \"dry\", \"dual\", \"dutiful\", \"each\", \"eager\", \"earnest\", \"early\", \"easy\", \"easy-going\", \"ecstatic\", \"edible\", \"educated\", \"elaborate\", \"elastic\", \"elated\", \"elderly\", \"electric\", \"elegant\", \"elementary\", \"elliptical\", \"embarrassed\", \"embellished\", \"eminent\", \"emotional\", \"empty\", \"enchanted\", \"enchanting\", \"energetic\", \"enlightened\", \"enormous\", \"enraged\", \"entire\", \"envious\", \"equal\", \"equatorial\", \"essential\", \"esteemed\", \"ethical\", \"euphoric\", \"even\", \"evergreen\", \"everlasting\", \"every\", \"evil\", \"exalted\", \"excellent\", \"exemplary\", \"exhausted\", \"excitable\", \"excited\", \"exciting\", \"exotic\", \"expensive\", \"experienced\", \"expert\", \"extraneous\", \"extroverted\", \"extra-large\", \"extra-small\", \"fabulous\", \"failing\", \"faint\", \"fair\", \"faithful\", \"fake\", \"false\", \"familiar\", \"famous\", \"fancy\", \"fantastic\", \"far\", \"faraway\", \"far-flung\", \"far-off\", \"fast\", \"fat\", \"fatal\", \"fatherly\", \"favorable\", \"favorite\", \"fearful\", \"fearless\", \"feisty\", \"feline\", \"female\", \"feminine\", \"few\", \"fickle\", \"filthy\", \"fine\", \"finished\", \"firm\", \"first\", \"firsthand\", \"fitting\", \"fixed\", \"flaky\", \"flamboyant\", \"flashy\", \"flat\", \"flawed\", \"flawless\", \"flickering\", \"flimsy\", \"flippant\", \"flowery\", \"fluffy\", \"fluid\", \"flustered\", \"focused\", \"fond\", \"foolhardy\", \"foolish\", \"forceful\", \"forked\", \"formal\", \"forsaken\", \"forthright\", \"fortunate\", \"fragrant\", \"frail\", \"frank\", \"frayed\", \"free\", \"French\", \"fresh\", \"frequent\", \"friendly\", \"frightened\", \"frightening\", \"frigid\", \"frilly\", \"frizzy\", \"frivolous\", \"front\", \"frosty\", \"frozen\", \"frugal\", \"fruitful\", \"full\", \"fumbling\", \"functional\", \"funny\", \"fussy\", \"fuzzy\", \"gargantuan\", \"gaseous\", \"general\", \"generous\", \"gentle\", \"genuine\", \"giant\", \"giddy\", \"gigantic\", \"gifted\", \"giving\", \"glamorous\", \"glaring\", \"glass\", \"gleaming\", \"gleeful\", \"glistening\", \"glittering\", \"gloomy\", \"glorious\", \"glossy\", \"glum\", \"golden\", \"good\", \"good-natured\", \"gorgeous\", \"graceful\", \"gracious\", \"grand\", \"grandiose\", \"granular\", \"grateful\", \"gray\", \"great\", \"green\", \"gregarious\", \"gripping\", \"grizzled\", \"grouchy\", \"grounded\", \"growing\", \"growling\", \"grown\", \"grubby\", \"gruesome\", \"grumpy\", \"guilty\", \"gullible\", \"gummy\", \"hairy\", \"half\", \"handmade\", \"handsome\", \"handy\", \"happy\", \"happy-go-lucky\", \"hard\", \"hard-to-find\", \"harmful\", \"harmless\", \"harmonious\", \"harsh\", \"hasty\", \"hateful\", \"haunting\", \"healthy\", \"heartfelt\", \"hearty\", \"heavenly\", \"heavy\", \"hefty\", \"helpful\", \"helpless\", \"hidden\", \"hideous\", \"high\", \"high-level\", \"hilarious\", \"hoarse\", \"hollow\", \"homely\", \"honest\", \"honorable\", \"honored\", \"hopeful\", \"horrible\", \"hospitable\", \"hot\", \"huge\", \"humble\", \"humiliating\", \"humming\", \"humongous\", \"hungry\", \"hurtful\", \"husky\", \"icky\", \"icy\", \"ideal\", \"idealistic\", \"identical\", \"idle\", \"idiotic\", \"idolized\", \"ignorant\", \"ill\", \"illegal\", \"ill-fated\", \"ill-informed\", \"illiterate\", \"illustrious\", \"imaginary\", \"imaginative\", \"immaculate\", \"immaterial\", \"immediate\", \"immense\", \"impassioned\", \"impeccable\", \"impartial\", \"imperfect\", \"imperturbable\", \"impish\", \"impolite\", \"important\", \"impossible\", \"impractical\", \"impressionable\", \"impressive\", \"improbable\", \"impure\", \"inborn\", \"incomparable\", \"incompatible\", \"incomplete\", \"inconsequential\", \"incredible\", \"indelible\", \"inexperienced\", \"indolent\", \"infamous\", \"infantile\", \"infatuated\", \"inferior\", \"infinite\", \"informal\", \"innocent\", \"insistent\", \"instructive\", \"insubstantial\", \"intelligent\", \"intent\", \"intentional\", \"interesting\", \"internal\", \"international\", \"intrepid\", \"ironclad\", \"itchy\", \"jaded\", \"jagged\", \"jam-packed\", \"jaunty\", \"jealous\", \"jittery\", \"joint\", \"jolly\", \"jovial\", \"joyful\", \"joyous\", \"jubilant\", \"judicious\", \"juicy\", \"jumbo\", \"junior\", \"jumpy\", \"juvenile\", \"kaleidoscopic\", \"keen\", \"key\", \"kind\", \"kindhearted\", \"kindly\", \"klutzy\", \"knobby\", \"knotty\", \"knowledgeable\", \"knowing\", \"known\", \"kooky\", \"kosher\", \"lanky\", \"large\", \"last\", \"lasting\", \"late\", \"lavish\", \"lawful\", \"lazy\", \"leading\", \"lean\", \"leafy\", \"left\", \"legal\", \"legitimate\", \"light\", \"lighthearted\", \"likable\", \"likely\", \"limited\", \"limp\", \"limping\", \"linear\", \"lined\", \"liquid\", \"little\", \"live\", \"lively\", \"livid\", \"lone\", \"lonely\", \"long\", \"long-term\", \"loose\", \"lopsided\", \"lost\", \"loud\", \"lovable\", \"lovely\", \"loving\", \"low\", \"loyal\", \"lucky\", \"lumbering\", \"luminous\", \"lumpy\", \"lustrous\", \"luxurious\", \"mad\", \"made-up\", \"magnificent\", \"majestic\", \"major\", \"male\", \"mammoth\", \"married\", \"marvelous\", \"masculine\", \"massive\", \"mature\", \"meager\", \"mealy\", \"mean\", \"measly\", \"meaty\", \"medical\", \"mediocre\", \"medium\", \"meek\", \"mellow\", \"melodic\", \"memorable\", \"menacing\", \"merry\", \"messy\", \"metallic\", \"mild\", \"milky\", \"mindless\", \"miniature\", \"minor\", \"minty\", \"miserable\", \"miserly\", \"misguided\", \"misty\", \"mixed\", \"modern\", \"modest\", \"moist\", \"monstrous\", \"monthly\", \"monumental\", \"moral\", \"mortified\", \"motherly\", \"motionless\", \"mountainous\", \"muddy\", \"muffled\", \"multicolored\", \"mundane\", \"murky\", \"mushy\", \"muted\", \"mysterious\", \"naive\", \"narrow\", \"nasty\", \"natural\", \"naughty\", \"nautical\", \"near\", \"neat\", \"necessary\", \"negligible\", \"neighboring\", \"nervous\", \"new\", \"next\", \"nice\", \"nifty\", \"nimble\", \"nippy\", \"nocturnal\", \"noisy\", \"nonstop\", \"normal\", \"notable\", \"noted\", \"noteworthy\", \"novel\", \"numb\", \"nutritious\", \"nutty\", \"obedient\", \"oblong\", \"oily\", \"oblong\", \"obvious\", \"occasional\", \"odd\", \"oddball\", \"offbeat\", \"offensive\", \"official\", \"old\", \"old-fashioned\", \"only\", \"open\", \"optimal\", \"optimistic\", \"opulent\", \"orange\", \"orderly\", \"organic\", \"ornate\", \"ornery\", \"ordinary\", \"original\", \"other\", \"our\", \"outlying\", \"outgoing\", \"outlandish\", \"outrageous\", \"outstanding\", \"oval\", \"overcooked\", \"overdue\", \"overjoyed\", \"overlooked\", \"palatable\", \"pale\", \"paltry\", \"parallel\", \"parched\", \"partial\", \"passionate\", \"past\", \"pastel\", \"peaceful\", \"peppery\", \"perfect\", \"perfumed\", \"periodic\", \"perky\", \"personal\", \"pertinent\", \"pesky\", \"pessimistic\", \"petty\", \"phony\", \"physical\", \"piercing\", \"pink\", \"pitiful\", \"plain\", \"plaintive\", \"plastic\", \"playful\", \"pleasant\", \"pleased\", \"pleasing\", \"plump\", \"plush\", \"polished\", \"polite\", \"political\", \"pointed\", \"pointless\", \"poised\", \"poor\", \"popular\", \"portly\", \"posh\", \"positive\", \"possible\", \"potable\", \"powerful\", \"powerless\", \"practical\", \"precious\", \"present\", \"prestigious\", \"pretty\", \"precious\", \"previous\", \"pricey\", \"prickly\", \"primary\", \"prime\", \"pristine\", \"private\", \"prize\", \"probable\", \"productive\", \"profitable\", \"profuse\", \"proper\", \"proud\", \"prudent\", \"punctual\", \"pungent\", \"puny\", \"pure\", \"purple\", \"pushy\", \"puzzled\", \"puzzling\", \"quaint\", \"qualified\", \"quarrelsome\", \"quarterly\", \"queasy\", \"querulous\", \"questionable\", \"quick\", \"quick-witted\", \"quiet\", \"quintessential\", \"quirky\", \"quixotic\", \"quizzical\", \"radiant\", \"ragged\", \"rapid\", \"rare\", \"rash\", \"raw\", \"recent\", \"reckless\", \"rectangular\", \"ready\", \"real\", \"realistic\", \"reasonable\", \"red\", \"reflecting\", \"regal\", \"regular\", \"reliable\", \"relieved\", \"remarkable\", \"remorseful\", \"remote\", \"repentant\", \"required\", \"respectful\", \"responsible\", \"repulsive\", \"revolving\", \"rewarding\", \"rich\", \"rigid\", \"right\", \"ringed\", \"ripe\", \"roasted\", \"robust\", \"rosy\", \"rotating\", \"rotten\", \"rough\", \"round\", \"rowdy\", \"royal\", \"rubbery\", \"rundown\", \"ruddy\", \"runny\", \"rural\", \"rusty\", \"sad\", \"safe\", \"salty\", \"same\", \"sandy\", \"sane\", \"sarcastic\", \"sardonic\", \"satisfied\", \"scaly\", \"scarce\", \"scared\", \"scary\", \"scented\", \"scholarly\", \"scientific\", \"scratchy\", \"scrawny\", \"second\", \"secondary\", \"second-hand\", \"secret\", \"self-assured\", \"self-reliant\", \"selfish\", \"sentimental\", \"separate\", \"serene\", \"serious\", \"serpentine\", \"several\", \"severe\", \"shabby\", \"shadowy\", \"shady\", \"shallow\", \"shameful\", \"shameless\", \"sharp\", \"shimmering\", \"shiny\", \"shocked\", \"shocking\", \"shoddy\", \"short\", \"short-term\", \"showy\", \"shrill\", \"shy\", \"sick\", \"silent\", \"silky\", \"silly\", \"silver\", \"similar\", \"simple\", \"simplistic\", \"sinful\", \"single\", \"sizzling\", \"skeletal\", \"skinny\", \"sleepy\", \"slight\", \"slim\", \"slimy\", \"slippery\", \"slow\", \"slushy\", \"small\", \"smart\", \"smoggy\", \"smooth\", \"smug\", \"snappy\", \"snarling\", \"sneaky\", \"sniveling\", \"snoopy\", \"sociable\", \"soft\", \"soggy\", \"solid\", \"somber\", \"some\", \"spherical\", \"sophisticated\", \"sore\", \"sorrowful\", \"soulful\", \"soupy\", \"sour\", \"Spanish\", \"sparkling\", \"sparse\", \"specific\", \"spectacular\", \"speedy\", \"spicy\", \"spiffy\", \"spirited\", \"spiteful\", \"splendid\", \"spotless\", \"spotted\", \"spry\", \"square\", \"squeaky\", \"squiggly\", \"stable\", \"staid\", \"stained\", \"stale\", \"standard\", \"starchy\", \"stark\", \"starry\", \"steep\", \"sticky\", \"stiff\", \"stimulating\", \"stingy\", \"stormy\", \"straight\", \"strange\", \"steel\", \"strict\", \"strident\", \"striking\", \"striped\", \"strong\", \"studious\", \"stunning\", \"stupendous\", \"sturdy\", \"stylish\", \"subdued\", \"submissive\", \"substantial\", \"subtle\", \"suburban\", \"sudden\", \"sugary\", \"sunny\", \"super\", \"superb\", \"superficial\", \"superior\", \"supportive\", \"sure-footed\", \"surprised\", \"suspicious\", \"svelte\", \"sweet\", \"sweltering\", \"swift\", \"sympathetic\", \"tall\", \"talkative\", \"tame\", \"tan\", \"tangible\", \"tart\", \"tasty\", \"tattered\", \"taut\", \"tedious\", \"teeming\", \"tempting\", \"tender\", \"tense\", \"tepid\", \"terrible\", \"terrific\", \"testy\", \"thankful\", \"that\", \"these\", \"thick\", \"thin\", \"third\", \"thirsty\", \"this\", \"thorough\", \"thorny\", \"those\", \"thoughtful\", \"threadbare\", \"thrifty\", \"thunderous\", \"tidy\", \"tight\", \"timely\", \"tinted\", \"tiny\", \"tired\", \"torn\", \"total\", \"tough\", \"traumatic\", \"treasured\", \"tremendous\", \"tragic\", \"trained\", \"tremendous\", \"triangular\", \"tricky\", \"trifling\", \"trim\", \"trivial\", \"troubled\", \"true\", \"trusting\", \"trustworthy\", \"trusty\", \"truthful\", \"tubby\", \"turbulent\", \"twin\", \"ugly\", \"ultimate\", \"unacceptable\", \"unaware\", \"uncomfortable\", \"uncommon\", \"unconscious\", \"understated\", \"unequaled\", \"uneven\", \"unfinished\", \"unfit\", \"unfolded\", \"unfortunate\", \"unhappy\", \"unhealthy\", \"uniform\", \"unimportant\", \"unique\", \"united\", \"unkempt\", \"unknown\", \"unlawful\", \"unlined\", \"unlucky\", \"unnatural\", \"unpleasant\", \"unrealistic\", \"unripe\", \"unruly\", \"unselfish\", \"unsightly\", \"unsteady\", \"unsung\", \"untidy\", \"untimely\", \"untried\", \"untrue\", \"unused\", \"unusual\", \"unwelcome\", \"unwieldy\", \"unwilling\", \"unwitting\", \"unwritten\", \"upbeat\", \"upright\", \"upset\", \"urban\", \"usable\", \"used\", \"useful\", \"useless\", \"utilized\", \"utter\", \"vacant\", \"vague\", \"vain\", \"valid\", \"valuable\", \"vapid\", \"variable\", \"vast\", \"velvety\", \"venerated\", \"vengeful\", \"verifiable\", \"vibrant\", \"vicious\", \"victorious\", \"vigilant\", \"vigorous\", \"villainous\", \"violet\", \"violent\", \"virtual\", \"virtuous\", \"visible\", \"vital\", \"vivacious\", \"vivid\", \"voluminous\", \"wan\", \"warlike\", \"warm\", \"warmhearted\", \"warped\", \"wary\", \"wasteful\", \"watchful\", \"waterlogged\", \"watery\", \"wavy\", \"wealthy\", \"weak\", \"weary\", \"webbed\", \"wee\", \"weekly\", \"weepy\", \"weighty\", \"weird\", \"welcome\", \"well-documented\", \"well-groomed\", \"well-informed\", \"well-lit\", \"well-made\", \"well-off\", \"well-to-do\", \"well-worn\", \"wet\", \"which\", \"whimsical\", \"whirlwind\", \"whispered\", \"white\", \"whole\", \"whopping\", \"wicked\", \"wide\", \"wide-eyed\", \"wiggly\", \"wild\", \"willing\", \"wilted\", \"winding\", \"windy\", \"winged\", \"wiry\", \"wise\", \"witty\", \"wobbly\", \"woeful\", \"wonderful\", \"wooden\", \"woozy\", \"wordy\", \"worldly\", \"worn\", \"worried\", \"worrisome\", \"worse\", \"worst\", \"worthless\", \"worthwhile\", \"worthy\", \"wrathful\", \"wretched\", \"writhing\", \"wrong\", \"wry\", \"yawning\", \"yearly\", \"yellow\", \"yellowish\", \"young\", \"youthful\", \"yummy\", \"zany\", \"zealous\", \"zesty\", \"zigzag\", \"rocky\"];\nconst name2 = [\"people\", \"history\", \"way\", \"art\", \"world\", \"information\", \"map\", \"family\", \"government\", \"health\", \"system\", \"computer\", \"meat\", \"year\", \"thanks\", \"music\", \"person\", \"reading\", \"method\", \"data\", \"food\", \"understanding\", \"theory\", \"law\", \"bird\", \"literature\", \"problem\", \"software\", \"control\", \"knowledge\", \"power\", \"ability\", \"economics\", \"love\", \"internet\", \"television\", \"science\", \"library\", \"nature\", \"fact\", \"product\", \"idea\", \"temperature\", \"investment\", \"area\", \"society\", \"activity\", \"story\", \"industry\", \"media\", \"thing\", \"oven\", \"community\", \"definition\", \"safety\", \"quality\", \"development\", \"language\", \"management\", \"player\", \"variety\", \"video\", \"week\", \"security\", \"country\", \"exam\", \"movie\", \"organization\", \"equipment\", \"physics\", \"analysis\", \"policy\", \"series\", \"thought\", \"basis\", \"boyfriend\", \"direction\", \"strategy\", \"technology\", \"army\", \"camera\", \"freedom\", \"paper\", \"environment\", \"child\", \"instance\", \"month\", \"truth\", \"marketing\", \"university\", \"writing\", \"article\", \"department\", \"difference\", \"goal\", \"news\", \"audience\", \"fishing\", \"growth\", \"income\", \"marriage\", \"user\", \"combination\", \"failure\", \"meaning\", \"medicine\", \"philosophy\", \"teacher\", \"communication\", \"night\", \"chemistry\", \"disease\", \"disk\", \"energy\", \"nation\", \"road\", \"role\", \"soup\", \"advertising\", \"location\", \"success\", \"addition\", \"apartment\", \"education\", \"math\", \"moment\", \"painting\", \"politics\", \"attention\", \"decision\", \"event\", \"property\", \"shopping\", \"student\", \"wood\", \"competition\", \"distribution\", \"entertainment\", \"office\", \"population\", \"president\", \"unit\", \"category\", \"cigarette\", \"context\", \"introduction\", \"opportunity\", \"performance\", \"driver\", \"flight\", \"length\", \"magazine\", \"newspaper\", \"relationship\", \"teaching\", \"cell\", \"dealer\", \"debate\", \"finding\", \"lake\", \"member\", \"message\", \"phone\", \"scene\", \"appearance\", \"association\", \"concept\", \"customer\", \"death\", \"discussion\", \"housing\", \"inflation\", \"insurance\", \"mood\", \"woman\", \"advice\", \"blood\", \"effort\", \"expression\", \"importance\", \"opinion\", \"payment\", \"reality\", \"responsibility\", \"situation\", \"skill\", \"statement\", \"wealth\", \"application\", \"city\", \"county\", \"depth\", \"estate\", \"foundation\", \"grandmother\", \"heart\", \"perspective\", \"photo\", \"recipe\", \"studio\", \"topic\", \"collection\", \"depression\", \"imagination\", \"passion\", \"percentage\", \"resource\", \"setting\", \"ad\", \"agency\", \"college\", \"connection\", \"criticism\", \"debt\", \"description\", \"memory\", \"patience\", \"secretary\", \"solution\", \"administration\", \"aspect\", \"attitude\", \"director\", \"personality\", \"psychology\", \"recommendation\", \"response\", \"selection\", \"storage\", \"version\", \"alcohol\", \"argument\", \"complaint\", \"contract\", \"emphasis\", \"highway\", \"loss\", \"membership\", \"possession\", \"preparation\", \"steak\", \"union\", \"agreement\", \"cancer\", \"currency\", \"employment\", \"engineering\", \"entry\", \"interaction\", \"limit\", \"mixture\", \"preference\", \"region\", \"republic\", \"seat\", \"tradition\", \"virus\", \"actor\", \"classroom\", \"delivery\", \"device\", \"difficulty\", \"drama\", \"election\", \"engine\", \"football\", \"guidance\", \"hotel\", \"match\", \"owner\", \"priority\", \"protection\", \"suggestion\", \"tension\", \"variation\", \"anxiety\", \"atmosphere\", \"awareness\", \"bread\", \"climate\", \"comparison\", \"confusion\", \"construction\", \"elevator\", \"emotion\", \"employee\", \"employer\", \"guest\", \"height\", \"leadership\", \"mall\", \"manager\", \"operation\", \"recording\", \"respect\", \"sample\", \"transportation\", \"boring\", \"charity\", \"cousin\", \"disaster\", \"editor\", \"efficiency\", \"excitement\", \"extent\", \"feedback\", \"guitar\", \"homework\", \"leader\", \"mom\", \"outcome\", \"permission\", \"presentation\", \"promotion\", \"reflection\", \"refrigerator\", \"resolution\", \"revenue\", \"session\", \"singer\", \"tennis\", \"basket\", \"bonus\", \"cabinet\", \"childhood\", \"church\", \"clothes\", \"coffee\", \"dinner\", \"drawing\", \"hair\", \"hearing\", \"initiative\", \"judgment\", \"lab\", \"measurement\", \"mode\", \"mud\", \"orange\", \"poetry\", \"police\", \"possibility\", \"procedure\", \"queen\", \"ratio\", \"relation\", \"restaurant\", \"satisfaction\", \"sector\", \"signature\", \"significance\", \"song\", \"tooth\", \"town\", \"vehicle\", \"volume\", \"wife\", \"accident\", \"airport\", \"appointment\", \"arrival\", \"assumption\", \"baseball\", \"chapter\", \"committee\", \"conversation\", \"database\", \"enthusiasm\", \"error\", \"explanation\", \"farmer\", \"gate\", \"girl\", \"hall\", \"historian\", \"hospital\", \"injury\", \"instruction\", \"maintenance\", \"manufacturer\", \"meal\", \"perception\", \"pie\", \"poem\", \"presence\", \"proposal\", \"reception\", \"replacement\", \"revolution\", \"river\", \"son\", \"speech\", \"tea\", \"village\", \"warning\", \"winner\", \"worker\", \"writer\", \"assistance\", \"breath\", \"buyer\", \"chest\", \"chocolate\", \"conclusion\", \"contribution\", \"cookie\", \"courage\", \"desk\", \"drawer\", \"establishment\", \"examination\", \"garbage\", \"grocery\", \"honey\", \"impression\", \"improvement\", \"independence\", \"insect\", \"inspection\", \"inspector\", \"king\", \"ladder\", \"menu\", \"penalty\", \"piano\", \"potato\", \"profession\", \"professor\", \"quantity\", \"reaction\", \"requirement\", \"salad\", \"sister\", \"supermarket\", \"tongue\", \"weakness\", \"wedding\", \"affair\", \"ambition\", \"analyst\", \"apple\", \"assignment\", \"assistant\", \"beer\", \"birthday\", \"celebration\", \"championship\", \"cheek\", \"client\", \"consequence\", \"departure\", \"diamond\", \"dirt\", \"ear\", \"fortune\", \"friendship\", \"funeral\", \"gene\", \"girlfriend\", \"hat\", \"indication\", \"intention\", \"lady\", \"midnight\", \"negotiation\", \"obligation\", \"passenger\", \"pizza\", \"platform\", \"poet\", \"pollution\", \"recognition\", \"reputation\", \"shirt\", \"speaker\", \"stranger\", \"surgery\", \"sympathy\", \"tale\", \"throat\", \"trainer\", \"uncle\", \"youth\", \"time\", \"work\", \"film\", \"water\", \"money\", \"example\", \"while\", \"business\", \"study\", \"game\", \"life\", \"form\", \"air\", \"day\", \"place\", \"number\", \"part\", \"field\", \"fish\", \"back\", \"process\", \"heat\", \"hand\", \"experience\", \"job\", \"book\", \"end\", \"point\", \"type\", \"home\", \"economy\", \"value\", \"body\", \"market\", \"guide\", \"interest\", \"state\", \"radio\", \"course\", \"company\", \"price\", \"size\", \"card\", \"list\", \"mind\", \"trade\", \"line\", \"care\", \"group\", \"risk\", \"word\", \"fat\", \"force\", \"key\", \"light\", \"training\", \"name\", \"school\", \"top\", \"amount\", \"level\", \"order\", \"practice\", \"research\", \"sense\", \"service\", \"piece\", \"web\", \"boss\", \"sport\", \"fun\", \"house\", \"page\", \"term\", \"test\", \"answer\", \"sound\", \"focus\", \"matter\", \"kind\", \"soil\", \"board\", \"oil\", \"picture\", \"access\", \"garden\", \"range\", \"rate\", \"reason\", \"future\", \"site\", \"demand\", \"exercise\", \"image\", \"case\", \"cause\", \"coast\", \"action\", \"age\", \"bad\", \"boat\", \"record\", \"result\", \"section\", \"building\", \"mouse\", \"cash\", \"class\", \"period\", \"plan\", \"store\", \"tax\", \"side\", \"subject\", \"space\", \"rule\", \"stock\", \"weather\", \"chance\", \"figure\", \"man\", \"model\", \"source\", \"beginning\", \"earth\", \"program\", \"chicken\", \"design\", \"feature\", \"head\", \"material\", \"purpose\", \"question\", \"rock\", \"salt\", \"act\", \"birth\", \"car\", \"dog\", \"object\", \"scale\", \"sun\", \"note\", \"profit\", \"rent\", \"speed\", \"style\", \"war\", \"bank\", \"craft\", \"half\", \"inside\", \"outside\", \"standard\", \"bus\", \"exchange\", \"eye\", \"fire\", \"position\", \"pressure\", \"stress\", \"advantage\", \"benefit\", \"box\", \"frame\", \"issue\", \"step\", \"cycle\", \"face\", \"item\", \"metal\", \"paint\", \"review\", \"room\", \"screen\", \"structure\", \"view\", \"account\", \"ball\", \"discipline\", \"medium\", \"share\", \"balance\", \"bit\", \"black\", \"bottom\", \"choice\", \"gift\", \"impact\", \"machine\", \"shape\", \"tool\", \"wind\", \"address\", \"average\", \"career\", \"culture\", \"morning\", \"pot\", \"sign\", \"table\", \"task\", \"condition\", \"contact\", \"credit\", \"egg\", \"hope\", \"ice\", \"network\", \"north\", \"square\", \"attempt\", \"date\", \"effect\", \"link\", \"post\", \"star\", \"voice\", \"capital\", \"challenge\", \"friend\", \"self\", \"shot\", \"brush\", \"couple\", \"exit\", \"front\", \"function\", \"lack\", \"living\", \"plant\", \"plastic\", \"spot\", \"summer\", \"taste\", \"theme\", \"track\", \"wing\", \"brain\", \"button\", \"click\", \"desire\", \"foot\", \"gas\", \"influence\", \"notice\", \"rain\", \"wall\", \"base\", \"damage\", \"distance\", \"feeling\", \"pair\", \"savings\", \"staff\", \"sugar\", \"target\", \"text\", \"animal\", \"author\", \"budget\", \"discount\", \"file\", \"ground\", \"lesson\", \"minute\", \"officer\", \"phase\", \"reference\", \"register\", \"sky\", \"stage\", \"stick\", \"title\", \"trouble\", \"bowl\", \"bridge\", \"campaign\", \"character\", \"club\", \"edge\", \"evidence\", \"fan\", \"letter\", \"lock\", \"maximum\", \"novel\", \"option\", \"pack\", \"park\", \"quarter\", \"skin\", \"sort\", \"weight\", \"baby\", \"background\", \"carry\", \"dish\", \"factor\", \"fruit\", \"glass\", \"joint\", \"master\", \"muscle\", \"red\", \"strength\", \"traffic\", \"trip\", \"vegetable\", \"appeal\", \"chart\", \"gear\", \"ideal\", \"librarychen\", \"land\", \"log\", \"mother\", \"net\", \"party\", \"principle\", \"relative\", \"sale\", \"season\", \"signal\", \"spirit\", \"street\", \"tree\", \"wave\", \"belt\", \"bench\", \"commission\", \"copy\", \"drop\", \"minimum\", \"path\", \"progress\", \"project\", \"sea\", \"south\", \"status\", \"stuff\", \"ticket\", \"tour\", \"angle\", \"blue\", \"breakfast\", \"confidence\", \"daughter\", \"degree\", \"doctor\", \"dot\", \"dream\", \"duty\", \"essay\", \"father\", \"fee\", \"finance\", \"hour\", \"juice\", \"luck\", \"milk\", \"mouth\", \"peace\", \"pipe\", \"stable\", \"storm\", \"substance\", \"team\", \"trick\", \"afternoon\", \"bat\", \"beach\", \"blank\", \"catch\", \"chain\", \"consideration\", \"cream\", \"crew\", \"detail\", \"gold\", \"interview\", \"kid\", \"mark\", \"mission\", \"pain\", \"pleasure\", \"score\", \"screw\", \"sex\", \"shop\", \"shower\", \"suit\", \"tone\", \"window\", \"agent\", \"band\", \"bath\", \"block\", \"bone\", \"calendar\", \"candidate\", \"cap\", \"coat\", \"contest\", \"corner\", \"court\", \"cup\", \"district\", \"door\", \"east\", \"finger\", \"garage\", \"guarantee\", \"hole\", \"hook\", \"implement\", \"layer\", \"lecture\", \"lie\", \"manner\", \"meeting\", \"nose\", \"parking\", \"partner\", \"profile\", \"rice\", \"routine\", \"schedule\", \"swimming\", \"telephone\", \"tip\", \"winter\", \"airline\", \"bag\", \"battle\", \"bed\", \"bill\", \"bother\", \"cake\", \"code\", \"curve\", \"designer\", \"dimension\", \"dress\", \"ease\", \"emergency\", \"evening\", \"extension\", \"farm\", \"fight\", \"gap\", \"grade\", \"holiday\", \"horror\", \"horse\", \"host\", \"husband\", \"loan\", \"mistake\", \"mountain\", \"nail\", \"noise\", \"occasion\", \"package\", \"patient\", \"pause\", \"phrase\", \"proof\", \"race\", \"relief\", \"sand\", \"sentence\", \"shoulder\", \"smoke\", \"stomach\", \"string\", \"tourist\", \"towel\", \"vacation\", \"west\", \"wheel\", \"wine\", \"arm\", \"aside\", \"associate\", \"bet\", \"blow\", \"border\", \"branch\", \"breast\", \"brother\", \"buddy\", \"bunch\", \"chip\", \"coach\", \"cross\", \"document\", \"draft\", \"dust\", \"expert\", \"floor\", \"god\", \"golf\", \"habit\", \"iron\", \"judge\", \"knife\", \"landscape\", \"league\", \"mail\", \"mess\", \"native\", \"opening\", \"parent\", \"pattern\", \"pin\", \"pool\", \"pound\", \"request\", \"salary\", \"shame\", \"shelter\", \"shoe\", \"silver\", \"tackle\", \"tank\", \"trust\", \"assist\", \"bake\", \"bar\", \"bell\", \"bike\", \"blame\", \"boy\", \"brick\", \"chair\", \"closet\", \"clue\", \"collar\", \"comment\", \"conference\", \"devil\", \"diet\", \"fear\", \"fuel\", \"glove\", \"jacket\", \"lunch\", \"monitor\", \"mortgage\", \"nurse\", \"pace\", \"panic\", \"peak\", \"plane\", \"reward\", \"row\", \"sandwich\", \"shock\", \"spite\", \"spray\", \"surprise\", \"till\", \"transition\", \"weekend\", \"welcome\", \"yard\", \"alarm\", \"bend\", \"bicycle\", \"bite\", \"blind\", \"bottle\", \"cable\", \"candle\", \"clerk\", \"cloud\", \"concert\", \"counter\", \"flower\", \"grandfather\", \"harm\", \"knee\", \"lawyer\", \"leather\", \"load\", \"mirror\", \"neck\", \"pension\", \"plate\", \"purple\", \"ruin\", \"ship\", \"skirt\", \"slice\", \"snow\", \"specialist\", \"stroke\", \"switch\", \"trash\", \"tune\", \"zone\", \"anger\", \"award\", \"bid\", \"bitter\", \"boot\", \"bug\", \"camp\", \"candy\", \"carpet\", \"cat\", \"champion\", \"channel\", \"clock\", \"comfort\", \"cow\", \"crack\", \"engineer\", \"entrance\", \"fault\", \"grass\", \"guy\", \"hell\", \"highlight\", \"incident\", \"island\", \"joke\", \"jury\", \"leg\", \"lip\", \"mate\", \"motor\", \"nerve\", \"passage\", \"pen\", \"pride\", \"priest\", \"prize\", \"promise\", \"resident\", \"resort\", \"ring\", \"roof\", \"rope\", \"sail\", \"scheme\", \"script\", \"sock\", \"station\", \"toe\", \"tower\", \"truck\", \"witness\", \"can\", \"will\", \"other\", \"use\", \"make\", \"good\", \"look\", \"help\", \"go\", \"great\", \"being\", \"still\", \"public\", \"read\", \"keep\", \"start\", \"give\", \"human\", \"local\", \"general\", \"specific\", \"long\", \"play\", \"feel\", \"high\", \"put\", \"common\", \"set\", \"change\", \"simple\", \"past\", \"big\", \"possible\", \"particular\", \"major\", \"personal\", \"current\", \"national\", \"cut\", \"natural\", \"physical\", \"show\", \"try\", \"check\", \"second\", \"call\", \"move\", \"pay\", \"let\", \"increase\", \"single\", \"individual\", \"turn\", \"ask\", \"buy\", \"guard\", \"hold\", \"main\", \"offer\", \"potential\", \"professional\", \"international\", \"travel\", \"cook\", \"alternative\", \"special\", \"working\", \"whole\", \"dance\", \"excuse\", \"cold\", \"commercial\", \"low\", \"purchase\", \"deal\", \"primary\", \"worth\", \"fall\", \"necessary\", \"positive\", \"produce\", \"search\", \"present\", \"spend\", \"talk\", \"creative\", \"tell\", \"cost\", \"drive\", \"green\", \"support\", \"glad\", \"remove\", \"return\", \"run\", \"complex\", \"due\", \"effective\", \"middle\", \"regular\", \"reserve\", \"independent\", \"leave\", \"original\", \"reach\", \"rest\", \"serve\", \"watch\", \"beautiful\", \"charge\", \"active\", \"break\", \"negative\", \"safe\", \"stay\", \"visit\", \"visual\", \"affect\", \"cover\", \"report\", \"rise\", \"walk\", \"white\", \"junior\", \"pick\", \"unique\", \"classic\", \"final\", \"lift\", \"mix\", \"private\", \"stop\", \"teach\", \"western\", \"concern\", \"familiar\", \"fly\", \"official\", \"broad\", \"comfortable\", \"gain\", \"rich\", \"save\", \"stand\", \"young\", \"heavy\", \"lead\", \"listen\", \"valuable\", \"worry\", \"handle\", \"leading\", \"meet\", \"release\", \"sell\", \"finish\", \"normal\", \"press\", \"ride\", \"secret\", \"spread\", \"spring\", \"tough\", \"wait\", \"brown\", \"deep\", \"display\", \"flow\", \"hit\", \"objective\", \"shoot\", \"touch\", \"cancel\", \"chemical\", \"cry\", \"dump\", \"extreme\", \"push\", \"conflict\", \"eat\", \"fill\", \"formal\", \"jump\", \"kick\", \"opposite\", \"pass\", \"pitch\", \"remote\", \"total\", \"treat\", \"vast\", \"abuse\", \"beat\", \"burn\", \"deposit\", \"print\", \"raise\", \"sleep\", \"somewhere\", \"advance\", \"consist\", \"dark\", \"double\", \"draw\", \"equal\", \"fix\", \"hire\", \"internal\", \"join\", \"sensitive\", \"tap\", \"win\", \"attack\", \"claim\", \"constant\", \"drag\", \"drink\", \"guess\", \"minor\", \"pull\", \"raw\", \"soft\", \"solid\", \"wear\", \"weird\", \"wonder\", \"annual\", \"count\", \"dead\", \"doubt\", \"feed\", \"forever\", \"impress\", \"repeat\", \"round\", \"sing\", \"slide\", \"strip\", \"wish\", \"combine\", \"command\", \"dig\", \"divide\", \"equivalent\", \"hang\", \"hunt\", \"initial\", \"march\", \"mention\", \"spiritual\", \"survey\", \"tie\", \"adult\", \"brief\", \"crazy\", \"escape\", \"gather\", \"hate\", \"prior\", \"repair\", \"rough\", \"sad\", \"scratch\", \"sick\", \"strike\", \"employ\", \"external\", \"hurt\", \"illegal\", \"laugh\", \"lay\", \"mobile\", \"nasty\", \"ordinary\", \"respond\", \"royal\", \"senior\", \"split\", \"strain\", \"struggle\", \"swim\", \"train\", \"upper\", \"wash\", \"yellow\", \"convert\", \"crash\", \"dependent\", \"fold\", \"funny\", \"grab\", \"hide\", \"miss\", \"permit\", \"quote\", \"recover\", \"resolve\", \"roll\", \"sink\", \"slip\", \"spare\", \"suspect\", \"sweet\", \"swing\", \"twist\", \"upstairs\", \"usual\", \"abroad\", \"brave\", \"calm\", \"concentrate\", \"estimate\", \"grand\", \"male\", \"mine\", \"prompt\", \"quiet\", \"refuse\", \"regret\", \"reveal\", \"rush\", \"shake\", \"shift\", \"shine\", \"steal\", \"suck\", \"surround\", \"bear\", \"brilliant\", \"dare\", \"dear\", \"delay\", \"drunk\", \"female\", \"hurry\", \"inevitable\", \"invite\", \"kiss\", \"neat\", \"pop\", \"punch\", \"quit\", \"reply\", \"representative\", \"resist\", \"rip\", \"rub\", \"silly\", \"smile\", \"spell\", \"stretch\", \"tear\", \"temporary\", \"tomorrow\", \"wake\", \"wrap\", \"yesterday\"];\n"],
+ "mappings": "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Q,aAAc,MAAO,OAAQ,MAAO,QAAS,OAAQ,OAAQ,UAAW,QAAS,OAAQ,SAAU,QAAS,WAAY,QAAS,QAAS,SAAU,UAAW,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,MAAO,QAAS,MAAO,QAAS,WAAY,OAAQ,SAAU,MAAO,SAAU,QAAS,QAAS,WAAY,WAAY,QAAS,UAAW,QAAS,MAAO,OAAQ,QAAS,MAAO,QAAS,OAAQ,OAAQ,OAAQ,SAAU,QAAS,QAAS,SAAU,OAAQ,OAAQ,QAAS,MAAO,UAAW,SAAU,SAAU,QAAS,OAAQ,SAAU,SAAU,OAAQ,SAAU,WAAY,QAAS,OAAQ,QAAS,QAAS,SAAU,MAAO,MAAO,OAAQ,SAAU,SAAU,UAAW,WAAY,QAAS,OAAQ,QAAS,SAAU,OAAQ,QAAS,MAAO,OAAQ,UAAW,QAAS,OAAQ,QAAS,UAAW,SAAU,SAAU,MAAO,QAAS,SAAU,YAAa,QAAS,UAAW,UAAW,SAAU,UAAW,OAAQ,WAAY,UAAW,WAAY,OAAQ,OAAQ,MAAO,QAAS,MAAO,MAAO,SAAU,QAAS,MAAO,OAAQ,SAAU,OAAQ,QAAS,QAAS,MAAO,OAAQ,QAAS,OAAQ,SAAU,UAAW,WAAY,MAAO,WAAY,MAAO,OAAQ,WAAY,WAAY,SAAU,YAAa,UAAW,MAAO,QAAS,QAAS,OAAQ,QAAS,OAAQ,OAAQ,QAAS,QAAS,SAAU,OAAQ,SAAU,YAAa,OAAQ,UAAW,OAAQ,aAAc,SAAU,QAAS,UAAW,MAAO,QAAS,SAAU,SAAU,OAAQ,SAAU,UAAW,QAAS,OAAQ,OAAQ,UAAW,UAAW,SAAU,UAAW,UAAW,MAAO,OAAQ,QAAS,OAAQ,YAAa,UAAW,SAAU,MAAO,OAAQ,MAAO,UAAW,QAAS,SAAU,UAAW,OAAQ,SAAU,OAAQ,OAAQ,OAAQ,QAAS,UAAW,YAAa,SAAU,OAAQ,OAAQ,QAAS,SAAU,OAAQ,QAAS,WAAY,OAAQ,SAAU,QAAS,UAAW,OAAQ,SAAU,QAAS,QAAS,QAAS,OAAQ,QAAS,SAAU,QAAS,SAAU,OAAQ,MAAO,YAAa,SAAU,OAAQ,OAAQ,OAAQ,SAAU,WAAY,UAAW,OAAQ,UAAW,QAAS,QAAS,SAAU,OAAQ,SAAU,SAAU,SAAU,WAAY,OAA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",
+ "names": ["computeAgeString", "date", "now", "deltaTime", "plural", "floor", "pow", "random", "key", "digits", "irand", "range", "arand", "array", "prob", "probability", "makeId", "pairs", "digits", "delim", "min", "range", "result", "i", "irand", "logKinds", "errKinds", "fromEntries", "_logFactory", "enable", "preamble", "bg", "color", "kind", "style", "logFactory", "debugLoggers", "logKinds", "errorLoggers", "errKinds", "loggers", "log", "matches", "candidateMeta", "targetMeta", "property", "shallowUpdate", "obj", "data", "result", "i", "value", "overage", "seen", "key", "shallowMerge", "deepCopy", "datum", "element", "clone", "deepEqual", "a", "b", "type", "aProps", "bProps", "name", "deepUndefinedToNull", "prop", "PathMapper", "root", "mappings", "path", "bits", "top", "meta", "depth", "localRelative", "base", "localAbsolute", "Paths", "debounce", "key", "action", "delay", "async", "task", "args", "asyncTask", "delayMs", "makeName", "delim", "arand", "name1", "name2", "makeCapName", "kebabToCaps", "s", "neo", "i", "c"]
}