minotor 1.0.0
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/.cspell.json +43 -0
- package/.czrc +3 -0
- package/.editorconfig +10 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
- package/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +29 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +4 -0
- package/.github/workflows/minotor.yml +85 -0
- package/.prettierrc +7 -0
- package/.releaserc.json +27 -0
- package/CHANGELOG.md +6 -0
- package/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/bundle.cjs.js +16507 -0
- package/dist/bundle.cjs.js.map +1 -0
- package/dist/bundle.esm.js +16496 -0
- package/dist/bundle.esm.js.map +1 -0
- package/dist/bundle.umd.js +2 -0
- package/dist/bundle.umd.js.map +1 -0
- package/dist/cli/__tests__/minotor.test.d.ts +1 -0
- package/dist/cli/minotor.d.ts +5 -0
- package/dist/cli/repl.d.ts +1 -0
- package/dist/cli/utils.d.ts +3 -0
- package/dist/cli.mjs +20504 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/gtfs/__tests__/parser.test.d.ts +1 -0
- package/dist/gtfs/__tests__/routes.test.d.ts +1 -0
- package/dist/gtfs/__tests__/services.test.d.ts +1 -0
- package/dist/gtfs/__tests__/stops.test.d.ts +1 -0
- package/dist/gtfs/__tests__/time.test.d.ts +1 -0
- package/dist/gtfs/__tests__/transfers.test.d.ts +1 -0
- package/dist/gtfs/__tests__/trips.test.d.ts +1 -0
- package/dist/gtfs/__tests__/utils.test.d.ts +1 -0
- package/dist/gtfs/parser.d.ts +34 -0
- package/dist/gtfs/profiles/__tests__/ch.test.d.ts +1 -0
- package/dist/gtfs/profiles/ch.d.ts +2 -0
- package/dist/gtfs/profiles/standard.d.ts +2 -0
- package/dist/gtfs/routes.d.ts +11 -0
- package/dist/gtfs/services.d.ts +19 -0
- package/dist/gtfs/stops.d.ts +20 -0
- package/dist/gtfs/time.d.ts +17 -0
- package/dist/gtfs/transfers.d.ts +22 -0
- package/dist/gtfs/trips.d.ts +26 -0
- package/dist/gtfs/utils.d.ts +21 -0
- package/dist/index.d.ts +11 -0
- package/dist/routing/__tests__/router.test.d.ts +1 -0
- package/dist/routing/plotter.d.ts +11 -0
- package/dist/routing/query.d.ts +35 -0
- package/dist/routing/result.d.ts +28 -0
- package/dist/routing/route.d.ts +25 -0
- package/dist/routing/router.d.ts +33 -0
- package/dist/stops/__tests__/io.test.d.ts +1 -0
- package/dist/stops/__tests__/stopFinder.test.d.ts +1 -0
- package/dist/stops/i18n.d.ts +10 -0
- package/dist/stops/io.d.ts +4 -0
- package/dist/stops/proto/stops.d.ts +53 -0
- package/dist/stops/stops.d.ts +16 -0
- package/dist/stops/stopsIndex.d.ts +52 -0
- package/dist/timetable/__tests__/io.test.d.ts +1 -0
- package/dist/timetable/__tests__/timetable.test.d.ts +1 -0
- package/dist/timetable/duration.d.ts +51 -0
- package/dist/timetable/io.d.ts +8 -0
- package/dist/timetable/proto/timetable.d.ts +122 -0
- package/dist/timetable/time.d.ts +98 -0
- package/dist/timetable/timetable.d.ts +82 -0
- package/dist/umdIndex.d.ts +9 -0
- package/eslint.config.mjs +52 -0
- package/package.json +109 -0
- package/rollup.config.js +44 -0
- package/src/cli/__tests__/minotor.test.ts +23 -0
- package/src/cli/minotor.ts +112 -0
- package/src/cli/repl.ts +200 -0
- package/src/cli/utils.ts +36 -0
- package/src/gtfs/__tests__/parser.test.ts +591 -0
- package/src/gtfs/__tests__/resources/sample-feed/agency.txt +2 -0
- package/src/gtfs/__tests__/resources/sample-feed/calendar.txt +3 -0
- package/src/gtfs/__tests__/resources/sample-feed/calendar_dates.txt +2 -0
- package/src/gtfs/__tests__/resources/sample-feed/fare_attributes.txt +3 -0
- package/src/gtfs/__tests__/resources/sample-feed/fare_rules.txt +5 -0
- package/src/gtfs/__tests__/resources/sample-feed/frequencies.txt +12 -0
- package/src/gtfs/__tests__/resources/sample-feed/routes.txt +6 -0
- package/src/gtfs/__tests__/resources/sample-feed/sample-feed.zip +0 -0
- package/src/gtfs/__tests__/resources/sample-feed/shapes.txt +1 -0
- package/src/gtfs/__tests__/resources/sample-feed/stop_times.txt +34 -0
- package/src/gtfs/__tests__/resources/sample-feed/stops.txt +10 -0
- package/src/gtfs/__tests__/resources/sample-feed/trips.txt +13 -0
- package/src/gtfs/__tests__/resources/sample-feed.zip +0 -0
- package/src/gtfs/__tests__/routes.test.ts +63 -0
- package/src/gtfs/__tests__/services.test.ts +209 -0
- package/src/gtfs/__tests__/stops.test.ts +177 -0
- package/src/gtfs/__tests__/time.test.ts +27 -0
- package/src/gtfs/__tests__/transfers.test.ts +117 -0
- package/src/gtfs/__tests__/trips.test.ts +463 -0
- package/src/gtfs/__tests__/utils.test.ts +13 -0
- package/src/gtfs/parser.ts +154 -0
- package/src/gtfs/profiles/__tests__/ch.test.ts +43 -0
- package/src/gtfs/profiles/ch.ts +70 -0
- package/src/gtfs/profiles/standard.ts +39 -0
- package/src/gtfs/routes.ts +48 -0
- package/src/gtfs/services.ts +98 -0
- package/src/gtfs/stops.ts +112 -0
- package/src/gtfs/time.ts +33 -0
- package/src/gtfs/transfers.ts +102 -0
- package/src/gtfs/trips.ts +228 -0
- package/src/gtfs/utils.ts +42 -0
- package/src/index.ts +28 -0
- package/src/routing/__tests__/router.test.ts +760 -0
- package/src/routing/plotter.ts +70 -0
- package/src/routing/query.ts +74 -0
- package/src/routing/result.ts +108 -0
- package/src/routing/route.ts +94 -0
- package/src/routing/router.ts +262 -0
- package/src/stops/__tests__/io.test.ts +43 -0
- package/src/stops/__tests__/stopFinder.test.ts +185 -0
- package/src/stops/i18n.ts +40 -0
- package/src/stops/io.ts +94 -0
- package/src/stops/proto/stops.proto +26 -0
- package/src/stops/proto/stops.ts +445 -0
- package/src/stops/stops.ts +24 -0
- package/src/stops/stopsIndex.ts +151 -0
- package/src/timetable/__tests__/io.test.ts +175 -0
- package/src/timetable/__tests__/timetable.test.ts +180 -0
- package/src/timetable/duration.ts +85 -0
- package/src/timetable/io.ts +265 -0
- package/src/timetable/proto/timetable.proto +76 -0
- package/src/timetable/proto/timetable.ts +1304 -0
- package/src/timetable/time.ts +192 -0
- package/src/timetable/timetable.ts +286 -0
- package/src/umdIndex.ts +14 -0
- package/tsconfig.build.json +4 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).minotor={})}(this,(function(t){"use strict";class e{constructor(t){this.totalSeconds=t}static fromSeconds(t){return new e(t)}static fromMinutes(t){return new e(60*t)}static zero(){return new e(0)}toString(){const t=Math.floor(this.totalSeconds/3600),e=Math.floor(this.totalSeconds%3600/60),n=this.totalSeconds%60;return t>0?`${t.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}`:`${e.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}`}toSeconds(){return this.totalSeconds}add(t){const n=this.totalSeconds+t.toSeconds();return new e(n)}subtract(t){const n=Math.max(0,this.totalSeconds-t.toSeconds());return new e(n)}}function n(){let t=0,e=0;for(let n=0;n<28;n+=7){let r=this.buf[this.pos++];if(t|=(127&r)<<n,!(128&r))return this.assertBounds(),[t,e]}let n=this.buf[this.pos++];if(t|=(15&n)<<28,e=(112&n)>>4,!(128&n))return this.assertBounds(),[t,e];for(let n=3;n<=31;n+=7){let r=this.buf[this.pos++];if(e|=(127&r)<<n,!(128&r))return this.assertBounds(),[t,e]}throw new Error("invalid varint")}function r(t,e,n){for(let r=0;r<28;r+=7){const s=t>>>r,o=!(s>>>7==0&&0==e),i=255&(o?128|s:s);if(n.push(i),!o)return}const r=t>>>28&15|(7&e)<<4,s=!!(e>>3);if(n.push(255&(s?128|r:r)),s){for(let t=3;t<31;t+=7){const r=e>>>t,s=!(r>>>7==0),o=255&(s?128|r:r);if(n.push(o),!s)return}n.push(e>>>31&1)}}const s=4294967296;function o(t){const e="-"===t[0];e&&(t=t.slice(1));const n=1e6;let r=0,o=0;function i(e,i){const a=Number(t.slice(e,i));o*=n,r=r*n+a,r>=s&&(o+=r/s|0,r%=s)}return i(-24,-18),i(-18,-12),i(-12,-6),i(-6),e?c(r,o):a(r,o)}function i(t,e){if(({lo:t,hi:e}=function(t,e){return{lo:t>>>0,hi:e>>>0}}(t,e)),e<=2097151)return String(s*e+t);const n=16777215&(t>>>24|e<<8),r=e>>16&65535;let o=(16777215&t)+6777216*n+6710656*r,i=n+8147497*r,a=2*r;const c=1e7;return o>=c&&(i+=Math.floor(o/c),o%=c),i>=c&&(a+=Math.floor(i/c),i%=c),a.toString()+u(i)+u(o)}function a(t,e){return{lo:0|t,hi:0|e}}function c(t,e){return e=~e,t?t=1+~t:e+=1,a(t,e)}const u=t=>{const e=String(t);return"0000000".slice(e.length)+e};function l(t,e){if(t>=0){for(;t>127;)e.push(127&t|128),t>>>=7;e.push(t)}else{for(let n=0;n<9;n++)e.push(127&t|128),t>>=7;e.push(1)}}function d(){let t=this.buf[this.pos++],e=127&t;if(!(128&t))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(127&t)<<7,!(128&t))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(127&t)<<14,!(128&t))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(127&t)<<21,!(128&t))return this.assertBounds(),e;t=this.buf[this.pos++],e|=(15&t)<<28;for(let e=5;128&t&&e<10;e++)t=this.buf[this.pos++];if(128&t)throw new Error("invalid varint");return this.assertBounds(),e>>>0}const f=h();function h(){const t=new DataView(new ArrayBuffer(8));if("function"==typeof BigInt&&"function"==typeof t.getBigInt64&&"function"==typeof t.getBigUint64&&"function"==typeof t.setBigInt64&&"function"==typeof t.setBigUint64&&("object"!=typeof process||"object"!=typeof process.env||"1"!==process.env.BUF_BIGINT_DISABLE)){const e=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),r=BigInt("0"),s=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(t){const r="bigint"==typeof t?t:BigInt(t);if(r>n||r<e)throw new Error(`invalid int64: ${t}`);return r},uParse(t){const e="bigint"==typeof t?t:BigInt(t);if(e>s||e<r)throw new Error(`invalid uint64: ${t}`);return e},enc(e){return t.setBigInt64(0,this.parse(e),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},uEnc(e){return t.setBigInt64(0,this.uParse(e),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},dec:(e,n)=>(t.setInt32(0,e,!0),t.setInt32(4,n,!0),t.getBigInt64(0,!0)),uDec:(e,n)=>(t.setInt32(0,e,!0),t.setInt32(4,n,!0),t.getBigUint64(0,!0))}}return{zero:"0",supported:!1,parse:t=>("string"!=typeof t&&(t=t.toString()),p(t),t),uParse:t=>("string"!=typeof t&&(t=t.toString()),m(t),t),enc:t=>("string"!=typeof t&&(t=t.toString()),p(t),o(t)),uEnc:t=>("string"!=typeof t&&(t=t.toString()),m(t),o(t)),dec:(t,e)=>function(t,e){let n=a(t,e);const r=2147483648&n.hi;r&&(n=c(n.lo,n.hi));const s=i(n.lo,n.hi);return r?"-"+s:s}(t,e),uDec:(t,e)=>i(t,e)}}function p(t){if(!/^-?[0-9]+$/.test(t))throw new Error("invalid int64: "+t)}function m(t){if(!/^[0-9]+$/.test(t))throw new Error("invalid uint64: "+t)}const v=Symbol.for("@bufbuild/protobuf/text-encoding");function T(){if(null==globalThis[v]){const t=new globalThis.TextEncoder,e=new globalThis.TextDecoder;globalThis[v]={encodeUtf8:e=>t.encode(e),decodeUtf8:t=>e.decode(t),checkUtf8(t){try{return encodeURIComponent(t),!0}catch(t){return!1}}}}return globalThis[v]}var g;!function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"}(g||(g={}));const E=34028234663852886e22,y=-34028234663852886e22;class A{constructor(t=T().encodeUtf8){this.encodeUtf8=t,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let t=0;for(let e=0;e<this.chunks.length;e++)t+=this.chunks[e].length;let e=new Uint8Array(t),n=0;for(let t=0;t<this.chunks.length;t++)e.set(this.chunks[t],n),n+=this.chunks[t].length;return this.chunks=[],e}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let t=this.finish(),e=this.stack.pop();if(!e)throw new Error("invalid state, fork stack empty");return this.chunks=e.chunks,this.buf=e.buf,this.uint32(t.byteLength),this.raw(t)}tag(t,e){return this.uint32((t<<3|e)>>>0)}raw(t){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(t),this}uint32(t){for(R(t);t>127;)this.buf.push(127&t|128),t>>>=7;return this.buf.push(t),this}int32(t){return _(t),l(t,this.buf),this}bool(t){return this.buf.push(t?1:0),this}bytes(t){return this.uint32(t.byteLength),this.raw(t)}string(t){let e=this.encodeUtf8(t);return this.uint32(e.byteLength),this.raw(e)}float(t){!function(t){if("string"==typeof t){const e=t;if(t=Number(t),isNaN(t)&&"NaN"!==e)throw new Error("invalid float32: "+e)}else if("number"!=typeof t)throw new Error("invalid float32: "+typeof t);if(Number.isFinite(t)&&(t>E||t<y))throw new Error("invalid float32: "+t)}(t);let e=new Uint8Array(4);return new DataView(e.buffer).setFloat32(0,t,!0),this.raw(e)}double(t){let e=new Uint8Array(8);return new DataView(e.buffer).setFloat64(0,t,!0),this.raw(e)}fixed32(t){R(t);let e=new Uint8Array(4);return new DataView(e.buffer).setUint32(0,t,!0),this.raw(e)}sfixed32(t){_(t);let e=new Uint8Array(4);return new DataView(e.buffer).setInt32(0,t,!0),this.raw(e)}sint32(t){return _(t),l(t=(t<<1^t>>31)>>>0,this.buf),this}sfixed64(t){let e=new Uint8Array(8),n=new DataView(e.buffer),r=f.enc(t);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(e)}fixed64(t){let e=new Uint8Array(8),n=new DataView(e.buffer),r=f.uEnc(t);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(e)}int64(t){let e=f.enc(t);return r(e.lo,e.hi,this.buf),this}sint64(t){let e=f.enc(t),n=e.hi>>31;return r(e.lo<<1^n,(e.hi<<1|e.lo>>>31)^n,this.buf),this}uint64(t){let e=f.uEnc(t);return r(e.lo,e.hi,this.buf),this}}class I{constructor(t,e=T().decodeUtf8){this.decodeUtf8=e,this.varint64=n,this.uint32=d,this.buf=t,this.len=t.length,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength)}tag(){let t=this.uint32(),e=t>>>3,n=7&t;if(e<=0||n<0||n>5)throw new Error("illegal tag: field no "+e+" wire type "+n);return[e,n]}skip(t,e){let n=this.pos;switch(t){case g.Varint:for(;128&this.buf[this.pos++];);break;case g.Bit64:this.pos+=4;case g.Bit32:this.pos+=4;break;case g.LengthDelimited:let n=this.uint32();this.pos+=n;break;case g.StartGroup:for(;;){const[t,n]=this.tag();if(n===g.EndGroup){if(void 0!==e&&t!==e)throw new Error("invalid end group tag");break}this.skip(n,t)}break;default:throw new Error("cant skip wire type "+t)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return 0|this.uint32()}sint32(){let t=this.uint32();return t>>>1^-(1&t)}int64(){return f.dec(...this.varint64())}uint64(){return f.uDec(...this.varint64())}sint64(){let[t,e]=this.varint64(),n=-(1&t);return t=(t>>>1|(1&e)<<31)^n,e=e>>>1^n,f.dec(t,e)}bool(){let[t,e]=this.varint64();return 0!==t||0!==e}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return f.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return f.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let t=this.uint32(),e=this.pos;return this.pos+=t,this.assertBounds(),this.buf.subarray(e,e+t)}string(){return this.decodeUtf8(this.bytes())}}function _(t){if("string"==typeof t)t=Number(t);else if("number"!=typeof t)throw new Error("invalid int32: "+typeof t);if(!Number.isInteger(t)||t>2147483647||t<-2147483648)throw new Error("invalid int32: "+t)}function R(t){if("string"==typeof t)t=Number(t);else if("number"!=typeof t)throw new Error("invalid uint32: "+typeof t);if(!Number.isInteger(t)||t>4294967295||t<0)throw new Error("invalid uint32: "+t)}var S,N,O;function w(t){switch(t){case 0:case"NOT_AVAILABLE":return S.NOT_AVAILABLE;case 1:case"MUST_PHONE_AGENCY":return S.MUST_PHONE_AGENCY;case 2:case"MUST_COORDINATE_WITH_DRIVER":return S.MUST_COORDINATE_WITH_DRIVER;default:return S.UNRECOGNIZED}}function b(t){switch(t){case S.NOT_AVAILABLE:return"NOT_AVAILABLE";case S.MUST_PHONE_AGENCY:return"MUST_PHONE_AGENCY";case S.MUST_COORDINATE_WITH_DRIVER:return"MUST_COORDINATE_WITH_DRIVER";case S.UNRECOGNIZED:default:return"UNRECOGNIZED"}}function k(t){switch(t){case 0:case"RECOMMENDED_TRANSFER_POINT":return N.RECOMMENDED_TRANSFER_POINT;case 1:case"TIMED_TRANSFER":return N.TIMED_TRANSFER;case 2:case"REQUIRES_MINIMAL_TIME":return N.REQUIRES_MINIMAL_TIME;case 3:case"IN_SEAT_TRANSFER":return N.IN_SEAT_TRANSFER;default:return N.UNRECOGNIZED}}function M(t){switch(t){case 0:case"TRAM":return O.TRAM;case 1:case"SUBWAY":return O.SUBWAY;case 2:case"RAIL":return O.RAIL;case 3:case"BUS":return O.BUS;case 4:case"FERRY":return O.FERRY;case 5:case"CABLE_TRAM":return O.CABLE_TRAM;case 6:case"AERIAL_LIFT":return O.AERIAL_LIFT;case 7:case"FUNICULAR":return O.FUNICULAR;case 8:case"TROLLEYBUS":return O.TROLLEYBUS;case 9:case"MONORAIL":return O.MONORAIL;default:return O.UNRECOGNIZED}}!function(t){t[t.NOT_AVAILABLE=0]="NOT_AVAILABLE",t[t.MUST_PHONE_AGENCY=1]="MUST_PHONE_AGENCY",t[t.MUST_COORDINATE_WITH_DRIVER=2]="MUST_COORDINATE_WITH_DRIVER",t[t.UNRECOGNIZED=-1]="UNRECOGNIZED"}(S||(S={})),function(t){t[t.RECOMMENDED_TRANSFER_POINT=0]="RECOMMENDED_TRANSFER_POINT",t[t.TIMED_TRANSFER=1]="TIMED_TRANSFER",t[t.REQUIRES_MINIMAL_TIME=2]="REQUIRES_MINIMAL_TIME",t[t.IN_SEAT_TRANSFER=3]="IN_SEAT_TRANSFER",t[t.UNRECOGNIZED=-1]="UNRECOGNIZED"}(N||(N={})),function(t){t[t.TRAM=0]="TRAM",t[t.SUBWAY=1]="SUBWAY",t[t.RAIL=2]="RAIL",t[t.BUS=3]="BUS",t[t.FERRY=4]="FERRY",t[t.CABLE_TRAM=5]="CABLE_TRAM",t[t.AERIAL_LIFT=6]="AERIAL_LIFT",t[t.FUNICULAR=7]="FUNICULAR",t[t.TROLLEYBUS=8]="TROLLEYBUS",t[t.MONORAIL=9]="MONORAIL",t[t.UNRECOGNIZED=-1]="UNRECOGNIZED"}(O||(O={}));const L={encode:(t,e=new A)=>(0!==t.arrival&&e.uint32(8).int32(t.arrival),0!==t.departure&&e.uint32(16).int32(t.departure),void 0!==t.pickUpType&&e.uint32(24).int32(t.pickUpType),void 0!==t.dropOffType&&e.uint32(32).int32(t.dropOffType),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={arrival:0,departure:0,pickUpType:void 0,dropOffType:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;s.arrival=n.int32();continue;case 2:if(16!==t)break;s.departure=n.int32();continue;case 3:if(24!==t)break;s.pickUpType=n.int32();continue;case 4:if(32!==t)break;s.dropOffType=n.int32();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({arrival:J(t.arrival)?globalThis.Number(t.arrival):0,departure:J(t.departure)?globalThis.Number(t.departure):0,pickUpType:J(t.pickUpType)?w(t.pickUpType):void 0,dropOffType:J(t.dropOffType)?w(t.dropOffType):void 0}),toJSON(t){const e={};return 0!==t.arrival&&(e.arrival=Math.round(t.arrival)),0!==t.departure&&(e.departure=Math.round(t.departure)),void 0!==t.pickUpType&&(e.pickUpType=b(t.pickUpType)),void 0!==t.dropOffType&&(e.dropOffType=b(t.dropOffType)),e},create:t=>L.fromPartial(null!=t?t:{}),fromPartial(t){var e,n,r,s;const o={arrival:0,departure:0,pickUpType:void 0,dropOffType:void 0};return o.arrival=null!==(e=t.arrival)&&void 0!==e?e:0,o.departure=null!==(n=t.departure)&&void 0!==n?n:0,o.pickUpType=null!==(r=t.pickUpType)&&void 0!==r?r:void 0,o.dropOffType=null!==(s=t.dropOffType)&&void 0!==s?s:void 0,o}};const U={encode(t,e=new A){for(const n of t.stopTimes)L.encode(n,e.uint32(10).fork()).join();for(const n of t.stops)e.uint32(18).string(n);return""!==t.serviceRouteId&&e.uint32(26).string(t.serviceRouteId),e},decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={stopTimes:[],stops:[],serviceRouteId:""};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;s.stopTimes.push(L.decode(n,n.uint32()));continue;case 2:if(18!==t)break;s.stops.push(n.string());continue;case 3:if(26!==t)break;s.serviceRouteId=n.string();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({stopTimes:globalThis.Array.isArray(null==t?void 0:t.stopTimes)?t.stopTimes.map((t=>L.fromJSON(t))):[],stops:globalThis.Array.isArray(null==t?void 0:t.stops)?t.stops.map((t=>globalThis.String(t))):[],serviceRouteId:J(t.serviceRouteId)?globalThis.String(t.serviceRouteId):""}),toJSON(t){var e,n;const r={};return(null===(e=t.stopTimes)||void 0===e?void 0:e.length)&&(r.stopTimes=t.stopTimes.map((t=>L.toJSON(t)))),(null===(n=t.stops)||void 0===n?void 0:n.length)&&(r.stops=t.stops),""!==t.serviceRouteId&&(r.serviceRouteId=t.serviceRouteId),r},create:t=>U.fromPartial(null!=t?t:{}),fromPartial(t){var e,n,r;const s={stopTimes:[],stops:[],serviceRouteId:""};return s.stopTimes=(null===(e=t.stopTimes)||void 0===e?void 0:e.map((t=>L.fromPartial(t))))||[],s.stops=(null===(n=t.stops)||void 0===n?void 0:n.map((t=>t)))||[],s.serviceRouteId=null!==(r=t.serviceRouteId)&&void 0!==r?r:"",s}};const x={encode:(t,e=new A)=>(Object.entries(t.routes).forEach((([t,n])=>{D.encode({key:t,value:n},e.uint32(10).fork()).join()})),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={routes:{}};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:{if(10!==t)break;const e=D.decode(n,n.uint32());void 0!==e.value&&(s.routes[e.key]=e.value);continue}}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({routes:V(t.routes)?Object.entries(t.routes).reduce(((t,[e,n])=>(t[e]=U.fromJSON(n),t)),{}):{}}),toJSON(t){const e={};if(t.routes){const n=Object.entries(t.routes);n.length>0&&(e.routes={},n.forEach((([t,n])=>{e.routes[t]=U.toJSON(n)})))}return e},create:t=>x.fromPartial(null!=t?t:{}),fromPartial(t){var e;const n={routes:{}};return n.routes=Object.entries(null!==(e=t.routes)&&void 0!==e?e:{}).reduce(((t,[e,n])=>(void 0!==n&&(t[e]=U.fromPartial(n)),t)),{}),n}};const D={encode:(t,e=new A)=>(""!==t.key&&e.uint32(10).string(t.key),void 0!==t.value&&U.encode(t.value,e.uint32(18).fork()).join(),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={key:"",value:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;s.key=n.string();continue;case 2:if(18!==t)break;s.value=U.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({key:J(t.key)?globalThis.String(t.key):"",value:J(t.value)?U.fromJSON(t.value):void 0}),toJSON(t){const e={};return""!==t.key&&(e.key=t.key),void 0!==t.value&&(e.value=U.toJSON(t.value)),e},create:t=>D.fromPartial(null!=t?t:{}),fromPartial(t){var e;const n={key:"",value:void 0};return n.key=null!==(e=t.key)&&void 0!==e?e:"",n.value=void 0!==t.value&&null!==t.value?U.fromPartial(t.value):void 0,n}};const B={encode:(t,e=new A)=>(""!==t.destination&&e.uint32(10).string(t.destination),0!==t.type&&e.uint32(16).int32(t.type),void 0!==t.minTransferTime&&e.uint32(24).int32(t.minTransferTime),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={destination:"",type:0,minTransferTime:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;s.destination=n.string();continue;case 2:if(16!==t)break;s.type=n.int32();continue;case 3:if(24!==t)break;s.minTransferTime=n.int32();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({destination:J(t.destination)?globalThis.String(t.destination):"",type:J(t.type)?k(t.type):0,minTransferTime:J(t.minTransferTime)?globalThis.Number(t.minTransferTime):void 0}),toJSON(t){const e={};return""!==t.destination&&(e.destination=t.destination),0!==t.type&&(e.type=function(t){switch(t){case N.RECOMMENDED_TRANSFER_POINT:return"RECOMMENDED_TRANSFER_POINT";case N.TIMED_TRANSFER:return"TIMED_TRANSFER";case N.REQUIRES_MINIMAL_TIME:return"REQUIRES_MINIMAL_TIME";case N.IN_SEAT_TRANSFER:return"IN_SEAT_TRANSFER";case N.UNRECOGNIZED:default:return"UNRECOGNIZED"}}(t.type)),void 0!==t.minTransferTime&&(e.minTransferTime=Math.round(t.minTransferTime)),e},create:t=>B.fromPartial(null!=t?t:{}),fromPartial(t){var e,n,r;const s={destination:"",type:0,minTransferTime:void 0};return s.destination=null!==(e=t.destination)&&void 0!==e?e:"",s.type=null!==(n=t.type)&&void 0!==n?n:0,s.minTransferTime=null!==(r=t.minTransferTime)&&void 0!==r?r:void 0,s}};const C={encode:(t,e=new A)=>(Object.entries(t.stops).forEach((([t,n])=>{F.encode({key:t,value:n},e.uint32(10).fork()).join()})),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={stops:{}};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:{if(10!==t)break;const e=F.decode(n,n.uint32());void 0!==e.value&&(s.stops[e.key]=e.value);continue}}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({stops:V(t.stops)?Object.entries(t.stops).reduce(((t,[e,n])=>(t[e]=P.fromJSON(n),t)),{}):{}}),toJSON(t){const e={};if(t.stops){const n=Object.entries(t.stops);n.length>0&&(e.stops={},n.forEach((([t,n])=>{e.stops[t]=P.toJSON(n)})))}return e},create:t=>C.fromPartial(null!=t?t:{}),fromPartial(t){var e;const n={stops:{}};return n.stops=Object.entries(null!==(e=t.stops)&&void 0!==e?e:{}).reduce(((t,[e,n])=>(void 0!==n&&(t[e]=P.fromPartial(n)),t)),{}),n}};const P={encode(t,e=new A){for(const n of t.transfers)B.encode(n,e.uint32(10).fork()).join();for(const n of t.routes)e.uint32(18).string(n);return e},decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={transfers:[],routes:[]};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;s.transfers.push(B.decode(n,n.uint32()));continue;case 2:if(18!==t)break;s.routes.push(n.string());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({transfers:globalThis.Array.isArray(null==t?void 0:t.transfers)?t.transfers.map((t=>B.fromJSON(t))):[],routes:globalThis.Array.isArray(null==t?void 0:t.routes)?t.routes.map((t=>globalThis.String(t))):[]}),toJSON(t){var e,n;const r={};return(null===(e=t.transfers)||void 0===e?void 0:e.length)&&(r.transfers=t.transfers.map((t=>B.toJSON(t)))),(null===(n=t.routes)||void 0===n?void 0:n.length)&&(r.routes=t.routes),r},create:t=>P.fromPartial(null!=t?t:{}),fromPartial(t){var e,n;const r={transfers:[],routes:[]};return r.transfers=(null===(e=t.transfers)||void 0===e?void 0:e.map((t=>B.fromPartial(t))))||[],r.routes=(null===(n=t.routes)||void 0===n?void 0:n.map((t=>t)))||[],r}};const F={encode:(t,e=new A)=>(""!==t.key&&e.uint32(10).string(t.key),void 0!==t.value&&P.encode(t.value,e.uint32(18).fork()).join(),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={key:"",value:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;s.key=n.string();continue;case 2:if(18!==t)break;s.value=P.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({key:J(t.key)?globalThis.String(t.key):"",value:J(t.value)?P.fromJSON(t.value):void 0}),toJSON(t){const e={};return""!==t.key&&(e.key=t.key),void 0!==t.value&&(e.value=P.toJSON(t.value)),e},create:t=>F.fromPartial(null!=t?t:{}),fromPartial(t){var e;const n={key:"",value:void 0};return n.key=null!==(e=t.key)&&void 0!==e?e:"",n.value=void 0!==t.value&&null!==t.value?P.fromPartial(t.value):void 0,n}};const j={encode:(t,e=new A)=>(0!==t.type&&e.uint32(8).int32(t.type),""!==t.name&&e.uint32(18).string(t.name),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={type:0,name:""};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;s.type=n.int32();continue;case 2:if(18!==t)break;s.name=n.string();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({type:J(t.type)?M(t.type):0,name:J(t.name)?globalThis.String(t.name):""}),toJSON(t){const e={};return 0!==t.type&&(e.type=function(t){switch(t){case O.TRAM:return"TRAM";case O.SUBWAY:return"SUBWAY";case O.RAIL:return"RAIL";case O.BUS:return"BUS";case O.FERRY:return"FERRY";case O.CABLE_TRAM:return"CABLE_TRAM";case O.AERIAL_LIFT:return"AERIAL_LIFT";case O.FUNICULAR:return"FUNICULAR";case O.TROLLEYBUS:return"TROLLEYBUS";case O.MONORAIL:return"MONORAIL";case O.UNRECOGNIZED:default:return"UNRECOGNIZED"}}(t.type)),""!==t.name&&(e.name=t.name),e},create:t=>j.fromPartial(null!=t?t:{}),fromPartial(t){var e,n;const r={type:0,name:""};return r.type=null!==(e=t.type)&&void 0!==e?e:0,r.name=null!==(n=t.name)&&void 0!==n?n:"",r}};const z={encode:(t,e=new A)=>(Object.entries(t.routes).forEach((([t,n])=>{G.encode({key:t,value:n},e.uint32(10).fork()).join()})),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={routes:{}};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:{if(10!==t)break;const e=G.decode(n,n.uint32());void 0!==e.value&&(s.routes[e.key]=e.value);continue}}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({routes:V(t.routes)?Object.entries(t.routes).reduce(((t,[e,n])=>(t[e]=j.fromJSON(n),t)),{}):{}}),toJSON(t){const e={};if(t.routes){const n=Object.entries(t.routes);n.length>0&&(e.routes={},n.forEach((([t,n])=>{e.routes[t]=j.toJSON(n)})))}return e},create:t=>z.fromPartial(null!=t?t:{}),fromPartial(t){var e;const n={routes:{}};return n.routes=Object.entries(null!==(e=t.routes)&&void 0!==e?e:{}).reduce(((t,[e,n])=>(void 0!==n&&(t[e]=j.fromPartial(n)),t)),{}),n}};const G={encode:(t,e=new A)=>(""!==t.key&&e.uint32(10).string(t.key),void 0!==t.value&&j.encode(t.value,e.uint32(18).fork()).join(),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={key:"",value:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;s.key=n.string();continue;case 2:if(18!==t)break;s.value=j.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({key:J(t.key)?globalThis.String(t.key):"",value:J(t.value)?j.fromJSON(t.value):void 0}),toJSON(t){const e={};return""!==t.key&&(e.key=t.key),void 0!==t.value&&(e.value=j.toJSON(t.value)),e},create:t=>G.fromPartial(null!=t?t:{}),fromPartial(t){var e;const n={key:"",value:void 0};return n.key=null!==(e=t.key)&&void 0!==e?e:"",n.value=void 0!==t.value&&null!==t.value?j.fromPartial(t.value):void 0,n}};const $={encode:(t,e=new A)=>(""!==t.version&&e.uint32(10).string(t.version),void 0!==t.stopsAdjacency&&C.encode(t.stopsAdjacency,e.uint32(18).fork()).join(),void 0!==t.routesAdjacency&&x.encode(t.routesAdjacency,e.uint32(26).fork()).join(),void 0!==t.routes&&z.encode(t.routes,e.uint32(34).fork()).join(),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={version:"",stopsAdjacency:void 0,routesAdjacency:void 0,routes:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;s.version=n.string();continue;case 2:if(18!==t)break;s.stopsAdjacency=C.decode(n,n.uint32());continue;case 3:if(26!==t)break;s.routesAdjacency=x.decode(n,n.uint32());continue;case 4:if(34!==t)break;s.routes=z.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({version:J(t.version)?globalThis.String(t.version):"",stopsAdjacency:J(t.stopsAdjacency)?C.fromJSON(t.stopsAdjacency):void 0,routesAdjacency:J(t.routesAdjacency)?x.fromJSON(t.routesAdjacency):void 0,routes:J(t.routes)?z.fromJSON(t.routes):void 0}),toJSON(t){const e={};return""!==t.version&&(e.version=t.version),void 0!==t.stopsAdjacency&&(e.stopsAdjacency=C.toJSON(t.stopsAdjacency)),void 0!==t.routesAdjacency&&(e.routesAdjacency=x.toJSON(t.routesAdjacency)),void 0!==t.routes&&(e.routes=z.toJSON(t.routes)),e},create:t=>$.fromPartial(null!=t?t:{}),fromPartial(t){var e;const n={version:"",stopsAdjacency:void 0,routesAdjacency:void 0,routes:void 0};return n.version=null!==(e=t.version)&&void 0!==e?e:"",n.stopsAdjacency=void 0!==t.stopsAdjacency&&null!==t.stopsAdjacency?C.fromPartial(t.stopsAdjacency):void 0,n.routesAdjacency=void 0!==t.routesAdjacency&&null!==t.routesAdjacency?x.fromPartial(t.routesAdjacency):void 0,n.routes=void 0!==t.routes&&null!==t.routes?z.fromPartial(t.routes):void 0,n}};function V(t){return"object"==typeof t&&null!==t}function J(t){return null!=t}class Y{static infinity(){return new Y(Number.MAX_SAFE_INTEGER)}static origin(){return new Y(0)}constructor(t){this.secondsSinceMidnight=t}static fromSeconds(t){return new Y(t)}static fromHMS(t,e,n){if(t<0||e<0||n<0||e>=60||n>=60)throw new Error("Invalid time. Ensure hours, minutes, and seconds are valid values.");return new Y(n+60*e+3600*t)}static fromDate(t){const e=t.getHours(),n=t.getMinutes(),r=t.getSeconds();return new Y(r+60*n+3600*e)}static fromString(t){const[e,n,r]=t.split(":");if(void 0===e||void 0===n||isNaN(Number(e))||isNaN(Number(n))||void 0!==r&&isNaN(Number(r)))throw new Error('Input string must be in the format "HH:MM:SS" or "HH:MM".');const s=parseInt(e,10),o=parseInt(n,10),i=void 0!==r?parseInt(r,10):0;return new Y(i+60*o+3600*s)}toString(){const t=Math.floor(this.secondsSinceMidnight/3600),e=Math.floor(this.secondsSinceMidnight%3600/60),n=this.secondsSinceMidnight%60;return`${t.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}`}toSeconds(){return this.secondsSinceMidnight}plus(t){const e=this.secondsSinceMidnight+t.toSeconds();return new Y(e)}minus(t){let e=this.secondsSinceMidnight-t.toSeconds();return e<0&&(e+=86400),new Y(e)}diff(t){const n=this.secondsSinceMidnight-t.toSeconds();return e.fromSeconds(Math.abs(n))}static max(...t){if(0===t.length)throw new Error("At least one Time instance is required.");return t.reduce(((t,e)=>e.toSeconds()>t.toSeconds()?e:t))}static min(...t){if(0===t.length)throw new Error("At least one Time instance is required.");return t.reduce(((t,e)=>e.toSeconds()<t.toSeconds()?e:t))}}const W=t=>{const e={stops:{}};return t.forEach(((t,n)=>{e.stops[n]={transfers:t.transfers.map((t=>Object.assign({destination:t.destination,type:Q(t.type)},void 0!==t.minTransferTime&&{minTransferTime:t.minTransferTime.toSeconds()}))),routes:t.routes}})),e},H=t=>{const e={routes:{}};return t.forEach(((t,n)=>{e.routes[n]={stopTimes:t.stopTimes.map((t=>({arrival:t.arrival.toSeconds(),departure:t.departure.toSeconds(),pickUpType:et(t.pickUpType),dropOffType:et(t.dropOffType)}))),stops:t.stops,serviceRouteId:t.serviceRouteId}})),e},Z=t=>{const e={routes:{}};return t.forEach(((t,n)=>{e.routes[n]={type:K(t.type),name:t.name}})),e},q=t=>{switch(t){case N.RECOMMENDED_TRANSFER_POINT:return"RECOMMENDED";case N.TIMED_TRANSFER:return"GUARANTEED";case N.REQUIRES_MINIMAL_TIME:return"REQUIRES_MINIMAL_TIME";case N.IN_SEAT_TRANSFER:return"IN_SEAT";case N.UNRECOGNIZED:throw new Error("Unrecognized protobuf transfer type.")}},Q=t=>{switch(t){case"RECOMMENDED":return N.RECOMMENDED_TRANSFER_POINT;case"GUARANTEED":return N.TIMED_TRANSFER;case"REQUIRES_MINIMAL_TIME":return N.REQUIRES_MINIMAL_TIME;case"IN_SEAT":return N.IN_SEAT_TRANSFER}},X=t=>{switch(t){case O.TRAM:return"TRAM";case O.SUBWAY:return"SUBWAY";case O.RAIL:return"RAIL";case O.BUS:return"BUS";case O.FERRY:return"FERRY";case O.CABLE_TRAM:return"CABLE_TRAM";case O.AERIAL_LIFT:return"AERIAL_LIFT";case O.FUNICULAR:return"FUNICULAR";case O.TROLLEYBUS:return"TROLLEYBUS";case O.MONORAIL:return"MONORAIL";case O.UNRECOGNIZED:default:throw new Error("Unrecognized protobuf route type.")}},K=t=>{switch(t){case"TRAM":return O.TRAM;case"SUBWAY":return O.SUBWAY;case"RAIL":return O.RAIL;case"BUS":return O.BUS;case"FERRY":return O.FERRY;case"CABLE_TRAM":return O.CABLE_TRAM;case"AERIAL_LIFT":return O.AERIAL_LIFT;case"FUNICULAR":return O.FUNICULAR;case"TROLLEYBUS":return O.TROLLEYBUS;case"MONORAIL":return O.MONORAIL}},tt=t=>{switch(t){case S.MUST_PHONE_AGENCY:return"MUST_PHONE_AGENCY";case S.MUST_COORDINATE_WITH_DRIVER:return"MUST_COORDINATE_WITH_DRIVER";case S.NOT_AVAILABLE:return"NOT_AVAILABLE";default:return"REGULAR"}},et=t=>{switch(t){case"REGULAR":return;case"NOT_AVAILABLE":return S.NOT_AVAILABLE;case"MUST_COORDINATE_WITH_DRIVER":return S.MUST_COORDINATE_WITH_DRIVER;case"MUST_PHONE_AGENCY":return S.MUST_PHONE_AGENCY}},nt=["TRAM","SUBWAY","RAIL","BUS","FERRY","CABLE_TRAM","AERIAL_LIFT","FUNICULAR","TROLLEYBUS","MONORAIL"],rt="0.0.1";class st{constructor(t,e,n){this.stopsAdjacency=t,this.routesAdjacency=e,this.routes=n}serialize(){const t={version:rt,stopsAdjacency:W(this.stopsAdjacency),routesAdjacency:H(this.routesAdjacency),routes:Z(this.routes)},e=new A;return $.encode(t,e),e.finish()}static fromData(t){const n=new I(t),r=$.decode(n);if(r.version!==rt)throw new Error(`Unsupported timetable version ${r.version}`);return new st((t=>{const n=new Map;return Object.entries(t.stops).forEach((([t,r])=>{n.set(t,{transfers:r.transfers.map((t=>Object.assign({destination:t.destination,type:q(t.type)},void 0!==t.minTransferTime&&{minTransferTime:e.fromSeconds(t.minTransferTime)}))),routes:r.routes})})),n})(r.stopsAdjacency),(t=>{const e=new Map;return Object.entries(t.routes).forEach((([t,n])=>{e.set(t,{stopTimes:n.stopTimes.map((t=>({arrival:Y.fromSeconds(t.arrival),departure:Y.fromSeconds(t.departure),pickUpType:void 0!==t.pickUpType?tt(t.pickUpType):"REGULAR",dropOffType:void 0!==t.dropOffType?tt(t.dropOffType):"REGULAR"}))),stops:n.stops,stopIndices:new Map(n.stops.map(((t,e)=>[t,e]))),serviceRouteId:n.serviceRouteId})})),e})(r.routesAdjacency),(t=>{const e=new Map;return Object.entries(t.routes).forEach((([t,n])=>{e.set(t,{type:X(n.type),name:n.name})})),e})(r.routes))}getRoute(t){return this.routesAdjacency.get(t)}getTransfers(t){var e,n;return null!==(n=null===(e=this.stopsAdjacency.get(t))||void 0===e?void 0:e.transfers)&&void 0!==n?n:[]}findReachableRoutes(t,e=nt){var n;const r=new Map;for(const s of t){const t=null===(n=this.stopsAdjacency.get(s))||void 0===n?void 0:n.routes.filter((t=>{const n=this.getServiceRouteFromRouteId(t);return!!n&&e.includes(n.type)}));for(const e of t||[]){const t=r.get(e);if(t){const n=this.routesAdjacency.get(e).stopIndices;n.get(s)<n.get(t)&&r.set(e,s)}else r.set(e,s)}}return r}getServiceRouteFromRouteId(t){const e=this.routesAdjacency.get(t);if(e)return this.routes.get(e.serviceRouteId);console.warn(`Route ${t} not found.`)}getServiceRoute(t){return this.routes.get(t)}findEarliestTrip(t,e,n,r=Y.origin()){const s=t.stopIndices.get(e),o=t.stops.length;if(void 0!==n){let e,i;for(let a=n;a>=0;a--){const n=a*o+s,c=t.stopTimes[n];if(c.departure<=r)break;"NOT_AVAILABLE"!==c.pickUpType&&(void 0===i||c.departure<i)&&(e=a,i=c.departure)}return e}for(let e=0;e<t.stopTimes.length/o;e++){const n=e*o+s,i=t.stopTimes[n];if(i.departure>r&&"NOT_AVAILABLE"!==i.pickUpType)return e}}}class ot{constructor(t){this.from=t.fromValue,this.to=t.toValue,this.departureTime=t.departureTimeValue,this.options=t.optionsValue}}ot.Builder=class{constructor(){this.optionsValue={maxTransfers:5,minTransferTime:e.fromSeconds(120),transportModes:nt}}from(t){return this.fromValue=t,this}to(t){return this.toValue=Array.isArray(t)?t:[t],this}departureTime(t){return this.departureTimeValue=t,this}maxTransfers(t){return this.optionsValue.maxTransfers=t,this}minTransferTime(t){return this.optionsValue.minTransferTime=t,this}transportModes(t){return this.optionsValue.transportModes=t,this}build(){return new ot(this)}};class it{constructor(t){if(0===t.length)throw new Error("There must be at least one leg in a route");this.legs=t}departureTime(){const t=e.zero();for(let e=0;e<this.legs.length;e++){const n=this.legs[e];if("departureTime"in n)return n.departureTime.minus(t);"minTransferTime"in n&&n.minTransferTime&&t.add(n.minTransferTime)}throw new Error("No vehicle leg found in route")}arrivalTime(){let t=Y.origin();const n=e.zero();let r=!1;for(let e=this.legs.length-1;e>=0;e--){const s=this.legs[e];"arrivalTime"in s&&!r?(t=s.arrivalTime,r=!0):"minTransferTime"in s&&s.minTransferTime&&r&&n.add(s.minTransferTime)}if(!r)throw new Error("No vehicle leg found in route");return t.plus(n)}totalDuration(){return 0===this.legs.length?e.zero():this.arrivalTime().diff(this.departureTime())}print(){return this.legs.map(((t,e)=>{var n,r;return"route"in t?`Leg ${e+1}: ${t.from.name} to ${t.to.name}\n via route ${t.route.type} ${t.route.name},\n departs at ${t.departureTime.toString()}, arrives at ${t.arrivalTime.toString()}`:`Leg ${e+1}: Transfer from ${t.from.name} to ${t.to.name},\n minimum transfer time: ${null!==(r=null===(n=t.minTransferTime)||void 0===n?void 0:n.toString())&&void 0!==r?r:"not specified"}`})).join("\n")}}class at{constructor(t,e,n,r){this.query=t,this.earliestArrivals=e,this.earliestArrivalsPerRound=n,this.stopsIndex=r}bestRoute(t){var e,n,r;const s=(Array.isArray(t)?t:t?[t]:this.query.to).flatMap((t=>this.stopsIndex.equivalentStops(t)));let o,i;for(const t of s){const e=this.earliestArrivals.get(t);void 0!==e&&(void 0===i||e.time.toSeconds()<i.time.toSeconds())&&(o=t,i=e)}if(!o||!i)return;const a=[];let c=o,u=i.legNumber;for(;i.origin!==c;){const t=null===(e=this.earliestArrivalsPerRound[u])||void 0===e?void 0:e.get(c);if(!(null==t?void 0:t.leg))throw new Error(`No leg found for a trip leg: start stop=${null!==(r=null===(n=null==t?void 0:t.leg)||void 0===n?void 0:n.from.id)&&void 0!==r?r:"unknown"}, end stop=${c}, round=${u}, origin=${i.origin}`);a.unshift(t.leg),c=t.leg.from.id,"route"in t.leg&&(u-=1)}return new it(a)}arrivalAt(t,e){const n=this.stopsIndex.equivalentStops(t);let r;const s=void 0!==e?this.earliestArrivalsPerRound[e-1]:this.earliestArrivals;for(const t of n){const e=s.get(t);void 0!==e&&(void 0===r||e.time.toSeconds()<r.time.toSeconds())&&(r=e)}return r}}const ct=Y.infinity();class ut{constructor(t=[],e=lt){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let t=(this.length>>1)-1;t>=0;t--)this._down(t)}push(t){this.data.push(t),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:n}=this,r=e[t];for(;t>0;){const s=t-1>>1,o=e[s];if(n(r,o)>=0)break;e[t]=o,t=s}e[t]=r}_down(t){const{data:e,compare:n}=this,r=this.length>>1,s=e[t];for(;t<r;){let r=1+(t<<1),o=e[r];const i=r+1;if(i<this.length&&n(e[i],o)<0&&(r=i,o=e[i]),n(o,s)>=0)break;e[t]=o,t=r}e[t]=s}}function lt(t,e){return t<e?-1:t>e?1:0}const dt=Math.PI/180;function ft(t,e,n,r){const s=r.minLng,o=r.maxLng,i=r.minLat,a=r.maxLat;if(t>=s&&t<=o)return e<i?pt((e-i)*dt):e>a?pt((e-a)*dt):0;const c=Math.min(pt((t-s)*dt),pt((t-o)*dt)),u=function(t,e){const n=1-2*e;return n<=0?t>0?90:-90:Math.atan(Math.tan(t*dt)/n)/dt}(e,c);return u>i&&u<a?mt(c,n,e,u):Math.min(mt(c,n,e,i),mt(c,n,e,a))}function ht(t,e){return t.dist-e.dist}function pt(t){const e=Math.sin(t/2);return e*e}function mt(t,e,n,r){return e*Math.cos(r*dt)*t+pt((n-r)*dt)}function vt(t,e,n,r,s){return mt(pt((t-n)*dt),s,e,r)}const Tt=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class gt{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[e,n]=new Uint8Array(t,0,2);if(219!==e)throw new Error("Data does not appear to be in a KDBush format.");const r=n>>4;if(1!==r)throw new Error(`Got v${r} data when expected v1.`);const s=Tt[15&n];if(!s)throw new Error("Unrecognized array type.");const[o]=new Uint16Array(t,2,1),[i]=new Uint32Array(t,4,1);return new gt(i,o,s,t)}constructor(t,e=64,n=Float64Array,r){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+e,2),65535),this.ArrayType=n,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const s=Tt.indexOf(this.ArrayType),o=2*t*this.ArrayType.BYTES_PER_ELEMENT,i=t*this.IndexArrayType.BYTES_PER_ELEMENT,a=(8-i%8)%8;if(s<0)throw new Error(`Unexpected typed array class: ${n}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+i+a,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+o+i+a),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+i+a,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+s]),new Uint16Array(this.data,2,1)[0]=e,new Uint32Array(this.data,4,1)[0]=t)}add(t,e){const n=this._pos>>1;return this.ids[n]=n,this.coords[this._pos++]=t,this.coords[this._pos++]=e,n}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return Et(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,e,n,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:s,coords:o,nodeSize:i}=this,a=[0,s.length-1,0],c=[];for(;a.length;){const u=a.pop()||0,l=a.pop()||0,d=a.pop()||0;if(l-d<=i){for(let i=d;i<=l;i++){const a=o[2*i],u=o[2*i+1];a>=t&&a<=n&&u>=e&&u<=r&&c.push(s[i])}continue}const f=d+l>>1,h=o[2*f],p=o[2*f+1];h>=t&&h<=n&&p>=e&&p<=r&&c.push(s[f]),(0===u?t<=h:e<=p)&&(a.push(d),a.push(f-1),a.push(1-u)),(0===u?n>=h:r>=p)&&(a.push(f+1),a.push(l),a.push(1-u))}return c}within(t,e,n){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:s,nodeSize:o}=this,i=[0,r.length-1,0],a=[],c=n*n;for(;i.length;){const u=i.pop()||0,l=i.pop()||0,d=i.pop()||0;if(l-d<=o){for(let n=d;n<=l;n++)_t(s[2*n],s[2*n+1],t,e)<=c&&a.push(r[n]);continue}const f=d+l>>1,h=s[2*f],p=s[2*f+1];_t(h,p,t,e)<=c&&a.push(r[f]),(0===u?t-n<=h:e-n<=p)&&(i.push(d),i.push(f-1),i.push(1-u)),(0===u?t+n>=h:e+n>=p)&&(i.push(f+1),i.push(l),i.push(1-u))}return a}}function Et(t,e,n,r,s,o){if(s-r<=n)return;const i=r+s>>1;yt(t,e,i,r,s,o),Et(t,e,n,r,i-1,1-o),Et(t,e,n,i+1,s,1-o)}function yt(t,e,n,r,s,o){for(;s>r;){if(s-r>600){const i=s-r+1,a=n-r+1,c=Math.log(i),u=.5*Math.exp(2*c/3),l=.5*Math.sqrt(c*u*(i-u)/i)*(a-i/2<0?-1:1);yt(t,e,n,Math.max(r,Math.floor(n-a*u/i+l)),Math.min(s,Math.floor(n+(i-a)*u/i+l)),o)}const i=e[2*n+o];let a=r,c=s;for(At(t,e,r,n),e[2*s+o]>i&&At(t,e,r,s);a<c;){for(At(t,e,a,c),a++,c--;e[2*a+o]<i;)a++;for(;e[2*c+o]>i;)c--}e[2*r+o]===i?At(t,e,r,c):(c++,At(t,e,c,s)),c<=n&&(r=c+1),n<=c&&(s=c-1)}}function At(t,e,n,r){It(t,n,r),It(e,2*n,2*r),It(e,2*n+1,2*r+1)}function It(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function _t(t,e,n,r){const s=t-n,o=e-r;return s*s+o*o}const Rt="KEYS",St="VALUES",Nt="";class Ot{set;_type;_path;constructor(t,e){const n=t._tree,r=Array.from(n.keys());this.set=t,this._type=e,this._path=r.length>0?[{node:n,keys:r}]:[]}next(){const t=this.dive();return this.backtrack(),t}dive(){if(0===this._path.length)return{done:!0,value:void 0};const{node:t,keys:e}=wt(this._path);if(wt(e)===Nt)return{done:!1,value:this.result()};const n=t.get(wt(e));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()}backtrack(){if(0===this._path.length)return;const t=wt(this._path).keys;t.pop(),!(t.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map((({keys:t})=>wt(t))).filter((t=>t!==Nt)).join("")}value(){return wt(this._path).node.get(Nt)}result(){switch(this._type){case St:return this.value();case Rt:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const wt=t=>t[t.length-1],bt=(t,e,n,r,s,o,i,a)=>{const c=o*i;t:for(const u of t.keys())if(u===Nt){const e=s[c-1];e<=n&&r.set(a,[t.get(u),e])}else{let c=o;for(let t=0;t<u.length;++t,++c){const r=u[t],o=i*c,a=o-i;let l=s[o];const d=Math.max(0,c-n-1),f=Math.min(i-1,c+n);for(let t=d;t<f;++t){const n=r!==e[t],i=s[a+t]+ +n,c=s[a+t+1]+1,u=s[o+t]+1,d=s[o+t+1]=Math.min(i,c,u);d<l&&(l=d)}if(l>n)continue t}bt(t.get(u),e,n,r,s,c,i,a+u)}};class kt{_tree;_prefix;_size=void 0;constructor(t=new Map,e=""){this._tree=t,this._prefix=e}atPrefix(t){if(!t.startsWith(this._prefix))throw new Error("Mismatched prefix");const[e,n]=Mt(this._tree,t.slice(this._prefix.length));if(void 0===e){const[e,r]=Ct(n);for(const n of e.keys())if(n!==Nt&&n.startsWith(r)){const s=new Map;return s.set(n.slice(r.length),e.get(n)),new kt(s,t)}}return new kt(e,t)}clear(){this._size=void 0,this._tree.clear()}delete(t){return this._size=void 0,xt(this._tree,t)}entries(){return new Ot(this,"ENTRIES")}forEach(t){for(const[e,n]of this)t(e,n,this)}fuzzyGet(t,e){return((t,e,n)=>{const r=new Map;if("string"!=typeof e)return r;const s=e.length+1,o=s+n,i=new Uint8Array(o*s).fill(n+1);for(let t=0;t<s;++t)i[t]=t;for(let t=1;t<o;++t)i[t*s]=t;return bt(t,e,n,r,i,1,s,""),r})(this._tree,t,e)}get(t){const e=Lt(this._tree,t);return void 0!==e?e.get(Nt):void 0}has(t){return Lt(this._tree,t)?.has(Nt)??!1}keys(){return new Ot(this,Rt)}set(t,e){if("string"!=typeof t)throw new Error("key must be a string");return this._size=void 0,Ut(this._tree,t).set(Nt,e),this}get size(){if(this._size)return this._size;this._size=0;const t=this.entries();for(;!t.next().done;)this._size+=1;return this._size}update(t,e){if("string"!=typeof t)throw new Error("key must be a string");this._size=void 0;const n=Ut(this._tree,t);return n.set(Nt,e(n.get(Nt))),this}fetch(t,e){if("string"!=typeof t)throw new Error("key must be a string");this._size=void 0;const n=Ut(this._tree,t);let r=n.get(Nt);return void 0===r&&n.set(Nt,r=e()),r}values(){return new Ot(this,St)}[Symbol.iterator](){return this.entries()}static from(t){const e=new kt;for(const[n,r]of t)e.set(n,r);return e}static fromObject(t){return kt.from(Object.entries(t))}}const Mt=(t,e,n=[])=>{if(0===e.length||null==t)return[t,n];for(const r of t.keys())if(r!==Nt&&e.startsWith(r))return n.push([t,r]),Mt(t.get(r),e.slice(r.length),n);return n.push([t,e]),Mt(void 0,"",n)},Lt=(t,e)=>{if(0===e.length||!t)return t;for(const n of t.keys())if(n!==Nt&&e.startsWith(n))return Lt(t.get(n),e.slice(n.length))},Ut=(t,e)=>{const n=e.length;t:for(let r=0;t&&r<n;){for(const s of t.keys())if(s!==Nt&&e[r]===s[0]){const o=Math.min(n-r,s.length);let i=1;for(;i<o&&e[r+i]===s[i];)++i;const a=t.get(s);if(i===s.length)t=a;else{const n=new Map;n.set(s.slice(i),a),t.set(e.slice(r,r+i),n),t.delete(s),t=n}r+=i;continue t}const s=new Map;return t.set(e.slice(r),s),s}return t},xt=(t,e)=>{const[n,r]=Mt(t,e);if(void 0!==n)if(n.delete(Nt),0===n.size)Dt(r);else if(1===n.size){const[t,e]=n.entries().next().value;Bt(r,t,e)}},Dt=t=>{if(0===t.length)return;const[e,n]=Ct(t);if(e.delete(n),0===e.size)Dt(t.slice(0,-1));else if(1===e.size){const[n,r]=e.entries().next().value;n!==Nt&&Bt(t.slice(0,-1),n,r)}},Bt=(t,e,n)=>{if(0===t.length)return;const[r,s]=Ct(t);r.set(s+e,n),r.delete(s)},Ct=t=>t[t.length-1],Pt=/[\n\r\p{Z}\p{P}]+/u,Ft="or",jt="and",zt="and_not",Gt=(t,e)=>{t.includes(e)||t.push(e)},$t=(t,e)=>{for(const n of e)t.includes(n)||t.push(n)},Vt=({score:t},{score:e})=>e-t,Jt=()=>new Map,Yt=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0,Wt={[Ft]:(t,e)=>{for(const n of e.keys()){const r=t.get(n);if(null==r)t.set(n,e.get(n));else{const{score:t,terms:s,match:o}=e.get(n);r.score=r.score+t,r.match=Object.assign(r.match,o),$t(r.terms,s)}}return t},[jt]:(t,e)=>{const n=new Map;for(const r of e.keys()){const s=t.get(r);if(null==s)continue;const{score:o,terms:i,match:a}=e.get(r);$t(s.terms,i),n.set(r,{score:s.score+o,terms:s.terms,match:Object.assign(s.match,a)})}return n},[zt]:(t,e)=>{for(const n of e.keys())t.delete(n);return t}},Ht=(t,e,n,r,s,o)=>{const{k:i,b:a,d:c}=o;return Math.log(1+(n-e+.5)/(e+.5))*(c+t*(i+1)/(t+i*(1-a+a*r/s)))},Zt=(t,e,n,r)=>{for(const s of Object.keys(t._fieldIds))if(t._fieldIds[s]===n)return void t._options.logger("warn",`SlimSearch: document with ID ${t._documentIds.get(e)} has changed before removal: term "${r}" was not present in field "${s}". Removing a document after it has changed can corrupt the index!`,"version_conflict")},qt=(t,e,n,r)=>{const s=t._index.fetch(r,Jt);let o=s.get(e);if(null==o)o=new Map,o.set(n,1),s.set(e,o);else{const t=o.get(n);o.set(n,(t??0)+1)}},Qt=(t,e,n,r)=>{if(!t._index.has(r))return void Zt(t,n,e,r);const s=t._index.fetch(r,Jt),o=s.get(e),i=o?.get(n);!o||typeof i>"u"?Zt(t,n,e,r):i<=1?o.size<=1?s.delete(e):o.delete(n):o.set(n,i-1),0===t._index.get(r).size&&t._index.delete(r)},Xt=(t,e,n,r,s)=>{let o=t._fieldLength.get(e);null==o&&t._fieldLength.set(e,o=[]),o[n]=s;const i=(t._avgFieldLength[n]||0)*r+s;t._avgFieldLength[n]=i/(r+1)},Kt=(t,e)=>{const{extractField:n,tokenize:r,processTerm:s,fields:o,idField:i}=t._options,a=n(e,i);if(null==a)throw new Error(`SlimSearch: document does not have ID field "${i}"`);if(((t,e)=>t._idToShortId.has(e))(t,a))throw new Error(`SlimSearch: duplicate ID ${a}`);const c=((t,e)=>{const n=t._nextId;return t._idToShortId.set(e,n),t._documentIds.set(n,e),t._documentCount+=1,t._nextId+=1,n})(t,a);((t,e,n)=>{const{storeFields:r,extractField:s}=t._options;if(0===r?.length)return;let o=t._storedFields.get(e);void 0===o&&t._storedFields.set(e,o={});for(const t of r){const e=s(n,t);null!=e&&(o[t]=e)}})(t,c,e);for(const i of o){const o=n(e,i);if(null==o)continue;const a=r(o.toString(),i),u=t._fieldIds[i],l=new Set(a).size;Xt(t,c,u,t._documentCount-1,l);for(const e of a){const n=s(e,i);if(Array.isArray(n))for(const e of n)qt(t,u,c,e);else n&&qt(t,u,c,n)}}},te={idField:"id",extractField:(t,e)=>t[e],tokenize:t=>t.split(Pt),processTerm:t=>t.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(t,e)=>{console?.[t]?.(e)},autoVacuum:!0},ee={combineWith:Ft,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:{k:1.2,b:.7,d:.5}},ne={combineWith:"and",prefix:(t,e,n)=>e===n.length-1},re={minDirtFactor:.1,minDirtCount:20},se={batchSize:1e3,batchWait:10,...re},oe=Symbol("*"),ie=(t,e=Ft)=>{if(0===t.length)return new Map;const n=e.toLowerCase();if(!(n in Wt))throw new Error(`Invalid combination operator: ${e}`);return t.reduce(Wt[n])},ae=(t,e,n,r,s,o,i,a,c,u=new Map)=>{if(null==o)return u;for(const l of Object.keys(i)){const d=i[l],f=t._fieldIds[l],h=o.get(f);if(null==h)continue;let p=h.size;const m=t._avgFieldLength[f];for(const o of h.keys()){if(!t._documentIds.has(o)){Qt(t,f,o,n),p-=1;continue}const i=a?a(t._documentIds.get(o),n,t._storedFields.get(o)):1;if(!i)continue;const v=h.get(o),T=t._fieldLength.get(o)[f],g=r*s*d*i*Ht(v,p,t._documentCount,T,m,c),E=u.get(o);if(E){E.score+=g,Gt(E.terms,e);const t=Yt(E.match,n);t?t.push(l):E.match[n]=[l]}else u.set(o,{score:g,terms:[e],match:{[n]:[l]}})}}return u},ce=(t,e,n={})=>{if(e===oe)return((t,e)=>{const n=new Map,r={...t._options.searchOptions,...e};for(const[e,s]of t._documentIds){const o=r.boostDocument?r.boostDocument(s,"",t._storedFields.get(e)):1;n.set(e,{score:o,terms:[],match:{}})}return n})(t,n);if("string"!=typeof e){const r={...n,...e,queries:void 0},s=e.queries.map((e=>ce(t,e,r)));return ie(s,r.combineWith)}const{tokenize:r,processTerm:s,searchOptions:o}=t._options,i={tokenize:r,processTerm:s,...o,...n},{tokenize:a,processTerm:c}=i,u=a(e).flatMap((t=>c(t))).filter((t=>!!t)).map((t=>(e,n,r)=>({term:e,fuzzy:"function"==typeof t.fuzzy?t.fuzzy(e,n,r):t.fuzzy??!1,prefix:"function"==typeof t.prefix?t.prefix(e,n,r):!0===t.prefix,termBoost:"function"==typeof t.boostTerm?t.boostTerm(e,n,r):1}))(i)).map((e=>((t,e,n)=>{const r={...t._options.searchOptions,...n},s=(r.fields??t._options.fields).reduce(((t,e)=>({...t,[e]:Yt(r.boost,e)||1})),{}),{boostDocument:o,weights:i,maxFuzzy:a,bm25:c}=r,{fuzzy:u,prefix:l}={...ee.weights,...i},d=t._index.get(e.term),f=ae(t,e.term,e.term,1,e.termBoost,d,s,o,c);let h,p;if(e.prefix&&(h=t._index.atPrefix(e.term)),e.fuzzy){const n=!0===e.fuzzy?.2:e.fuzzy,r=n<1?Math.min(a,Math.round(e.term.length*n)):n;r&&(p=t._index.fuzzyGet(e.term,r))}if(h)for(const[n,r]of h){const i=n.length-e.term.length;if(!i)continue;p?.delete(n);const a=l*n.length/(n.length+.3*i);ae(t,e.term,n,a,e.termBoost,r,s,o,c,f)}if(p)for(const n of p.keys()){const[r,i]=p.get(n);if(!i)continue;const a=u*n.length/(n.length+i);ae(t,e.term,n,a,e.termBoost,r,s,o,c,f)}return f})(t,e,i)));return ie(u,i.combineWith)};class ue{_options;_index;_documentCount;_documentIds;_idToShortId;_fieldIds;_fieldLength;_avgFieldLength;_nextId;_storedFields;_dirtCount;_currentVacuum;_enqueuedVacuum;_enqueuedVacuumConditions;constructor(t){if(!t?.fields)throw new Error('SlimSearch: option "fields" must be provided');const e=null==t.autoVacuum||!0===t.autoVacuum?se:t.autoVacuum;this._options={...te,...t,autoVacuum:e,searchOptions:{...ee,...t.searchOptions},autoSuggestOptions:{...ne,...t.autoSuggestOptions}},this._index=new kt,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=re,this.addFields(this._options.fields)}get isVacuuming(){return null!=this._currentVacuum}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 t=[];for(const[e,n]of this._index){const r={};for(const[t,e]of n)r[t]=Object.fromEntries(e);t.push([e,r])}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:t,version:2}}addFields(t){for(let e=0;e<t.length;e++)this._fieldIds[t[e]]=e}}const le=t=>{const e=t.toLowerCase(),n=new Set([e]),r={a:["à","â","ä"],c:["ç"],e:["é","è","ê","ë"],i:["î","ï"],o:["ô","ö"],u:["ù","û","ü"],ae:["ä"],oe:["ö"],ue:["ü"]};for(const[t,s]of Object.entries(r))e.includes(t)&&s.forEach((r=>{n.add(e.replace(t,r))})),s.forEach((r=>{e.includes(r)&&n.add(e.replace(r,t))}));return Array.from(n)};var de;function fe(t){switch(t){case 0:case"SIMPLE_STOP_OR_PLATFORM":return de.SIMPLE_STOP_OR_PLATFORM;case 1:case"STATION":return de.STATION;case 2:case"ENTRANCE_EXIT":return de.ENTRANCE_EXIT;case 3:case"GENERIC_NODE":return de.GENERIC_NODE;case 4:case"BOARDING_AREA":return de.BOARDING_AREA;default:return de.UNRECOGNIZED}}!function(t){t[t.SIMPLE_STOP_OR_PLATFORM=0]="SIMPLE_STOP_OR_PLATFORM",t[t.STATION=1]="STATION",t[t.ENTRANCE_EXIT=2]="ENTRANCE_EXIT",t[t.GENERIC_NODE=3]="GENERIC_NODE",t[t.BOARDING_AREA=4]="BOARDING_AREA",t[t.UNRECOGNIZED=-1]="UNRECOGNIZED"}(de||(de={}));const he={encode(t,e=new A){""!==t.name&&e.uint32(10).string(t.name),void 0!==t.lat&&e.uint32(17).double(t.lat),void 0!==t.lon&&e.uint32(25).double(t.lon);for(const n of t.children)e.uint32(34).string(n);return void 0!==t.parent&&e.uint32(42).string(t.parent),0!==t.locationType&&e.uint32(48).int32(t.locationType),void 0!==t.platform&&e.uint32(58).string(t.platform),e},decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={name:"",lat:void 0,lon:void 0,children:[],parent:void 0,locationType:0,platform:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;s.name=n.string();continue;case 2:if(17!==t)break;s.lat=n.double();continue;case 3:if(25!==t)break;s.lon=n.double();continue;case 4:if(34!==t)break;s.children.push(n.string());continue;case 5:if(42!==t)break;s.parent=n.string();continue;case 6:if(48!==t)break;s.locationType=n.int32();continue;case 7:if(58!==t)break;s.platform=n.string();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({name:ve(t.name)?globalThis.String(t.name):"",lat:ve(t.lat)?globalThis.Number(t.lat):void 0,lon:ve(t.lon)?globalThis.Number(t.lon):void 0,children:globalThis.Array.isArray(null==t?void 0:t.children)?t.children.map((t=>globalThis.String(t))):[],parent:ve(t.parent)?globalThis.String(t.parent):void 0,locationType:ve(t.locationType)?fe(t.locationType):0,platform:ve(t.platform)?globalThis.String(t.platform):void 0}),toJSON(t){var e;const n={};return""!==t.name&&(n.name=t.name),void 0!==t.lat&&(n.lat=t.lat),void 0!==t.lon&&(n.lon=t.lon),(null===(e=t.children)||void 0===e?void 0:e.length)&&(n.children=t.children),void 0!==t.parent&&(n.parent=t.parent),0!==t.locationType&&(n.locationType=function(t){switch(t){case de.SIMPLE_STOP_OR_PLATFORM:return"SIMPLE_STOP_OR_PLATFORM";case de.STATION:return"STATION";case de.ENTRANCE_EXIT:return"ENTRANCE_EXIT";case de.GENERIC_NODE:return"GENERIC_NODE";case de.BOARDING_AREA:return"BOARDING_AREA";case de.UNRECOGNIZED:default:return"UNRECOGNIZED"}}(t.locationType)),void 0!==t.platform&&(n.platform=t.platform),n},create:t=>he.fromPartial(null!=t?t:{}),fromPartial(t){var e,n,r,s,o,i,a;const c={name:"",lat:void 0,lon:void 0,children:[],parent:void 0,locationType:0,platform:void 0};return c.name=null!==(e=t.name)&&void 0!==e?e:"",c.lat=null!==(n=t.lat)&&void 0!==n?n:void 0,c.lon=null!==(r=t.lon)&&void 0!==r?r:void 0,c.children=(null===(s=t.children)||void 0===s?void 0:s.map((t=>t)))||[],c.parent=null!==(o=t.parent)&&void 0!==o?o:void 0,c.locationType=null!==(i=t.locationType)&&void 0!==i?i:0,c.platform=null!==(a=t.platform)&&void 0!==a?a:void 0,c}};const pe={encode:(t,e=new A)=>(""!==t.version&&e.uint32(10).string(t.version),Object.entries(t.stops).forEach((([t,n])=>{me.encode({key:t,value:n},e.uint32(18).fork()).join()})),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={version:"",stops:{}};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;s.version=n.string();continue;case 2:{if(18!==t)break;const e=me.decode(n,n.uint32());void 0!==e.value&&(s.stops[e.key]=e.value);continue}}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON(t){return{version:ve(t.version)?globalThis.String(t.version):"",stops:(e=t.stops,"object"==typeof e&&null!==e?Object.entries(t.stops).reduce(((t,[e,n])=>(t[e]=he.fromJSON(n),t)),{}):{})};var e},toJSON(t){const e={};if(""!==t.version&&(e.version=t.version),t.stops){const n=Object.entries(t.stops);n.length>0&&(e.stops={},n.forEach((([t,n])=>{e.stops[t]=he.toJSON(n)})))}return e},create:t=>pe.fromPartial(null!=t?t:{}),fromPartial(t){var e,n;const r={version:"",stops:{}};return r.version=null!==(e=t.version)&&void 0!==e?e:"",r.stops=Object.entries(null!==(n=t.stops)&&void 0!==n?n:{}).reduce(((t,[e,n])=>(void 0!==n&&(t[e]=he.fromPartial(n)),t)),{}),r}};const me={encode:(t,e=new A)=>(""!==t.key&&e.uint32(10).string(t.key),void 0!==t.value&&he.encode(t.value,e.uint32(18).fork()).join(),e),decode(t,e){const n=t instanceof I?t:new I(t);let r=void 0===e?n.len:n.pos+e;const s={key:"",value:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;s.key=n.string();continue;case 2:if(18!==t)break;s.value=he.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return s},fromJSON:t=>({key:ve(t.key)?globalThis.String(t.key):"",value:ve(t.value)?he.fromJSON(t.value):void 0}),toJSON(t){const e={};return""!==t.key&&(e.key=t.key),void 0!==t.value&&(e.value=he.toJSON(t.value)),e},create:t=>me.fromPartial(null!=t?t:{}),fromPartial(t){var e;const n={key:"",value:void 0};return n.key=null!==(e=t.key)&&void 0!==e?e:"",n.value=void 0!==t.value&&null!==t.value?he.fromPartial(t.value):void 0,n}};function ve(t){return null!=t}const Te="0.0.1",ge=t=>{const e={version:Te,stops:{}};return t.forEach(((t,n)=>{var r;e.stops[n]={name:(r=t).name,lat:r.lat,lon:r.lon,children:r.children,parent:r.parent,locationType:Ae(r.locationType),platform:r.platform}})),e},Ee=t=>{if(t.version!==Te)throw new Error(`Unsupported stopMap version ${t.version}`);const e=new Map;return Object.entries(t.stops).forEach((([t,n])=>{var r;e.set(t,{id:t,name:(r=n).name,lat:r.lat,lon:r.lon,children:r.children,parent:r.parent,locationType:ye(r.locationType),platform:r.platform})})),e},ye=t=>{switch(t){case de.SIMPLE_STOP_OR_PLATFORM:return"SIMPLE_STOP_OR_PLATFORM";case de.STATION:return"STATION";case de.ENTRANCE_EXIT:return"ENTRANCE_EXIT";case de.GENERIC_NODE:return"GENERIC_NODE";case de.BOARDING_AREA:return"BOARDING_AREA";case de.UNRECOGNIZED:throw new Error("Unrecognized protobuf location type.")}},Ae=t=>{switch(t){case"SIMPLE_STOP_OR_PLATFORM":return de.SIMPLE_STOP_OR_PLATFORM;case"STATION":return de.STATION;case"ENTRANCE_EXIT":return de.ENTRANCE_EXIT;case"GENERIC_NODE":return de.GENERIC_NODE;case"BOARDING_AREA":return de.BOARDING_AREA}};class Ie{constructor(t){var e;this.stopsMap=t,this.textIndex=new ue({fields:["name"],storeFields:["id"],searchOptions:{prefix:!0,fuzzy:.2},processTerm:le});const n=new Map;for(const[r,s]of t.entries()){const t=null!==(e=s.parent)&&void 0!==e?e:r;n.has(t)||n.set(t,{id:t,name:s.parent?this.stopsMap.get(s.parent).name:s.name})}const r=Array.from(n.values());((t,e)=>{for(const n of e)Kt(t,n)})(this.textIndex,r),this.stopPoints=Array.from(this.stopsMap.entries()).filter((([,t])=>!(!t.lat||!t.lon))).map((([t,e])=>({id:t,lat:e.lat,lon:e.lon}))),this.geoIndex=new gt(this.stopPoints.length);for(const{lat:t,lon:e}of this.stopPoints)this.geoIndex.add(e,t);this.geoIndex.finish()}static fromData(t){const e=new I(t),n=pe.decode(e);return new Ie(Ee(n))}serialize(){const t=ge(this.stopsMap),e=new A;return pe.encode(t,e),e.finish()}findStopsByName(t,e=5){return((t,e,n={})=>{const{searchOptions:r}=t._options,s={...r,...n},o=ce(t,e,n),i=[];for(const[e,{score:n,terms:r,match:a}]of o){const o=r.length||1,c={id:t._documentIds.get(e),score:n*o,terms:Object.keys(a),queryTerms:r,match:a};Object.assign(c,t._storedFields.get(e)),(null==s.filter||s.filter(c))&&i.push(c)}return e===oe&&null==s.boostDocument||i.sort(Vt),i})(this.textIndex,t).map((t=>this.stopsMap.get(t.id))).slice(0,e)}findStopsByLocation(t,e,n=5,r=.5){const s=function(t,e,n,r=1/0,s=1/0){let o=1;const i=[];void 0===r&&(r=1/0),void 0!==s&&(o=pt(s/6371));const a=new ut([],ht);let c={left:0,right:t.ids.length-1,axis:0,dist:0,minLng:-180,minLat:-90,maxLng:180,maxLat:90};const u=Math.cos(n*dt);for(;c;){const s=c.right,l=c.left;if(s-l<=t.nodeSize)for(let r=l;r<=s;r++){const s=t.ids[r];{const o=vt(e,n,t.coords[2*r],t.coords[2*r+1],u);a.push({id:s,dist:o})}}else{const r=l+s>>1,o=t.coords[2*r],i=t.coords[2*r+1],d=t.ids[r];{const t=vt(e,n,o,i,u);a.push({id:d,dist:t})}const f=(c.axis+1)%2,h={left:l,right:r-1,axis:f,minLng:c.minLng,minLat:c.minLat,maxLng:0===c.axis?o:c.maxLng,maxLat:1===c.axis?i:c.maxLat,dist:0},p={left:r+1,right:s,axis:f,minLng:0===c.axis?o:c.minLng,minLat:1===c.axis?i:c.minLat,maxLng:c.maxLng,maxLat:c.maxLat,dist:0};h.dist=ft(e,n,u,h),p.dist=ft(e,n,u,p),a.push(h),a.push(p)}for(;a.length&&null!=a.peek().id;){const t=a.pop();if(t.dist>o)return i;if(i.push(t.id),i.length===r)return i}c=a.pop()}return i}(this.geoIndex,e,t,n,r).map((t=>{const e=this.stopPoints[t];return this.stopsMap.get(e.id)}));return s}findStopById(t){return this.stopsMap.get(t)}equivalentStops(t){var e,n;const r=this.stopsMap.get(t);if(!r)return[];const s=r.parent?null!==(n=null===(e=this.stopsMap.get(r.parent))||void 0===e?void 0:e.children)&&void 0!==n?n:[]:r.children;return Array.from(new Set([t,...s]))}}t.Plotter=class{constructor(t){this.result=t}plotDotGraph(){const t=this.result.earliestArrivalsPerRound,e=["digraph PathTree {"," graph [overlap=false];"," node [shape=ellipse style=filled fillcolor=lightgrey];"];return t.forEach(((t,n)=>{t.forEach((t=>{const{origin:r,leg:s}=t;if(!s)return;const o=this.result.stopsIndex.findStopById(s.from.id),i=this.result.stopsIndex.findStopById(s.to.id),a=this.result.stopsIndex.findStopById(r);if(o&&i&&a){const t=o.platform?`${o.name} (Pl. ${o.platform})`:o.name,r=i.platform?`${i.name} (Pl. ${i.platform})`:i.name,c=a.platform?`${a.name} (Pl. ${a.platform})`:a.name,u="route"in s,l=u?`${s.route.name}\n${s.departureTime.toString()} - ${s.arrivalTime.toString()}`:s.minTransferTime?s.minTransferTime.toString():"",d=`IntermediateNode${o.id}_${i.id}`,f=u?"":', color="red", fontcolor="red"',h=u?"":' fontcolor="red"';e.push(` "${t} (Origin: ${c}) [R${n}]\n(${o.id})" -> "${d}" [shape=point${f}];`),e.push(` "${d}" [label="${l}" shape=rect style=filled fillcolor=white${h} border=0];`),e.push(` "${d}" -> "${r} (Origin: ${c}) [R${n}]\n(${i.id})" [${f.replace(", ","")}];`)}}))})),e.push("}"),e.join("\n")}},t.Query=ot,t.Result=at,t.Route=it,t.Router=class{constructor(t,e){this.timetable=t,this.stopsIndex=e}considerTransfers(t,n,r,s,o){var i,a,c,u;const{options:l}=t,d=new Set;for(const t of n)for(const n of this.timetable.getTransfers(t)){let f;f=n.minTransferTime?n.minTransferTime:"IN_SEAT"===n.type?e.zero():l.minTransferTime;const h=r.get(t).time.plus(f),p=null!==(a=null===(i=r.get(n.destination))||void 0===i?void 0:i.time)&&void 0!==a?a:ct;if(h.toSeconds()<p.toSeconds()){const e=null!==(u=null===(c=r.get(t))||void 0===c?void 0:c.origin)&&void 0!==u?u:t;r.set(n.destination,{time:h,legNumber:o,origin:e,leg:{from:this.stopsIndex.findStopById(t),to:this.stopsIndex.findStopById(n.destination),minTransferTime:n.minTransferTime}}),s.set(n.destination,{time:h,legNumber:o,origin:e}),d.add(n.destination)}}for(const t of d)n.add(t)}route(t){var e,n,r,s,o,i,a;const{from:c,to:u,departureTime:l,options:d}=t,f=this.stopsIndex.equivalentStops(c),h=u.flatMap((t=>this.stopsIndex.equivalentStops(t))),p=new Map,m=new Map,v=[m],T=new Set;for(const t of f)T.add(t),p.set(t,{time:l,legNumber:0,origin:t}),m.set(t,{time:l,legNumber:0,origin:t});this.considerTransfers(t,T,m,p,0);for(let c=1;c<=d.maxTransfers+1;c++){const u=new Map;v.push(u);const l=v[c-1],f=this.timetable.findReachableRoutes(T,d.transportModes);T.clear();for(const[t,d]of f.entries()){const f=this.timetable.getRoute(t);let m;for(let t=f.stopIndices.get(d);t<f.stops.length;t++){const d=f.stops[t],v=f.stops.length;if(void 0!==m){const o=f.stopTimes[m.trip*v+t],i=null!==(n=null===(e=p.get(d))||void 0===e?void 0:e.time)&&void 0!==n?n:ct;let a=i;if(h.length>0){const t=[];for(const e of h){const n=null!==(s=null===(r=p.get(e))||void 0===r?void 0:r.time)&&void 0!==s?s:ct;t.push(n)}const e=Y.min(...t);a=Y.min(i,e)}if("NOT_AVAILABLE"!==o.dropOffType&&o.arrival.toSeconds()<a.toSeconds()){const t=f.stopIndices.get(m.bestHopOnStop),e=f.stopTimes[m.trip*v+t];u.set(d,{time:o.arrival,legNumber:c,origin:m.origin,leg:{from:this.stopsIndex.findStopById(m.bestHopOnStop),to:this.stopsIndex.findStopById(d),departureTime:e.departure,arrivalTime:o.arrival,route:this.timetable.getServiceRoute(f.serviceRouteId)}}),p.set(d,{time:o.arrival,legNumber:c,origin:m.origin}),T.add(d)}}const g=null===(o=l.get(d))||void 0===o?void 0:o.time;if(void 0!==g&&(void 0===m||g.toSeconds()<=f.stopTimes[m.trip*v+t].departure.toSeconds())){const t=this.timetable.findEarliestTrip(f,d,null==m?void 0:m.trip,g);void 0!==t&&(m={trip:t,bestHopOnStop:d,origin:null!==(a=null===(i=l.get(d))||void 0===i?void 0:i.origin)&&void 0!==a?a:d})}}}if(this.considerTransfers(t,T,u,p,c),0===T.size)break}return new at(t,p,v,this.stopsIndex)}},t.StopsIndex=Ie,t.Time=Y,t.Timetable=st}));
|
|
2
|
+
//# sourceMappingURL=bundle.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.umd.js","sources":["../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/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","../src/routing/plotter.ts"],"sourcesContent":[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/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\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-2024 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\"), MAX = BigInt(\"9223372036854775807\"), UMIN = BigInt(\"0\"), 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-2024 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 (e) {\n return false;\n }\n },\n };\n }\n return globalThis[symbol];\n}\n","// Copyright 2021-2024 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/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/restrict-plus-operands */\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 let 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 let 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 // eslint-disable-next-line\n // @ts-expect-error TS7029: Fallthrough case in switch\n case WireType.Bit64:\n this.pos += 4;\n // eslint-disable-next-line no-fallthrough\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 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 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 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 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 (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,"\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,null],"names":["Duration","constructor","totalSeconds","this","fromSeconds","seconds","fromMinutes","minutes","zero","toString","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","push","splitBits","hasMoreBits","TWO_PWR_32_DBL","int64FromString","dec","minus","slice","base","add1e6digit","begin","end","digit1e6","Number","negate","newBits","uInt64ToString","toUnsigned","String","mid","high","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","digit1e7","partial","length","varint32write","value","varint32read","result","readBytes","protoInt64","makeInt64Support","dv","DataView","ArrayBuffer","BigInt","getBigInt64","getBigUint64","setBigInt64","setBigUint64","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","e","WireType","FLOAT32_MAX","FLOAT32_MIN","BinaryWriter","stack","chunks","finish","Uint8Array","len","offset","set","fork","join","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","PickUpDropOffType","TransferType","RouteType","pickUpDropOffTypeFromJSON","object","NOT_AVAILABLE","MUST_PHONE_AGENCY","MUST_COORDINATE_WITH_DRIVER","UNRECOGNIZED","pickUpDropOffTypeToJSON","transferTypeFromJSON","RECOMMENDED_TRANSFER_POINT","TIMED_TRANSFER","REQUIRES_MINIMAL_TIME","IN_SEAT_TRANSFER","routeTypeFromJSON","TRAM","SUBWAY","RAIL","BUS","FERRY","CABLE_TRAM","AERIAL_LIFT","FUNICULAR","TROLLEYBUS","MONORAIL","StopTimes","message","writer","arrival","departure","pickUpType","dropOffType","input","reader","fromJSON","isSet","toJSON","obj","round","create","fromPartial","_a","_b","_c","_d","Route","v","stopTimes","stops","serviceRouteId","Array","isArray","map","RoutesAdjacency","Object","entries","routes","forEach","key","RoutesAdjacency_RoutesEntry","entry1","isObject","reduce","acc","k","Transfer","destination","minTransferTime","transferTypeToJSON","StopsAdjacency","StopsAdjacency_StopsEntry","StopsAdjacency_StopAdjacency","transfers","ServiceRoute","name","routeTypeToJSON","ServiceRoutesMap","ServiceRoutesMap_RoutesEntry","Timetable","version","stopsAdjacency","routesAdjacency","Time","infinity","MAX_SAFE_INTEGER","origin","secondsSinceMidnight","fromHMS","fromDate","date","getHours","getMinutes","getSeconds","fromString","timeStr","hoursStr","minutesStr","secondsStr","split","parseInt","plus","duration","diff","otherTime","abs","times","maxTime","currentTime","min","minTime","serializeStopsAdjacency","protoStopsAdjacency","transfer","assign","serializeTransferType","serializeRoutesAdjacency","protoRoutesAdjacency","serializePickUpDropOffType","serializeServiceRoutesMap","serviceRoutesMap","protoServiceRoutesMap","serializeRouteType","parseTransferType","ProtoTransferType","parseRouteType","ProtoRouteType","parsePickUpDropOffType","ProtoPickUpDropOffType","ALL_TRANSPORT_MODES","CURRENT_VERSION","serialize","protoTimetable","ProtoTimetable","fromData","data","Map","deserializeStopsAdjacency","stopIndices","stop","index","deserializeRoutesAdjacency","deserializeServiceRoutesMap","getRoute","routeId","get","getTransfers","stopId","findReachableRoutes","fromStops","transportModes","reachableRoutes","validRoutes","filter","serviceRoute","getServiceRouteFromRouteId","includes","hopOnStop","routeStopIndices","route","console","warn","getServiceRoute","findEarliestTrip","beforeTrip","after","stopIndex","stopsNumber","earliestTripIndex","earliestDeparture","tripIndex","stopTimeIndex","stopTime","Query","builder","from","fromValue","to","toValue","departureTime","departureTimeValue","options","optionsValue","Builder","maxTransfers","build","legs","cumulativeTransferTime","leg","arrivalTime","lastVehicleArrivalTime","totalTransferTime","vehicleLegFound","totalDuration","print","Result","query","earliestArrivals","earliestArrivalsPerRound","stopsIndex","bestRoute","destinations","flatMap","equivalentStops","fastestDestination","fastestTime","time","currentStop","legNumber","tripLeg","id","unshift","arrivalAt","earliestArrival","relevantArrivals","equivalentStop","UNREACHED","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","Uint16Array","Int32Array","Uint32Array","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","n","z","log","exp","sd","sqrt","t","j","swapItem","swap","arr","tmp","ax","ay","bx","by","dx","dy","B","G","g","V","_type","_path","_tree","keys","next","dive","backtrack","done","_prefix","iterator","K","c","u","d","h","f","_","p","l","w","C","O","S","I","_size","atPrefix","startsWith","L","clear","St","fuzzyGet","fill","zt","T","has","M","size","update","fetch","values","fromObject","delete","Q","Y","vt","D","H","Ft","kt","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","Set","$","toLowerCase","searchOptions","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","replace","LocationType","locationTypeFromJSON","SIMPLE_STOP_OR_PLATFORM","STATION","ENTRANCE_EXIT","GENERIC_NODE","BOARDING_AREA","Stop","lon","children","locationType","platform","locationTypeToJSON","_e","_f","_g","StopsMap","StopsMap_StopsEntry","entry2","serializeStopsMap","stopsMap","protoStopsMap","serializeLocationType","deserializeStopsMap","protoStop","parseProtoLocationType","protoLocationType","ProtoLocationType","StopsIndex","textIndex","stopsSet","effectiveStopId","stopsArray","addAll","stopPoints","geoIndex","KDTree","ProtoStopsMap","findStopsByName","maxResults","queryTerms","search","findStopsByLocation","radius","nearestStops","Infinity","maxDistance","maxHaverSinDist","q","midLng","midLat","nextAxis","leftNode","rightNode","candidate","around","stopPoint","findStopById","plotDotGraph","dotParts","arrivalsInRound","fromStop","toStop","originStop","fromName","toName","originName","isVehicle","routeLabelContent","intermediateNode","lineColor","labelColor","timetable","considerTransfers","markedStops","arrivalsAtCurrentRound","newlyMarkedStops","transferTime","arrivalAfterTransfer","originalArrival","newStop","origins","earliestArrivalsWithoutAnyLeg","arrivalsAtPreviousRound","currentTrip","stopNumbers","currentStopTimes","trip","earliestArrivalAtCurrentStop","arrivalToImprove","earliestArrivalsAtDestinations","destinationStop","earliestArrivalAtDestination","bestHopOnStopIndex","bestHopOnStop","bestHopOnStopTimes","earliestArrivalOnPreviousRound","earliestTrip"],"mappings":"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","x_google_ignoreList":[1,2,3,4,13,14,15,16]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|