minotor 11.2.1 → 11.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -3
- package/README.md +1 -0
- package/dist/cli.mjs +87 -31
- package/dist/cli.mjs.map +1 -1
- package/dist/parser.cjs.js.map +1 -1
- package/dist/parser.esm.js.map +1 -1
- package/dist/router.cjs.js +1 -1
- package/dist/router.cjs.js.map +1 -1
- package/dist/router.d.ts +2 -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/query.d.ts +20 -0
- package/dist/routing/rangeState.d.ts +2 -1
- package/dist/routing/raptor.d.ts +2 -0
- package/dist/routing/state.d.ts +11 -1
- package/dist/timetable/timetable.d.ts +2 -1
- package/package.json +1 -1
- package/src/cli/perf.ts +4 -2
- package/src/cli/repl.ts +49 -23
- package/src/router.ts +3 -0
- package/src/routing/__tests__/plainRouter.test.ts +22 -0
- package/src/routing/__tests__/rangeRouter.test.ts +22 -0
- package/src/routing/__tests__/rangeState.test.ts +88 -0
- package/src/routing/__tests__/raptor.test.ts +142 -0
- package/src/routing/plainRouter.ts +1 -0
- package/src/routing/query.ts +18 -0
- package/src/routing/rangeRouter.ts +2 -0
- package/src/routing/rangeState.ts +16 -2
- package/src/routing/raptor.ts +14 -4
- package/src/routing/state.ts +31 -1
- package/src/timetable/timetable.ts +2 -5
package/dist/router.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.esm.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","../src/routing/router.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"],"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,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],"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","Plotter","result","stationNodeId","stopId","vehicleEdgeNodeId","fromStopId","toStopId","routeId","round","transferEdgeNodeId","accessEdgeNodeId","continuationNodeId","getRoundColor","colorIndex","min","length","_a","getStationFillColor","isOrigin","isDestination","escapeDotString","str","replace","formatStopName","stop","stopsIndex","findStopById","escapedName","name","escapedPlatform","platform","getStationInfo","undefined","routingState","graph","destinations","includes","getVehicleEdgeFromStopId","route","timetable","getRoute","stopIndex","getVehicleEdgeToStopId","hopOffStopIndex","createStationNode","displayName","stopIdStr","String","nodeId","stationInfo","createVehicleEdge","fromNodeId","toNodeId","roundColor","routeOvalId","serviceRouteInfo","getServiceRouteInfo","routeName","routeType","type","departureTime","departureFrom","tripIndex","arrivalTime","arrival","escapedRouteName","createAccessEdge","color","ovalId","createTransferEdge","transferOvalId","transferTime","minTransferTime","createContinuationEdge","fromEdge","toEdge","fromStationId","toStationId","continuationOvalId","fromRoute","toRoute","fromServiceRouteInfo","toServiceRouteInfo","fromRouteName","toRouteName","_b","fromRouteType","toRouteType","fromArrivalTime","toDepartureTime","escapedFromRouteName","escapedToRouteName","escapedFromRouteType","escapedToRouteType","ovalLabel","edgePenWidth","collectStations","stations","Set","roundEdges","add","collectContinuationChain","continuationEdges","currentEdge","previousEdge","continuationOf","edgeParts","collectEdges","edges","plotDotGraph","builder","stationNode","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","mid","high","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","digit1e7","partial","varint32write","value","varint32read","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","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","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","create","fromPartial","_c","_d","Transfer","destination","transferTypeToJSON","TripStop","TripTransferEntry","origin","Array","isArray","e","StopAdjacency","routes","transfers","end2","ServiceRoute","routeTypeToJSON","Timetable","stopsAdjacency","routesAdjacency","serviceRoutes","tripContinuations","guaranteedTripTransfers","_e","b64","Buffer","bin","atob","arr","charCodeAt","forEach","fromCharCode","btoa","nbStops","nbTrips","stopIndices","Map","existingIndices","get","of","params","trips","firstTrip","stopIds","Uint32Array","numStops","trip","Uint16Array","baseIndex","totalStopEntries","ceil","globalIndex","pickUp","pickUpType","dropOff","dropOffType","byteIndex","isSecondPair","serialize","getNbStops","getNbTrips","serviceRoute","arrivalAt","arrivalIndex","tripStopOffset","arrivalAtOffset","departureAtOffset","dropOffTypeAtOffset","departureIndex","departure","pickUpTypeFrom","dropOffTypeAt","findEarliestTrip","after","beforeTrip","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","routeData","parseTransferType","ProtoTransferType","serializeTransferType","parseRouteType","ProtoRouteType","serializeRouteType","serializeTripTransfers","tripTransfers","tripBoardingId","originStopIndex","originRouteId","originTripIndex","tripStopId","tripStop","deserializeTripTransfers","protoTripTransfer","entry","protoTripStop","ALL_TRANSPORT_MODES","EMPTY_TRIP_BOARDINGS","activeStops","protoTimetable","transfer","assign","ProtoTimetable","fromData","data","protoStopsAdjacency","j","newTransfer","stopAdjacency","deserializeStopsAdjacency","deserializeRoutesAdjacency","protoServiceRoutes","deserializeServiceRoutesMap","isActive","has","getTransfers","getContinuousTrips","routesPassingThrough","stopData","findReachableRoutes","fromStops","transportModes","reachableRoutes","filterByMode","originStop","existingHopOnStopIndex","isTripTransferGuaranteed","fromTripStop","toTripStop","guaranteedTransfers","findFirstBoardableTrip","earliestTrip","t","getGuaranteedTripTransfers","Query","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","toStop","transferDetails","accessDetails","travelDetails","filter","line","trim","pickUpDropOffTypeMap","toPickupDropOffType","rawType","Result","expandDestinations","targets","expanded","target","equivalentStop","equivalentStops","bestRouteToSourceStopId","sourceId","found","findStopBySourceStopId","size","bestRoute","destinationStops","fastestDestination","fastestArrivalTime","fastestLegNumber","arrivalData","getArrival","legNumber","previousVehicleEdge","currentStop","boardingEdge","vehicleLeg","vehicleEdge","chainedEdges","buildVehicleLeg","buildGuaranteedTransferLeg","buildTransferLeg","buildAccessLeg","reverse","firstEdge","lastEdge","firstRoute","lastRoute","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","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","trivialDestCovered","isParetoOptimal","Raptor","markedStops","edgesAtCurrentRound","clear","hopOnStopIndex","scanRoute","continuations","findTripContinuations","stopsFromContinuations","scanRouteContinuation","considerTransfers","continuousTrips","tripContinuation","newlyMarkedStops","currentStopIndex","edgesAtPreviousRound","activeTripIndex","activeTripBoardStopIndex","activeTripStopOffset","earliestArrivalOnPreviousRound","firstBoardableTrip","arrivalsAtCurrentRound","currentArrival","arrivalAfterTransfer","Router","plainRouter","rangeRouter","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","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"],"mappings":"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","x_google_ignoreList":[2,3,4,5,22,23,24,25]}
|
|
1
|
+
{"version":3,"file":"router.esm.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","../src/routing/router.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"],"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,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],"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","Plotter","result","stationNodeId","stopId","vehicleEdgeNodeId","fromStopId","toStopId","routeId","round","transferEdgeNodeId","accessEdgeNodeId","continuationNodeId","getRoundColor","colorIndex","min","length","_a","getStationFillColor","isOrigin","isDestination","escapeDotString","str","replace","formatStopName","stop","stopsIndex","findStopById","escapedName","name","escapedPlatform","platform","getStationInfo","undefined","routingState","graph","destinations","includes","getVehicleEdgeFromStopId","route","timetable","getRoute","stopIndex","getVehicleEdgeToStopId","hopOffStopIndex","createStationNode","displayName","stopIdStr","String","nodeId","stationInfo","createVehicleEdge","fromNodeId","toNodeId","roundColor","routeOvalId","serviceRouteInfo","getServiceRouteInfo","routeName","routeType","type","departureTime","departureFrom","tripIndex","arrivalTime","arrival","escapedRouteName","createAccessEdge","color","ovalId","createTransferEdge","transferOvalId","transferTime","minTransferTime","createContinuationEdge","fromEdge","toEdge","fromStationId","toStationId","continuationOvalId","fromRoute","toRoute","fromServiceRouteInfo","toServiceRouteInfo","fromRouteName","toRouteName","_b","fromRouteType","toRouteType","fromArrivalTime","toDepartureTime","escapedFromRouteName","escapedToRouteName","escapedFromRouteType","escapedToRouteType","ovalLabel","edgePenWidth","collectStations","stations","Set","roundEdges","add","collectContinuationChain","continuationEdges","currentEdge","previousEdge","continuationOf","edgeParts","collectEdges","edges","plotDotGraph","builder","stationNode","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","mid","high","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","digit1e7","partial","varint32write","value","varint32read","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","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","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","create","fromPartial","_c","_d","Transfer","destination","transferTypeToJSON","TripStop","TripTransferEntry","origin","Array","isArray","e","StopAdjacency","routes","transfers","end2","ServiceRoute","routeTypeToJSON","Timetable","stopsAdjacency","routesAdjacency","serviceRoutes","tripContinuations","guaranteedTripTransfers","_e","b64","Buffer","bin","atob","arr","charCodeAt","forEach","fromCharCode","btoa","nbStops","nbTrips","stopIndices","Map","existingIndices","get","of","params","trips","firstTrip","stopIds","Uint32Array","numStops","trip","Uint16Array","baseIndex","totalStopEntries","ceil","globalIndex","pickUp","pickUpType","dropOff","dropOffType","byteIndex","isSecondPair","serialize","getNbStops","getNbTrips","serviceRoute","arrivalAt","arrivalIndex","tripStopOffset","arrivalAtOffset","departureAtOffset","dropOffTypeAtOffset","departureIndex","departure","pickUpTypeFrom","dropOffTypeAt","findEarliestTrip","after","beforeTrip","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","routeData","parseTransferType","ProtoTransferType","serializeTransferType","parseRouteType","ProtoRouteType","serializeRouteType","serializeTripTransfers","tripTransfers","tripBoardingId","originStopIndex","originRouteId","originTripIndex","tripStopId","tripStop","deserializeTripTransfers","protoTripTransfer","entry","protoTripStop","ALL_TRANSPORT_MODES","EMPTY_TRIP_BOARDINGS","activeStops","protoTimetable","transfer","assign","ProtoTimetable","fromData","data","protoStopsAdjacency","j","newTransfer","stopAdjacency","deserializeStopsAdjacency","deserializeRoutesAdjacency","protoServiceRoutes","deserializeServiceRoutesMap","isActive","has","getTransfers","getContinuousTrips","routesPassingThrough","stopData","findReachableRoutes","fromStops","transportModes","reachableRoutes","filterByMode","originStop","existingHopOnStopIndex","isTripTransferGuaranteed","fromTripStop","toTripStop","guaranteedTransfers","findFirstBoardableTrip","earliestTrip","t","getGuaranteedTripTransfers","Query","fromValue","toValue","departureTimeValue","options","optionsValue","Builder","seconds","maxTransfers","maxDuration","maxInitialWaitingTime","RangeQuery","super","lastDepartureTime","lastDepartureTimeValue","rangeOptions","rangeOptionsValue","optimizeBeyondLatestDeparture","legs","cumulativeAccessTime","leg","lastVehicleArrivalTime","totalTransferTime","totalDuration","abs","index","fromStop","toStop","transferDetails","accessDetails","travelDetails","filter","line","trim","pickUpDropOffTypeMap","toPickupDropOffType","rawType","Result","expandDestinations","targets","expanded","target","equivalentStop","equivalentStops","bestRouteToSourceStopId","sourceId","found","findStopBySourceStopId","size","bestRoute","destinationStops","fastestDestination","fastestArrivalTime","fastestLegNumber","arrivalData","getArrival","legNumber","previousVehicleEdge","currentStop","boardingEdge","vehicleLeg","vehicleEdge","chainedEdges","buildVehicleLeg","buildGuaranteedTransferLeg","buildTransferLeg","buildAccessLeg","reverse","firstEdge","lastEdge","firstRoute","lastRoute","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","maxArrivalTime","reachedStops","destinationSet","earliestArrivalTimes","fill","earliestArrivalLegs","origins","r","seedAccessPaths","seededOrigins","access","destinationBest","improvementBound","_round","initRound","updateArrival","resetFor","arrivals","earliestArrivalAtAnyDestination","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","currentRunArrival","changed","curr","RangeRouter","rangeRoute","earliest","latest","noDestinations","departureSlots","rangeState","paretoRuns","paretoDestBest","trivialDests","trivialDestCovered","isParetoOptimal","Raptor","markedStops","edgesAtCurrentRound","clear","hopOnStopIndex","scanRoute","continuations","findTripContinuations","stopsFromContinuations","scanRouteContinuation","considerTransfers","continuousTrips","tripContinuation","newlyMarkedStops","currentStopIndex","edgesAtPreviousRound","activeTripIndex","activeTripBoardStopIndex","activeTripStopOffset","earliestArrivalOnPreviousRound","firstBoardableTrip","exceedsInitialWait","exceedsMaxDuration","arrivalsAtCurrentRound","currentArrival","arrivalAfterTransfer","Router","plainRouter","rangeRouter","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","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"],"mappings":"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","x_google_ignoreList":[2,3,4,5,22,23,24,25]}
|