minotor 7.0.0 → 7.0.2
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 +2 -7
- package/dist/cli.mjs +54 -46
- package/dist/cli.mjs.map +1 -1
- package/dist/parser.cjs.js +49 -42
- package/dist/parser.cjs.js.map +1 -1
- package/dist/parser.esm.js +49 -42
- 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.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/router.d.ts +1 -1
- package/package.json +1 -1
- package/src/routing/router.ts +8 -6
- package/src/timetable/route.ts +23 -22
- package/src/timetable/time.ts +23 -9
- package/src/timetable/timetable.ts +1 -3
package/dist/router.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.esm.js","sources":["../src/routing/plotter.ts","../src/timetable/duration.ts","../node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js","../node_modules/tslib/tslib.es6.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/timetable.ts","../src/timetable/time.ts","../src/timetable/route.ts","../src/timetable/io.ts","../src/timetable/timetable.ts","../src/routing/query.ts","../src/routing/route.ts","../src/routing/result.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.mjs","../src/stops/i18n.ts","../src/stops/proto/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","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\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 (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,"\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 xt=\"ENTRIES\",B=\"KEYS\",G=\"VALUES\",g=\"\";class V{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}=z(this._path);if(z(n)===g)return{done:!1,value:this.result()};const o=e.get(z(n));return this._path.push({node:o,keys:Array.from(o.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=z(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>z(e)).filter(e=>e!==g).join(\"\")}value(){return z(this._path).node.get(g)}result(){switch(this._type){case G:return this.value();case B:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const z=t=>t[t.length-1],zt=(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 K(t,e,n,o,i,1,s,\"\"),o},K=(t,e,n,o,s,r,i,c)=>{const u=r*i;t:for(const d of t.keys())if(d===g){const a=s[u-1];a<=n&&o.set(c,[t.get(d),a])}else{let a=r;for(let h=0;h<d.length;++h,++a){const f=d[h],_=i*a,p=_-i;let l=s[_];const m=Math.max(0,a-n-1),y=Math.min(i-1,a+n);for(let w=m;w<y;++w){const C=f!==e[w],O=s[p+w]+ +C,b=s[p+w+1]+1,x=s[_+w]+1,S=s[_+w+1]=Math.min(O,b,x);S<l&&(l=S)}if(l>n)continue t}K(t.get(d),e,n,o,s,a,i,c+d)}};class I{_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]=v(this._tree,e.slice(this._prefix.length));if(n===void 0){const[s,r]=L(o);for(const i of s.keys())if(i!==g&&i.startsWith(r)){const c=new Map;return c.set(i.slice(r.length),s.get(i)),new I(c,e)}}return new I(n,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,St(this._tree,e)}entries(){return new V(this,xt)}forEach(e){for(const[n,o]of this)e(n,o,this)}fuzzyGet(e,n){return zt(this._tree,e,n)}get(e){const n=T(this._tree,e);return n!==void 0?n.get(g):void 0}has(e){return T(this._tree,e)?.has(g)??!1}keys(){return new V(this,B)}set(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");return this._size=void 0,M(this._tree,e).set(g,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=M(this._tree,e);return o.set(g,n(o.get(g))),this}fetch(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");this._size=void 0;const o=M(this._tree,e);let s=o.get(g);return s===void 0&&o.set(g,s=n()),s}values(){return new V(this,G)}[Symbol.iterator](){return this.entries()}static from(e){const n=new I;for(const[o,s]of e)n.set(o,s);return n}static fromObject(e){return I.from(Object.entries(e))}}const v=(t,e,n=[])=>{if(e.length===0||t==null)return[t,n];for(const o of t.keys())if(o!==g&&e.startsWith(o))return n.push([t,o]),v(t.get(o),e.slice(o.length),n);return n.push([t,e]),v(void 0,\"\",n)},T=(t,e)=>{if(e.length===0||!t)return t;for(const n of t.keys())if(n!==g&&e.startsWith(n))return T(t.get(n),e.slice(n.length))},M=(t,e)=>{const n=e.length;t:for(let o=0;t&&o<n;){for(const r of t.keys())if(r!==g&&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 u=t.get(r);if(c===r.length)t=u;else{const d=new Map;d.set(r.slice(c),u),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},St=(t,e)=>{const[n,o]=v(t,e);if(n!==void 0){if(n.delete(g),n.size===0)Q(o);else if(n.size===1){const[s,r]=n.entries().next().value;Y(o,s,r)}}},Q=t=>{if(t.length===0)return;const[e,n]=L(t);if(e.delete(n),e.size===0)Q(t.slice(0,-1));else if(e.size===1){const[o,s]=e.entries().next().value;o!==g&&Y(t.slice(0,-1),o,s)}},Y=(t,e,n)=>{if(t.length===0)return;const[o,s]=L(t);o.set(s+e,n),o.delete(s)},L=t=>t[t.length-1],Z=(t,e)=>t._idToShortId.has(e),bt=(t,e)=>{const n=t._idToShortId.get(e);if(n!=null)return t._storedFields.get(n)},vt=/[\\n\\r\\p{Z}\\p{P}]+/u,D=\"or\",H=\"and\",Ft=\"and_not\",X=t=>new Promise(e=>setTimeout(e,t)),kt=(t,e)=>{t.includes(e)||t.push(e)},tt=(t,e)=>{for(const n of e)t.includes(n)||t.push(n)},et=({score:t},{score:e})=>e-t,nt=()=>new Map,F=t=>{const e=new Map;for(const n of Object.keys(t))e.set(parseInt(n,10),t[n]);return e},k=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 X(0);return e},E=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0,ot={[D]:(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),tt(o.terms,r)}}return t},[H]:(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);tt(s.terms,i),n.set(o,{score:s.score+r,terms:s.terms,match:Object.assign(s.match,c)})}return n},[Ft]:(t,e)=>{for(const n of e.keys())t.delete(n);return t}},Ct=(t,e,n,o,s,r)=>{const{k:i,b:c,d:u}=r;return Math.log(1+(n-e+.5)/(e+.5))*(u+t*(i+1)/(t+i*(1-c+c*o/s)))},Ot=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}),st=(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}},it=(t,e,n,o)=>{const s=t._index.fetch(o,nt);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)}},A=(t,e,n,o)=>{if(!t._index.has(o)){st(t,n,e,o);return}const s=t._index.fetch(o,nt),r=s.get(e),i=r?.get(n);!r||typeof i>\"u\"?st(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)},Vt=(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)},Tt=(t,e)=>{const n=t._nextId;return t._idToShortId.set(e,n),t._documentIds.set(n,e),t._documentCount+=1,t._nextId+=1,n},Mt=(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)}},j=(t,e)=>{const{extractField:n,tokenize:o,processTerm:s,fields:r,idField:i}=t._options,c=n(e,i);if(c==null)throw new Error(`SlimSearch: document does not have ID field \"${i}\"`);if(Z(t,c))throw new Error(`SlimSearch: duplicate ID ${c}`);const u=Tt(t,c);Mt(t,u,e);for(const d of r){const a=n(e,d);if(a==null)continue;const h=o(a.toString(),d),f=t._fieldIds[d],_=new Set(h).size;Vt(t,u,f,t._documentCount-1,_);for(const p of h){const l=s(p,d);if(Array.isArray(l))for(const m of l)it(t,f,u,m);else l&&it(t,f,u,l)}}},q=(t,e)=>{for(const n of e)j(t,n)},Lt=(t,e,n={})=>{const{chunkSize:o=10}=n,s={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:c,promise:u},d,a)=>(c.push(d),(a+1)%o===0?{chunk:[],promise:u.then(()=>new Promise(h=>setTimeout(h,0))).then(()=>q(t,c))}:{chunk:c,promise:u}),s);return i.then(()=>q(t,r))},Dt={k:1.2,b:.7,d:.5},$={idField:\"id\",extractField:(t,e)=>t[e],tokenize:t=>t.split(vt),processTerm:t=>t.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(t,e)=>{console?.[t]?.(e)},autoVacuum:!0},rt={combineWith:D,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:Dt},Et={combineWith:H,prefix:(t,e,n)=>e===n.length-1},N={batchSize:1e3,batchWait:10},W={minDirtFactor:.1,minDirtCount:20},P={...N,...W},At=t=>{if($.hasOwnProperty(t))return E($,t);throw new Error(`SlimSearch: unknown option \"${t}\"`)},R=Symbol(\"*\"),jt=(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},ct=(t,e=D)=>{if(t.length===0)return new Map;const n=e.toLowerCase();if(!(n in ot))throw new Error(`Invalid combination operator: ${e}`);return t.reduce(ot[n])},J=(t,e,n,o,s,r,i,c,u,d=new Map)=>{if(r==null)return d;for(const a of Object.keys(i)){const h=i[a],f=t._fieldIds[a],_=r.get(f);if(_==null)continue;let p=_.size;const l=t._avgFieldLength[f];for(const m of _.keys()){if(!t._documentIds.has(m)){A(t,f,m,n),p-=1;continue}const y=c?c(t._documentIds.get(m),n,t._storedFields.get(m)):1;if(!y)continue;const w=_.get(m),C=t._fieldLength.get(m)[f],O=Ct(w,p,t._documentCount,C,l,u),b=o*s*h*y*O,x=d.get(m);if(x){x.score+=b,kt(x.terms,e);const S=E(x.match,n);S?S.push(a):x.match[n]=[a]}else d.set(m,{score:b,terms:[e],match:{[n]:[a]}})}}return d},qt=(t,e,n)=>{const o={...t._options.searchOptions,...n},s=(o.fields??t._options.fields).reduce((l,m)=>({...l,[m]:E(o.boost,m)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:c,bm25:u}=o,{fuzzy:d,prefix:a}={...rt.weights,...i},h=t._index.get(e.term),f=J(t,e.term,e.term,1,e.termBoost,h,s,r,u);let _,p;if(e.prefix&&(_=t._index.atPrefix(e.term)),e.fuzzy){const l=e.fuzzy===!0?.2:e.fuzzy,m=l<1?Math.min(c,Math.round(e.term.length*l)):l;m&&(p=t._index.fuzzyGet(e.term,m))}if(_)for(const[l,m]of _){const y=l.length-e.term.length;if(!y)continue;p?.delete(l);const w=a*l.length/(l.length+.3*y);J(t,e.term,l,w,e.termBoost,m,s,r,u,f)}if(p)for(const l of p.keys()){const[m,y]=p.get(l);if(!y)continue;const w=d*l.length/(l.length+y);J(t,e.term,l,w,e.termBoost,m,s,r,u,f)}return f},ut=(t,e,n={})=>{if(e===R)return jt(t,n);if(typeof e!=\"string\"){const a={...n,...e,queries:void 0},h=e.queries.map(f=>ut(t,f,a));return ct(h,a.combineWith)}const{tokenize:o,processTerm:s,searchOptions:r}=t._options,i={tokenize:o,processTerm:s,...r,...n},{tokenize:c,processTerm:u}=i,d=c(e).flatMap(a=>u(a)).filter(a=>!!a).map(Ot(i)).map(a=>qt(t,a,i));return ct(d,i.combineWith)},dt=(t,e,n={})=>{const{searchOptions:o}=t._options,s={...o,...n},r=ut(t,e,n),i=[];for(const[c,{score:u,terms:d,match:a}]of r){const h=d.length||1,f={id:t._documentIds.get(c),score:u*h,terms:Object.keys(a),queryTerms:d,match:a};Object.assign(f,t._storedFields.get(c)),(s.filter==null||s.filter(f))&&i.push(f)}return e===R&&s.boostDocument==null||i.sort(et),i},$t=(t,e,n={})=>{n={...t._options.autoSuggestOptions,...n};const o=new Map;for(const{score:r,terms:i}of dt(t,e,n)){const c=i.join(\" \"),u=o.get(c);u!=null?(u.score+=r,u.count+=1):o.set(c,{score:r,terms:i,count:1})}const s=[];for(const[r,{score:i,terms:c,count:u}]of o)s.push({suggestion:r,terms:c,score:i/u});return s.sort(et),s};class Nt{_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?P:e.autoVacuum;this._options={...$,...e,autoVacuum:n,searchOptions:{...rt,...e.searchOptions},autoSuggestOptions:{...Et,...e.autoSuggestOptions}},this._index=new I,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=W,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 at=t=>`SlimSearch: ${t} should be given the same options used when serializing the index`,lt=t=>new Nt(t),ht=({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=lt(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 I,c},ft=(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=ht(t,e);i._documentIds=F(o),i._fieldLength=F(s),i._storedFields=F(r);for(const[c,u]of i._documentIds)i._idToShortId.set(u,c);for(const[c,u]of n){const d=new Map;for(const a of Object.keys(u))d.set(parseInt(a,10),F(u[a]));i._index.set(c,d)}return i},mt=async(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=ht(t,e);i._documentIds=await k(o),i._fieldLength=await k(s),i._storedFields=await k(r);for(const[u,d]of i._documentIds)i._idToShortId.set(d,u);let c=0;for(const[u,d]of n){const a=new Map;for(const h of Object.keys(d))a.set(parseInt(h,10),await k(d[h]));++c%1e3===0&&await X(0),i._index.set(u,a)}return i},Wt=(t,e)=>{if(!e)throw new Error(at(\"loadJSONIndex\"));return ft(JSON.parse(t),e)},Pt=(t,e)=>{if(!e)throw new Error(at(\"loadJSONIndexAsync\"));return mt(JSON.parse(t),e)},_t=(t,e)=>{if(e==null)return!0;const{minDirtCount:n=P.minDirtCount,minDirtFactor:o=P.minDirtFactor}=e;return t.dirtCount>=n&&t.dirtFactor>=o},gt=async(t,e,n)=>{const o=t._dirtCount;if(_t(t,n)){const s=e.batchSize??N.batchSize,r=e.batchWait??N.batchWait;let i=1;for(const[c,u]of t._index){for(const[d,a]of u)for(const[h]of a)t._documentIds.has(h)||(a.size<=1?u.delete(d):a.delete(h));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},pt=(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=W,gt(t,e,o)})),t._enqueuedVacuum):_t(t,n)?(t._currentVacuum=gt(t,e),t._currentVacuum):Promise.resolve(),wt=t=>{if(t._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:n,batchSize:o,batchWait:s}=t._options.autoVacuum;pt(t,{batchSize:o,batchWait:s},{minDirtCount:n,minDirtFactor:e})},Rt=(t,e={})=>pt(t,e),yt=(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)},U=(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)=>{yt(t,s,t._documentCount,o)}),t._fieldLength.delete(n),t._documentCount-=1,t._dirtCount+=1,wt(t)},Jt=(t,e)=>{const n=t._options.autoVacuum;try{t._options.autoVacuum=!1;for(const o of e)U(t,o)}finally{t._options.autoVacuum=n}wt(t)},It=(t,e)=>{const{tokenize:n,processTerm:o,extractField:s,fields:r,idField:i}=t._options,c=s(e,i);if(c==null)throw new Error(`SlimSearch: document does not have ID field \"${i}\"`);const u=t._idToShortId.get(c);if(u==null)throw new Error(`SlimSearch: cannot remove document with ID ${c}: it is not in the index`);for(const d of r){const a=s(e,d);if(a==null)continue;const h=n(a.toString(),d),f=t._fieldIds[d],_=new Set(h).size;yt(t,f,t._documentCount,_);for(const p of h){const l=o(p,d);if(Array.isArray(l))for(const m of l)A(t,f,u,m);else l&&A(t,f,u,l)}}t._storedFields.delete(u),t._documentIds.delete(u),t._idToShortId.delete(c),t._fieldLength.delete(u),t._documentCount-=1},Ut=function(t,e){if(e)for(const n of e)It(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 I,t._documentCount=0,t._documentIds=new Map,t._idToShortId=new Map,t._fieldLength=new Map,t._avgFieldLength=[],t._storedFields=new Map,t._nextId=0}},Bt=(t,e)=>{const{idField:n,extractField:o}=t._options,s=o(e,n);U(t,s),j(t,e)};export{I as SearchableMap,R as WILDCARD,j as add,q as addAll,Lt as addAllAsync,$t as autoSuggest,lt as createIndex,U as discard,Jt as discardAll,At as getDefaultValue,bt as getStoredFields,Z as has,ft as loadIndex,mt as loadIndexAsync,Wt as loadJSONIndex,Pt as loadJSONIndexAsync,It as remove,Ut as removeAll,Bt as replace,dt as search,Rt as vacuum};\n//# sourceMappingURL=index.mjs.map\n",null,null,null,null],"names":["Plotter","constructor","result","this","plotDotGraph","earliestArrivalsPerRound","dotParts","forEach","arrivalsInRound","round","tripLeg","origin","leg","fromStop","findStopById","from","id","toStop","to","originStop","fromName","platform","name","toName","originName","isVehicle","routeLabelContent","route","departureTime","toString","arrivalTime","minTransferTime","intermediateNode","lineColor","labelColor","push","replace","join","Duration","totalSeconds","fromSeconds","seconds","fromMinutes","minutes","zero","hours","Math","floor","padStart","toSeconds","add","other","subtract","max","varint64read","lowBits","highBits","shift","b","buf","pos","assertBounds","middleByte","Error","varint64write","lo","hi","bytes","i","hasNext","byte","splitBits","hasMoreBits","SuppressedError","TWO_PWR_32_DBL","int64FromString","dec","minus","slice","base","add1e6digit","begin","end","digit1e6","Number","negate","newBits","uInt64ToString","toUnsigned","String","mid","high","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","digit1e7","partial","length","varint32write","value","varint32read","readBytes","protoInt64","makeInt64Support","dv","DataView","ArrayBuffer","BigInt","getBigInt64","getBigUint64","setBigInt64","setBigUint64","process","env","BUF_BIGINT_DISABLE","MIN","MAX","UMIN","UMAX","supported","parse","bi","uParse","enc","getInt32","uEnc","setInt32","uDec","assertInt64String","assertUInt64String","bits","negative","int64ToString","test","symbol","Symbol","for","getTextEncoding","undefined","globalThis","te","TextEncoder","td","TextDecoder","encodeUtf8","text","encode","decodeUtf8","decode","checkUtf8","encodeURIComponent","_","WireType","FLOAT32_MAX","FLOAT32_MIN","BinaryWriter","stack","chunks","finish","Uint8Array","len","offset","set","fork","chunk","prev","pop","uint32","byteLength","raw","tag","fieldNo","type","assertUInt32","int32","assertInt32","bool","string","float","arg","o","isNaN","isFinite","assertFloat32","buffer","setFloat32","double","setFloat64","fixed32","setUint32","sfixed32","sint32","sfixed64","view","tc","fixed64","int64","sint64","sign","uint64","BinaryReader","varint64","byteOffset","wireType","skip","start","Varint","Bit64","Bit32","LengthDelimited","StartGroup","fn","wt","EndGroup","subarray","RangeError","zze","s","getUint32","getFloat32","getFloat64","isInteger","TransferType","RouteType","transferTypeFromJSON","object","RECOMMENDED_TRANSFER_POINT","TIMED_TRANSFER","REQUIRES_MINIMAL_TIME","IN_SEAT_TRANSFER","UNRECOGNIZED","routeTypeFromJSON","TRAM","SUBWAY","RAIL","BUS","FERRY","CABLE_TRAM","AERIAL_LIFT","FUNICULAR","TROLLEYBUS","MONORAIL","createBaseRoute","stopTimes","pickUpDropOffTypes","stops","serviceRouteId","Route","message","writer","input","reader","fromJSON","isSet","bytesFromBase64","toJSON","obj","base64FromBytes","create","fromPartial","_a","_b","_c","_d","Transfer","destination","transferTypeToJSON","StopAdjacency","v","transfers","routes","end2","Array","isArray","map","e","ServiceRoute","routeTypeToJSON","Timetable","version","stopsAdjacency","routesAdjacency","serviceRoutes","b64","Buffer","bin","atob","arr","charCodeAt","fromCharCode","btoa","Time","infinity","MAX_SAFE_INTEGER","minutesSinceMidnight","fromHMS","roundedMinutes","fromHM","fromDate","date","getHours","getMinutes","getSeconds","fromString","timeStr","hoursStr","minutesStr","secondsStr","split","trim","parseInt","toMinutes","plus","duration","diff","otherTime","totalMinutes","abs","times","reduce","maxTime","currentTime","isAfter","min","minTime","isBefore","equals","pickUpDropOffTypeMap","toPickupDropOffType","numericalType","nbStops","nbTrips","stopIndices","Map","serialize","stopA","stopB","stopAIndex","get","stopBIndex","getNbStops","serviceRoute","arrivalAt","stopId","tripIndex","arrivalIndex","stopIndex","arrival","departureFrom","departureIndex","departure","pickUpTypeFrom","globalIndex","byteIndex","isSecondPair","dropOffTypeAt","findEarliestTrip","after","beforeTrip","maxTripIndex","earliestTripIndex","lowTrip","highTrip","midTrip","pickUpType","isLittleEndian","STANDARD_ENDIANNESS","uint32ArrayToBytes","array","bytesToUint32Array","Uint32Array","uint16ArrayToBytes","setUint16","bytesToUint16Array","Uint16Array","getUint16","serializeRoutesAdjacency","protoRoutesAdjacency","routeData","parseTransferType","ProtoTransferType","serializeTransferType","parseRouteType","ProtoRouteType","serializeRouteType","ALL_TRANSPORT_MODES","Set","CURRENT_VERSION","activeStops","stop","protoTimetable","transfer","Object","assign","ProtoTimetable","fromData","data","protoStopsAdjacency","j","newTransfer","deserializeStopsAdjacency","deserializeRoutesAdjacency","protoServiceRoutes","deserializeServiceRoutesMap","isActive","has","getRoute","routeId","getTransfers","getServiceRouteInfo","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__rest","routesPassingThrough","stopData","findReachableRoutes","fromStops","transportModes","reachableRoutes","fromStopsArray","validRoutes","filter","hopOnStop","Query","builder","fromValue","toValue","departureTimeValue","options","optionsValue","Builder","maxTransfers","build","legs","cumulativeTransferTime","lastVehicleArrivalTime","totalTransferTime","vehicleLegFound","totalDuration","index","transferDetails","travelDetails","line","asJson","sourceStopId","Result","query","earliestArrivals","stopsIndex","bestRoute","destinations","flatMap","equivalentStops","fastestDestination","fastestTime","currentStop","legNumber","unshift","earliestArrival","relevantArrivals","equivalentStop","UNREACHED","Router","timetable","considerTransfers","markedStops","arrivalsAtCurrentRound","newlyMarkedStops","markedStopsArray","currentArrival","previousLeg","transferTime","arrivalAfterTransfer","originalArrival","newlyMarkedStopsArray","newStop","earliestArrivalAtAnyStop","earliestArrivalAtAnyDestination","origins","earliestArrivalsWithoutAnyLeg","arrivalsAtPreviousRound","clear","reachableRoutesArray","entries","currentTrip","currentArrivalTime","currentDropOffType","earliestArrivalAtCurrentStop","bestHopOnDepartureTime","bestHopOnStop","earliestArrivalOnPreviousRound","earliestTrip","_e","size","TinyQueue","compare","defaultCompare","_down","item","_up","top","bottom","peek","parent","current","halfLength","left","best","right","a","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","ArrayType","nodeSize","numItems","IndexArrayType","arrayTypeIndex","coordsByteSize","BYTES_PER_ELEMENT","idsByteSize","padCoords","ids","coords","_pos","_finished","x","y","numAdded","sort","range","minX","minY","maxX","maxY","axis","m","within","qx","qy","r","r2","sqDist","select","k","n","z","log","exp","sd","sqrt","swapItem","swap","tmp","ax","ay","bx","by","dx","dy","B","G","g","V","_type","_path","_tree","keys","next","dive","backtrack","done","key","_prefix","iterator","K","c","u","d","h","f","l","w","C","O","S","I","_size","atPrefix","startsWith","L","St","fuzzyGet","fill","zt","T","M","update","fetch","values","fromObject","delete","Q","Y","vt","D","H","Ft","kt","includes","tt","et","score","nt","E","ot","terms","match","Ct","st","_fieldIds","_options","logger","_documentIds","it","_index","A","Vt","_fieldLength","_avgFieldLength","extractField","tokenize","processTerm","fields","idField","_idToShortId","Z","_nextId","_documentCount","Tt","storeFields","_storedFields","Mt","$","toLowerCase","searchOptions","console","autoVacuum","rt","combineWith","prefix","fuzzy","maxFuzzy","boost","weights","bm25","Et","W","minDirtFactor","minDirtCount","P","batchSize","batchWait","R","ct","J","ut","boostDocument","jt","queries","term","termBoost","boostTerm","Ot","qt","Nt","_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","SIMPLE_STOP_OR_PLATFORM","STATION","ENTRANCE_EXIT","GENERIC_NODE","BOARDING_AREA","Stop","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","Infinity","maxDistance","maxHaverSinDist","q","midLng","midLat","nextAxis","leftNode","rightNode","candidate","around","stopPoint","findStopBySourceStopId","sourceId"],"mappings":"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","x_google_ignoreList":[2,3,4,5,6,16,17,18,19]}
|
|
1
|
+
{"version":3,"file":"router.esm.js","sources":["../src/routing/plotter.ts","../src/timetable/duration.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/timetable.ts","../src/timetable/time.ts","../src/timetable/route.ts","../src/timetable/io.ts","../src/timetable/timetable.ts","../src/routing/query.ts","../src/routing/route.ts","../src/routing/result.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.mjs","../src/stops/i18n.ts","../src/stops/proto/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 (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,"\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 xt=\"ENTRIES\",B=\"KEYS\",G=\"VALUES\",g=\"\";class V{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}=z(this._path);if(z(n)===g)return{done:!1,value:this.result()};const o=e.get(z(n));return this._path.push({node:o,keys:Array.from(o.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=z(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>z(e)).filter(e=>e!==g).join(\"\")}value(){return z(this._path).node.get(g)}result(){switch(this._type){case G:return this.value();case B:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const z=t=>t[t.length-1],zt=(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 K(t,e,n,o,i,1,s,\"\"),o},K=(t,e,n,o,s,r,i,c)=>{const u=r*i;t:for(const d of t.keys())if(d===g){const a=s[u-1];a<=n&&o.set(c,[t.get(d),a])}else{let a=r;for(let h=0;h<d.length;++h,++a){const f=d[h],_=i*a,p=_-i;let l=s[_];const m=Math.max(0,a-n-1),y=Math.min(i-1,a+n);for(let w=m;w<y;++w){const C=f!==e[w],O=s[p+w]+ +C,b=s[p+w+1]+1,x=s[_+w]+1,S=s[_+w+1]=Math.min(O,b,x);S<l&&(l=S)}if(l>n)continue t}K(t.get(d),e,n,o,s,a,i,c+d)}};class I{_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]=v(this._tree,e.slice(this._prefix.length));if(n===void 0){const[s,r]=L(o);for(const i of s.keys())if(i!==g&&i.startsWith(r)){const c=new Map;return c.set(i.slice(r.length),s.get(i)),new I(c,e)}}return new I(n,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,St(this._tree,e)}entries(){return new V(this,xt)}forEach(e){for(const[n,o]of this)e(n,o,this)}fuzzyGet(e,n){return zt(this._tree,e,n)}get(e){const n=T(this._tree,e);return n!==void 0?n.get(g):void 0}has(e){return T(this._tree,e)?.has(g)??!1}keys(){return new V(this,B)}set(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");return this._size=void 0,M(this._tree,e).set(g,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=M(this._tree,e);return o.set(g,n(o.get(g))),this}fetch(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");this._size=void 0;const o=M(this._tree,e);let s=o.get(g);return s===void 0&&o.set(g,s=n()),s}values(){return new V(this,G)}[Symbol.iterator](){return this.entries()}static from(e){const n=new I;for(const[o,s]of e)n.set(o,s);return n}static fromObject(e){return I.from(Object.entries(e))}}const v=(t,e,n=[])=>{if(e.length===0||t==null)return[t,n];for(const o of t.keys())if(o!==g&&e.startsWith(o))return n.push([t,o]),v(t.get(o),e.slice(o.length),n);return n.push([t,e]),v(void 0,\"\",n)},T=(t,e)=>{if(e.length===0||!t)return t;for(const n of t.keys())if(n!==g&&e.startsWith(n))return T(t.get(n),e.slice(n.length))},M=(t,e)=>{const n=e.length;t:for(let o=0;t&&o<n;){for(const r of t.keys())if(r!==g&&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 u=t.get(r);if(c===r.length)t=u;else{const d=new Map;d.set(r.slice(c),u),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},St=(t,e)=>{const[n,o]=v(t,e);if(n!==void 0){if(n.delete(g),n.size===0)Q(o);else if(n.size===1){const[s,r]=n.entries().next().value;Y(o,s,r)}}},Q=t=>{if(t.length===0)return;const[e,n]=L(t);if(e.delete(n),e.size===0)Q(t.slice(0,-1));else if(e.size===1){const[o,s]=e.entries().next().value;o!==g&&Y(t.slice(0,-1),o,s)}},Y=(t,e,n)=>{if(t.length===0)return;const[o,s]=L(t);o.set(s+e,n),o.delete(s)},L=t=>t[t.length-1],Z=(t,e)=>t._idToShortId.has(e),bt=(t,e)=>{const n=t._idToShortId.get(e);if(n!=null)return t._storedFields.get(n)},vt=/[\\n\\r\\p{Z}\\p{P}]+/u,D=\"or\",H=\"and\",Ft=\"and_not\",X=t=>new Promise(e=>setTimeout(e,t)),kt=(t,e)=>{t.includes(e)||t.push(e)},tt=(t,e)=>{for(const n of e)t.includes(n)||t.push(n)},et=({score:t},{score:e})=>e-t,nt=()=>new Map,F=t=>{const e=new Map;for(const n of Object.keys(t))e.set(parseInt(n,10),t[n]);return e},k=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 X(0);return e},E=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0,ot={[D]:(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),tt(o.terms,r)}}return t},[H]:(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);tt(s.terms,i),n.set(o,{score:s.score+r,terms:s.terms,match:Object.assign(s.match,c)})}return n},[Ft]:(t,e)=>{for(const n of e.keys())t.delete(n);return t}},Ct=(t,e,n,o,s,r)=>{const{k:i,b:c,d:u}=r;return Math.log(1+(n-e+.5)/(e+.5))*(u+t*(i+1)/(t+i*(1-c+c*o/s)))},Ot=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}),st=(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}},it=(t,e,n,o)=>{const s=t._index.fetch(o,nt);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)}},A=(t,e,n,o)=>{if(!t._index.has(o)){st(t,n,e,o);return}const s=t._index.fetch(o,nt),r=s.get(e),i=r?.get(n);!r||typeof i>\"u\"?st(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)},Vt=(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)},Tt=(t,e)=>{const n=t._nextId;return t._idToShortId.set(e,n),t._documentIds.set(n,e),t._documentCount+=1,t._nextId+=1,n},Mt=(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)}},j=(t,e)=>{const{extractField:n,tokenize:o,processTerm:s,fields:r,idField:i}=t._options,c=n(e,i);if(c==null)throw new Error(`SlimSearch: document does not have ID field \"${i}\"`);if(Z(t,c))throw new Error(`SlimSearch: duplicate ID ${c}`);const u=Tt(t,c);Mt(t,u,e);for(const d of r){const a=n(e,d);if(a==null)continue;const h=o(a.toString(),d),f=t._fieldIds[d],_=new Set(h).size;Vt(t,u,f,t._documentCount-1,_);for(const p of h){const l=s(p,d);if(Array.isArray(l))for(const m of l)it(t,f,u,m);else l&&it(t,f,u,l)}}},q=(t,e)=>{for(const n of e)j(t,n)},Lt=(t,e,n={})=>{const{chunkSize:o=10}=n,s={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:c,promise:u},d,a)=>(c.push(d),(a+1)%o===0?{chunk:[],promise:u.then(()=>new Promise(h=>setTimeout(h,0))).then(()=>q(t,c))}:{chunk:c,promise:u}),s);return i.then(()=>q(t,r))},Dt={k:1.2,b:.7,d:.5},$={idField:\"id\",extractField:(t,e)=>t[e],tokenize:t=>t.split(vt),processTerm:t=>t.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(t,e)=>{console?.[t]?.(e)},autoVacuum:!0},rt={combineWith:D,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:Dt},Et={combineWith:H,prefix:(t,e,n)=>e===n.length-1},N={batchSize:1e3,batchWait:10},W={minDirtFactor:.1,minDirtCount:20},P={...N,...W},At=t=>{if($.hasOwnProperty(t))return E($,t);throw new Error(`SlimSearch: unknown option \"${t}\"`)},R=Symbol(\"*\"),jt=(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},ct=(t,e=D)=>{if(t.length===0)return new Map;const n=e.toLowerCase();if(!(n in ot))throw new Error(`Invalid combination operator: ${e}`);return t.reduce(ot[n])},J=(t,e,n,o,s,r,i,c,u,d=new Map)=>{if(r==null)return d;for(const a of Object.keys(i)){const h=i[a],f=t._fieldIds[a],_=r.get(f);if(_==null)continue;let p=_.size;const l=t._avgFieldLength[f];for(const m of _.keys()){if(!t._documentIds.has(m)){A(t,f,m,n),p-=1;continue}const y=c?c(t._documentIds.get(m),n,t._storedFields.get(m)):1;if(!y)continue;const w=_.get(m),C=t._fieldLength.get(m)[f],O=Ct(w,p,t._documentCount,C,l,u),b=o*s*h*y*O,x=d.get(m);if(x){x.score+=b,kt(x.terms,e);const S=E(x.match,n);S?S.push(a):x.match[n]=[a]}else d.set(m,{score:b,terms:[e],match:{[n]:[a]}})}}return d},qt=(t,e,n)=>{const o={...t._options.searchOptions,...n},s=(o.fields??t._options.fields).reduce((l,m)=>({...l,[m]:E(o.boost,m)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:c,bm25:u}=o,{fuzzy:d,prefix:a}={...rt.weights,...i},h=t._index.get(e.term),f=J(t,e.term,e.term,1,e.termBoost,h,s,r,u);let _,p;if(e.prefix&&(_=t._index.atPrefix(e.term)),e.fuzzy){const l=e.fuzzy===!0?.2:e.fuzzy,m=l<1?Math.min(c,Math.round(e.term.length*l)):l;m&&(p=t._index.fuzzyGet(e.term,m))}if(_)for(const[l,m]of _){const y=l.length-e.term.length;if(!y)continue;p?.delete(l);const w=a*l.length/(l.length+.3*y);J(t,e.term,l,w,e.termBoost,m,s,r,u,f)}if(p)for(const l of p.keys()){const[m,y]=p.get(l);if(!y)continue;const w=d*l.length/(l.length+y);J(t,e.term,l,w,e.termBoost,m,s,r,u,f)}return f},ut=(t,e,n={})=>{if(e===R)return jt(t,n);if(typeof e!=\"string\"){const a={...n,...e,queries:void 0},h=e.queries.map(f=>ut(t,f,a));return ct(h,a.combineWith)}const{tokenize:o,processTerm:s,searchOptions:r}=t._options,i={tokenize:o,processTerm:s,...r,...n},{tokenize:c,processTerm:u}=i,d=c(e).flatMap(a=>u(a)).filter(a=>!!a).map(Ot(i)).map(a=>qt(t,a,i));return ct(d,i.combineWith)},dt=(t,e,n={})=>{const{searchOptions:o}=t._options,s={...o,...n},r=ut(t,e,n),i=[];for(const[c,{score:u,terms:d,match:a}]of r){const h=d.length||1,f={id:t._documentIds.get(c),score:u*h,terms:Object.keys(a),queryTerms:d,match:a};Object.assign(f,t._storedFields.get(c)),(s.filter==null||s.filter(f))&&i.push(f)}return e===R&&s.boostDocument==null||i.sort(et),i},$t=(t,e,n={})=>{n={...t._options.autoSuggestOptions,...n};const o=new Map;for(const{score:r,terms:i}of dt(t,e,n)){const c=i.join(\" \"),u=o.get(c);u!=null?(u.score+=r,u.count+=1):o.set(c,{score:r,terms:i,count:1})}const s=[];for(const[r,{score:i,terms:c,count:u}]of o)s.push({suggestion:r,terms:c,score:i/u});return s.sort(et),s};class Nt{_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?P:e.autoVacuum;this._options={...$,...e,autoVacuum:n,searchOptions:{...rt,...e.searchOptions},autoSuggestOptions:{...Et,...e.autoSuggestOptions}},this._index=new I,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=W,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 at=t=>`SlimSearch: ${t} should be given the same options used when serializing the index`,lt=t=>new Nt(t),ht=({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=lt(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 I,c},ft=(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=ht(t,e);i._documentIds=F(o),i._fieldLength=F(s),i._storedFields=F(r);for(const[c,u]of i._documentIds)i._idToShortId.set(u,c);for(const[c,u]of n){const d=new Map;for(const a of Object.keys(u))d.set(parseInt(a,10),F(u[a]));i._index.set(c,d)}return i},mt=async(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=ht(t,e);i._documentIds=await k(o),i._fieldLength=await k(s),i._storedFields=await k(r);for(const[u,d]of i._documentIds)i._idToShortId.set(d,u);let c=0;for(const[u,d]of n){const a=new Map;for(const h of Object.keys(d))a.set(parseInt(h,10),await k(d[h]));++c%1e3===0&&await X(0),i._index.set(u,a)}return i},Wt=(t,e)=>{if(!e)throw new Error(at(\"loadJSONIndex\"));return ft(JSON.parse(t),e)},Pt=(t,e)=>{if(!e)throw new Error(at(\"loadJSONIndexAsync\"));return mt(JSON.parse(t),e)},_t=(t,e)=>{if(e==null)return!0;const{minDirtCount:n=P.minDirtCount,minDirtFactor:o=P.minDirtFactor}=e;return t.dirtCount>=n&&t.dirtFactor>=o},gt=async(t,e,n)=>{const o=t._dirtCount;if(_t(t,n)){const s=e.batchSize??N.batchSize,r=e.batchWait??N.batchWait;let i=1;for(const[c,u]of t._index){for(const[d,a]of u)for(const[h]of a)t._documentIds.has(h)||(a.size<=1?u.delete(d):a.delete(h));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},pt=(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=W,gt(t,e,o)})),t._enqueuedVacuum):_t(t,n)?(t._currentVacuum=gt(t,e),t._currentVacuum):Promise.resolve(),wt=t=>{if(t._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:n,batchSize:o,batchWait:s}=t._options.autoVacuum;pt(t,{batchSize:o,batchWait:s},{minDirtCount:n,minDirtFactor:e})},Rt=(t,e={})=>pt(t,e),yt=(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)},U=(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)=>{yt(t,s,t._documentCount,o)}),t._fieldLength.delete(n),t._documentCount-=1,t._dirtCount+=1,wt(t)},Jt=(t,e)=>{const n=t._options.autoVacuum;try{t._options.autoVacuum=!1;for(const o of e)U(t,o)}finally{t._options.autoVacuum=n}wt(t)},It=(t,e)=>{const{tokenize:n,processTerm:o,extractField:s,fields:r,idField:i}=t._options,c=s(e,i);if(c==null)throw new Error(`SlimSearch: document does not have ID field \"${i}\"`);const u=t._idToShortId.get(c);if(u==null)throw new Error(`SlimSearch: cannot remove document with ID ${c}: it is not in the index`);for(const d of r){const a=s(e,d);if(a==null)continue;const h=n(a.toString(),d),f=t._fieldIds[d],_=new Set(h).size;yt(t,f,t._documentCount,_);for(const p of h){const l=o(p,d);if(Array.isArray(l))for(const m of l)A(t,f,u,m);else l&&A(t,f,u,l)}}t._storedFields.delete(u),t._documentIds.delete(u),t._idToShortId.delete(c),t._fieldLength.delete(u),t._documentCount-=1},Ut=function(t,e){if(e)for(const n of e)It(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 I,t._documentCount=0,t._documentIds=new Map,t._idToShortId=new Map,t._fieldLength=new Map,t._avgFieldLength=[],t._storedFields=new Map,t._nextId=0}},Bt=(t,e)=>{const{idField:n,extractField:o}=t._options,s=o(e,n);U(t,s),j(t,e)};export{I as SearchableMap,R as WILDCARD,j as add,q as addAll,Lt as addAllAsync,$t as autoSuggest,lt as createIndex,U as discard,Jt as discardAll,At as getDefaultValue,bt as getStoredFields,Z as has,ft as loadIndex,mt as loadIndexAsync,Wt as loadJSONIndex,Pt as loadJSONIndexAsync,It as remove,Ut as removeAll,Bt as replace,dt as search,Rt as vacuum};\n//# sourceMappingURL=index.mjs.map\n",null,null,null,null],"names":["Plotter","constructor","result","this","plotDotGraph","earliestArrivalsPerRound","dotParts","forEach","arrivalsInRound","round","tripLeg","origin","leg","fromStop","findStopById","from","id","toStop","to","originStop","fromName","platform","name","toName","originName","isVehicle","routeLabelContent","route","departureTime","toString","arrivalTime","minTransferTime","intermediateNode","lineColor","labelColor","push","replace","join","Duration","totalSeconds","fromSeconds","seconds","fromMinutes","minutes","zero","hours","Math","floor","padStart","toSeconds","add","other","subtract","max","varint64read","lowBits","highBits","shift","b","buf","pos","assertBounds","middleByte","Error","varint64write","lo","hi","bytes","i","hasNext","byte","splitBits","hasMoreBits","TWO_PWR_32_DBL","int64FromString","dec","minus","slice","base","add1e6digit","begin","end","digit1e6","Number","negate","newBits","uInt64ToString","toUnsigned","String","mid","high","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","digit1e7","partial","length","varint32write","value","varint32read","readBytes","protoInt64","makeInt64Support","dv","DataView","ArrayBuffer","BigInt","getBigInt64","getBigUint64","setBigInt64","setBigUint64","process","env","BUF_BIGINT_DISABLE","MIN","MAX","UMIN","UMAX","supported","parse","bi","uParse","enc","getInt32","uEnc","setInt32","uDec","assertInt64String","assertUInt64String","bits","negative","int64ToString","test","symbol","Symbol","for","getTextEncoding","undefined","globalThis","te","TextEncoder","td","TextDecoder","encodeUtf8","text","encode","decodeUtf8","decode","checkUtf8","encodeURIComponent","_","WireType","FLOAT32_MAX","FLOAT32_MIN","BinaryWriter","stack","chunks","finish","Uint8Array","len","offset","set","fork","chunk","prev","pop","uint32","byteLength","raw","tag","fieldNo","type","assertUInt32","int32","assertInt32","bool","string","float","arg","o","isNaN","isFinite","assertFloat32","buffer","setFloat32","double","setFloat64","fixed32","setUint32","sfixed32","sint32","sfixed64","view","tc","fixed64","int64","sint64","sign","uint64","BinaryReader","varint64","byteOffset","wireType","skip","start","Varint","Bit64","Bit32","LengthDelimited","StartGroup","fn","wt","EndGroup","subarray","RangeError","zze","s","getUint32","getFloat32","getFloat64","isInteger","TransferType","RouteType","transferTypeFromJSON","object","RECOMMENDED_TRANSFER_POINT","TIMED_TRANSFER","REQUIRES_MINIMAL_TIME","IN_SEAT_TRANSFER","UNRECOGNIZED","routeTypeFromJSON","TRAM","SUBWAY","RAIL","BUS","FERRY","CABLE_TRAM","AERIAL_LIFT","FUNICULAR","TROLLEYBUS","MONORAIL","createBaseRoute","stopTimes","pickUpDropOffTypes","stops","serviceRouteId","Route","message","writer","input","reader","fromJSON","isSet","bytesFromBase64","toJSON","obj","base64FromBytes","create","fromPartial","_a","_b","_c","_d","Transfer","destination","transferTypeToJSON","StopAdjacency","v","transfers","routes","end2","Array","isArray","map","e","ServiceRoute","routeTypeToJSON","Timetable","version","stopsAdjacency","routesAdjacency","serviceRoutes","b64","Buffer","bin","atob","arr","charCodeAt","fromCharCode","btoa","Time","infinity","MAX_SAFE_INTEGER","minutesSinceMidnight","fromHMS","roundedMinutes","fromHM","fromDate","date","getHours","getMinutes","getSeconds","fromString","timeStr","hoursStr","minutesStr","secondsStr","split","trim","parseInt","toMinutes","plus","duration","diff","otherTime","totalMinutes","abs","times","maxTime","min","minTime","isAfter","isBefore","equals","pickUpDropOffTypeMap","toPickupDropOffType","numericalType","nbStops","nbTrips","stopIndices","Map","serialize","stopA","stopB","stopAIndex","get","stopBIndex","getNbStops","serviceRoute","arrivalAt","stopId","tripIndex","arrivalIndex","stopIndex","arrival","departureFrom","departureIndex","departure","pickUpTypeFrom","globalIndex","byteIndex","isSecondPair","dropOffTypeAt","findEarliestTrip","after","beforeTrip","lb","t","isLittleEndian","STANDARD_ENDIANNESS","uint32ArrayToBytes","array","bytesToUint32Array","Uint32Array","uint16ArrayToBytes","setUint16","bytesToUint16Array","Uint16Array","getUint16","serializeRoutesAdjacency","protoRoutesAdjacency","routeData","parseTransferType","ProtoTransferType","serializeTransferType","parseRouteType","ProtoRouteType","serializeRouteType","ALL_TRANSPORT_MODES","Set","CURRENT_VERSION","activeStops","stop","protoTimetable","transfer","Object","assign","ProtoTimetable","fromData","data","protoStopsAdjacency","j","newTransfer","deserializeStopsAdjacency","deserializeRoutesAdjacency","protoServiceRoutes","deserializeServiceRoutesMap","isActive","has","getRoute","routeId","getTransfers","getServiceRouteInfo","routesPassingThrough","stopData","findReachableRoutes","fromStops","transportModes","reachableRoutes","fromStopsArray","validRoutes","filter","hopOnStop","Query","builder","fromValue","toValue","departureTimeValue","options","optionsValue","Builder","maxTransfers","build","legs","cumulativeTransferTime","lastVehicleArrivalTime","totalTransferTime","vehicleLegFound","totalDuration","index","transferDetails","travelDetails","line","asJson","sourceStopId","Result","query","earliestArrivals","stopsIndex","bestRoute","destinations","flatMap","equivalentStops","fastestDestination","fastestTime","currentStop","legNumber","unshift","earliestArrival","relevantArrivals","equivalentStop","UNREACHED","Router","timetable","considerTransfers","markedStops","arrivalsAtCurrentRound","newlyMarkedStops","markedStopsArray","currentArrival","previousLeg","transferTime","arrivalAfterTransfer","originalArrival","newlyMarkedStopsArray","newStop","earliestArrivalAtAnyStop","earliestArrivalAtAnyDestination","origins","earliestArrivalsWithoutAnyLeg","arrivalsAtPreviousRound","clear","reachableRoutesArray","entries","currentTrip","currentArrivalTime","currentDropOffType","earliestArrivalAtCurrentStop","bestHopOnDepartureTime","bestHopOnStop","earliestArrivalOnPreviousRound","earliestTrip","_e","size","TinyQueue","compare","defaultCompare","_down","item","_up","top","bottom","peek","parent","current","halfLength","left","best","right","a","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","ArrayType","nodeSize","numItems","IndexArrayType","arrayTypeIndex","indexOf","coordsByteSize","BYTES_PER_ELEMENT","idsByteSize","padCoords","ids","coords","_pos","_finished","x","y","numAdded","sort","range","minX","minY","maxX","maxY","axis","m","within","qx","qy","r","r2","sqDist","select","k","n","z","log","exp","sd","sqrt","swapItem","swap","tmp","ax","ay","bx","by","dx","dy","B","G","g","V","_type","_path","_tree","keys","next","dive","backtrack","done","key","_prefix","iterator","K","c","u","d","h","f","p","l","w","C","O","S","I","_size","atPrefix","startsWith","L","St","fuzzyGet","fill","zt","T","M","update","fetch","values","fromObject","delete","Q","Y","vt","D","H","Ft","kt","includes","tt","et","score","nt","E","prototype","hasOwnProperty","call","ot","terms","match","Ct","st","_fieldIds","_options","logger","_documentIds","it","_index","A","Vt","_fieldLength","_avgFieldLength","extractField","tokenize","processTerm","fields","idField","_idToShortId","Z","_nextId","_documentCount","Tt","storeFields","_storedFields","Mt","$","toLowerCase","searchOptions","console","autoVacuum","rt","combineWith","prefix","fuzzy","maxFuzzy","boost","weights","bm25","Et","W","minDirtFactor","minDirtCount","P","batchSize","batchWait","R","ct","reduce","J","ut","boostDocument","jt","queries","term","termBoost","boostTerm","Ot","qt","Nt","_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","SIMPLE_STOP_OR_PLATFORM","STATION","ENTRANCE_EXIT","GENERIC_NODE","BOARDING_AREA","Stop","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","Infinity","maxDistance","maxHaverSinDist","q","midLng","midLat","nextAxis","leftNode","rightNode","candidate","around","stopPoint","findStopBySourceStopId","sourceId"],"mappings":"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","x_google_ignoreList":[2,3,4,5,15,16,17,18]}
|