UNPKG

@hpcc-js/observablehq-compiler

Version:
1,457 lines 72.8 kB
import { n as e, r as t } from "./chunk-rwCFCtyI.js"; import { t as n } from "./interpreters-hA2IQttG.js"; import { n as r, r as i } from "./fileAttachment-DCFb8_eF.js"; //#region ../../node_modules/@observablehq/runtime/src/errors.js var RuntimeError = class extends Error { constructor(e, t) { super(e), this.input = t; } }; RuntimeError.prototype.name = "RuntimeError"; //#endregion //#region ../../node_modules/@observablehq/runtime/src/generatorish.js function generatorish(e) { return e && typeof e.next == "function" && typeof e.return == "function"; } //#endregion //#region ../../node_modules/@observablehq/runtime/src/constant.js function constant(e) { return () => e; } //#endregion //#region ../../node_modules/@observablehq/runtime/src/identity.js function identity(e) { return e; } //#endregion //#region ../../node_modules/@observablehq/runtime/src/rethrow.js function rethrow(e) { return () => { throw e; }; } //#endregion //#region ../../node_modules/@observablehq/runtime/src/array.js var a = Array.prototype, o = a.map; a.forEach; //#endregion //#region ../../node_modules/@observablehq/runtime/src/noop.js function noop() {} var s = Symbol("no-observer"), c = Promise.resolve(); function Variable(e, t, n, r) { n ||= s, Object.defineProperties(this, { _observer: { value: n, writable: !0 }, _definition: { value: variable_undefined, writable: !0 }, _duplicate: { value: void 0, writable: !0 }, _duplicates: { value: void 0, writable: !0 }, _indegree: { value: NaN, writable: !0 }, _inputs: { value: [], writable: !0 }, _invalidate: { value: noop, writable: !0 }, _module: { value: t }, _name: { value: null, writable: !0 }, _outputs: { value: /* @__PURE__ */ new Set(), writable: !0 }, _promise: { value: c, writable: !0 }, _reachable: { value: n !== s, writable: !0 }, _rejector: { value: variable_rejector(this) }, _shadow: { value: initShadow(t, r) }, _type: { value: e }, _value: { value: void 0, writable: !0 }, _version: { value: 0, writable: !0 } }); } Object.defineProperties(Variable.prototype, { _pending: { value: variable_pending, writable: !0, configurable: !0 }, _fulfilled: { value: variable_fulfilled, writable: !0, configurable: !0 }, _rejected: { value: variable_rejected, writable: !0, configurable: !0 }, _resolve: { value: variable_resolve, writable: !0, configurable: !0 }, define: { value: variable_define, writable: !0, configurable: !0 }, delete: { value: variable_delete, writable: !0, configurable: !0 }, import: { value: variable_import, writable: !0, configurable: !0 } }); function initShadow(e, t) { return t?.shadow ? new Map(Object.entries(t.shadow).map(([t, n]) => [t, new Variable(2, e).define([], n)])) : null; } function variable_attach(e) { e._module._runtime._dirty.add(e), e._outputs.add(this); } function variable_detach(e) { e._module._runtime._dirty.add(e), e._outputs.delete(this); } function variable_undefined() { throw variable_undefined; } function variable_stale() { throw variable_stale; } function variable_rejector(e) { return (t) => { throw t === variable_stale ? t : t === variable_undefined ? new RuntimeError(`${e._name} is not defined`, e._name) : t instanceof Error && t.message ? new RuntimeError(t.message, e._name) : new RuntimeError(`${e._name} could not be resolved`, e._name); }; } function variable_duplicate(e) { return () => { throw new RuntimeError(`${e} is defined more than once`); }; } function variable_define(e, t, n) { switch (arguments.length) { case 1: n = e, e = t = null; break; case 2: n = t, typeof e == "string" ? t = null : (t = e, e = null); break; } return variable_defineImpl.call(this, e == null ? null : String(e), t == null ? [] : o.call(t, this._resolve, this), typeof n == "function" ? n : constant(n)); } function variable_resolve(e) { return this._shadow?.get(e) ?? this._module._resolve(e); } function variable_defineImpl(e, t, n) { let r = this._module._scope, i = this._module._runtime; if (this._inputs.forEach(variable_detach, this), t.forEach(variable_attach, this), this._inputs = t, this._definition = n, this._value = void 0, n === noop ? i._variables.delete(this) : i._variables.add(this), e !== this._name || r.get(e) !== this) { let t, a; if (this._name) if (this._outputs.size) r.delete(this._name), a = this._module._resolve(this._name), a._outputs = this._outputs, this._outputs = /* @__PURE__ */ new Set(), a._outputs.forEach(function(e) { e._inputs[e._inputs.indexOf(this)] = a; }, this), a._outputs.forEach(i._updates.add, i._updates), i._dirty.add(a).add(this), r.set(this._name, a); else if ((a = r.get(this._name)) === this) r.delete(this._name); else if (a._type === 3) a._duplicates.delete(this), this._duplicate = void 0, a._duplicates.size === 1 && (a = a._duplicates.keys().next().value, t = r.get(this._name), a._outputs = t._outputs, t._outputs = /* @__PURE__ */ new Set(), a._outputs.forEach(function(e) { e._inputs[e._inputs.indexOf(t)] = a; }), a._definition = a._duplicate, a._duplicate = void 0, i._dirty.add(t).add(a), i._updates.add(a), r.set(this._name, a)); else throw Error(); if (this._outputs.size) throw Error(); e && ((a = r.get(e)) ? a._type === 3 ? (this._definition = variable_duplicate(e), this._duplicate = n, a._duplicates.add(this)) : a._type === 2 ? (this._outputs = a._outputs, a._outputs = /* @__PURE__ */ new Set(), this._outputs.forEach(function(e) { e._inputs[e._inputs.indexOf(a)] = this; }, this), i._dirty.add(a).add(this), r.set(e, this)) : (a._duplicate = a._definition, this._duplicate = n, t = new Variable(3, this._module), t._name = e, t._definition = this._definition = a._definition = variable_duplicate(e), t._outputs = a._outputs, a._outputs = /* @__PURE__ */ new Set(), t._outputs.forEach(function(e) { e._inputs[e._inputs.indexOf(a)] = t; }), t._duplicates = new Set([this, a]), i._dirty.add(a).add(t), i._updates.add(a).add(t), r.set(e, t)) : r.set(e, this)), this._name = e; } return this._version > 0 && ++this._version, i._updates.add(this), i._compute(), this; } function variable_import(e, t, n) { return arguments.length < 3 && (n = t, t = e), variable_defineImpl.call(this, String(t), [n._resolve(String(e))], identity); } function variable_delete() { return variable_defineImpl.call(this, null, [], noop); } function variable_pending() { this._observer.pending && this._observer.pending(); } function variable_fulfilled(e) { this._observer.fulfilled && this._observer.fulfilled(e, this._name); } function variable_rejected(e) { this._observer.rejected && this._observer.rejected(e, this._name); } //#endregion //#region ../../node_modules/@observablehq/runtime/src/module.js var l = Symbol("variable"), u = Symbol("invalidation"), d = Symbol("visibility"); function Module(e, t = []) { Object.defineProperties(this, { _runtime: { value: e }, _scope: { value: /* @__PURE__ */ new Map() }, _builtins: { value: new Map([ ["@variable", l], ["invalidation", u], ["visibility", d], ...t ]) }, _source: { value: null, writable: !0 } }); } Object.defineProperties(Module.prototype, { _resolve: { value: module_resolve, writable: !0, configurable: !0 }, redefine: { value: module_redefine, writable: !0, configurable: !0 }, define: { value: module_define, writable: !0, configurable: !0 }, derive: { value: module_derive, writable: !0, configurable: !0 }, import: { value: module_import, writable: !0, configurable: !0 }, value: { value: module_value, writable: !0, configurable: !0 }, variable: { value: module_variable, writable: !0, configurable: !0 }, builtin: { value: module_builtin, writable: !0, configurable: !0 } }); function module_redefine(e) { let t = this._scope.get(e); if (!t) throw new RuntimeError(`${e} is not defined`); if (t._type === 3) throw new RuntimeError(`${e} is defined more than once`); return t.define.apply(t, arguments); } function module_define() { let e = new Variable(1, this); return e.define.apply(e, arguments); } function module_import() { let e = new Variable(1, this); return e.import.apply(e, arguments); } function module_variable(e, t) { return new Variable(1, this, e, t); } async function module_value(e) { let t = this._scope.get(e); if (!t) throw new RuntimeError(`${e} is not defined`); if (t._observer === s) { t = this.variable(!0).define([e], identity); try { return await module_revalue(this._runtime, t); } finally { t.delete(); } } else return module_revalue(this._runtime, t); } async function module_revalue(e, t) { await e._compute(); try { return await t._promise; } catch (n) { if (n === variable_stale) return module_revalue(e, t); throw n; } } function module_derive(e, t) { let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set(), i = []; function alias(e) { let t = n.get(e); return t || (t = new Module(e._runtime, e._builtins), t._source = e, n.set(e, t), i.push([t, e]), r.add(e), t); } let a = alias(this); for (let n of e) { let { alias: e, name: r } = typeof n == "object" ? n : { name: n }; a.import(r, e ?? r, t); } for (let e of r) for (let [t, n] of e._scope) if (n._definition === identity) { if (e === this && a._scope.has(t)) continue; let r = n._inputs[0]._module; r._source && alias(r); } for (let [e, t] of i) for (let [r, i] of t._scope) { let t = e._scope.get(r); if (!(t && t._type !== 2)) if (i._definition === identity) { let t = i._inputs[0], a = t._module; e.import(t._name, r, n.get(a) || a); } else e.define(r, i._inputs.map(variable_name), i._definition); } return a; } function module_resolve(e) { let t = this._scope.get(e), n; if (!t) if (t = new Variable(2, this), this._builtins.has(e)) t.define(e, constant(this._builtins.get(e))); else if (this._runtime._builtin._scope.has(e)) t.import(e, this._runtime._builtin); else { try { n = this._runtime._global(e); } catch (n) { return t.define(e, rethrow(n)); } n === void 0 ? this._scope.set(t._name = e, t) : t.define(e, constant(n)); } return t; } function module_builtin(e, t) { this._builtins.set(e, t); } function variable_name(e) { return e._name; } //#endregion //#region ../../node_modules/@observablehq/runtime/src/runtime.js var f = typeof requestAnimationFrame == "function" ? requestAnimationFrame : typeof setImmediate == "function" ? setImmediate : (e) => setTimeout(e, 0); function Runtime(e, t = window_global) { let n = this.module(); if (Object.defineProperties(this, { _dirty: { value: /* @__PURE__ */ new Set() }, _updates: { value: /* @__PURE__ */ new Set() }, _precomputes: { value: [], writable: !0 }, _computing: { value: null, writable: !0 }, _init: { value: null, writable: !0 }, _modules: { value: /* @__PURE__ */ new Map() }, _variables: { value: /* @__PURE__ */ new Set() }, _disposed: { value: !1, writable: !0 }, _builtin: { value: n }, _global: { value: t } }), e) for (let t in e) new Variable(2, n).define(t, [], e[t]); } Object.defineProperties(Runtime.prototype, { _precompute: { value: runtime_precompute, writable: !0, configurable: !0 }, _compute: { value: runtime_compute, writable: !0, configurable: !0 }, _computeSoon: { value: runtime_computeSoon, writable: !0, configurable: !0 }, _computeNow: { value: runtime_computeNow, writable: !0, configurable: !0 }, dispose: { value: runtime_dispose, writable: !0, configurable: !0 }, module: { value: runtime_module, writable: !0, configurable: !0 } }); function runtime_dispose() { this._computing = Promise.resolve(), this._disposed = !0, this._variables.forEach((e) => { e._invalidate(), e._version = NaN; }); } function runtime_module(e, t = noop) { let n; if (e === void 0) return (n = this._init) ? (this._init = null, n) : new Module(this); if (n = this._modules.get(e), n) return n; this._init = n = new Module(this), this._modules.set(e, n); try { e(this, t); } finally { this._init = null; } return n; } function runtime_precompute(e) { this._precomputes.push(e), this._compute(); } function runtime_compute() { return this._computing ||= this._computeSoon(); } function runtime_computeSoon() { return new Promise(f).then(() => this._disposed ? void 0 : this._computeNow()); } async function runtime_computeNow() { let e = [], t, n, r = this._precomputes; if (r.length) { this._precomputes = []; for (let e of r) e(); await runtime_defer(3); } t = new Set(this._dirty), t.forEach(function(e) { e._inputs.forEach(t.add, t); let n = variable_reachable(e); n > e._reachable ? this._updates.add(e) : n < e._reachable && e._invalidate(), e._reachable = n; }, this), t = new Set(this._updates), t.forEach(function(e) { e._reachable ? (e._indegree = 0, e._outputs.forEach(t.add, t)) : (e._indegree = NaN, t.delete(e)); }), this._computing = null, this._updates.clear(), this._dirty.clear(), t.forEach(function(e) { e._outputs.forEach(variable_increment); }); do { for (t.forEach(function(t) { t._indegree === 0 && e.push(t); }); n = e.pop();) variable_compute(n), n._outputs.forEach(postqueue), t.delete(n); t.forEach(function(e) { variable_circular(e) && (variable_error(e, new RuntimeError("circular definition")), e._outputs.forEach(variable_decrement), t.delete(e)); }); } while (t.size); function postqueue(t) { --t._indegree === 0 && e.push(t); } } function runtime_defer(e = 0) { let t = Promise.resolve(); for (let n = 0; n < e; ++n) t = t.then(() => {}); return t; } function variable_circular(e) { let t = new Set(e._inputs); for (let n of t) { if (n === e) return !0; n._inputs.forEach(t.add, t); } return !1; } function variable_increment(e) { ++e._indegree; } function variable_decrement(e) { --e._indegree; } function variable_value(e) { return e._promise.catch(e._rejector); } function variable_invalidator(e) { return new Promise(function(t) { e._invalidate = t; }); } function variable_intersector(e, t) { let n = typeof IntersectionObserver == "function" && t._observer && t._observer._node, r = !n, i = noop, a = noop, o, s; return n && (s = new IntersectionObserver(([e]) => (r = e.isIntersecting) && (o = null, i())), s.observe(n), e.then(() => (s.disconnect(), s = null, a()))), function(e) { return r ? Promise.resolve(e) : s ? (o ||= new Promise((e, t) => (i = e, a = t)), o.then(() => e)) : Promise.reject(); }; } function variable_compute(e) { e._invalidate(), e._invalidate = noop, e._pending(); let t = e._value, n = ++e._version, r = e._inputs, i = e._definition, a = null, o = e._promise = e._promise.then(init, init).then(define).then(generate); function init() { return Promise.all(r.map(variable_value)); } function define(r) { if (e._version !== n) throw variable_stale; for (let t = 0, n = r.length; t < n; ++t) switch (r[t]) { case u: r[t] = a = variable_invalidator(e); break; case d: a ||= variable_invalidator(e), r[t] = variable_intersector(a, e); break; case l: r[t] = e; break; } return i.apply(t, r); } function generate(t) { if (e._version !== n) throw variable_stale; return generatorish(t) ? ((a || variable_invalidator(e)).then(variable_return(t)), variable_generate(e, n, t)) : t; } o.then((t) => { e._value = t, e._fulfilled(t); }, (t) => { t === variable_stale || e._version !== n || (e._value = void 0, e._rejected(t)); }); } function variable_generate(e, t, n) { let r = e._module._runtime, i; function compute(e) { return new Promise((e) => e(n.next(i))).then(({ done: t, value: n }) => t ? void 0 : Promise.resolve(n).then(e)); } function recompute() { let n = compute((a) => { if (e._version !== t) throw variable_stale; return i = a, postcompute(a, n).then(() => r._precompute(recompute)), e._fulfilled(a), a; }); n.catch((r) => { r === variable_stale || e._version !== t || (postcompute(void 0, n), e._rejected(r)); }); } function postcompute(t, n) { return e._value = t, e._promise = n, e._outputs.forEach(r._updates.add, r._updates), r._compute(); } return compute((n) => { if (e._version !== t) throw variable_stale; return i = n, r._precompute(recompute), n; }); } function variable_error(e, t) { e._invalidate(), e._invalidate = noop, e._pending(), ++e._version, e._indegree = NaN, (e._promise = Promise.reject(t)).catch(noop), e._value = void 0, e._rejected(t); } function variable_return(e) { return function() { e.return(); }; } function variable_reachable(e) { if (e._observer !== s) return !0; let t = new Set(e._outputs); for (let e of t) { if (e._observer !== s) return !0; e._outputs.forEach(t.add, t); } return !1; } function window_global(e) { return globalThis[e]; } //#endregion //#region ../../node_modules/@observablehq/inspector/src/dispatch.js function dispatch(e, t, n) { n ||= {}; var r = e.ownerDocument, i = r.defaultView.CustomEvent; typeof i == "function" ? i = new i(t, { detail: n }) : (i = r.createEvent("Event"), i.initEvent(t, !1, !1), i.detail = n), e.dispatchEvent(i); } //#endregion //#region ../../node_modules/@observablehq/inspector/src/array.js function isarray(e) { return Array.isArray(e) || e instanceof Int8Array || e instanceof Int16Array || e instanceof Int32Array || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Uint16Array || e instanceof Uint32Array || e instanceof Float32Array || e instanceof Float64Array; } function isindex(e) { return e === (e | 0) + ""; } //#endregion //#region ../../node_modules/@observablehq/inspector/src/inspectName.js function inspectName(e) { let t = document.createElement("span"); return t.className = "observablehq--cellname", t.textContent = `${e} = `, t; } //#endregion //#region ../../node_modules/@observablehq/inspector/src/formatSymbol.js var p = Symbol.prototype.toString; function formatSymbol(e) { return p.call(e); } //#endregion //#region ../../node_modules/@observablehq/inspector/src/object.js var { getOwnPropertySymbols: m, prototype: { hasOwnProperty: h } } = Object, { toStringTag: g } = Symbol, v = {}, y = m; function isown(e, t) { return h.call(e, t); } function tagof(e) { return e[g] || e.constructor && e.constructor.name || "Object"; } function valueof$1(e, t) { try { let n = e[t]; return n && n.constructor, n; } catch { return v; } } t(valueof$1, "valueof"); //#endregion //#region ../../node_modules/@observablehq/inspector/src/immutable.js var b = [ { symbol: "@@__IMMUTABLE_INDEXED__@@", name: "Indexed", modifier: !0 }, { symbol: "@@__IMMUTABLE_KEYED__@@", name: "Keyed", modifier: !0 }, { symbol: "@@__IMMUTABLE_LIST__@@", name: "List", arrayish: !0 }, { symbol: "@@__IMMUTABLE_MAP__@@", name: "Map" }, { symbol: "@@__IMMUTABLE_ORDERED__@@", name: "Ordered", modifier: !0, prefix: !0 }, { symbol: "@@__IMMUTABLE_RECORD__@@", name: "Record" }, { symbol: "@@__IMMUTABLE_SET__@@", name: "Set", arrayish: !0, setish: !0 }, { symbol: "@@__IMMUTABLE_STACK__@@", name: "Stack", arrayish: !0 } ]; function immutableName(e) { try { let t = b.filter(({ symbol: t }) => e[t] === !0); if (!t.length) return; let n = t.find((e) => !e.modifier), r = n.name === "Map" && t.find((e) => e.modifier && e.prefix), i = t.some((e) => e.arrayish), a = t.some((e) => e.setish); return { name: `${r ? r.name : ""}${n.name}`, symbols: t, arrayish: i && !a, setish: a }; } catch { return null; } } //#endregion //#region ../../node_modules/@observablehq/inspector/src/expanded.js var { getPrototypeOf: x, getOwnPropertyDescriptors: S } = Object, C = x({}); function inspectExpanded(e, t, n, r) { let i = isarray(e), a, o, s, c; e instanceof Map ? e instanceof e.constructor ? (a = `Map(${e.size})`, o = iterateMap$1) : (a = "Map()", o = iterateObject$1) : e instanceof Set ? e instanceof e.constructor ? (a = `Set(${e.size})`, o = iterateSet$1) : (a = "Set()", o = iterateObject$1) : i ? (a = `${e.constructor.name}(${e.length})`, o = iterateArray$1) : (c = immutableName(e)) ? (a = `Immutable.${c.name}${c.name === "Record" ? "" : `(${e.size})`}`, i = c.arrayish, o = c.arrayish ? iterateImArray$1 : c.setish ? iterateImSet$1 : iterateImObject$1) : r ? (a = tagof(e), o = iterateProto) : (a = tagof(e), o = iterateObject$1); let l = document.createElement("span"); l.className = "observablehq--expanded", n && l.appendChild(inspectName(n)); let u = l.appendChild(document.createElement("a")); u.innerHTML = "<svg width=8 height=8 class='observablehq--caret'>\n <path d='M4 7L0 1h8z' fill='currentColor' />\n </svg>", u.appendChild(document.createTextNode(`${a}${i ? " [" : " {"}`)), u.addEventListener("mouseup", function(t) { t.stopPropagation(), replace(l, inspectCollapsed(e, null, n, r)); }), o = o(e); for (let e = 0; !(s = o.next()).done && e < 20; ++e) l.appendChild(s.value); if (!s.done) { let e = l.appendChild(document.createElement("a")); e.className = "observablehq--field", e.style.display = "block", e.appendChild(document.createTextNode(" … more")), e.addEventListener("mouseup", function(e) { e.stopPropagation(), l.insertBefore(s.value, l.lastChild.previousSibling); for (let e = 0; !(s = o.next()).done && e < 19; ++e) l.insertBefore(s.value, l.lastChild.previousSibling); s.done && l.removeChild(l.lastChild.previousSibling), dispatch(l, "load"); }); } return l.appendChild(document.createTextNode(i ? "]" : "}")), l; } function* iterateMap$1(e) { for (let [t, n] of e) yield formatMapField$1(t, n); yield* iterateObject$1(e); } t(iterateMap$1, "iterateMap"); function* iterateSet$1(e) { for (let t of e) yield formatSetField(t); yield* iterateObject$1(e); } t(iterateSet$1, "iterateSet"); function* iterateImSet$1(e) { for (let t of e) yield formatSetField(t); } t(iterateImSet$1, "iterateImSet"); function* iterateArray$1(e) { for (let t = 0, n = e.length; t < n; ++t) t in e && (yield formatField$1(t, valueof$1(e, t), "observablehq--index")); for (let t in e) !isindex(t) && isown(e, t) && (yield formatField$1(t, valueof$1(e, t), "observablehq--key")); for (let t of y(e)) yield formatField$1(formatSymbol(t), valueof$1(e, t), "observablehq--symbol"); } t(iterateArray$1, "iterateArray"); function* iterateImArray$1(e) { let t = 0; for (let n = e.size; t < n; ++t) yield formatField$1(t, e.get(t), !0); } t(iterateImArray$1, "iterateImArray"); function* iterateProto(e) { for (let t in S(e)) yield formatField$1(t, valueof$1(e, t), "observablehq--key"); for (let t of y(e)) yield formatField$1(formatSymbol(t), valueof$1(e, t), "observablehq--symbol"); let t = x(e); t && t !== C && (yield formatPrototype(t)); } function* iterateObject$1(e) { for (let t in e) isown(e, t) && (yield formatField$1(t, valueof$1(e, t), "observablehq--key")); for (let t of y(e)) yield formatField$1(formatSymbol(t), valueof$1(e, t), "observablehq--symbol"); let t = x(e); t && t !== C && (yield formatPrototype(t)); } t(iterateObject$1, "iterateObject"); function* iterateImObject$1(e) { for (let [t, n] of e) yield formatField$1(t, n, "observablehq--key"); } t(iterateImObject$1, "iterateImObject"); function formatPrototype(e) { let t = document.createElement("div"), n = t.appendChild(document.createElement("span")); return t.className = "observablehq--field", n.className = "observablehq--prototype-key", n.textContent = " <prototype>", t.appendChild(document.createTextNode(": ")), t.appendChild(inspect$1(e, void 0, void 0, void 0, !0)), t; } function formatField$1(e, t, n) { let r = document.createElement("div"), i = r.appendChild(document.createElement("span")); return r.className = "observablehq--field", i.className = n, i.textContent = ` ${e}`, r.appendChild(document.createTextNode(": ")), r.appendChild(inspect$1(t)), r; } t(formatField$1, "formatField"); function formatMapField$1(e, t) { let n = document.createElement("div"); return n.className = "observablehq--field", n.appendChild(document.createTextNode(" ")), n.appendChild(inspect$1(e)), n.appendChild(document.createTextNode(" => ")), n.appendChild(inspect$1(t)), n; } t(formatMapField$1, "formatMapField"); function formatSetField(e) { let t = document.createElement("div"); return t.className = "observablehq--field", t.appendChild(document.createTextNode(" ")), t.appendChild(inspect$1(e)), t; } //#endregion //#region ../../node_modules/@observablehq/inspector/src/collapsed.js function hasSelection(e) { let t = window.getSelection(); return t.type === "Range" && (t.containsNode(e, !0) || e.contains(t.anchorNode) || e.contains(t.focusNode)); } function inspectCollapsed(e, t, n, r) { let i = isarray(e), a, o, s, c; if (e instanceof Map ? e instanceof e.constructor ? (a = `Map(${e.size})`, o = iterateMap) : (a = "Map()", o = iterateObject) : e instanceof Set ? e instanceof e.constructor ? (a = `Set(${e.size})`, o = iterateSet) : (a = "Set()", o = iterateObject) : i ? (a = `${e.constructor.name}(${e.length})`, o = iterateArray) : (c = immutableName(e)) ? (a = `Immutable.${c.name}${c.name === "Record" ? "" : `(${e.size})`}`, i = c.arrayish, o = c.arrayish ? iterateImArray : c.setish ? iterateImSet : iterateImObject) : (a = tagof(e), o = iterateObject), t) { let t = document.createElement("span"); return t.className = "observablehq--shallow", n && t.appendChild(inspectName(n)), t.appendChild(document.createTextNode(a)), t.addEventListener("mouseup", function(n) { hasSelection(t) || (n.stopPropagation(), replace(t, inspectCollapsed(e))); }), t; } let l = document.createElement("span"); l.className = "observablehq--collapsed", n && l.appendChild(inspectName(n)); let u = l.appendChild(document.createElement("a")); u.innerHTML = "<svg width=8 height=8 class='observablehq--caret'>\n <path d='M7 4L1 8V0z' fill='currentColor' />\n </svg>", u.appendChild(document.createTextNode(`${a}${i ? " [" : " {"}`)), l.addEventListener("mouseup", function(t) { hasSelection(l) || (t.stopPropagation(), replace(l, inspectExpanded(e, null, n, r))); }, !0), o = o(e); for (let e = 0; !(s = o.next()).done && e < 20; ++e) e > 0 && l.appendChild(document.createTextNode(", ")), l.appendChild(s.value); return s.done || l.appendChild(document.createTextNode(", …")), l.appendChild(document.createTextNode(i ? "]" : "}")), l; } function* iterateMap(e) { for (let [t, n] of e) yield formatMapField(t, n); yield* iterateObject(e); } function* iterateSet(e) { for (let t of e) yield inspect$1(t, !0); yield* iterateObject(e); } function* iterateImSet(e) { for (let t of e) yield inspect$1(t, !0); } function* iterateImArray(e) { let t = -1, n = 0; for (let r = e.size; n < r; ++n) n > t + 1 && (yield formatEmpty(n - t - 1)), yield inspect$1(e.get(n), !0), t = n; n > t + 1 && (yield formatEmpty(n - t - 1)); } function* iterateArray(e) { let t = -1, n = 0; for (let r = e.length; n < r; ++n) n in e && (n > t + 1 && (yield formatEmpty(n - t - 1)), yield inspect$1(valueof$1(e, n), !0), t = n); n > t + 1 && (yield formatEmpty(n - t - 1)); for (let t in e) !isindex(t) && isown(e, t) && (yield formatField(t, valueof$1(e, t), "observablehq--key")); for (let t of y(e)) yield formatField(formatSymbol(t), valueof$1(e, t), "observablehq--symbol"); } function* iterateObject(e) { for (let t in e) isown(e, t) && (yield formatField(t, valueof$1(e, t), "observablehq--key")); for (let t of y(e)) yield formatField(formatSymbol(t), valueof$1(e, t), "observablehq--symbol"); } function* iterateImObject(e) { for (let [t, n] of e) yield formatField(t, n, "observablehq--key"); } function formatEmpty(e) { let t = document.createElement("span"); return t.className = "observablehq--empty", t.textContent = e === 1 ? "empty" : `empty × ${e}`, t; } function formatField(e, t, n) { let r = document.createDocumentFragment(), i = r.appendChild(document.createElement("span")); return i.className = n, i.textContent = e, r.appendChild(document.createTextNode(": ")), r.appendChild(inspect$1(t, !0)), r; } function formatMapField(e, t) { let n = document.createDocumentFragment(); return n.appendChild(inspect$1(e, !0)), n.appendChild(document.createTextNode(" => ")), n.appendChild(inspect$1(t, !0)), n; } //#endregion //#region ../../node_modules/isoformat/src/format.js function format(e, t) { if (e instanceof Date || (e = /* @__PURE__ */ new Date(+e)), isNaN(e)) return typeof t == "function" ? t(e) : t; let n = e.getUTCHours(), r = e.getUTCMinutes(), i = e.getUTCSeconds(), a = e.getUTCMilliseconds(); return `${formatYear(e.getUTCFullYear(), 4)}-${pad(e.getUTCMonth() + 1, 2)}-${pad(e.getUTCDate(), 2)}${n || r || i || a ? `T${pad(n, 2)}:${pad(r, 2)}${i || a ? `:${pad(i, 2)}${a ? `.${pad(a, 3)}` : ""}` : ""}Z` : ""}`; } function formatYear(e) { return e < 0 ? `-${pad(-e, 6)}` : e > 9999 ? `+${pad(e, 6)}` : pad(e, 4); } function pad(e, t) { return `${e}`.padStart(t, "0"); } //#endregion //#region ../../node_modules/@observablehq/inspector/src/formatDate.js function formatDate(e) { return format(e, "Invalid Date"); } //#endregion //#region ../../node_modules/@observablehq/inspector/src/formatError.js var w = Error.prototype.toString; function formatError(e) { return e.stack || w.call(e); } //#endregion //#region ../../node_modules/@observablehq/inspector/src/formatRegExp.js var T = RegExp.prototype.toString; function formatRegExp(e) { return T.call(e); } //#endregion //#region ../../node_modules/@observablehq/inspector/src/formatString.js var E = 20; function formatString(e, t, n, r) { if (t === !1) { if (count$1(e, /["\n]/g) <= count$1(e, /`|\${/g)) { let t = document.createElement("span"); r && t.appendChild(inspectName(r)); let n = t.appendChild(document.createElement("span")); return n.className = "observablehq--string", n.textContent = JSON.stringify(e), t; } let i = e.split("\n"); if (i.length > E && !n) { let n = document.createElement("div"); r && n.appendChild(inspectName(r)); let a = n.appendChild(document.createElement("span")); a.className = "observablehq--string", a.textContent = "`" + templatify(i.slice(0, E).join("\n")); let o = n.appendChild(document.createElement("span")), s = i.length - E; return o.textContent = `Show ${s} truncated line${s > 1 ? "s" : ""}`, o.className = "observablehq--string-expand", o.addEventListener("mouseup", function(i) { i.stopPropagation(), replace(n, inspect$1(e, t, !0, r)); }), n; } let a = document.createElement("span"); r && a.appendChild(inspectName(r)); let o = a.appendChild(document.createElement("span")); return o.className = `observablehq--string${n ? " observablehq--expanded" : ""}`, o.textContent = "`" + templatify(e) + "`", a; } let i = document.createElement("span"); r && i.appendChild(inspectName(r)); let a = i.appendChild(document.createElement("span")); return a.className = "observablehq--string", a.textContent = JSON.stringify(e.length > 100 ? `${e.slice(0, 50)}…${e.slice(-49)}` : e), i; } function templatify(e) { return e.replace(/[\\`\x00-\x09\x0b-\x19]|\${/g, templatifyChar); } function templatifyChar(e) { var t = e.charCodeAt(0); switch (t) { case 8: return "\\b"; case 9: return "\\t"; case 11: return "\\v"; case 12: return "\\f"; case 13: return "\\r"; } return t < 16 ? "\\x0" + t.toString(16) : t < 32 ? "\\x" + t.toString(16) : "\\" + e; } function count$1(e, t) { for (var n = 0; t.exec(e);) ++n; return n; } t(count$1, "count"); //#endregion //#region ../../node_modules/@observablehq/inspector/src/inspectFunction.js var ee = Function.prototype.toString, D = { prefix: "async ƒ" }, O = { prefix: "async ƒ*" }, k = { prefix: "class" }, A = { prefix: "ƒ" }, j = { prefix: "ƒ*" }; function inspectFunction(e, t) { var n, r, i = ee.call(e); switch (e.constructor && e.constructor.name) { case "AsyncFunction": n = D; break; case "AsyncGeneratorFunction": n = O; break; case "GeneratorFunction": n = j; break; default: n = /^class\b/.test(i) ? k : A; break; } return n === k ? formatFunction(n, "", t) : (r = /^(?:async\s*)?(\w+)\s*=>/.exec(i)) ? formatFunction(n, "(" + r[1] + ")", t) : (r = /^(?:async\s*)?\(\s*(\w+(?:\s*,\s*\w+)*)?\s*\)/.exec(i)) || (r = /^(?:async\s*)?function(?:\s*\*)?(?:\s*\w+)?\s*\(\s*(\w+(?:\s*,\s*\w+)*)?\s*\)/.exec(i)) ? formatFunction(n, r[1] ? "(" + r[1].replace(/\s*,\s*/g, ", ") + ")" : "()", t) : formatFunction(n, "(…)", t); } function formatFunction(e, t, n) { var r = document.createElement("span"); r.className = "observablehq--function", n && r.appendChild(inspectName(n)); var i = r.appendChild(document.createElement("span")); return i.className = "observablehq--keyword", i.textContent = e.prefix, r.appendChild(document.createTextNode(t)), r; } //#endregion //#region ../../node_modules/@observablehq/inspector/src/inspect.js var { prototype: { toString: M } } = Object; function inspect$1(e, t, n, r, i) { let a = typeof e; switch (a) { case "boolean": case "undefined": e += ""; break; case "number": e = e === 0 && 1 / e < 0 ? "-0" : e + ""; break; case "bigint": e += "n"; break; case "symbol": e = formatSymbol(e, r); break; case "function": return inspectFunction(e, r); case "string": return formatString(e, t, n, r); default: if (e === null) { a = null, e = "null"; break; } if (e instanceof Date) { a = "date", e = formatDate(e, r); break; } if (e === v) { a = "forbidden", e = "[forbidden]"; break; } switch (M.call(e)) { case "[object RegExp]": a = "regexp", e = formatRegExp(e, r); break; case "[object Error]": case "[object DOMException]": a = "error", e = formatError(e, r); break; default: return (n ? inspectExpanded : inspectCollapsed)(e, t, r, i); } break; } let o = document.createElement("span"); r && o.appendChild(inspectName(r)); let s = o.appendChild(document.createElement("span")); return s.className = `observablehq--${a}`, s.textContent = e, o; } t(inspect$1, "inspect"); function replace(e, t) { e.classList.contains("observablehq--inspect") && t.classList.add("observablehq--inspect"), e.parentNode.replaceChild(t, e), dispatch(t, "load"); } //#endregion //#region ../../node_modules/@observablehq/inspector/src/index.js var N = /\s+\(\d+:\d+\)$/m, Inspector = class { constructor(e) { if (!e) throw Error("invalid node"); this._node = e, e.classList.add("observablehq"); } pending() { let { _node: e } = this; e.classList.remove("observablehq--error"), e.classList.add("observablehq--running"); } fulfilled(e, t) { let { _node: n } = this; if ((!isnode(e) || e.parentNode && e.parentNode !== n) && (e = inspect$1(e, !1, n.firstChild && n.firstChild.classList && n.firstChild.classList.contains("observablehq--expanded"), t), e.classList.add("observablehq--inspect")), n.classList.remove("observablehq--running", "observablehq--error"), n.firstChild !== e) if (n.firstChild) { for (; n.lastChild !== n.firstChild;) n.removeChild(n.lastChild); n.replaceChild(e, n.firstChild); } else n.appendChild(e); dispatch(n, "update"); } rejected(e, t) { let { _node: n } = this; for (n.classList.remove("observablehq--running"), n.classList.add("observablehq--error"); n.lastChild;) n.removeChild(n.lastChild); var r = document.createElement("div"); r.className = "observablehq--inspect", t && r.appendChild(inspectName(t)), r.appendChild(document.createTextNode((e + "").replace(N, ""))), n.appendChild(r), dispatch(n, "error", { error: e }); } }; Inspector.into = function(e) { if (typeof e == "string" && (e = document.querySelector(e), e == null)) throw Error("container not found"); return function() { return new Inspector(e.appendChild(document.createElement("div"))); }; }; function isnode(e) { return (e instanceof Element || e instanceof Text) && e instanceof e.constructor; } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/inspect.js function inspect(e, t) { let n = document.createElement("div"); if (new Inspector(n).fulfilled(e), t) for (let e of t) { let t = n; for (let n of e) t = t?.childNodes[n]; t?.dispatchEvent(new Event("mouseup")); } return n; } function inspectError(e) { let t = document.createElement("div"); return new Inspector(t).rejected(e), t; } function getExpanded(e) { if (!isInspector(e)) return; let t = e.querySelectorAll(".observablehq--expanded"); if (t.length) return Array.from(t, (t) => getNodePath(e, t)); } function isElement(e) { return e.nodeType === 1; } function isInspector(e) { return isElement(e) && e.classList.contains("observablehq"); } function getNodePath(e, t) { let n = []; for (; t !== e;) n.push(getChildIndex(t)), t = t.parentNode; return n.reverse(); } function getChildIndex(e) { return Array.prototype.indexOf.call(e.parentNode.childNodes, e); } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/assets.js var P = [ "audio source[src]", "audio[src]", "img[src]", "picture source[src]", "video source[src]", "video[src]" ].join(), F = ["img[srcset]", "picture source[srcset]"].join(), I = ["a[href][download]", "link[href]"].join(), R = [ [P, "src"], [F, "srcset"], [I, "href"] ]; function mapAssets(e, t) { let resolve = (e) => t.get(asImportPath(e)) ?? e; for (let [t, n] of R) for (let r of e.querySelectorAll(t)) { if (isRelExternal(r)) continue; let e = decodeURI(r.getAttribute(n)); n === "srcset" ? r.setAttribute(n, resolveSrcset(e, resolve)) : r.setAttribute(n, resolve(e)); } } function isRelExternal(e) { return /(?:^|\s)external(?:\s|$)/i.test(e.getAttribute("rel") ?? ""); } function asPath(e) { let t = e.indexOf("?"), n = e.indexOf("#"), r = t >= 0 && n >= 0 ? Math.min(t, n) : t >= 0 ? t : n; return r >= 0 ? e.slice(0, r) : e; } function asImportPath(e) { let t = asPath(e); return isImportPath(t) ? t : `./${t}`; } function isImportPath(e) { return [ "./", "../", "/" ].some((t) => e.startsWith(t)); } function resolveSrcset(e, t) { return e.trim().split(/\s*,\s*/).filter((e) => e).map((e) => { let n = e.split(/\s+/), r = t(n[0]); return r && (n[0] = encodeURI(r)), n.join(" "); }).join(", "); } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/display.js function display(e, t) { let { root: n, expanded: r } = e; displayNode(e, isDisplayable(t, n) ? t : inspect(t, r[n.childNodes.length])); } function displayNode(e, t) { if (t.nodeType === 11) { let n; for (; n = t.firstChild;) e.root.appendChild(n); } else e.root.appendChild(t); } function displayError(e, t) { displayNode(e, inspectError(t)); } function isDisplayable(e, t) { return (e instanceof Element || e instanceof Text) && e instanceof e.constructor && (!e.parentNode || t.contains(e)); } function clear(e) { for (e.autoclear = !1, e.expanded = Array.from(e.root.childNodes, getExpanded); e.root.lastChild;) e.root.lastChild.remove(); } function observe$1(e, { autodisplay: t, assets: n }) { return { _error: !1, _node: e.root, pending() { this._error && (this._error = !1, clear(e)); }, fulfilled(r) { t ? (n && r instanceof Element && mapAssets(r, n), clear(e), display(e, r)) : e.autoclear && clear(e); }, rejected(t) { console.error(t), this._error = !0, clear(e), displayError(e, t); } }; } t(observe$1, "observe"); //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/observe.js function observe(e) { let t, n, r, i = !1, a = e((e) => (r = e, t == null ? i = !0 : (t(e), t = n = void 0), e)); if (a != null && typeof a != "function") throw Error(typeof a == "object" && typeof a.then == "function" ? "async initializers are not supported" : "initializer returned something, but not a dispose function"); return { async next() { return { done: !1, value: await (i ? (i = !1, r) : new Promise((e, r) => (t = e, n = r))) }; }, async return() { return n != null && (n(/* @__PURE__ */ Error("Generator returned")), t = n = void 0), a?.(), { done: !0, value: void 0 }; }, async throw(e) { return n != null && (n(e), t = n = void 0), a?.(), { done: !0, value: void 0 }; }, [Symbol.asyncIterator]() { return this; } }; } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/dark.js function dark() { return observe((e) => { let t, n = matchMedia("(prefers-color-scheme: dark)"), r = document.createElement("div"); r.style.transitionProperty = "color, background-color", r.style.transitionDuration = "1ms"; let changed = () => { let r = getComputedStyle(document.body).getPropertyValue("color-scheme").split(/\s+/), i = r.includes("light") && r.includes("dark") ? n.matches : r.includes("dark"); t !== i && e(t = i); }; return document.body.appendChild(r), changed(), r.addEventListener("transitionstart", changed), n.addEventListener("change", changed), () => { r.remove(), n.removeEventListener("change", changed); }; }); } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/input.js function input$1(e) { return observe((t) => { let n = eventof(e), r = valueof(e), inputted = () => t(valueof(e)); return e.addEventListener(n, inputted), r !== void 0 && t(r), () => e.removeEventListener(n, inputted); }); } t(input$1, "input"); function valueof(e) { let t = e, n = e; if ("type" in e) switch (e.type) { case "range": case "number": return t.valueAsNumber; case "date": return t.valueAsDate; case "checkbox": return t.checked; case "file": return t.multiple ? t.files : t.files[0]; case "select-multiple": return Array.from(n.selectedOptions, (e) => e.value); } return t.value; } function eventof(e) { if ("type" in e) switch (e.type) { case "button": case "submit": case "checkbox": return "click"; case "file": return "change"; } return "input"; } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/now.js async function* now() { for (;;) yield Date.now(); } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/queue.js function queue(e) { let t, n, r = [], i = e((e) => (r.push(e), t != null && (t(r.shift()), t = void 0), e)); if (i != null && typeof i != "function") throw Error(typeof i == "object" && typeof i.then == "function" ? "async initializers are not supported" : "initializer returned something, but not a dispose function"); return { async next() { return { done: !1, value: await (r.length ? r.shift() : new Promise((e, r) => (t = e, n = r))) }; }, async return() { return n != null && (n(/* @__PURE__ */ Error("Generator returned")), t = n = void 0), i?.(), { done: !0, value: void 0 }; }, async throw(e) { return n != null && (n(e), t = n = void 0), i?.(), { done: !0, value: void 0 }; }, [Symbol.asyncIterator]() { return this; } }; } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/width.js function width(e, t) { return observe((n) => { let r, i = new ResizeObserver(([e]) => { let t = e.contentRect.width; t !== r && n(r = t); }); return i.observe(e, t), () => i.disconnect(); }); } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/index.js var z = /* @__PURE__ */ e({ dark: () => dark, input: () => input$1, now: () => now, observe: () => observe, queue: () => queue, width: () => width }); //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/mutable.js function Mutable(e) { let t; return Object.defineProperty(observe((n) => { t = n, e !== void 0 && t(e); }), "value", { get: () => e, set: (n) => (e = n, void t?.(e)) }); } function Mutator(e) { let t = Mutable(e); return [t, { get value() { return t.value; }, set value(e) { t.value = e; } }]; } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/define.js function define$1(e, t, n, r = observe$1) { let { id: i, body: a, inputs: o = [], outputs: s = [], output: c, autodisplay: l, autoview: u, automutable: d } = n, f = t.variables, p = e.variable(r(t, n), { shadow: {} }), m = c ?? (s.length ? `cell ${i}` : null); if (t.autoclear = !0, o.includes("display") || o.includes("view")) { let e = -1, n = new p.constructor(2, p._module); if (n.define(o.filter((e) => e !== "display" && e !== "view"), () => { let n = p._version; return (r) => { if (n < e || t.variables[0] !== p) throw Error("stale display"); return n > e && clear(t), e = n, display(t, r), r; }; }), p._shadow.set("display", n), o.includes("view")) { let e = new p.constructor(2, p._module, null, { shadow: {} }); e._shadow.set("display", n), e.define(["display"], (e) => (t) => input$1(e(t))), p._shadow.set("view", e); } } else l || clear(t); if (f.push(p.define(m, o, a)), c != null) { if (u) { let t = unprefix(c, "viewof$"); f.push(e.define(t, [c], input$1)); } else if (d) { let t = unprefix(c, "mutable "), n = `cell ${i}`; p.define(t, [n], ([e]) => e), f.push(e.define(c, o, a), e.define(n, [c], Mutator), e.define(`mutable$${t}`, [n], ([, e]) => e)); } } else for (let t of s) f.push(e.variable(!0).define(t, [m], (e) => e[t])); } t(define$1, "define"); function unprefix(e, t) { if (!e.startsWith(t)) throw Error(`expected ${t}: ${e}`); return e.slice(t.length); } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/lib/sluggify.js function sluggify(e, { length: t = 50, fallback: n = "untitled", separator: r = "-" } = {}) { let i = e.normalize("NFD").replace(/[\u0300-\u036f'‘’]/g, "").toLowerCase().split(/\W+/g).filter(nonempty), a = -1; for (let e = 0, n = i.length; ++a < n;) if ((e += i[a].length) + a > t) { i[a] = i[a].substring(0, t - e + i[a].length - a); break; } return i.slice(0, a + 1).filter(Boolean).join(r) || n.slice(0, t); } function nonempty(e) { return e.length > 0; } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/lib/hash.js async function sha256(e) { let t = new TextEncoder().encode(e), n = await crypto.subtle.digest("SHA-256", t); return new Uint8Array(n).reduce((e, t) => e << 8n | BigInt(t), 0n); } function base36(e, t) { return e.toString(36).padStart(t, "0").slice(0, t); } async function hash(e, ...t) { return base36(await sha256(JSON.stringify([e, ...t])), 16); } async function stringHash(e) { return base36(await sha256(e), 16); } async function nameHash(e) { return /^[\w-]+$/.test(e) ? e : `${sluggify(basename(e))}.${base36(await sha256(e), 8)}`; } function basename(e) { return e.replace(/^.*\//, ""); } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/databaseClient.js var DatabaseClient = (e, t) => new DatabaseClientImpl(e, normalizeOptions$1(t)); function normalizeOptions$1({ id: e, since: t } = {}) { let n = {}; return e !== void 0 && (n.id = e), t !== void 0 && (n.since = new Date(t)), n; } t(normalizeOptions$1, "normalizeOptions"); var DatabaseClientImpl = class { constructor(e, t) { Object.defineProperty(this, "name", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "options", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperties(this, { name: { value: e, enumerable: !0 }, options: { value: t, enumerable: !0 } }); } async sql(e, ...t) { let n = await this.cachePath(e, ...t), r = await fetch(n); if (!r.ok) throw Error(`failed to fetch: ${n}`); return await r.json().then(revive); } async cachePath(e, ...t) { return `.observable/cache/${await nameHash(this.name)}-${await hash(e, ...t)}.json`; } }; function revive({ rows: e, schema: t, date: n, ...r }) { for (let n of t) switch (n.type) { case "bigint": { let { name: t } = n; for (let n of e) { let e = n[t]; e != null && (n[t] = Number(e)); } break; } case "date": { let { name: t } = n; for (let n of e) { let e = n[t]; e != null && (n[t] = asDate(e)); } break; } } return n != null && (n = new Date(n)), Object.assign(e, { schema: t, date: n }, r); } function asDate(e) { return new Date(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}(?::\d{2})?$/.test(e) ? e + "Z" : e); } DatabaseClient.revive = revive, DatabaseClient.prototype = DatabaseClientImpl.prototype, Object.defineProperty(DatabaseClientImpl, "name", { value: "DatabaseClient" }); //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/dom/canvas.js function canvas(e, t) { let n = document.createElement("canvas"); return n.width = e, n.height = t, n; } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/dom/context2d.js function context2d(e, t, n = devicePixelRatio) { let r = document.createElement("canvas"); r.width = e * n, r.height = t * n, r.style.width = `${e}px`; let i = r.getContext("2d"); return i.scale(n, n), i; } //#endregion //#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/dom/download.js function download(e, t = "untitled", n = "Save") { let r = document.createElement("a"), i = r.appendChild(document.createElement("button")); i.textContent = n, r.download = t; async function reset() { await new Promise(requestAnimationFrame), URL.revokeObjectURL(r.href), r.removeAttribute("href"), i.textContent = n, i.disabled = !1; } return r.onclick = async (t) => { if (i.disabled = !0, r.href) return reset(); i.textContent = "Saving…"; try { let t