minotor 11.2.0 → 11.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -3
- package/dist/cli.mjs +45 -19
- package/dist/cli.mjs.map +1 -1
- package/dist/router.cjs.js +1 -1
- package/dist/router.cjs.js.map +1 -1
- package/dist/router.esm.js +1 -1
- package/dist/router.esm.js.map +1 -1
- package/dist/router.umd.js +1 -1
- package/dist/router.umd.js.map +1 -1
- package/dist/routing/rangeResult.d.ts +21 -1
- package/package.json +1 -1
- package/src/routing/__tests__/rangeResult.test.ts +86 -1
- package/src/routing/__tests__/rangeRouter.test.ts +129 -0
- package/src/routing/rangeResult.ts +21 -1
- package/src/routing/rangeRouter.ts +27 -19
package/dist/router.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.cjs.js","sources":["../src/timetable/time.ts","../src/routing/plotter.ts","../node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js","../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js","../node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js","../node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js","../src/timetable/proto/v1/timetable.ts","../src/timetable/route.ts","../src/timetable/tripStopId.ts","../src/timetable/io.ts","../src/timetable/timetable.ts","../src/routing/query.ts","../src/routing/route.ts","../src/routing/result.ts","../src/routing/access.ts","../src/routing/state.ts","../src/routing/plainRouter.ts","../src/routing/rangeResult.ts","../src/routing/rangeState.ts","../src/routing/rangeRouter.ts","../src/routing/raptor.ts","../node_modules/tinyqueue/index.js","../node_modules/geokdbush/index.js","../node_modules/kdbush/index.js","../node_modules/slimsearch/dist/index.js","../src/stops/i18n.ts","../src/stops/proto/v1/stops.ts","../src/stops/io.ts","../src/stops/stopsIndex.ts","../src/routing/router.ts"],"sourcesContent":[null,null,"// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1fffff) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xffffff;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;\n const high = (hi >> 16) & 0xffff;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return (digitC.toString() +\n decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA));\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { int64FromString, int64ToString, uInt64ToString, } from \"./wire/varint.js\";\n/**\n * Int64Support for the current environment.\n */\nexport const protoInt64 = /*@__PURE__*/ makeInt64Support();\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (!!globalThis.Deno ||\n typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\");\n const MAX = BigInt(\"9223372036854775807\");\n const UMIN = BigInt(\"0\");\n const UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`invalid int64: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`invalid uint64: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n },\n };\n}\nfunction assertInt64String(value) {\n if (!/^-?[0-9]+$/.test(value)) {\n throw new Error(\"invalid int64: \" + value);\n }\n}\nfunction assertUInt64String(value) {\n if (!/^[0-9]+$/.test(value)) {\n throw new Error(\"invalid uint64: \" + value);\n }\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nconst symbol = Symbol.for(\"@bufbuild/protobuf/text-encoding\");\n/**\n * Protobuf-ES requires the Text Encoding API to convert UTF-8 from and to\n * binary. This WHATWG API is widely available, but it is not part of the\n * ECMAScript standard. On runtimes where it is not available, use this\n * function to provide your own implementation.\n *\n * Note that the Text Encoding API does not provide a way to validate UTF-8.\n * Our implementation falls back to use encodeURIComponent().\n */\nexport function configureTextEncoding(textEncoding) {\n globalThis[symbol] = textEncoding;\n}\nexport function getTextEncoding() {\n if (globalThis[symbol] == undefined) {\n const te = new globalThis.TextEncoder();\n const td = new globalThis.TextDecoder();\n globalThis[symbol] = {\n encodeUtf8(text) {\n return te.encode(text);\n },\n decodeUtf8(bytes) {\n return td.decode(bytes);\n },\n checkUtf8(text) {\n try {\n encodeURIComponent(text);\n return true;\n }\n catch (_) {\n return false;\n }\n },\n };\n }\n return globalThis[symbol];\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { varint32read, varint32write, varint64read, varint64write, } from \"./varint.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { getTextEncoding } from \"./text-encoding.js\";\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\n/**\n * Maximum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MAX = 3.4028234663852886e38;\n/**\n * Minimum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MIN = -3.4028234663852886e38;\n/**\n * Maximum value for an unsigned 32-bit integer (Protobuf UINT32, FIXED32).\n */\nexport const UINT32_MAX = 0xffffffff;\n/**\n * Maximum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MAX = 0x7fffffff;\n/**\n * Minimum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MIN = -0x80000000;\nexport class BinaryWriter {\n constructor(encodeUtf8 = getTextEncoding().encodeUtf8) {\n this.encodeUtf8 = encodeUtf8;\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n this.buf = [];\n }\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.encodeUtf8(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n const tc = protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n const tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexport class BinaryReader {\n constructor(buf, decodeUtf8 = getTextEncoding().decodeUtf8) {\n this.decodeUtf8 = decodeUtf8;\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read;\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element and return the skipped data.\n *\n * When skipping StartGroup, provide the tags field number to check for\n * matching field number in the EndGroup tag.\n */\n skip(wireType, fieldNo) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // @ts-ignore TS7029: Fallthrough case in switch -- ignore instead of expect-error for compiler settings without noFallthroughCasesInSwitch: true\n case WireType.Bit64:\n this.pos += 4;\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n for (;;) {\n const [fn, wt] = this.tag();\n if (wt === WireType.EndGroup) {\n if (fieldNo !== undefined && fn !== fieldNo) {\n throw new Error(\"invalid end group tag\");\n }\n break;\n }\n this.skip(wt, fn);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.decodeUtf8(this.bytes());\n }\n}\n/**\n * Assert a valid signed protobuf 32-bit integer as a number or string.\n */\nfunction assertInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid int32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > INT32_MAX ||\n arg < INT32_MIN)\n throw new Error(\"invalid int32: \" + arg);\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer as a number or string.\n */\nfunction assertUInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid uint32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > UINT32_MAX ||\n arg < 0)\n throw new Error(\"invalid uint32: \" + arg);\n}\n/**\n * Assert a valid protobuf float value as a number or string.\n */\nfunction assertFloat32(arg) {\n if (typeof arg == \"string\") {\n const o = arg;\n arg = Number(arg);\n if (Number.isNaN(arg) && o !== \"NaN\") {\n throw new Error(\"invalid float32: \" + o);\n }\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid float32: \" + typeof arg);\n }\n if (Number.isFinite(arg) &&\n (arg > FLOAT32_MAX || arg < FLOAT32_MIN))\n throw new Error(\"invalid float32: \" + arg);\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\nexport default class TinyQueue {\n constructor(data = [], compare = defaultCompare) {\n this.data = data;\n this.length = this.data.length;\n this.compare = compare;\n\n if (this.length > 0) {\n for (let i = (this.length >> 1) - 1; i >= 0; i--) this._down(i);\n }\n }\n\n push(item) {\n this.data.push(item);\n this.length++;\n this._up(this.length - 1);\n }\n\n pop() {\n if (this.length === 0) return undefined;\n\n const top = this.data[0];\n const bottom = this.data.pop();\n this.length--;\n\n if (this.length > 0) {\n this.data[0] = bottom;\n this._down(0);\n }\n\n return top;\n }\n\n peek() {\n return this.data[0];\n }\n\n _up(pos) {\n const {data, compare} = this;\n const item = data[pos];\n\n while (pos > 0) {\n const parent = (pos - 1) >> 1;\n const current = data[parent];\n if (compare(item, current) >= 0) break;\n data[pos] = current;\n pos = parent;\n }\n\n data[pos] = item;\n }\n\n _down(pos) {\n const {data, compare} = this;\n const halfLength = this.length >> 1;\n const item = data[pos];\n\n while (pos < halfLength) {\n let left = (pos << 1) + 1;\n let best = data[left];\n const right = left + 1;\n\n if (right < this.length && compare(data[right], best) < 0) {\n left = right;\n best = data[right];\n }\n if (compare(best, item) >= 0) break;\n\n data[pos] = best;\n pos = left;\n }\n\n data[pos] = item;\n }\n}\n\nfunction defaultCompare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n","\nimport TinyQueue from 'tinyqueue';\n\nconst earthRadius = 6371;\nconst rad = Math.PI / 180;\n\nexport function around(index, lng, lat, maxResults = Infinity, maxDistance = Infinity, predicate) {\n let maxHaverSinDist = 1;\n const result = [];\n\n if (maxResults === undefined) maxResults = Infinity;\n if (maxDistance !== undefined) maxHaverSinDist = haverSin(maxDistance / earthRadius);\n\n // a distance-sorted priority queue that will contain both points and kd-tree nodes\n const q = new TinyQueue([], compareDist);\n\n // an object that represents the top kd-tree node (the whole Earth)\n let node = {\n left: 0, // left index in the kd-tree array\n right: index.ids.length - 1, // right index\n axis: 0, // 0 for longitude axis and 1 for latitude axis\n dist: 0, // will hold the lower bound of children's distances to the query point\n minLng: -180, // bounding box of the node\n minLat: -90,\n maxLng: 180,\n maxLat: 90\n };\n\n const cosLat = Math.cos(lat * rad);\n\n while (node) {\n const right = node.right;\n const left = node.left;\n\n if (right - left <= index.nodeSize) { // leaf node\n\n // add all points of the leaf node to the queue\n for (let i = left; i <= right; i++) {\n const id = index.ids[i];\n if (!predicate || predicate(id)) {\n const dist = haverSinDist(lng, lat, index.coords[2 * i], index.coords[2 * i + 1], cosLat);\n q.push({id, dist});\n }\n }\n\n } else { // not a leaf node (has child nodes)\n\n const m = (left + right) >> 1; // middle index\n const midLng = index.coords[2 * m];\n const midLat = index.coords[2 * m + 1];\n\n // add middle point to the queue\n const id = index.ids[m];\n if (!predicate || predicate(id)) {\n const dist = haverSinDist(lng, lat, midLng, midLat, cosLat);\n q.push({id, dist});\n }\n\n const nextAxis = (node.axis + 1) % 2;\n\n // first half of the node\n const leftNode = {\n left,\n right: m - 1,\n axis: nextAxis,\n minLng: node.minLng,\n minLat: node.minLat,\n maxLng: node.axis === 0 ? midLng : node.maxLng,\n maxLat: node.axis === 1 ? midLat : node.maxLat,\n dist: 0\n };\n // second half of the node\n const rightNode = {\n left: m + 1,\n right,\n axis: nextAxis,\n minLng: node.axis === 0 ? midLng : node.minLng,\n minLat: node.axis === 1 ? midLat : node.minLat,\n maxLng: node.maxLng,\n maxLat: node.maxLat,\n dist: 0\n };\n\n leftNode.dist = boxDist(lng, lat, cosLat, leftNode);\n rightNode.dist = boxDist(lng, lat, cosLat, rightNode);\n\n // add child nodes to the queue\n q.push(leftNode);\n q.push(rightNode);\n }\n\n // fetch closest points from the queue; they're guaranteed to be closer\n // than all remaining points (both individual and those in kd-tree nodes),\n // since each node's distance is a lower bound of distances to its children\n while (q.length && q.peek().id != null) {\n const candidate = q.pop();\n if (candidate.dist > maxHaverSinDist) return result;\n result.push(candidate.id);\n if (result.length === maxResults) return result;\n }\n\n // the next closest kd-tree node\n node = q.pop();\n }\n\n return result;\n}\n\n// lower bound for distance from a location to points inside a bounding box\nfunction boxDist(lng, lat, cosLat, node) {\n const minLng = node.minLng;\n const maxLng = node.maxLng;\n const minLat = node.minLat;\n const maxLat = node.maxLat;\n\n // query point is between minimum and maximum longitudes\n if (lng >= minLng && lng <= maxLng) {\n if (lat < minLat) return haverSin((lat - minLat) * rad);\n if (lat > maxLat) return haverSin((lat - maxLat) * rad);\n return 0;\n }\n\n // query point is west or east of the bounding box;\n // calculate the extremum for great circle distance from query point to the closest longitude;\n const haverSinDLng = Math.min(haverSin((lng - minLng) * rad), haverSin((lng - maxLng) * rad));\n const extremumLat = vertexLat(lat, haverSinDLng);\n\n // if extremum is inside the box, return the distance to it\n if (extremumLat > minLat && extremumLat < maxLat) {\n return haverSinDistPartial(haverSinDLng, cosLat, lat, extremumLat);\n }\n // otherwise return the distan e to one of the bbox corners (whichever is closest)\n return Math.min(\n haverSinDistPartial(haverSinDLng, cosLat, lat, minLat),\n haverSinDistPartial(haverSinDLng, cosLat, lat, maxLat)\n );\n}\n\nfunction compareDist(a, b) {\n return a.dist - b.dist;\n}\n\nfunction haverSin(theta) {\n const s = Math.sin(theta / 2);\n return s * s;\n}\n\nfunction haverSinDistPartial(haverSinDLng, cosLat1, lat1, lat2) {\n return cosLat1 * Math.cos(lat2 * rad) * haverSinDLng + haverSin((lat1 - lat2) * rad);\n}\n\nfunction haverSinDist(lng1, lat1, lng2, lat2, cosLat1) {\n const haverSinDLng = haverSin((lng1 - lng2) * rad);\n return haverSinDistPartial(haverSinDLng, cosLat1, lat1, lat2);\n}\n\nexport function distance(lng1, lat1, lng2, lat2) {\n const h = haverSinDist(lng1, lat1, lng2, lat2, Math.cos(lat1 * rad));\n return 2 * earthRadius * Math.asin(Math.sqrt(h));\n}\n\nfunction vertexLat(lat, haverSinDLng) {\n const cosDLng = 1 - 2 * haverSinDLng;\n if (cosDLng <= 0) return lat > 0 ? 90 : -90;\n return Math.atan(Math.tan(lat * rad) / cosDLng) / rad;\n}\n","\nconst ARRAY_TYPES = [\n Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array,\n Int32Array, Uint32Array, Float32Array, Float64Array\n];\n\n/** @typedef {Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor} TypedArrayConstructor */\n\nconst VERSION = 1; // serialized format version\nconst HEADER_SIZE = 8;\n\nexport default class KDBush {\n\n /**\n * Creates an index from raw `ArrayBuffer` data.\n * @param {ArrayBuffer} data\n */\n static from(data) {\n if (!(data instanceof ArrayBuffer)) {\n throw new Error('Data must be an instance of ArrayBuffer.');\n }\n const [magic, versionAndType] = new Uint8Array(data, 0, 2);\n if (magic !== 0xdb) {\n throw new Error('Data does not appear to be in a KDBush format.');\n }\n const version = versionAndType >> 4;\n if (version !== VERSION) {\n throw new Error(`Got v${version} data when expected v${VERSION}.`);\n }\n const ArrayType = ARRAY_TYPES[versionAndType & 0x0f];\n if (!ArrayType) {\n throw new Error('Unrecognized array type.');\n }\n const [nodeSize] = new Uint16Array(data, 2, 1);\n const [numItems] = new Uint32Array(data, 4, 1);\n\n return new KDBush(numItems, nodeSize, ArrayType, data);\n }\n\n /**\n * Creates an index that will hold a given number of items.\n * @param {number} numItems\n * @param {number} [nodeSize=64] Size of the KD-tree node (64 by default).\n * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).\n * @param {ArrayBuffer} [data] (For internal use only)\n */\n constructor(numItems, nodeSize = 64, ArrayType = Float64Array, data) {\n if (isNaN(numItems) || numItems < 0) throw new Error(`Unpexpected numItems value: ${numItems}.`);\n\n this.numItems = +numItems;\n this.nodeSize = Math.min(Math.max(+nodeSize, 2), 65535);\n this.ArrayType = ArrayType;\n this.IndexArrayType = numItems < 65536 ? Uint16Array : Uint32Array;\n\n const arrayTypeIndex = ARRAY_TYPES.indexOf(this.ArrayType);\n const coordsByteSize = numItems * 2 * this.ArrayType.BYTES_PER_ELEMENT;\n const idsByteSize = numItems * this.IndexArrayType.BYTES_PER_ELEMENT;\n const padCoords = (8 - idsByteSize % 8) % 8;\n\n if (arrayTypeIndex < 0) {\n throw new Error(`Unexpected typed array class: ${ArrayType}.`);\n }\n\n if (data && (data instanceof ArrayBuffer)) { // reconstruct an index from a buffer\n this.data = data;\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = numItems * 2;\n this._finished = true;\n } else { // initialize a new index\n this.data = new ArrayBuffer(HEADER_SIZE + coordsByteSize + idsByteSize + padCoords);\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = 0;\n this._finished = false;\n\n // set header\n new Uint8Array(this.data, 0, 2).set([0xdb, (VERSION << 4) + arrayTypeIndex]);\n new Uint16Array(this.data, 2, 1)[0] = nodeSize;\n new Uint32Array(this.data, 4, 1)[0] = numItems;\n }\n }\n\n /**\n * Add a point to the index.\n * @param {number} x\n * @param {number} y\n * @returns {number} An incremental index associated with the added item (starting from `0`).\n */\n add(x, y) {\n const index = this._pos >> 1;\n this.ids[index] = index;\n this.coords[this._pos++] = x;\n this.coords[this._pos++] = y;\n return index;\n }\n\n /**\n * Perform indexing of the added points.\n */\n finish() {\n const numAdded = this._pos >> 1;\n if (numAdded !== this.numItems) {\n throw new Error(`Added ${numAdded} items when expected ${this.numItems}.`);\n }\n // kd-sort both arrays for efficient search\n sort(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0);\n\n this._finished = true;\n return this;\n }\n\n /**\n * Search the index for items within a given bounding box.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @returns {number[]} An array of indices correponding to the found items.\n */\n range(minX, minY, maxX, maxY) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n\n const {ids, coords, nodeSize} = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n\n // recursively search for items in range in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = (left + right) >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n\n return result;\n }\n\n /**\n * Search the index for items within a given radius.\n * @param {number} qx\n * @param {number} qy\n * @param {number} r Query radius.\n * @returns {number[]} An array of indices correponding to the found items.\n */\n within(qx, qy, r) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n\n const {ids, coords, nodeSize} = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n const r2 = r * r;\n\n // recursively search for items within radius in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = (left + right) >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n\n return result;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} nodeSize\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction sort(ids, coords, nodeSize, left, right, axis) {\n if (right - left <= nodeSize) return;\n\n const m = (left + right) >> 1; // middle index\n\n // sort ids and coords around the middle index so that the halves lie\n // either left/right or top/bottom correspondingly (taking turns)\n select(ids, coords, m, left, right, axis);\n\n // recursively kd-sort first half and second half on the opposite axis\n sort(ids, coords, nodeSize, left, m - 1, 1 - axis);\n sort(ids, coords, nodeSize, m + 1, right, 1 - axis);\n}\n\n/**\n * Custom Floyd-Rivest selection algorithm: sort ids and coords so that\n * [left..k-1] items are smaller than k-th item (on either x or y axis)\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} k\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction select(ids, coords, k, left, right, axis) {\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, axis);\n }\n\n const t = coords[2 * k + axis];\n let i = left;\n let j = right;\n\n swapItem(ids, coords, left, k);\n if (coords[2 * right + axis] > t) swapItem(ids, coords, left, right);\n\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + axis] < t) i++;\n while (coords[2 * j + axis] > t) j--;\n }\n\n if (coords[2 * left + axis] === t) swapItem(ids, coords, left, j);\n else {\n j++;\n swapItem(ids, coords, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} i\n * @param {number} j\n */\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\n/**\n * @param {InstanceType<TypedArrayConstructor>} arr\n * @param {number} i\n * @param {number} j\n */\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\n/**\n * @param {number} ax\n * @param {number} ay\n * @param {number} bx\n * @param {number} by\n */\nfunction sqDist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n","const It=\"ENTRIES\",U=\"KEYS\",B=\"VALUES\",Bt=\"\";class L{set;_type;_path;constructor(e,n){const o=e._tree,s=Array.from(o.keys());this.set=e,this._type=n,this._path=s.length>0?[{node:o,keys:s}]:[]}next(){const e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:e,keys:n}=x(this._path);if(x(n)===\"\")return{done:!1,value:this.result()};const o=e.get(x(n));return this._path.push({node:o,keys:Array.from(o.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=x(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>x(e)).filter(e=>e!==\"\").join(\"\")}value(){return x(this._path).node.get(\"\")}result(){switch(this._type){case B:return this.value();case U:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const x=t=>t[t.length-1],xt=(t,e,n)=>{const o=new Map;if(typeof e!=\"string\")return o;const s=e.length+1,r=s+n,i=new Uint8Array(r*s).fill(n+1);for(let c=0;c<s;++c)i[c]=c;for(let c=1;c<r;++c)i[c*s]=c;return G(t,e,n,o,i,1,s,\"\"),o},G=(t,e,n,o,s,r,i,c)=>{const a=r*i;t:for(const d of t.keys())if(d===\"\"){const u=s[a-1];u<=n&&o.set(c,[t.get(d),u])}else{let u=r;for(let f=0;f<d.length;++f,++u){const m=d[f],_=i*u,g=_-i;let h=s[_];const l=Math.max(0,u-n-1),p=Math.min(i-1,u+n);for(let w=l;w<p;++w){const k=m!==e[w],C=s[g+w]+ +k,z=s[g+w+1]+1,I=s[_+w]+1,F=s[_+w+1]=Math.min(C,z,I);F<h&&(h=F)}if(h>n)continue t}G(t.get(d),e,n,o,s,u,i,c+d)}};class y{_tree;_prefix;_size=void 0;constructor(e=new Map,n=\"\"){this._tree=e,this._prefix=n}atPrefix(e){if(!e.startsWith(this._prefix))throw new Error(\"Mismatched prefix\");const[n,o]=S(this._tree,e.slice(this._prefix.length));if(n===void 0){const[s,r]=A(o);for(const i of s.keys())if(i!==\"\"&&i.startsWith(r)){const c=new Map;return c.set(i.slice(r.length),s.get(i)),new y(c,e)}}return new y(n,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,Ft(this._tree,e)}entries(){return new L(this,It)}forEach(e){for(const[n,o]of this)e(n,o,this)}fuzzyGet(e,n){return xt(this._tree,e,n)}get(e){const n=O(this._tree,e);return n!==void 0?n.get(\"\"):void 0}has(e){return O(this._tree,e)?.has(\"\")??!1}keys(){return new L(this,U)}set(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");return this._size=void 0,E(this._tree,e).set(\"\",n),this}get size(){if(this._size)return this._size;this._size=0;const e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");this._size=void 0;const o=E(this._tree,e);return o.set(\"\",n(o.get(\"\"))),this}fetch(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");this._size=void 0;const o=E(this._tree,e);let s=o.get(\"\");return s===void 0&&o.set(\"\",s=n()),s}values(){return new L(this,B)}[Symbol.iterator](){return this.entries()}static from(e){const n=new y;for(const[o,s]of e)n.set(o,s);return n}static fromObject(e){return y.from(Object.entries(e))}}const S=(t,e,n=[])=>{if(e.length===0||t==null)return[t,n];for(const o of t.keys())if(o!==\"\"&&e.startsWith(o))return n.push([t,o]),S(t.get(o),e.slice(o.length),n);return n.push([t,e]),S(void 0,\"\",n)},O=(t,e)=>{if(e.length===0||!t)return t;for(const n of t.keys())if(n!==\"\"&&e.startsWith(n))return O(t.get(n),e.slice(n.length))},E=(t,e)=>{const n=e.length;t:for(let o=0;t&&o<n;){for(const r of t.keys())if(r!==\"\"&&e[o]===r[0]){const i=Math.min(n-o,r.length);let c=1;for(;c<i&&e[o+c]===r[c];)++c;const a=t.get(r);if(c===r.length)t=a;else{const d=new Map;d.set(r.slice(c),a),t.set(e.slice(o,o+c),d),t.delete(r),t=d}o+=c;continue t}const s=new Map;return t.set(e.slice(o),s),s}return t},Ft=(t,e)=>{const[n,o]=S(t,e);if(n!==void 0){if(n.delete(\"\"),n.size===0)K(o);else if(n.size===1){const[s,r]=n.entries().next().value;Q(o,s,r)}}},K=t=>{if(t.length===0)return;const[e,n]=A(t);if(e.delete(n),e.size===0)K(t.slice(0,-1));else if(e.size===1){const[o,s]=e.entries().next().value;o!==\"\"&&Q(t.slice(0,-1),o,s)}},Q=(t,e,n)=>{if(t.length===0)return;const[o,s]=A(t);o.set(s+e,n),o.delete(s)},A=t=>t[t.length-1],Y=(t,e)=>t._idToShortId.has(e),zt=(t,e)=>{const n=t._idToShortId.get(e);if(n!=null)return t._storedFields.get(n)},St=/[\\n\\r\\p{Z}\\p{P}]+/u,V=\"or\",Z=\"and\",bt=\"and_not\",H=t=>new Promise(e=>setTimeout(e,t)),vt=(t,e)=>{t.includes(e)||t.push(e)},X=(t,e)=>{for(const n of e)t.includes(n)||t.push(n)},tt=({score:t},{score:e})=>e-t,et=()=>new Map,b=t=>{const e=new Map;for(const n of Object.keys(t))e.set(parseInt(n,10),t[n]);return e},v=async t=>{const e=new Map;let n=0;for(const o of Object.keys(t))e.set(parseInt(o,10),t[o]),++n%1e3===0&&await H(0);return e},T=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0,nt={[V]:(t,e)=>{for(const n of e.keys()){const o=t.get(n);if(o==null)t.set(n,e.get(n));else{const{score:s,terms:r,match:i}=e.get(n);o.score=o.score+s,o.match=Object.assign(o.match,i),X(o.terms,r)}}return t},[Z]:(t,e)=>{const n=new Map;for(const o of e.keys()){const s=t.get(o);if(s==null)continue;const{score:r,terms:i,match:c}=e.get(o);X(s.terms,i),n.set(o,{score:s.score+r,terms:s.terms,match:Object.assign(s.match,c)})}return n},[bt]:(t,e)=>{for(const n of e.keys())t.delete(n);return t}},kt=(t,e,n,o,s,r)=>{const{k:i,b:c,d:a}=r;return Math.log(1+(n-e+.5)/(e+.5))*(a+t*(i+1)/(t+i*(1-c+c*o/s)))},Ct=t=>(e,n,o)=>({term:e,fuzzy:typeof t.fuzzy==\"function\"?t.fuzzy(e,n,o):t.fuzzy??!1,prefix:typeof t.prefix==\"function\"?t.prefix(e,n,o):t.prefix===!0,termBoost:typeof t.boostTerm==\"function\"?t.boostTerm(e,n,o):1}),ot=(t,e,n,o)=>{for(const s of Object.keys(t._fieldIds))if(t._fieldIds[s]===n){t._options.logger(\"warn\",`SlimSearch: document with ID ${t._documentIds.get(e)} has changed before removal: term \"${o}\" was not present in field \"${s}\". Removing a document after it has changed can corrupt the index!`,\"version_conflict\");return}},st=(t,e,n,o)=>{const s=t._index.fetch(o,et);let r=s.get(e);if(r==null)r=new Map,r.set(n,1),s.set(e,r);else{const i=r.get(n);r.set(n,(i??0)+1)}},M=(t,e,n,o)=>{if(!t._index.has(o)){ot(t,n,e,o);return}const s=t._index.fetch(o,et),r=s.get(e),i=r?.get(n);!r||typeof i>\"u\"?ot(t,n,e,o):i<=1?r.size<=1?s.delete(e):r.delete(n):r.set(n,i-1),t._index.get(o).size===0&&t._index.delete(o)},Lt=(t,e,n,o,s)=>{let r=t._fieldLength.get(e);r==null&&t._fieldLength.set(e,r=[]),r[n]=s;const i=(t._avgFieldLength[n]||0)*o+s;t._avgFieldLength[n]=i/(o+1)},Ot=(t,e)=>{const n=t._nextId;return t._idToShortId.set(e,n),t._documentIds.set(n,e),t._documentCount+=1,t._nextId+=1,n},Et=(t,e,n)=>{const{storeFields:o,extractField:s}=t._options;if(o?.length===0)return;let r=t._storedFields.get(e);r===void 0&&t._storedFields.set(e,r={});for(const i of o){const c=s(n,i);c!=null&&(r[i]=c)}},D=(t,e)=>{const{extractField:n,stringifyField:o,tokenize:s,processTerm:r,fields:i,idField:c}=t._options,a=n(e,c);if(a==null)throw new Error(`SlimSearch: document does not have ID field \"${c}\"`);if(Y(t,a))throw new Error(`SlimSearch: duplicate ID ${a}`);const d=Ot(t,a);Et(t,d,e);for(const u of i){const f=n(e,u);if(f==null)continue;const m=s(o(f,u),u),_=t._fieldIds[u],g=new Set(m).size;Lt(t,d,_,t._documentCount-1,g);for(const h of m){const l=r(h,u);if(Array.isArray(l))for(const p of l)st(t,_,d,p);else l&&st(t,_,d,l)}}},j=(t,e)=>{for(const n of e)D(t,n)},At=(t,e,n={})=>{const{chunkSize:o=10}=n,s={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:c,promise:a},d,u)=>(c.push(d),(u+1)%o===0?{chunk:[],promise:a.then(()=>new Promise(f=>setTimeout(f,0))).then(()=>j(t,c))}:{chunk:c,promise:a}),s);return i.then(()=>j(t,r))},Vt={k:1.2,b:.7,d:.5},q={idField:\"id\",extractField:(t,e)=>t[e],stringifyField:t=>t.toString(),tokenize:t=>t.split(St),processTerm:t=>t.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(t,e)=>{console?.[t]?.(e)},autoVacuum:!0},it={combineWith:V,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:Vt},Tt={combineWith:Z,prefix:(t,e,n)=>e===n.length-1},$={batchSize:1e3,batchWait:10},N={minDirtFactor:.1,minDirtCount:20},W={...$,...N},Mt=t=>{if(q.hasOwnProperty(t))return T(q,t);throw new Error(`SlimSearch: unknown option \"${t}\"`)},P=Symbol(\"*\"),Dt=(t,e)=>{const n=new Map,o={...t._options.searchOptions,...e};for(const[s,r]of t._documentIds){const i=o.boostDocument?o.boostDocument(r,\"\",t._storedFields.get(s)):1;n.set(s,{score:i,terms:[],match:{}})}return n},rt=(t,e=V)=>{if(t.length===0)return new Map;const n=e.toLowerCase();if(!(n in nt))throw new Error(`Invalid combination operator: ${e}`);return t.reduce(nt[n])},R=(t,e,n,o,s,r,i,c,a,d=new Map)=>{if(r==null)return d;for(const u of Object.keys(i)){const f=i[u],m=t._fieldIds[u],_=r.get(m);if(_==null)continue;let g=_.size;const h=t._avgFieldLength[m];for(const l of _.keys()){if(!t._documentIds.has(l)){M(t,m,l,n),g-=1;continue}const p=c?c(t._documentIds.get(l),n,t._storedFields.get(l)):1;if(!p)continue;const w=_.get(l),k=t._fieldLength.get(l)[m],C=kt(w,g,t._documentCount,k,h,a),z=o*s*f*p*C,I=d.get(l);if(I){I.score+=z,vt(I.terms,e);const F=T(I.match,n);F?F.push(u):I.match[n]=[u]}else d.set(l,{score:z,terms:[e],match:{[n]:[u]}})}}return d},jt=(t,e,n)=>{const o={...t._options.searchOptions,...n},s=(o.fields??t._options.fields).reduce((h,l)=>({...h,[l]:T(o.boost,l)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:c,bm25:a}=o,{fuzzy:d,prefix:u}={...it.weights,...i},f=t._index.get(e.term),m=R(t,e.term,e.term,1,e.termBoost,f,s,r,a);let _,g;if(e.prefix&&(_=t._index.atPrefix(e.term)),e.fuzzy){const h=e.fuzzy===!0?.2:e.fuzzy,l=h<1?Math.min(c,Math.round(e.term.length*h)):h;l&&(g=t._index.fuzzyGet(e.term,l))}if(_)for(const[h,l]of _){const p=h.length-e.term.length;if(!p)continue;g?.delete(h);const w=u*h.length/(h.length+.3*p);R(t,e.term,h,w,e.termBoost,l,s,r,a,m)}if(g)for(const h of g.keys()){const[l,p]=g.get(h);if(!p)continue;const w=d*h.length/(h.length+p);R(t,e.term,h,w,e.termBoost,l,s,r,a,m)}return m},ct=(t,e,n={})=>{if(e===P)return Dt(t,n);if(typeof e!=\"string\"){const u={...n,...e,queries:void 0},f=e.queries.map(m=>ct(t,m,u));return rt(f,u.combineWith)}const{tokenize:o,processTerm:s,searchOptions:r}=t._options,i={tokenize:o,processTerm:s,...r,...n},{tokenize:c,processTerm:a}=i,d=c(e).flatMap(u=>a(u)).filter(u=>!!u).map(Ct(i)).map(u=>jt(t,u,i));return rt(d,i.combineWith)},ut=(t,e,n={})=>{const{searchOptions:o}=t._options,s={...o,...n},r=ct(t,e,n),i=[];for(const[c,{score:a,terms:d,match:u}]of r){const f=d.length||1,m={id:t._documentIds.get(c),score:a*f,terms:Object.keys(u),queryTerms:d,match:u};Object.assign(m,t._storedFields.get(c)),(s.filter==null||s.filter(m))&&i.push(m)}return e===P&&s.boostDocument==null||i.sort(tt),i},qt=(t,e,n={})=>{n={...t._options.autoSuggestOptions,...n};const o=new Map;for(const{score:r,terms:i}of ut(t,e,n)){const c=i.join(\" \"),a=o.get(c);a!=null?(a.score+=r,a.count+=1):o.set(c,{score:r,terms:i,count:1})}const s=[];for(const[r,{score:i,terms:c,count:a}]of o)s.push({suggestion:r,terms:c,score:i/a});return s.sort(tt),s};class $t{_options;_index;_documentCount;_documentIds;_idToShortId;_fieldIds;_fieldLength;_avgFieldLength;_nextId;_storedFields;_dirtCount;_currentVacuum;_enqueuedVacuum;_enqueuedVacuumConditions;constructor(e){if(!e?.fields)throw new Error('SlimSearch: option \"fields\" must be provided');const n=e.autoVacuum==null||e.autoVacuum===!0?W:e.autoVacuum;this._options={...q,...e,autoVacuum:n,searchOptions:{...it,...e.searchOptions},autoSuggestOptions:{...Tt,...e.autoSuggestOptions}},this._index=new y,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=N,this.addFields(this._options.fields)}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}get documentCount(){return this._documentCount}get termCount(){return this._index.size}toJSON(){const e=[];for(const[n,o]of this._index){const s={};for(const[r,i]of o)s[r]=Object.fromEntries(i);e.push([n,s])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,version:2}}addFields(e){for(let n=0;n<e.length;n++)this._fieldIds[e[n]]=n}}const dt=t=>`SlimSearch: ${t} should be given the same options used when serializing the index`,at=t=>new $t(t),lt=({documentCount:t,nextId:e,fieldIds:n,averageFieldLength:o,dirtCount:s,version:r},i)=>{if(r!==2)throw new Error(\"SlimSearch: cannot deserialize an index created with an incompatible version\");const c=at(i);return c._documentCount=t,c._nextId=e,c._idToShortId=new Map,c._fieldIds=n,c._avgFieldLength=o,c._dirtCount=s??0,c._index=new y,c},ht=(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=lt(t,e);i._documentIds=b(o),i._fieldLength=b(s),i._storedFields=b(r);for(const[c,a]of i._documentIds)i._idToShortId.set(a,c);for(const[c,a]of n){const d=new Map;for(const u of Object.keys(a))d.set(parseInt(u,10),b(a[u]));i._index.set(c,d)}return i},ft=async(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=lt(t,e);i._documentIds=await v(o),i._fieldLength=await v(s),i._storedFields=await v(r);for(const[a,d]of i._documentIds)i._idToShortId.set(d,a);let c=0;for(const[a,d]of n){const u=new Map;for(const f of Object.keys(d))u.set(parseInt(f,10),await v(d[f]));++c%1e3===0&&await H(0),i._index.set(a,u)}return i},Nt=(t,e)=>{if(!e)throw new Error(dt(\"loadJSONIndex\"));return ht(JSON.parse(t),e)},Wt=(t,e)=>{if(!e)throw new Error(dt(\"loadJSONIndexAsync\"));return ft(JSON.parse(t),e)},mt=(t,e)=>{if(e==null)return!0;const{minDirtCount:n=W.minDirtCount,minDirtFactor:o=W.minDirtFactor}=e;return t.dirtCount>=n&&t.dirtFactor>=o},_t=async(t,e,n)=>{const o=t._dirtCount;if(mt(t,n)){const s=e.batchSize??$.batchSize,r=e.batchWait??$.batchWait;let i=1;for(const[c,a]of t._index){for(const[d,u]of a)for(const[f]of u)t._documentIds.has(f)||(u.size<=1?a.delete(d):u.delete(f));t._index.get(c).size===0&&t._index.delete(c),i%s===0&&await new Promise(d=>setTimeout(d,r)),i+=1}t._dirtCount-=o}await null,t._currentVacuum=t._enqueuedVacuum,t._enqueuedVacuum=null},gt=(t,e,n)=>t._currentVacuum?(t._enqueuedVacuumConditions=t._enqueuedVacuumConditions&&n,t._enqueuedVacuum!=null||(t._enqueuedVacuum=t._currentVacuum.then(()=>{const o=t._enqueuedVacuumConditions;return t._enqueuedVacuumConditions=N,_t(t,e,o)})),t._enqueuedVacuum):mt(t,n)?(t._currentVacuum=_t(t,e),t._currentVacuum):Promise.resolve(),pt=t=>{if(t._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:n,batchSize:o,batchWait:s}=t._options.autoVacuum;gt(t,{batchSize:o,batchWait:s},{minDirtCount:n,minDirtFactor:e})},Pt=(t,e={})=>gt(t,e),wt=(t,e,n,o)=>{if(n===1){t._avgFieldLength[e]=0;return}const s=t._avgFieldLength[e]*n-o;t._avgFieldLength[e]=s/(n-1)},J=(t,e)=>{const n=t._idToShortId.get(e);if(n==null)throw new Error(`SlimSearch: cannot discard document with ID ${e}: it is not in the index`);t._idToShortId.delete(e),t._documentIds.delete(n),t._storedFields.delete(n),t._fieldLength.get(n)?.forEach((o,s)=>{wt(t,s,t._documentCount,o)}),t._fieldLength.delete(n),t._documentCount-=1,t._dirtCount+=1,pt(t)},Rt=(t,e)=>{const n=t._options.autoVacuum;try{t._options.autoVacuum=!1;for(const o of e)J(t,o)}finally{t._options.autoVacuum=n}pt(t)},yt=(t,e)=>{const{tokenize:n,processTerm:o,extractField:s,stringifyField:r,fields:i,idField:c}=t._options,a=s(e,c);if(a==null)throw new Error(`SlimSearch: document does not have ID field \"${c}\"`);const d=t._idToShortId.get(a);if(d==null)throw new Error(`SlimSearch: cannot remove document with ID ${a}: it is not in the index`);for(const u of i){const f=s(e,u);if(f==null)continue;const m=n(r(f,u),u),_=t._fieldIds[u],g=new Set(m).size;wt(t,_,t._documentCount,g);for(const h of m){const l=o(h,u);if(Array.isArray(l))for(const p of l)M(t,_,d,p);else l&&M(t,_,d,l)}}t._storedFields.delete(d),t._documentIds.delete(d),t._idToShortId.delete(a),t._fieldLength.delete(d),t._documentCount-=1},Jt=function(t,e){if(e)for(const n of e)yt(t,n);else{if(arguments.length>1)throw new Error(\"Expected documents to be present. Omit the argument to remove all documents.\");t._index=new y,t._documentCount=0,t._documentIds=new Map,t._idToShortId=new Map,t._fieldLength=new Map,t._avgFieldLength=[],t._storedFields=new Map,t._nextId=0}},Ut=(t,e)=>{const{idField:n,extractField:o}=t._options,s=o(e,n);J(t,s),D(t,e)};export{y as SearchableMap,P as WILDCARD,D as add,j as addAll,At as addAllAsync,qt as autoSuggest,at as createIndex,J as discard,Rt as discardAll,Mt as getDefaultValue,zt as getStoredFields,Y as has,ht as loadIndex,ft as loadIndexAsync,Nt as loadJSONIndex,Wt as loadJSONIndexAsync,yt as remove,Jt as removeAll,Ut as replace,ut as search,Pt as vacuum};\n//# sourceMappingURL=index.js.map\n",null,null,null,null,null],"names":["timeToString","time","hours","Math","floor","minutes","toString","padStart","durationToString","duration","DOT_CONFIG","colors","rounds","defaultRound","originStation","destinationStation","defaultStation","continuationFill","penWidth","continuation","continuationEdge","isVehicleEdge","edge","isTransferEdge","isAccessEdge","DotBuilder","constructor","this","lines","addHeader","push","addComment","comment","addNode","id","attrs","attrStr","Object","entries","map","k","v","join","addEdge","from","to","attrPart","addRaw","build","varint64read","lowBits","highBits","shift","b","buf","pos","assertBounds","middleByte","Error","varint64write","lo","hi","bytes","i","hasNext","byte","splitBits","hasMoreBits","TWO_PWR_32_DBL","int64FromString","dec","minus","slice","base","add1e6digit","begin","end","digit1e6","Number","negate","newBits","uInt64ToString","toUnsigned","String","mid","high","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","digit1e7","partial","length","varint32write","value","varint32read","result","readBytes","protoInt64","makeInt64Support","dv","DataView","ArrayBuffer","BigInt","getBigInt64","getBigUint64","setBigInt64","setBigUint64","globalThis","Deno","process","env","BUF_BIGINT_DISABLE","MIN","MAX","UMIN","UMAX","zero","supported","parse","bi","uParse","enc","getInt32","uEnc","setInt32","uDec","assertInt64String","assertUInt64String","bits","negative","int64ToString","test","symbol","Symbol","for","getTextEncoding","undefined","te","TextEncoder","td","TextDecoder","encodeUtf8","text","encode","decodeUtf8","decode","checkUtf8","encodeURIComponent","_","WireType","FLOAT32_MAX","FLOAT32_MIN","BinaryWriter","stack","chunks","finish","Uint8Array","len","offset","set","fork","chunk","prev","pop","uint32","byteLength","raw","tag","fieldNo","type","assertUInt32","int32","assertInt32","bool","string","float","arg","o","isNaN","isFinite","assertFloat32","buffer","setFloat32","double","setFloat64","fixed32","setUint32","sfixed32","sint32","sfixed64","view","tc","fixed64","int64","sint64","sign","uint64","BinaryReader","varint64","byteOffset","wireType","skip","start","Varint","Bit64","Bit32","LengthDelimited","StartGroup","fn","wt","EndGroup","subarray","RangeError","zze","s","getUint32","getFloat32","getFloat64","isInteger","TransferType","RouteType","transferTypeFromJSON","object","TRANSFER_TYPE_UNSPECIFIED","TRANSFER_TYPE_RECOMMENDED_TRANSFER_POINT","TRANSFER_TYPE_TIMED_TRANSFER","TRANSFER_TYPE_REQUIRES_MINIMAL_TIME","TRANSFER_TYPE_IN_SEAT_TRANSFER","UNRECOGNIZED","routeTypeFromJSON","ROUTE_TYPE_UNSPECIFIED","ROUTE_TYPE_TRAM","ROUTE_TYPE_SUBWAY","ROUTE_TYPE_RAIL","ROUTE_TYPE_BUS","ROUTE_TYPE_FERRY","ROUTE_TYPE_CABLE_TRAM","ROUTE_TYPE_AERIAL_LIFT","ROUTE_TYPE_FUNICULAR","ROUTE_TYPE_TROLLEYBUS","ROUTE_TYPE_MONORAIL","createBaseRoute","stopTimes","pickupDropOffTypes","stops","serviceRouteId","Route","message","writer","input","reader","fromJSON","isSet","bytesFromBase64","toJSON","obj","base64FromBytes","round","create","fromPartial","_a","_b","_c","_d","Transfer","destination","minTransferTime","transferTypeToJSON","TripStop","stopIndex","routeId","tripIndex","TripTransferEntry","origin","destinations","Array","isArray","e","StopAdjacency","routes","transfers","end2","ServiceRoute","name","routeTypeToJSON","Timetable","stopsAdjacency","routesAdjacency","serviceRoutes","tripContinuations","guaranteedTripTransfers","_e","b64","Buffer","bin","atob","arr","charCodeAt","forEach","fromCharCode","btoa","nbStops","nbTrips","stopIndices","Map","stopId","existingIndices","get","of","params","trips","firstTrip","stopIds","Uint32Array","stop","numStops","trip","Uint16Array","baseIndex","arrivalTime","departureTime","totalStopEntries","ceil","globalIndex","pickUp","pickUpType","dropOff","dropOffType","byteIndex","isSecondPair","serialize","getNbStops","getNbTrips","serviceRoute","arrivalAt","arrivalIndex","arrival","tripStopOffset","arrivalAtOffset","departureAtOffset","dropOffTypeAtOffset","departureFrom","departureIndex","departure","pickUpTypeFrom","dropOffTypeAt","findEarliestTrip","after","beforeTrip","min","lb","stopRouteIndices","stopRouteIndex","VALUE_MASK","MAX_VALUE","TRIP_INDEX_SHIFT","ROUTE_ID_SHIFT","STOP_INDEX_SHIFT","validateValue","isLittleEndian","STANDARD_ENDIANNESS","uint32ArrayToBytes","array","bytesToUint32Array","uint16ArrayToBytes","setUint16","bytesToUint16Array","getUint16","serializeRoutesAdjacency","protoRoutesAdjacency","route","routeData","parseTransferType","ProtoTransferType","serializeTransferType","parseRouteType","ProtoRouteType","serializeRouteType","serializeTripTransfers","tripTransfers","tripBoardingId","originStopIndex","originRouteId","originTripIndex","tripStopId","tripStop","deserializeTripTransfers","protoTripTransfer","entry","protoTripStop","ALL_TRANSPORT_MODES","Set","EMPTY_TRIP_BOARDINGS","activeStops","add","protoTimetable","transfer","assign","ProtoTimetable","fromData","data","protoStopsAdjacency","j","newTransfer","stopAdjacency","deserializeStopsAdjacency","deserializeRoutesAdjacency","protoServiceRoutes","deserializeServiceRoutesMap","isActive","has","getRoute","getTransfers","getContinuousTrips","getServiceRouteInfo","routesPassingThrough","stopData","findReachableRoutes","fromStops","transportModes","reachableRoutes","filterByMode","originStop","existingHopOnStopIndex","isTripTransferGuaranteed","fromTripStop","toTripStop","guaranteedTransfers","findFirstBoardableTrip","earliestTrip","transferTime","t","getGuaranteedTripTransfers","Query","builder","fromValue","toValue","departureTimeValue","options","optionsValue","Builder","seconds","maxTransfers","maxInitialWaitingTime","RangeQuery","super","lastDepartureTime","lastDepartureTimeValue","rangeOptions","rangeOptionsValue","optimizeBeyondLatestDeparture","legs","cumulativeAccessTime","leg","lastVehicleArrivalTime","totalTransferTime","totalDuration","abs","index","fromStop","platform","toStop","transferDetails","accessDetails","travelDetails","filter","line","trim","pickUpDropOffTypeMap","toPickupDropOffType","rawType","Result","routingState","stopsIndex","timetable","expandDestinations","targets","expanded","target","equivalentStop","equivalentStops","bestRouteToSourceStopId","sourceId","found","findStopBySourceStopId","size","bestRoute","destinationStops","fastestDestination","fastestArrivalTime","fastestLegNumber","arrivalData","getArrival","legNumber","previousVehicleEdge","currentStop","graph","boardingEdge","vehicleLeg","continuationOf","vehicleEdge","chainedEdges","buildVehicleLeg","hopOffStopIndex","buildGuaranteedTransferLeg","buildTransferLeg","buildAccessLeg","reverse","edges","firstEdge","lastEdge","firstRoute","lastRoute","findStopById","fromEdge","toEdge","fromRoute","toRoute","fromStopId","toStopId","earliestArrival","arrivalEdge","AccessFinder","collectAccessPaths","queryOrigin","fallbackMinTransferTime","equivalentOrigins","accessPaths","existingAccess","values","collectDepartureTimes","slotMap","path","searchFrom","searchTo","dep","paths","sort","a","depTime","UNREACHED_TIME","RoutingState","maxRounds","_destinationBest","reachedStops","destinationSet","earliestArrivalTimes","fill","earliestArrivalLegs","origins","r","seedAccessPaths","seededOrigins","access","destinationBest","improvementBound","_round","initRound","updateArrival","resetFor","arrivals","earliestArrivalAtAnyDestination","isDestination","fromTestData","state","dest","denseRounds","splice","PlainRouter","accessFinder","raptor","query","accessLegs","flatMap","run","RangeResult","runs","_runs","_destinations","normalizeTargets","getRoutes","targetStops","bestRun","bestArrival","latestDepartureRoute","fastestRoute","fastestRun","shortestDuration","Infinity","earliestArrivalAt","best","shortestDurationTo","shortest","allShortestDurations","durations","existing","allEarliestArrivals","iterator","RangeRaptorState","latestDeparture","roundLabels","changedInRound","setCurrentRun","currentRun","round0","changed","curr","RangeRouter","rangeRoute","earliest","latest","departureSlots","rangeState","paretoRuns","paretoDestBest","trivialDests","includes","trivialDestCovered","isParetoOptimal","Raptor","markedStops","edgesAtCurrentRound","clear","hopOnStopIndex","scanRoute","continuations","findTripContinuations","stopsFromContinuations","scanRouteContinuation","considerTransfers","continuousTrips","previousEdge","tripContinuation","newlyMarkedStops","currentStopIndex","edgesAtPreviousRound","activeTripIndex","activeTripBoardStopIndex","activeTripStopOffset","earliestArrivalOnPreviousRound","firstBoardableTrip","arrivalsAtCurrentRound","currentArrival","arrivalAfterTransfer","TinyQueue","compare","defaultCompare","_down","item","_up","top","bottom","peek","parent","current","halfLength","left","right","rad","PI","boxDist","lng","lat","cosLat","node","minLng","maxLng","minLat","maxLat","haverSin","haverSinDLng","extremumLat","cosDLng","atan","tan","vertexLat","haverSinDistPartial","compareDist","dist","theta","sin","cosLat1","lat1","lat2","cos","haverSinDist","lng1","lng2","ARRAY_TYPES","Int8Array","Uint8ClampedArray","Int16Array","Int32Array","Float32Array","Float64Array","KDBush","magic","versionAndType","version","ArrayType","nodeSize","numItems","max","IndexArrayType","arrayTypeIndex","indexOf","coordsByteSize","BYTES_PER_ELEMENT","idsByteSize","padCoords","ids","coords","_pos","_finished","x","y","numAdded","range","minX","minY","maxX","maxY","axis","m","within","qx","qy","r2","sqDist","select","n","z","log","exp","sd","sqrt","swapItem","swap","tmp","ax","ay","bx","by","dx","dy","U","B","L","_type","_path","_tree","keys","next","dive","backtrack","done","key","_prefix","G","c","d","u","f","g","h","l","p","w","C","I","F","_size","atPrefix","startsWith","S","A","Ft","fuzzyGet","xt","O","E","update","fetch","fromObject","delete","K","Q","St","V","Z","bt","vt","X","tt","score","et","T","prototype","hasOwnProperty","call","nt","terms","match","kt","ot","_fieldIds","_options","logger","_documentIds","st","_index","M","Lt","_fieldLength","_avgFieldLength","D","extractField","stringifyField","tokenize","processTerm","fields","idField","_idToShortId","Y","_nextId","_documentCount","Ot","storeFields","_storedFields","Et","q","split","toLowerCase","searchOptions","console","autoVacuum","it","combineWith","prefix","fuzzy","maxFuzzy","boost","weights","bm25","Tt","N","minDirtFactor","minDirtCount","W","batchSize","batchWait","P","rt","reduce","R","ct","boostDocument","Dt","queries","term","termBoost","boostTerm","Ct","jt","$t","_dirtCount","_currentVacuum","_enqueuedVacuum","_enqueuedVacuumConditions","autoSuggestOptions","addFields","isVacuuming","dirtCount","dirtFactor","documentCount","termCount","fromEntries","nextId","documentIds","fieldIds","fieldLength","averageFieldLength","storedFields","generateAccentVariants","lowerCaseTerm","alternatives","accentMap","ae","oe","ue","accents","accent","replace","LocationType","locationTypeFromJSON","LOCATION_TYPE_UNSPECIFIED","LOCATION_TYPE_SIMPLE_STOP_OR_PLATFORM","LOCATION_TYPE_STATION","LOCATION_TYPE_ENTRANCE_EXIT","LOCATION_TYPE_GENERIC_NODE","LOCATION_TYPE_BOARDING_AREA","Stop","sourceStopId","lon","children","locationType","locationTypeToJSON","_f","_g","_h","StopsMap","serializeStopsMap","serializeStop","serializeLocationType","deserializeStopsMap","protoStopsMap","intKey","deserializeStop","protoStop","parseProtoLocationType","protoLocationType","ProtoLocationType","StopsIndex","sourceStopsMap","stopsSet","stopPoints","effectiveStopId","textIndex","stopsArray","addAll","geoIndex","KDTree","ProtoStopsMap","findStopsByName","maxResults","queryTerms","search","findStopsByLocation","radius","nearestStops","maxDistance","maxHaverSinDist","midLng","midLat","nextAxis","leftNode","rightNode","candidate","around","stopPoint","stationNodeId","vehicleEdgeNodeId","transferEdgeNodeId","accessEdgeNodeId","continuationNodeId","getRoundColor","colorIndex","getStationFillColor","isOrigin","escapeDotString","str","formatStopName","escapedName","escapedPlatform","getStationInfo","getVehicleEdgeFromStopId","getVehicleEdgeToStopId","createStationNode","displayName","stopIdStr","nodeId","stationInfo","createVehicleEdge","fromNodeId","toNodeId","roundColor","routeOvalId","serviceRouteInfo","routeName","routeType","escapedRouteName","createAccessEdge","color","ovalId","createTransferEdge","transferOvalId","createContinuationEdge","fromStationId","toStationId","continuationOvalId","fromServiceRouteInfo","toServiceRouteInfo","fromRouteName","toRouteName","fromRouteType","toRouteType","fromArrivalTime","toDepartureTime","escapedFromRouteName","escapedToRouteName","escapedFromRouteType","escapedToRouteType","ovalLabel","edgePenWidth","collectStations","stations","roundEdges","collectContinuationChain","continuationEdges","currentEdge","edgeParts","collectEdges","plotDotGraph","stationNode","plainRouter","rangeRouter"],"mappings":"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","x_google_ignoreList":[2,3,4,5,21,22,23,24]}
|
|
1
|
+
{"version":3,"file":"router.cjs.js","sources":["../src/timetable/time.ts","../src/routing/plotter.ts","../node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js","../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js","../node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js","../node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js","../src/timetable/proto/v1/timetable.ts","../src/timetable/route.ts","../src/timetable/tripStopId.ts","../src/timetable/io.ts","../src/timetable/timetable.ts","../src/routing/query.ts","../src/routing/route.ts","../src/routing/result.ts","../src/routing/access.ts","../src/routing/state.ts","../src/routing/plainRouter.ts","../src/routing/rangeResult.ts","../src/routing/rangeState.ts","../src/routing/rangeRouter.ts","../src/routing/raptor.ts","../node_modules/tinyqueue/index.js","../node_modules/geokdbush/index.js","../node_modules/kdbush/index.js","../node_modules/slimsearch/dist/index.js","../src/stops/i18n.ts","../src/stops/proto/v1/stops.ts","../src/stops/io.ts","../src/stops/stopsIndex.ts","../src/routing/router.ts"],"sourcesContent":[null,null,"// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1fffff) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xffffff;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;\n const high = (hi >> 16) & 0xffff;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return (digitC.toString() +\n decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA));\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { int64FromString, int64ToString, uInt64ToString, } from \"./wire/varint.js\";\n/**\n * Int64Support for the current environment.\n */\nexport const protoInt64 = /*@__PURE__*/ makeInt64Support();\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (!!globalThis.Deno ||\n typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\");\n const MAX = BigInt(\"9223372036854775807\");\n const UMIN = BigInt(\"0\");\n const UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`invalid int64: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`invalid uint64: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n },\n };\n}\nfunction assertInt64String(value) {\n if (!/^-?[0-9]+$/.test(value)) {\n throw new Error(\"invalid int64: \" + value);\n }\n}\nfunction assertUInt64String(value) {\n if (!/^[0-9]+$/.test(value)) {\n throw new Error(\"invalid uint64: \" + value);\n }\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nconst symbol = Symbol.for(\"@bufbuild/protobuf/text-encoding\");\n/**\n * Protobuf-ES requires the Text Encoding API to convert UTF-8 from and to\n * binary. This WHATWG API is widely available, but it is not part of the\n * ECMAScript standard. On runtimes where it is not available, use this\n * function to provide your own implementation.\n *\n * Note that the Text Encoding API does not provide a way to validate UTF-8.\n * Our implementation falls back to use encodeURIComponent().\n */\nexport function configureTextEncoding(textEncoding) {\n globalThis[symbol] = textEncoding;\n}\nexport function getTextEncoding() {\n if (globalThis[symbol] == undefined) {\n const te = new globalThis.TextEncoder();\n const td = new globalThis.TextDecoder();\n globalThis[symbol] = {\n encodeUtf8(text) {\n return te.encode(text);\n },\n decodeUtf8(bytes) {\n return td.decode(bytes);\n },\n checkUtf8(text) {\n try {\n encodeURIComponent(text);\n return true;\n }\n catch (_) {\n return false;\n }\n },\n };\n }\n return globalThis[symbol];\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { varint32read, varint32write, varint64read, varint64write, } from \"./varint.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { getTextEncoding } from \"./text-encoding.js\";\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\n/**\n * Maximum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MAX = 3.4028234663852886e38;\n/**\n * Minimum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MIN = -3.4028234663852886e38;\n/**\n * Maximum value for an unsigned 32-bit integer (Protobuf UINT32, FIXED32).\n */\nexport const UINT32_MAX = 0xffffffff;\n/**\n * Maximum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MAX = 0x7fffffff;\n/**\n * Minimum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MIN = -0x80000000;\nexport class BinaryWriter {\n constructor(encodeUtf8 = getTextEncoding().encodeUtf8) {\n this.encodeUtf8 = encodeUtf8;\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n this.buf = [];\n }\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.encodeUtf8(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n const tc = protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n const tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexport class BinaryReader {\n constructor(buf, decodeUtf8 = getTextEncoding().decodeUtf8) {\n this.decodeUtf8 = decodeUtf8;\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read;\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element and return the skipped data.\n *\n * When skipping StartGroup, provide the tags field number to check for\n * matching field number in the EndGroup tag.\n */\n skip(wireType, fieldNo) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // @ts-ignore TS7029: Fallthrough case in switch -- ignore instead of expect-error for compiler settings without noFallthroughCasesInSwitch: true\n case WireType.Bit64:\n this.pos += 4;\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n for (;;) {\n const [fn, wt] = this.tag();\n if (wt === WireType.EndGroup) {\n if (fieldNo !== undefined && fn !== fieldNo) {\n throw new Error(\"invalid end group tag\");\n }\n break;\n }\n this.skip(wt, fn);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.decodeUtf8(this.bytes());\n }\n}\n/**\n * Assert a valid signed protobuf 32-bit integer as a number or string.\n */\nfunction assertInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid int32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > INT32_MAX ||\n arg < INT32_MIN)\n throw new Error(\"invalid int32: \" + arg);\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer as a number or string.\n */\nfunction assertUInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid uint32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > UINT32_MAX ||\n arg < 0)\n throw new Error(\"invalid uint32: \" + arg);\n}\n/**\n * Assert a valid protobuf float value as a number or string.\n */\nfunction assertFloat32(arg) {\n if (typeof arg == \"string\") {\n const o = arg;\n arg = Number(arg);\n if (Number.isNaN(arg) && o !== \"NaN\") {\n throw new Error(\"invalid float32: \" + o);\n }\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid float32: \" + typeof arg);\n }\n if (Number.isFinite(arg) &&\n (arg > FLOAT32_MAX || arg < FLOAT32_MIN))\n throw new Error(\"invalid float32: \" + arg);\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\nexport default class TinyQueue {\n constructor(data = [], compare = defaultCompare) {\n this.data = data;\n this.length = this.data.length;\n this.compare = compare;\n\n if (this.length > 0) {\n for (let i = (this.length >> 1) - 1; i >= 0; i--) this._down(i);\n }\n }\n\n push(item) {\n this.data.push(item);\n this.length++;\n this._up(this.length - 1);\n }\n\n pop() {\n if (this.length === 0) return undefined;\n\n const top = this.data[0];\n const bottom = this.data.pop();\n this.length--;\n\n if (this.length > 0) {\n this.data[0] = bottom;\n this._down(0);\n }\n\n return top;\n }\n\n peek() {\n return this.data[0];\n }\n\n _up(pos) {\n const {data, compare} = this;\n const item = data[pos];\n\n while (pos > 0) {\n const parent = (pos - 1) >> 1;\n const current = data[parent];\n if (compare(item, current) >= 0) break;\n data[pos] = current;\n pos = parent;\n }\n\n data[pos] = item;\n }\n\n _down(pos) {\n const {data, compare} = this;\n const halfLength = this.length >> 1;\n const item = data[pos];\n\n while (pos < halfLength) {\n let left = (pos << 1) + 1;\n let best = data[left];\n const right = left + 1;\n\n if (right < this.length && compare(data[right], best) < 0) {\n left = right;\n best = data[right];\n }\n if (compare(best, item) >= 0) break;\n\n data[pos] = best;\n pos = left;\n }\n\n data[pos] = item;\n }\n}\n\nfunction defaultCompare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n","\nimport TinyQueue from 'tinyqueue';\n\nconst earthRadius = 6371;\nconst rad = Math.PI / 180;\n\nexport function around(index, lng, lat, maxResults = Infinity, maxDistance = Infinity, predicate) {\n let maxHaverSinDist = 1;\n const result = [];\n\n if (maxResults === undefined) maxResults = Infinity;\n if (maxDistance !== undefined) maxHaverSinDist = haverSin(maxDistance / earthRadius);\n\n // a distance-sorted priority queue that will contain both points and kd-tree nodes\n const q = new TinyQueue([], compareDist);\n\n // an object that represents the top kd-tree node (the whole Earth)\n let node = {\n left: 0, // left index in the kd-tree array\n right: index.ids.length - 1, // right index\n axis: 0, // 0 for longitude axis and 1 for latitude axis\n dist: 0, // will hold the lower bound of children's distances to the query point\n minLng: -180, // bounding box of the node\n minLat: -90,\n maxLng: 180,\n maxLat: 90\n };\n\n const cosLat = Math.cos(lat * rad);\n\n while (node) {\n const right = node.right;\n const left = node.left;\n\n if (right - left <= index.nodeSize) { // leaf node\n\n // add all points of the leaf node to the queue\n for (let i = left; i <= right; i++) {\n const id = index.ids[i];\n if (!predicate || predicate(id)) {\n const dist = haverSinDist(lng, lat, index.coords[2 * i], index.coords[2 * i + 1], cosLat);\n q.push({id, dist});\n }\n }\n\n } else { // not a leaf node (has child nodes)\n\n const m = (left + right) >> 1; // middle index\n const midLng = index.coords[2 * m];\n const midLat = index.coords[2 * m + 1];\n\n // add middle point to the queue\n const id = index.ids[m];\n if (!predicate || predicate(id)) {\n const dist = haverSinDist(lng, lat, midLng, midLat, cosLat);\n q.push({id, dist});\n }\n\n const nextAxis = (node.axis + 1) % 2;\n\n // first half of the node\n const leftNode = {\n left,\n right: m - 1,\n axis: nextAxis,\n minLng: node.minLng,\n minLat: node.minLat,\n maxLng: node.axis === 0 ? midLng : node.maxLng,\n maxLat: node.axis === 1 ? midLat : node.maxLat,\n dist: 0\n };\n // second half of the node\n const rightNode = {\n left: m + 1,\n right,\n axis: nextAxis,\n minLng: node.axis === 0 ? midLng : node.minLng,\n minLat: node.axis === 1 ? midLat : node.minLat,\n maxLng: node.maxLng,\n maxLat: node.maxLat,\n dist: 0\n };\n\n leftNode.dist = boxDist(lng, lat, cosLat, leftNode);\n rightNode.dist = boxDist(lng, lat, cosLat, rightNode);\n\n // add child nodes to the queue\n q.push(leftNode);\n q.push(rightNode);\n }\n\n // fetch closest points from the queue; they're guaranteed to be closer\n // than all remaining points (both individual and those in kd-tree nodes),\n // since each node's distance is a lower bound of distances to its children\n while (q.length && q.peek().id != null) {\n const candidate = q.pop();\n if (candidate.dist > maxHaverSinDist) return result;\n result.push(candidate.id);\n if (result.length === maxResults) return result;\n }\n\n // the next closest kd-tree node\n node = q.pop();\n }\n\n return result;\n}\n\n// lower bound for distance from a location to points inside a bounding box\nfunction boxDist(lng, lat, cosLat, node) {\n const minLng = node.minLng;\n const maxLng = node.maxLng;\n const minLat = node.minLat;\n const maxLat = node.maxLat;\n\n // query point is between minimum and maximum longitudes\n if (lng >= minLng && lng <= maxLng) {\n if (lat < minLat) return haverSin((lat - minLat) * rad);\n if (lat > maxLat) return haverSin((lat - maxLat) * rad);\n return 0;\n }\n\n // query point is west or east of the bounding box;\n // calculate the extremum for great circle distance from query point to the closest longitude;\n const haverSinDLng = Math.min(haverSin((lng - minLng) * rad), haverSin((lng - maxLng) * rad));\n const extremumLat = vertexLat(lat, haverSinDLng);\n\n // if extremum is inside the box, return the distance to it\n if (extremumLat > minLat && extremumLat < maxLat) {\n return haverSinDistPartial(haverSinDLng, cosLat, lat, extremumLat);\n }\n // otherwise return the distan e to one of the bbox corners (whichever is closest)\n return Math.min(\n haverSinDistPartial(haverSinDLng, cosLat, lat, minLat),\n haverSinDistPartial(haverSinDLng, cosLat, lat, maxLat)\n );\n}\n\nfunction compareDist(a, b) {\n return a.dist - b.dist;\n}\n\nfunction haverSin(theta) {\n const s = Math.sin(theta / 2);\n return s * s;\n}\n\nfunction haverSinDistPartial(haverSinDLng, cosLat1, lat1, lat2) {\n return cosLat1 * Math.cos(lat2 * rad) * haverSinDLng + haverSin((lat1 - lat2) * rad);\n}\n\nfunction haverSinDist(lng1, lat1, lng2, lat2, cosLat1) {\n const haverSinDLng = haverSin((lng1 - lng2) * rad);\n return haverSinDistPartial(haverSinDLng, cosLat1, lat1, lat2);\n}\n\nexport function distance(lng1, lat1, lng2, lat2) {\n const h = haverSinDist(lng1, lat1, lng2, lat2, Math.cos(lat1 * rad));\n return 2 * earthRadius * Math.asin(Math.sqrt(h));\n}\n\nfunction vertexLat(lat, haverSinDLng) {\n const cosDLng = 1 - 2 * haverSinDLng;\n if (cosDLng <= 0) return lat > 0 ? 90 : -90;\n return Math.atan(Math.tan(lat * rad) / cosDLng) / rad;\n}\n","\nconst ARRAY_TYPES = [\n Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array,\n Int32Array, Uint32Array, Float32Array, Float64Array\n];\n\n/** @typedef {Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor} TypedArrayConstructor */\n\nconst VERSION = 1; // serialized format version\nconst HEADER_SIZE = 8;\n\nexport default class KDBush {\n\n /**\n * Creates an index from raw `ArrayBuffer` data.\n * @param {ArrayBuffer} data\n */\n static from(data) {\n if (!(data instanceof ArrayBuffer)) {\n throw new Error('Data must be an instance of ArrayBuffer.');\n }\n const [magic, versionAndType] = new Uint8Array(data, 0, 2);\n if (magic !== 0xdb) {\n throw new Error('Data does not appear to be in a KDBush format.');\n }\n const version = versionAndType >> 4;\n if (version !== VERSION) {\n throw new Error(`Got v${version} data when expected v${VERSION}.`);\n }\n const ArrayType = ARRAY_TYPES[versionAndType & 0x0f];\n if (!ArrayType) {\n throw new Error('Unrecognized array type.');\n }\n const [nodeSize] = new Uint16Array(data, 2, 1);\n const [numItems] = new Uint32Array(data, 4, 1);\n\n return new KDBush(numItems, nodeSize, ArrayType, data);\n }\n\n /**\n * Creates an index that will hold a given number of items.\n * @param {number} numItems\n * @param {number} [nodeSize=64] Size of the KD-tree node (64 by default).\n * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).\n * @param {ArrayBuffer} [data] (For internal use only)\n */\n constructor(numItems, nodeSize = 64, ArrayType = Float64Array, data) {\n if (isNaN(numItems) || numItems < 0) throw new Error(`Unpexpected numItems value: ${numItems}.`);\n\n this.numItems = +numItems;\n this.nodeSize = Math.min(Math.max(+nodeSize, 2), 65535);\n this.ArrayType = ArrayType;\n this.IndexArrayType = numItems < 65536 ? Uint16Array : Uint32Array;\n\n const arrayTypeIndex = ARRAY_TYPES.indexOf(this.ArrayType);\n const coordsByteSize = numItems * 2 * this.ArrayType.BYTES_PER_ELEMENT;\n const idsByteSize = numItems * this.IndexArrayType.BYTES_PER_ELEMENT;\n const padCoords = (8 - idsByteSize % 8) % 8;\n\n if (arrayTypeIndex < 0) {\n throw new Error(`Unexpected typed array class: ${ArrayType}.`);\n }\n\n if (data && (data instanceof ArrayBuffer)) { // reconstruct an index from a buffer\n this.data = data;\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = numItems * 2;\n this._finished = true;\n } else { // initialize a new index\n this.data = new ArrayBuffer(HEADER_SIZE + coordsByteSize + idsByteSize + padCoords);\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = 0;\n this._finished = false;\n\n // set header\n new Uint8Array(this.data, 0, 2).set([0xdb, (VERSION << 4) + arrayTypeIndex]);\n new Uint16Array(this.data, 2, 1)[0] = nodeSize;\n new Uint32Array(this.data, 4, 1)[0] = numItems;\n }\n }\n\n /**\n * Add a point to the index.\n * @param {number} x\n * @param {number} y\n * @returns {number} An incremental index associated with the added item (starting from `0`).\n */\n add(x, y) {\n const index = this._pos >> 1;\n this.ids[index] = index;\n this.coords[this._pos++] = x;\n this.coords[this._pos++] = y;\n return index;\n }\n\n /**\n * Perform indexing of the added points.\n */\n finish() {\n const numAdded = this._pos >> 1;\n if (numAdded !== this.numItems) {\n throw new Error(`Added ${numAdded} items when expected ${this.numItems}.`);\n }\n // kd-sort both arrays for efficient search\n sort(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0);\n\n this._finished = true;\n return this;\n }\n\n /**\n * Search the index for items within a given bounding box.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @returns {number[]} An array of indices correponding to the found items.\n */\n range(minX, minY, maxX, maxY) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n\n const {ids, coords, nodeSize} = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n\n // recursively search for items in range in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = (left + right) >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n\n return result;\n }\n\n /**\n * Search the index for items within a given radius.\n * @param {number} qx\n * @param {number} qy\n * @param {number} r Query radius.\n * @returns {number[]} An array of indices correponding to the found items.\n */\n within(qx, qy, r) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n\n const {ids, coords, nodeSize} = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n const r2 = r * r;\n\n // recursively search for items within radius in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = (left + right) >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n\n return result;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} nodeSize\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction sort(ids, coords, nodeSize, left, right, axis) {\n if (right - left <= nodeSize) return;\n\n const m = (left + right) >> 1; // middle index\n\n // sort ids and coords around the middle index so that the halves lie\n // either left/right or top/bottom correspondingly (taking turns)\n select(ids, coords, m, left, right, axis);\n\n // recursively kd-sort first half and second half on the opposite axis\n sort(ids, coords, nodeSize, left, m - 1, 1 - axis);\n sort(ids, coords, nodeSize, m + 1, right, 1 - axis);\n}\n\n/**\n * Custom Floyd-Rivest selection algorithm: sort ids and coords so that\n * [left..k-1] items are smaller than k-th item (on either x or y axis)\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} k\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction select(ids, coords, k, left, right, axis) {\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, axis);\n }\n\n const t = coords[2 * k + axis];\n let i = left;\n let j = right;\n\n swapItem(ids, coords, left, k);\n if (coords[2 * right + axis] > t) swapItem(ids, coords, left, right);\n\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + axis] < t) i++;\n while (coords[2 * j + axis] > t) j--;\n }\n\n if (coords[2 * left + axis] === t) swapItem(ids, coords, left, j);\n else {\n j++;\n swapItem(ids, coords, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} i\n * @param {number} j\n */\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\n/**\n * @param {InstanceType<TypedArrayConstructor>} arr\n * @param {number} i\n * @param {number} j\n */\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\n/**\n * @param {number} ax\n * @param {number} ay\n * @param {number} bx\n * @param {number} by\n */\nfunction sqDist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n","const It=\"ENTRIES\",U=\"KEYS\",B=\"VALUES\",Bt=\"\";class L{set;_type;_path;constructor(e,n){const o=e._tree,s=Array.from(o.keys());this.set=e,this._type=n,this._path=s.length>0?[{node:o,keys:s}]:[]}next(){const e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:e,keys:n}=x(this._path);if(x(n)===\"\")return{done:!1,value:this.result()};const o=e.get(x(n));return this._path.push({node:o,keys:Array.from(o.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=x(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>x(e)).filter(e=>e!==\"\").join(\"\")}value(){return x(this._path).node.get(\"\")}result(){switch(this._type){case B:return this.value();case U:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const x=t=>t[t.length-1],xt=(t,e,n)=>{const o=new Map;if(typeof e!=\"string\")return o;const s=e.length+1,r=s+n,i=new Uint8Array(r*s).fill(n+1);for(let c=0;c<s;++c)i[c]=c;for(let c=1;c<r;++c)i[c*s]=c;return G(t,e,n,o,i,1,s,\"\"),o},G=(t,e,n,o,s,r,i,c)=>{const a=r*i;t:for(const d of t.keys())if(d===\"\"){const u=s[a-1];u<=n&&o.set(c,[t.get(d),u])}else{let u=r;for(let f=0;f<d.length;++f,++u){const m=d[f],_=i*u,g=_-i;let h=s[_];const l=Math.max(0,u-n-1),p=Math.min(i-1,u+n);for(let w=l;w<p;++w){const k=m!==e[w],C=s[g+w]+ +k,z=s[g+w+1]+1,I=s[_+w]+1,F=s[_+w+1]=Math.min(C,z,I);F<h&&(h=F)}if(h>n)continue t}G(t.get(d),e,n,o,s,u,i,c+d)}};class y{_tree;_prefix;_size=void 0;constructor(e=new Map,n=\"\"){this._tree=e,this._prefix=n}atPrefix(e){if(!e.startsWith(this._prefix))throw new Error(\"Mismatched prefix\");const[n,o]=S(this._tree,e.slice(this._prefix.length));if(n===void 0){const[s,r]=A(o);for(const i of s.keys())if(i!==\"\"&&i.startsWith(r)){const c=new Map;return c.set(i.slice(r.length),s.get(i)),new y(c,e)}}return new y(n,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,Ft(this._tree,e)}entries(){return new L(this,It)}forEach(e){for(const[n,o]of this)e(n,o,this)}fuzzyGet(e,n){return xt(this._tree,e,n)}get(e){const n=O(this._tree,e);return n!==void 0?n.get(\"\"):void 0}has(e){return O(this._tree,e)?.has(\"\")??!1}keys(){return new L(this,U)}set(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");return this._size=void 0,E(this._tree,e).set(\"\",n),this}get size(){if(this._size)return this._size;this._size=0;const e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");this._size=void 0;const o=E(this._tree,e);return o.set(\"\",n(o.get(\"\"))),this}fetch(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");this._size=void 0;const o=E(this._tree,e);let s=o.get(\"\");return s===void 0&&o.set(\"\",s=n()),s}values(){return new L(this,B)}[Symbol.iterator](){return this.entries()}static from(e){const n=new y;for(const[o,s]of e)n.set(o,s);return n}static fromObject(e){return y.from(Object.entries(e))}}const S=(t,e,n=[])=>{if(e.length===0||t==null)return[t,n];for(const o of t.keys())if(o!==\"\"&&e.startsWith(o))return n.push([t,o]),S(t.get(o),e.slice(o.length),n);return n.push([t,e]),S(void 0,\"\",n)},O=(t,e)=>{if(e.length===0||!t)return t;for(const n of t.keys())if(n!==\"\"&&e.startsWith(n))return O(t.get(n),e.slice(n.length))},E=(t,e)=>{const n=e.length;t:for(let o=0;t&&o<n;){for(const r of t.keys())if(r!==\"\"&&e[o]===r[0]){const i=Math.min(n-o,r.length);let c=1;for(;c<i&&e[o+c]===r[c];)++c;const a=t.get(r);if(c===r.length)t=a;else{const d=new Map;d.set(r.slice(c),a),t.set(e.slice(o,o+c),d),t.delete(r),t=d}o+=c;continue t}const s=new Map;return t.set(e.slice(o),s),s}return t},Ft=(t,e)=>{const[n,o]=S(t,e);if(n!==void 0){if(n.delete(\"\"),n.size===0)K(o);else if(n.size===1){const[s,r]=n.entries().next().value;Q(o,s,r)}}},K=t=>{if(t.length===0)return;const[e,n]=A(t);if(e.delete(n),e.size===0)K(t.slice(0,-1));else if(e.size===1){const[o,s]=e.entries().next().value;o!==\"\"&&Q(t.slice(0,-1),o,s)}},Q=(t,e,n)=>{if(t.length===0)return;const[o,s]=A(t);o.set(s+e,n),o.delete(s)},A=t=>t[t.length-1],Y=(t,e)=>t._idToShortId.has(e),zt=(t,e)=>{const n=t._idToShortId.get(e);if(n!=null)return t._storedFields.get(n)},St=/[\\n\\r\\p{Z}\\p{P}]+/u,V=\"or\",Z=\"and\",bt=\"and_not\",H=t=>new Promise(e=>setTimeout(e,t)),vt=(t,e)=>{t.includes(e)||t.push(e)},X=(t,e)=>{for(const n of e)t.includes(n)||t.push(n)},tt=({score:t},{score:e})=>e-t,et=()=>new Map,b=t=>{const e=new Map;for(const n of Object.keys(t))e.set(parseInt(n,10),t[n]);return e},v=async t=>{const e=new Map;let n=0;for(const o of Object.keys(t))e.set(parseInt(o,10),t[o]),++n%1e3===0&&await H(0);return e},T=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0,nt={[V]:(t,e)=>{for(const n of e.keys()){const o=t.get(n);if(o==null)t.set(n,e.get(n));else{const{score:s,terms:r,match:i}=e.get(n);o.score=o.score+s,o.match=Object.assign(o.match,i),X(o.terms,r)}}return t},[Z]:(t,e)=>{const n=new Map;for(const o of e.keys()){const s=t.get(o);if(s==null)continue;const{score:r,terms:i,match:c}=e.get(o);X(s.terms,i),n.set(o,{score:s.score+r,terms:s.terms,match:Object.assign(s.match,c)})}return n},[bt]:(t,e)=>{for(const n of e.keys())t.delete(n);return t}},kt=(t,e,n,o,s,r)=>{const{k:i,b:c,d:a}=r;return Math.log(1+(n-e+.5)/(e+.5))*(a+t*(i+1)/(t+i*(1-c+c*o/s)))},Ct=t=>(e,n,o)=>({term:e,fuzzy:typeof t.fuzzy==\"function\"?t.fuzzy(e,n,o):t.fuzzy??!1,prefix:typeof t.prefix==\"function\"?t.prefix(e,n,o):t.prefix===!0,termBoost:typeof t.boostTerm==\"function\"?t.boostTerm(e,n,o):1}),ot=(t,e,n,o)=>{for(const s of Object.keys(t._fieldIds))if(t._fieldIds[s]===n){t._options.logger(\"warn\",`SlimSearch: document with ID ${t._documentIds.get(e)} has changed before removal: term \"${o}\" was not present in field \"${s}\". Removing a document after it has changed can corrupt the index!`,\"version_conflict\");return}},st=(t,e,n,o)=>{const s=t._index.fetch(o,et);let r=s.get(e);if(r==null)r=new Map,r.set(n,1),s.set(e,r);else{const i=r.get(n);r.set(n,(i??0)+1)}},M=(t,e,n,o)=>{if(!t._index.has(o)){ot(t,n,e,o);return}const s=t._index.fetch(o,et),r=s.get(e),i=r?.get(n);!r||typeof i>\"u\"?ot(t,n,e,o):i<=1?r.size<=1?s.delete(e):r.delete(n):r.set(n,i-1),t._index.get(o).size===0&&t._index.delete(o)},Lt=(t,e,n,o,s)=>{let r=t._fieldLength.get(e);r==null&&t._fieldLength.set(e,r=[]),r[n]=s;const i=(t._avgFieldLength[n]||0)*o+s;t._avgFieldLength[n]=i/(o+1)},Ot=(t,e)=>{const n=t._nextId;return t._idToShortId.set(e,n),t._documentIds.set(n,e),t._documentCount+=1,t._nextId+=1,n},Et=(t,e,n)=>{const{storeFields:o,extractField:s}=t._options;if(o?.length===0)return;let r=t._storedFields.get(e);r===void 0&&t._storedFields.set(e,r={});for(const i of o){const c=s(n,i);c!=null&&(r[i]=c)}},D=(t,e)=>{const{extractField:n,stringifyField:o,tokenize:s,processTerm:r,fields:i,idField:c}=t._options,a=n(e,c);if(a==null)throw new Error(`SlimSearch: document does not have ID field \"${c}\"`);if(Y(t,a))throw new Error(`SlimSearch: duplicate ID ${a}`);const d=Ot(t,a);Et(t,d,e);for(const u of i){const f=n(e,u);if(f==null)continue;const m=s(o(f,u),u),_=t._fieldIds[u],g=new Set(m).size;Lt(t,d,_,t._documentCount-1,g);for(const h of m){const l=r(h,u);if(Array.isArray(l))for(const p of l)st(t,_,d,p);else l&&st(t,_,d,l)}}},j=(t,e)=>{for(const n of e)D(t,n)},At=(t,e,n={})=>{const{chunkSize:o=10}=n,s={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:c,promise:a},d,u)=>(c.push(d),(u+1)%o===0?{chunk:[],promise:a.then(()=>new Promise(f=>setTimeout(f,0))).then(()=>j(t,c))}:{chunk:c,promise:a}),s);return i.then(()=>j(t,r))},Vt={k:1.2,b:.7,d:.5},q={idField:\"id\",extractField:(t,e)=>t[e],stringifyField:t=>t.toString(),tokenize:t=>t.split(St),processTerm:t=>t.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(t,e)=>{console?.[t]?.(e)},autoVacuum:!0},it={combineWith:V,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:Vt},Tt={combineWith:Z,prefix:(t,e,n)=>e===n.length-1},$={batchSize:1e3,batchWait:10},N={minDirtFactor:.1,minDirtCount:20},W={...$,...N},Mt=t=>{if(q.hasOwnProperty(t))return T(q,t);throw new Error(`SlimSearch: unknown option \"${t}\"`)},P=Symbol(\"*\"),Dt=(t,e)=>{const n=new Map,o={...t._options.searchOptions,...e};for(const[s,r]of t._documentIds){const i=o.boostDocument?o.boostDocument(r,\"\",t._storedFields.get(s)):1;n.set(s,{score:i,terms:[],match:{}})}return n},rt=(t,e=V)=>{if(t.length===0)return new Map;const n=e.toLowerCase();if(!(n in nt))throw new Error(`Invalid combination operator: ${e}`);return t.reduce(nt[n])},R=(t,e,n,o,s,r,i,c,a,d=new Map)=>{if(r==null)return d;for(const u of Object.keys(i)){const f=i[u],m=t._fieldIds[u],_=r.get(m);if(_==null)continue;let g=_.size;const h=t._avgFieldLength[m];for(const l of _.keys()){if(!t._documentIds.has(l)){M(t,m,l,n),g-=1;continue}const p=c?c(t._documentIds.get(l),n,t._storedFields.get(l)):1;if(!p)continue;const w=_.get(l),k=t._fieldLength.get(l)[m],C=kt(w,g,t._documentCount,k,h,a),z=o*s*f*p*C,I=d.get(l);if(I){I.score+=z,vt(I.terms,e);const F=T(I.match,n);F?F.push(u):I.match[n]=[u]}else d.set(l,{score:z,terms:[e],match:{[n]:[u]}})}}return d},jt=(t,e,n)=>{const o={...t._options.searchOptions,...n},s=(o.fields??t._options.fields).reduce((h,l)=>({...h,[l]:T(o.boost,l)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:c,bm25:a}=o,{fuzzy:d,prefix:u}={...it.weights,...i},f=t._index.get(e.term),m=R(t,e.term,e.term,1,e.termBoost,f,s,r,a);let _,g;if(e.prefix&&(_=t._index.atPrefix(e.term)),e.fuzzy){const h=e.fuzzy===!0?.2:e.fuzzy,l=h<1?Math.min(c,Math.round(e.term.length*h)):h;l&&(g=t._index.fuzzyGet(e.term,l))}if(_)for(const[h,l]of _){const p=h.length-e.term.length;if(!p)continue;g?.delete(h);const w=u*h.length/(h.length+.3*p);R(t,e.term,h,w,e.termBoost,l,s,r,a,m)}if(g)for(const h of g.keys()){const[l,p]=g.get(h);if(!p)continue;const w=d*h.length/(h.length+p);R(t,e.term,h,w,e.termBoost,l,s,r,a,m)}return m},ct=(t,e,n={})=>{if(e===P)return Dt(t,n);if(typeof e!=\"string\"){const u={...n,...e,queries:void 0},f=e.queries.map(m=>ct(t,m,u));return rt(f,u.combineWith)}const{tokenize:o,processTerm:s,searchOptions:r}=t._options,i={tokenize:o,processTerm:s,...r,...n},{tokenize:c,processTerm:a}=i,d=c(e).flatMap(u=>a(u)).filter(u=>!!u).map(Ct(i)).map(u=>jt(t,u,i));return rt(d,i.combineWith)},ut=(t,e,n={})=>{const{searchOptions:o}=t._options,s={...o,...n},r=ct(t,e,n),i=[];for(const[c,{score:a,terms:d,match:u}]of r){const f=d.length||1,m={id:t._documentIds.get(c),score:a*f,terms:Object.keys(u),queryTerms:d,match:u};Object.assign(m,t._storedFields.get(c)),(s.filter==null||s.filter(m))&&i.push(m)}return e===P&&s.boostDocument==null||i.sort(tt),i},qt=(t,e,n={})=>{n={...t._options.autoSuggestOptions,...n};const o=new Map;for(const{score:r,terms:i}of ut(t,e,n)){const c=i.join(\" \"),a=o.get(c);a!=null?(a.score+=r,a.count+=1):o.set(c,{score:r,terms:i,count:1})}const s=[];for(const[r,{score:i,terms:c,count:a}]of o)s.push({suggestion:r,terms:c,score:i/a});return s.sort(tt),s};class $t{_options;_index;_documentCount;_documentIds;_idToShortId;_fieldIds;_fieldLength;_avgFieldLength;_nextId;_storedFields;_dirtCount;_currentVacuum;_enqueuedVacuum;_enqueuedVacuumConditions;constructor(e){if(!e?.fields)throw new Error('SlimSearch: option \"fields\" must be provided');const n=e.autoVacuum==null||e.autoVacuum===!0?W:e.autoVacuum;this._options={...q,...e,autoVacuum:n,searchOptions:{...it,...e.searchOptions},autoSuggestOptions:{...Tt,...e.autoSuggestOptions}},this._index=new y,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=N,this.addFields(this._options.fields)}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}get documentCount(){return this._documentCount}get termCount(){return this._index.size}toJSON(){const e=[];for(const[n,o]of this._index){const s={};for(const[r,i]of o)s[r]=Object.fromEntries(i);e.push([n,s])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,version:2}}addFields(e){for(let n=0;n<e.length;n++)this._fieldIds[e[n]]=n}}const dt=t=>`SlimSearch: ${t} should be given the same options used when serializing the index`,at=t=>new $t(t),lt=({documentCount:t,nextId:e,fieldIds:n,averageFieldLength:o,dirtCount:s,version:r},i)=>{if(r!==2)throw new Error(\"SlimSearch: cannot deserialize an index created with an incompatible version\");const c=at(i);return c._documentCount=t,c._nextId=e,c._idToShortId=new Map,c._fieldIds=n,c._avgFieldLength=o,c._dirtCount=s??0,c._index=new y,c},ht=(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=lt(t,e);i._documentIds=b(o),i._fieldLength=b(s),i._storedFields=b(r);for(const[c,a]of i._documentIds)i._idToShortId.set(a,c);for(const[c,a]of n){const d=new Map;for(const u of Object.keys(a))d.set(parseInt(u,10),b(a[u]));i._index.set(c,d)}return i},ft=async(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=lt(t,e);i._documentIds=await v(o),i._fieldLength=await v(s),i._storedFields=await v(r);for(const[a,d]of i._documentIds)i._idToShortId.set(d,a);let c=0;for(const[a,d]of n){const u=new Map;for(const f of Object.keys(d))u.set(parseInt(f,10),await v(d[f]));++c%1e3===0&&await H(0),i._index.set(a,u)}return i},Nt=(t,e)=>{if(!e)throw new Error(dt(\"loadJSONIndex\"));return ht(JSON.parse(t),e)},Wt=(t,e)=>{if(!e)throw new Error(dt(\"loadJSONIndexAsync\"));return ft(JSON.parse(t),e)},mt=(t,e)=>{if(e==null)return!0;const{minDirtCount:n=W.minDirtCount,minDirtFactor:o=W.minDirtFactor}=e;return t.dirtCount>=n&&t.dirtFactor>=o},_t=async(t,e,n)=>{const o=t._dirtCount;if(mt(t,n)){const s=e.batchSize??$.batchSize,r=e.batchWait??$.batchWait;let i=1;for(const[c,a]of t._index){for(const[d,u]of a)for(const[f]of u)t._documentIds.has(f)||(u.size<=1?a.delete(d):u.delete(f));t._index.get(c).size===0&&t._index.delete(c),i%s===0&&await new Promise(d=>setTimeout(d,r)),i+=1}t._dirtCount-=o}await null,t._currentVacuum=t._enqueuedVacuum,t._enqueuedVacuum=null},gt=(t,e,n)=>t._currentVacuum?(t._enqueuedVacuumConditions=t._enqueuedVacuumConditions&&n,t._enqueuedVacuum!=null||(t._enqueuedVacuum=t._currentVacuum.then(()=>{const o=t._enqueuedVacuumConditions;return t._enqueuedVacuumConditions=N,_t(t,e,o)})),t._enqueuedVacuum):mt(t,n)?(t._currentVacuum=_t(t,e),t._currentVacuum):Promise.resolve(),pt=t=>{if(t._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:n,batchSize:o,batchWait:s}=t._options.autoVacuum;gt(t,{batchSize:o,batchWait:s},{minDirtCount:n,minDirtFactor:e})},Pt=(t,e={})=>gt(t,e),wt=(t,e,n,o)=>{if(n===1){t._avgFieldLength[e]=0;return}const s=t._avgFieldLength[e]*n-o;t._avgFieldLength[e]=s/(n-1)},J=(t,e)=>{const n=t._idToShortId.get(e);if(n==null)throw new Error(`SlimSearch: cannot discard document with ID ${e}: it is not in the index`);t._idToShortId.delete(e),t._documentIds.delete(n),t._storedFields.delete(n),t._fieldLength.get(n)?.forEach((o,s)=>{wt(t,s,t._documentCount,o)}),t._fieldLength.delete(n),t._documentCount-=1,t._dirtCount+=1,pt(t)},Rt=(t,e)=>{const n=t._options.autoVacuum;try{t._options.autoVacuum=!1;for(const o of e)J(t,o)}finally{t._options.autoVacuum=n}pt(t)},yt=(t,e)=>{const{tokenize:n,processTerm:o,extractField:s,stringifyField:r,fields:i,idField:c}=t._options,a=s(e,c);if(a==null)throw new Error(`SlimSearch: document does not have ID field \"${c}\"`);const d=t._idToShortId.get(a);if(d==null)throw new Error(`SlimSearch: cannot remove document with ID ${a}: it is not in the index`);for(const u of i){const f=s(e,u);if(f==null)continue;const m=n(r(f,u),u),_=t._fieldIds[u],g=new Set(m).size;wt(t,_,t._documentCount,g);for(const h of m){const l=o(h,u);if(Array.isArray(l))for(const p of l)M(t,_,d,p);else l&&M(t,_,d,l)}}t._storedFields.delete(d),t._documentIds.delete(d),t._idToShortId.delete(a),t._fieldLength.delete(d),t._documentCount-=1},Jt=function(t,e){if(e)for(const n of e)yt(t,n);else{if(arguments.length>1)throw new Error(\"Expected documents to be present. Omit the argument to remove all documents.\");t._index=new y,t._documentCount=0,t._documentIds=new Map,t._idToShortId=new Map,t._fieldLength=new Map,t._avgFieldLength=[],t._storedFields=new Map,t._nextId=0}},Ut=(t,e)=>{const{idField:n,extractField:o}=t._options,s=o(e,n);J(t,s),D(t,e)};export{y as SearchableMap,P as WILDCARD,D as add,j as addAll,At as addAllAsync,qt as autoSuggest,at as createIndex,J as discard,Rt as discardAll,Mt as getDefaultValue,zt as getStoredFields,Y as has,ht as loadIndex,ft as loadIndexAsync,Nt as loadJSONIndex,Wt as loadJSONIndexAsync,yt as remove,Jt as removeAll,Ut as replace,ut as search,Pt as vacuum};\n//# sourceMappingURL=index.js.map\n",null,null,null,null,null],"names":["timeToString","time","hours","Math","floor","minutes","toString","padStart","durationToString","duration","DOT_CONFIG","colors","rounds","defaultRound","originStation","destinationStation","defaultStation","continuationFill","penWidth","continuation","continuationEdge","isVehicleEdge","edge","isTransferEdge","isAccessEdge","DotBuilder","constructor","this","lines","addHeader","push","addComment","comment","addNode","id","attrs","attrStr","Object","entries","map","k","v","join","addEdge","from","to","attrPart","addRaw","build","varint64read","lowBits","highBits","shift","b","buf","pos","assertBounds","middleByte","Error","varint64write","lo","hi","bytes","i","hasNext","byte","splitBits","hasMoreBits","TWO_PWR_32_DBL","int64FromString","dec","minus","slice","base","add1e6digit","begin","end","digit1e6","Number","negate","newBits","uInt64ToString","toUnsigned","String","mid","high","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","digit1e7","partial","length","varint32write","value","varint32read","result","readBytes","protoInt64","makeInt64Support","dv","DataView","ArrayBuffer","BigInt","getBigInt64","getBigUint64","setBigInt64","setBigUint64","globalThis","Deno","process","env","BUF_BIGINT_DISABLE","MIN","MAX","UMIN","UMAX","zero","supported","parse","bi","uParse","enc","getInt32","uEnc","setInt32","uDec","assertInt64String","assertUInt64String","bits","negative","int64ToString","test","symbol","Symbol","for","getTextEncoding","undefined","te","TextEncoder","td","TextDecoder","encodeUtf8","text","encode","decodeUtf8","decode","checkUtf8","encodeURIComponent","_","WireType","FLOAT32_MAX","FLOAT32_MIN","BinaryWriter","stack","chunks","finish","Uint8Array","len","offset","set","fork","chunk","prev","pop","uint32","byteLength","raw","tag","fieldNo","type","assertUInt32","int32","assertInt32","bool","string","float","arg","o","isNaN","isFinite","assertFloat32","buffer","setFloat32","double","setFloat64","fixed32","setUint32","sfixed32","sint32","sfixed64","view","tc","fixed64","int64","sint64","sign","uint64","BinaryReader","varint64","byteOffset","wireType","skip","start","Varint","Bit64","Bit32","LengthDelimited","StartGroup","fn","wt","EndGroup","subarray","RangeError","zze","s","getUint32","getFloat32","getFloat64","isInteger","TransferType","RouteType","transferTypeFromJSON","object","TRANSFER_TYPE_UNSPECIFIED","TRANSFER_TYPE_RECOMMENDED_TRANSFER_POINT","TRANSFER_TYPE_TIMED_TRANSFER","TRANSFER_TYPE_REQUIRES_MINIMAL_TIME","TRANSFER_TYPE_IN_SEAT_TRANSFER","UNRECOGNIZED","routeTypeFromJSON","ROUTE_TYPE_UNSPECIFIED","ROUTE_TYPE_TRAM","ROUTE_TYPE_SUBWAY","ROUTE_TYPE_RAIL","ROUTE_TYPE_BUS","ROUTE_TYPE_FERRY","ROUTE_TYPE_CABLE_TRAM","ROUTE_TYPE_AERIAL_LIFT","ROUTE_TYPE_FUNICULAR","ROUTE_TYPE_TROLLEYBUS","ROUTE_TYPE_MONORAIL","createBaseRoute","stopTimes","pickupDropOffTypes","stops","serviceRouteId","Route","message","writer","input","reader","fromJSON","isSet","bytesFromBase64","toJSON","obj","base64FromBytes","round","create","fromPartial","_a","_b","_c","_d","Transfer","destination","minTransferTime","transferTypeToJSON","TripStop","stopIndex","routeId","tripIndex","TripTransferEntry","origin","destinations","Array","isArray","e","StopAdjacency","routes","transfers","end2","ServiceRoute","name","routeTypeToJSON","Timetable","stopsAdjacency","routesAdjacency","serviceRoutes","tripContinuations","guaranteedTripTransfers","_e","b64","Buffer","bin","atob","arr","charCodeAt","forEach","fromCharCode","btoa","nbStops","nbTrips","stopIndices","Map","stopId","existingIndices","get","of","params","trips","firstTrip","stopIds","Uint32Array","stop","numStops","trip","Uint16Array","baseIndex","arrivalTime","departureTime","totalStopEntries","ceil","globalIndex","pickUp","pickUpType","dropOff","dropOffType","byteIndex","isSecondPair","serialize","getNbStops","getNbTrips","serviceRoute","arrivalAt","arrivalIndex","arrival","tripStopOffset","arrivalAtOffset","departureAtOffset","dropOffTypeAtOffset","departureFrom","departureIndex","departure","pickUpTypeFrom","dropOffTypeAt","findEarliestTrip","after","beforeTrip","min","lb","stopRouteIndices","stopRouteIndex","VALUE_MASK","MAX_VALUE","TRIP_INDEX_SHIFT","ROUTE_ID_SHIFT","STOP_INDEX_SHIFT","validateValue","isLittleEndian","STANDARD_ENDIANNESS","uint32ArrayToBytes","array","bytesToUint32Array","uint16ArrayToBytes","setUint16","bytesToUint16Array","getUint16","serializeRoutesAdjacency","protoRoutesAdjacency","route","routeData","parseTransferType","ProtoTransferType","serializeTransferType","parseRouteType","ProtoRouteType","serializeRouteType","serializeTripTransfers","tripTransfers","tripBoardingId","originStopIndex","originRouteId","originTripIndex","tripStopId","tripStop","deserializeTripTransfers","protoTripTransfer","entry","protoTripStop","ALL_TRANSPORT_MODES","Set","EMPTY_TRIP_BOARDINGS","activeStops","add","protoTimetable","transfer","assign","ProtoTimetable","fromData","data","protoStopsAdjacency","j","newTransfer","stopAdjacency","deserializeStopsAdjacency","deserializeRoutesAdjacency","protoServiceRoutes","deserializeServiceRoutesMap","isActive","has","getRoute","getTransfers","getContinuousTrips","getServiceRouteInfo","routesPassingThrough","stopData","findReachableRoutes","fromStops","transportModes","reachableRoutes","filterByMode","originStop","existingHopOnStopIndex","isTripTransferGuaranteed","fromTripStop","toTripStop","guaranteedTransfers","findFirstBoardableTrip","earliestTrip","transferTime","t","getGuaranteedTripTransfers","Query","builder","fromValue","toValue","departureTimeValue","options","optionsValue","Builder","seconds","maxTransfers","maxInitialWaitingTime","RangeQuery","super","lastDepartureTime","lastDepartureTimeValue","rangeOptions","rangeOptionsValue","optimizeBeyondLatestDeparture","legs","cumulativeAccessTime","leg","lastVehicleArrivalTime","totalTransferTime","totalDuration","abs","index","fromStop","platform","toStop","transferDetails","accessDetails","travelDetails","filter","line","trim","pickUpDropOffTypeMap","toPickupDropOffType","rawType","Result","routingState","stopsIndex","timetable","expandDestinations","targets","expanded","target","equivalentStop","equivalentStops","bestRouteToSourceStopId","sourceId","found","findStopBySourceStopId","size","bestRoute","destinationStops","fastestDestination","fastestArrivalTime","fastestLegNumber","arrivalData","getArrival","legNumber","previousVehicleEdge","currentStop","graph","boardingEdge","vehicleLeg","continuationOf","vehicleEdge","chainedEdges","buildVehicleLeg","hopOffStopIndex","buildGuaranteedTransferLeg","buildTransferLeg","buildAccessLeg","reverse","edges","firstEdge","lastEdge","firstRoute","lastRoute","findStopById","fromEdge","toEdge","fromRoute","toRoute","fromStopId","toStopId","earliestArrival","arrivalEdge","AccessFinder","collectAccessPaths","queryOrigin","fallbackMinTransferTime","equivalentOrigins","accessPaths","existingAccess","values","collectDepartureTimes","slotMap","path","searchFrom","searchTo","dep","paths","sort","a","depTime","UNREACHED_TIME","RoutingState","maxRounds","_destinationBest","reachedStops","destinationSet","earliestArrivalTimes","fill","earliestArrivalLegs","origins","r","seedAccessPaths","seededOrigins","access","destinationBest","improvementBound","_round","initRound","updateArrival","resetFor","arrivals","earliestArrivalAtAnyDestination","isDestination","fromTestData","state","dest","denseRounds","splice","PlainRouter","accessFinder","raptor","query","accessLegs","flatMap","run","RangeResult","runs","_runs","_destinations","normalizeTargets","getRoutes","targetStops","bestRun","bestArrival","latestDepartureRoute","fastestRoute","fastestRun","shortestDuration","Infinity","earliestArrivalAt","best","shortestDurationTo","shortest","allShortestDurations","durations","existing","allEarliestArrivals","iterator","RangeRaptorState","latestDeparture","roundLabels","changedInRound","setCurrentRun","currentRun","round0","changed","curr","RangeRouter","rangeRoute","earliest","latest","noDestinations","departureSlots","rangeState","paretoRuns","paretoDestBest","trivialDests","includes","trivialDestCovered","isParetoOptimal","Raptor","markedStops","edgesAtCurrentRound","clear","hopOnStopIndex","scanRoute","continuations","findTripContinuations","stopsFromContinuations","scanRouteContinuation","considerTransfers","continuousTrips","previousEdge","tripContinuation","newlyMarkedStops","currentStopIndex","edgesAtPreviousRound","activeTripIndex","activeTripBoardStopIndex","activeTripStopOffset","earliestArrivalOnPreviousRound","firstBoardableTrip","arrivalsAtCurrentRound","currentArrival","arrivalAfterTransfer","TinyQueue","compare","defaultCompare","_down","item","_up","top","bottom","peek","parent","current","halfLength","left","right","rad","PI","boxDist","lng","lat","cosLat","node","minLng","maxLng","minLat","maxLat","haverSin","haverSinDLng","extremumLat","cosDLng","atan","tan","vertexLat","haverSinDistPartial","compareDist","dist","theta","sin","cosLat1","lat1","lat2","cos","haverSinDist","lng1","lng2","ARRAY_TYPES","Int8Array","Uint8ClampedArray","Int16Array","Int32Array","Float32Array","Float64Array","KDBush","magic","versionAndType","version","ArrayType","nodeSize","numItems","max","IndexArrayType","arrayTypeIndex","indexOf","coordsByteSize","BYTES_PER_ELEMENT","idsByteSize","padCoords","ids","coords","_pos","_finished","x","y","numAdded","range","minX","minY","maxX","maxY","axis","m","within","qx","qy","r2","sqDist","select","n","z","log","exp","sd","sqrt","swapItem","swap","tmp","ax","ay","bx","by","dx","dy","U","B","L","_type","_path","_tree","keys","next","dive","backtrack","done","key","_prefix","G","c","d","u","f","g","h","l","p","w","C","I","F","_size","atPrefix","startsWith","S","A","Ft","fuzzyGet","xt","O","E","update","fetch","fromObject","delete","K","Q","St","V","Z","bt","vt","X","tt","score","et","T","prototype","hasOwnProperty","call","nt","terms","match","kt","ot","_fieldIds","_options","logger","_documentIds","st","_index","M","Lt","_fieldLength","_avgFieldLength","D","extractField","stringifyField","tokenize","processTerm","fields","idField","_idToShortId","Y","_nextId","_documentCount","Ot","storeFields","_storedFields","Et","q","split","toLowerCase","searchOptions","console","autoVacuum","it","combineWith","prefix","fuzzy","maxFuzzy","boost","weights","bm25","Tt","N","minDirtFactor","minDirtCount","W","batchSize","batchWait","P","rt","reduce","R","ct","boostDocument","Dt","queries","term","termBoost","boostTerm","Ct","jt","$t","_dirtCount","_currentVacuum","_enqueuedVacuum","_enqueuedVacuumConditions","autoSuggestOptions","addFields","isVacuuming","dirtCount","dirtFactor","documentCount","termCount","fromEntries","nextId","documentIds","fieldIds","fieldLength","averageFieldLength","storedFields","generateAccentVariants","lowerCaseTerm","alternatives","accentMap","ae","oe","ue","accents","accent","replace","LocationType","locationTypeFromJSON","LOCATION_TYPE_UNSPECIFIED","LOCATION_TYPE_SIMPLE_STOP_OR_PLATFORM","LOCATION_TYPE_STATION","LOCATION_TYPE_ENTRANCE_EXIT","LOCATION_TYPE_GENERIC_NODE","LOCATION_TYPE_BOARDING_AREA","Stop","sourceStopId","lon","children","locationType","locationTypeToJSON","_f","_g","_h","StopsMap","serializeStopsMap","serializeStop","serializeLocationType","deserializeStopsMap","protoStopsMap","intKey","deserializeStop","protoStop","parseProtoLocationType","protoLocationType","ProtoLocationType","StopsIndex","sourceStopsMap","stopsSet","stopPoints","effectiveStopId","textIndex","stopsArray","addAll","geoIndex","KDTree","ProtoStopsMap","findStopsByName","maxResults","queryTerms","search","findStopsByLocation","radius","nearestStops","maxDistance","maxHaverSinDist","midLng","midLat","nextAxis","leftNode","rightNode","candidate","around","stopPoint","stationNodeId","vehicleEdgeNodeId","transferEdgeNodeId","accessEdgeNodeId","continuationNodeId","getRoundColor","colorIndex","getStationFillColor","isOrigin","escapeDotString","str","formatStopName","escapedName","escapedPlatform","getStationInfo","getVehicleEdgeFromStopId","getVehicleEdgeToStopId","createStationNode","displayName","stopIdStr","nodeId","stationInfo","createVehicleEdge","fromNodeId","toNodeId","roundColor","routeOvalId","serviceRouteInfo","routeName","routeType","escapedRouteName","createAccessEdge","color","ovalId","createTransferEdge","transferOvalId","createContinuationEdge","fromStationId","toStationId","continuationOvalId","fromServiceRouteInfo","toServiceRouteInfo","fromRouteName","toRouteName","fromRouteType","toRouteType","fromArrivalTime","toDepartureTime","escapedFromRouteName","escapedToRouteName","escapedFromRouteType","escapedToRouteType","ovalLabel","edgePenWidth","collectStations","stations","roundEdges","collectContinuationChain","continuationEdges","currentEdge","edgeParts","collectEdges","plotDotGraph","stationNode","plainRouter","rangeRouter"],"mappings":"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","x_google_ignoreList":[2,3,4,5,21,22,23,24]}
|