From 5ca6c97cbe1ef7ff49839f4b0a660d1f08dc3f4b Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Thu, 8 Feb 2024 22:04:23 +0100 Subject: [PATCH] Split client into frontend website and server --- DCS Olympus Manager.lnk | Bin 0 -> 1757 bytes client/.vscode/settings.json | 2 - client/Dockerfile | 18 - client/bin/demo | 124 - client/bin/www | 102 - client/configurator.js | 194 - client/copy.sh | 4 - client/plugins/controltips/package-lock.json | 6317 -- .../plugins/databasemanager/package-lock.json | 6214 -- client/public/stylesheets/leaflet/leaflet.css | 661 - client/scripts/build-debug.bat | 4 - client/scripts/build-release.bat | 15 - client/scripts/copy.bat | 6 - client/scripts/debug-nodcs.bat | 10 - client/scripts/debug.bat | 7 - client/scripts/watch.bat | 1 - client/src/schemas/schema.ts | 82 - docker-compose.yml | 9 - frontend/server/.vscode/extensions.json | 5 + frontend/server/.vscode/launch.json | 42 + frontend/server/.vscode/tasks.json | 28 + {client => frontend/server}/app.js | 0 {client => frontend/server}/client.js | 0 {client => frontend/server}/client.vbs | 0 {client => frontend/server}/demo.js | 0 frontend/server/package.json | 31 + .../public/databases/airbases/caucasus.json | 0 .../public/databases/airbases/falklands.json | 0 .../public/databases/airbases/marianas.json | 0 .../public/databases/airbases/nevada.json | 0 .../public/databases/airbases/normandy.json | 0 .../databases/airbases/persiangulf.json | 0 .../public/databases/airbases/sinaimap.json | 0 .../public/databases/airbases/syria.json | 0 .../public/databases/airbases/thechannel.json | 0 .../server}/public/images/countries/ac.svg | 0 .../server}/public/images/countries/ad.svg | 0 .../server}/public/images/countries/ae.svg | 0 .../server}/public/images/countries/af.svg | 0 .../server}/public/images/countries/ag.svg | 0 .../server}/public/images/countries/ai.svg | 0 .../server}/public/images/countries/al.svg | 0 .../server}/public/images/countries/am.svg | 0 .../server}/public/images/countries/ao.svg | 0 .../server}/public/images/countries/aq.svg | 0 .../server}/public/images/countries/ar.svg | 0 .../server}/public/images/countries/arab.svg | 0 .../server}/public/images/countries/as.svg | 0 .../server}/public/images/countries/at.svg | 0 .../server}/public/images/countries/au.svg | 0 .../server}/public/images/countries/aw.svg | 0 .../server}/public/images/countries/ax.svg | 0 .../server}/public/images/countries/az.svg | 0 .../server}/public/images/countries/ba.svg | 0 .../server}/public/images/countries/bb.svg | 0 .../server}/public/images/countries/bd.svg | 0 .../server}/public/images/countries/be.svg | 0 .../server}/public/images/countries/bf.svg | 0 .../server}/public/images/countries/bg.svg | 0 .../server}/public/images/countries/bh.svg | 0 .../server}/public/images/countries/bi.svg | 0 .../server}/public/images/countries/bj.svg | 0 .../server}/public/images/countries/bl.svg | 0 .../server}/public/images/countries/blue.svg | 0 .../server}/public/images/countries/bm.svg | 0 .../server}/public/images/countries/bn.svg | 0 .../server}/public/images/countries/bo.svg | 0 .../server}/public/images/countries/bq.svg | 0 .../server}/public/images/countries/br.svg | 0 .../server}/public/images/countries/bs.svg | 0 .../server}/public/images/countries/bt.svg | 0 .../server}/public/images/countries/bv.svg | 0 .../server}/public/images/countries/bw.svg | 0 .../server}/public/images/countries/by.svg | 0 .../server}/public/images/countries/bz.svg | 0 .../server}/public/images/countries/ca.svg | 0 .../server}/public/images/countries/cc.svg | 0 .../server}/public/images/countries/cd.svg | 0 .../server}/public/images/countries/cefta.svg | 0 .../server}/public/images/countries/cf.svg | 0 .../server}/public/images/countries/cg.svg | 0 .../server}/public/images/countries/ch.svg | 0 .../server}/public/images/countries/ci.svg | 0 .../server}/public/images/countries/ck.svg | 0 .../server}/public/images/countries/cl.svg | 0 .../server}/public/images/countries/cm.svg | 0 .../server}/public/images/countries/cn.svg | 0 .../server}/public/images/countries/co.svg | 0 .../public/images/countries/codes.json | 0 .../server}/public/images/countries/cp.svg | 0 .../server}/public/images/countries/cr.svg | 0 .../server}/public/images/countries/cu.svg | 0 .../server}/public/images/countries/cv.svg | 0 .../server}/public/images/countries/cw.svg | 0 .../server}/public/images/countries/cx.svg | 0 .../server}/public/images/countries/cy.svg | 0 .../server}/public/images/countries/cz.svg | 0 .../server}/public/images/countries/de.svg | 0 .../server}/public/images/countries/dg.svg | 0 .../server}/public/images/countries/dj.svg | 0 .../server}/public/images/countries/dk.svg | 0 .../server}/public/images/countries/dm.svg | 0 .../server}/public/images/countries/do.svg | 0 .../server}/public/images/countries/dz.svg | 0 .../server}/public/images/countries/eac.svg | 0 .../server}/public/images/countries/ec.svg | 0 .../server}/public/images/countries/ee.svg | 0 .../server}/public/images/countries/eg.svg | 0 .../server}/public/images/countries/eh.svg | 0 .../server}/public/images/countries/er.svg | 0 .../server}/public/images/countries/es-ct.svg | 0 .../server}/public/images/countries/es-ga.svg | 0 .../server}/public/images/countries/es-pv.svg | 0 .../server}/public/images/countries/es.svg | 0 .../server}/public/images/countries/et.svg | 0 .../server}/public/images/countries/eu.svg | 0 .../server}/public/images/countries/fi.svg | 0 .../server}/public/images/countries/fj.svg | 0 .../server}/public/images/countries/fk.svg | 0 .../server}/public/images/countries/fm.svg | 0 .../server}/public/images/countries/fo.svg | 0 .../server}/public/images/countries/fr.svg | 0 .../server}/public/images/countries/ga.svg | 0 .../public/images/countries/gb-eng.svg | 0 .../public/images/countries/gb-nir.svg | 0 .../public/images/countries/gb-sct.svg | 0 .../public/images/countries/gb-wls.svg | 0 .../server}/public/images/countries/gb.svg | 0 .../server}/public/images/countries/gd.svg | 0 .../server}/public/images/countries/ge.svg | 0 .../server}/public/images/countries/gf.svg | 0 .../server}/public/images/countries/gg.svg | 0 .../server}/public/images/countries/gh.svg | 0 .../server}/public/images/countries/gi.svg | 0 .../server}/public/images/countries/gl.svg | 0 .../server}/public/images/countries/gm.svg | 0 .../server}/public/images/countries/gn.svg | 0 .../server}/public/images/countries/gp.svg | 0 .../server}/public/images/countries/gq.svg | 0 .../server}/public/images/countries/gr.svg | 0 .../server}/public/images/countries/gs.svg | 0 .../server}/public/images/countries/gt.svg | 0 .../server}/public/images/countries/gu.svg | 0 .../server}/public/images/countries/gw.svg | 0 .../server}/public/images/countries/gy.svg | 0 .../server}/public/images/countries/hk.svg | 0 .../server}/public/images/countries/hm.svg | 0 .../server}/public/images/countries/hn.svg | 0 .../server}/public/images/countries/hr.svg | 0 .../server}/public/images/countries/ht.svg | 0 .../server}/public/images/countries/hu.svg | 0 .../server}/public/images/countries/ic.svg | 0 .../server}/public/images/countries/id.svg | 0 .../server}/public/images/countries/ie.svg | 0 .../server}/public/images/countries/il.svg | 0 .../server}/public/images/countries/im.svg | 0 .../server}/public/images/countries/in.svg | 0 .../server}/public/images/countries/io.svg | 0 .../server}/public/images/countries/iq.svg | 0 .../server}/public/images/countries/ir.svg | 0 .../server}/public/images/countries/is.svg | 0 .../server}/public/images/countries/it.svg | 0 .../server}/public/images/countries/je.svg | 0 .../server}/public/images/countries/jm.svg | 0 .../server}/public/images/countries/jo.svg | 0 .../server}/public/images/countries/jp.svg | 0 .../server}/public/images/countries/ke.svg | 0 .../server}/public/images/countries/kg.svg | 0 .../server}/public/images/countries/kh.svg | 0 .../server}/public/images/countries/ki.svg | 0 .../server}/public/images/countries/km.svg | 0 .../server}/public/images/countries/kn.svg | 0 .../server}/public/images/countries/kp.svg | 0 .../server}/public/images/countries/kr.svg | 0 .../server}/public/images/countries/kw.svg | 0 .../server}/public/images/countries/ky.svg | 0 .../server}/public/images/countries/kz.svg | 0 .../server}/public/images/countries/la.svg | 0 .../server}/public/images/countries/lb.svg | 0 .../server}/public/images/countries/lc.svg | 0 .../server}/public/images/countries/li.svg | 0 .../server}/public/images/countries/lk.svg | 0 .../server}/public/images/countries/lr.svg | 0 .../server}/public/images/countries/ls.svg | 0 .../server}/public/images/countries/lt.svg | 0 .../server}/public/images/countries/lu.svg | 0 .../server}/public/images/countries/lv.svg | 0 .../server}/public/images/countries/ly.svg | 0 .../server}/public/images/countries/ma.svg | 0 .../server}/public/images/countries/mc.svg | 0 .../server}/public/images/countries/md.svg | 0 .../server}/public/images/countries/me.svg | 0 .../server}/public/images/countries/mf.svg | 0 .../server}/public/images/countries/mg.svg | 0 .../server}/public/images/countries/mh.svg | 0 .../server}/public/images/countries/mk.svg | 0 .../server}/public/images/countries/ml.svg | 0 .../server}/public/images/countries/mm.svg | 0 .../server}/public/images/countries/mn.svg | 0 .../server}/public/images/countries/mo.svg | 0 .../server}/public/images/countries/mp.svg | 0 .../server}/public/images/countries/mq.svg | 0 .../server}/public/images/countries/mr.svg | 0 .../server}/public/images/countries/ms.svg | 0 .../server}/public/images/countries/mt.svg | 0 .../server}/public/images/countries/mu.svg | 0 .../server}/public/images/countries/mv.svg | 0 .../server}/public/images/countries/mw.svg | 0 .../server}/public/images/countries/mx.svg | 0 .../server}/public/images/countries/my.svg | 0 .../server}/public/images/countries/mz.svg | 0 .../server}/public/images/countries/na.svg | 0 .../server}/public/images/countries/nc.svg | 0 .../server}/public/images/countries/ne.svg | 0 .../server}/public/images/countries/nf.svg | 0 .../server}/public/images/countries/ng.svg | 0 .../server}/public/images/countries/ni.svg | 0 .../server}/public/images/countries/nl.svg | 0 .../server}/public/images/countries/no.svg | 0 .../server}/public/images/countries/np.svg | 0 .../server}/public/images/countries/nr.svg | 0 .../server}/public/images/countries/nu.svg | 0 .../server}/public/images/countries/nz.svg | 0 .../server}/public/images/countries/om.svg | 0 .../server}/public/images/countries/pa.svg | 0 .../server}/public/images/countries/pe.svg | 0 .../server}/public/images/countries/pf.svg | 0 .../server}/public/images/countries/pg.svg | 0 .../server}/public/images/countries/ph.svg | 0 .../server}/public/images/countries/pk.svg | 0 .../server}/public/images/countries/pl.svg | 0 .../server}/public/images/countries/pm.svg | 0 .../server}/public/images/countries/pn.svg | 0 .../server}/public/images/countries/pr.svg | 0 .../server}/public/images/countries/ps.svg | 0 .../server}/public/images/countries/pt.svg | 0 .../server}/public/images/countries/pw.svg | 0 .../server}/public/images/countries/py.svg | 0 .../server}/public/images/countries/qa.svg | 0 .../server}/public/images/countries/re.svg | 0 .../server}/public/images/countries/red.svg | 0 .../server}/public/images/countries/ro.svg | 0 .../server}/public/images/countries/rs.svg | 0 .../server}/public/images/countries/ru.svg | 0 .../server}/public/images/countries/rw.svg | 0 .../server}/public/images/countries/sa.svg | 0 .../server}/public/images/countries/sb.svg | 0 .../server}/public/images/countries/sc.svg | 0 .../server}/public/images/countries/sd.svg | 0 .../server}/public/images/countries/se.svg | 0 .../server}/public/images/countries/sg.svg | 0 .../server}/public/images/countries/sh.svg | 0 .../server}/public/images/countries/si.svg | 0 .../server}/public/images/countries/sj.svg | 0 .../server}/public/images/countries/sk.svg | 0 .../server}/public/images/countries/sl.svg | 0 .../server}/public/images/countries/sm.svg | 0 .../server}/public/images/countries/sn.svg | 0 .../server}/public/images/countries/so.svg | 0 .../public/images/countries/social.svg | 0 .../server}/public/images/countries/sr.svg | 0 .../server}/public/images/countries/ss.svg | 0 .../server}/public/images/countries/st.svg | 0 .../server}/public/images/countries/sv.svg | 0 .../server}/public/images/countries/sx.svg | 0 .../server}/public/images/countries/sy.svg | 0 .../server}/public/images/countries/sz.svg | 0 .../server}/public/images/countries/ta.svg | 0 .../server}/public/images/countries/tc.svg | 0 .../server}/public/images/countries/td.svg | 0 .../server}/public/images/countries/tf.svg | 0 .../server}/public/images/countries/tg.svg | 0 .../server}/public/images/countries/th.svg | 0 .../server}/public/images/countries/third.svg | 0 .../server}/public/images/countries/tj.svg | 0 .../server}/public/images/countries/tk.svg | 0 .../server}/public/images/countries/tl.svg | 0 .../server}/public/images/countries/tm.svg | 0 .../server}/public/images/countries/tn.svg | 0 .../server}/public/images/countries/to.svg | 0 .../server}/public/images/countries/tr.svg | 0 .../server}/public/images/countries/tt.svg | 0 .../server}/public/images/countries/tv.svg | 0 .../server}/public/images/countries/tw.svg | 0 .../server}/public/images/countries/tz.svg | 0 .../server}/public/images/countries/ua.svg | 0 .../server}/public/images/countries/ug.svg | 0 .../server}/public/images/countries/um.svg | 0 .../server}/public/images/countries/un.svg | 0 .../server}/public/images/countries/unk.svg | 0 .../server}/public/images/countries/us.svg | 0 .../server}/public/images/countries/ussr.svg | 0 .../server}/public/images/countries/uy.svg | 0 .../server}/public/images/countries/uz.svg | 0 .../server}/public/images/countries/va.svg | 0 .../server}/public/images/countries/vc.svg | 0 .../server}/public/images/countries/ve.svg | 0 .../server}/public/images/countries/vg.svg | 0 .../server}/public/images/countries/vi.svg | 0 .../server}/public/images/countries/vn.svg | 0 .../server}/public/images/countries/vu.svg | 0 .../server}/public/images/countries/wf.svg | 0 .../server}/public/images/countries/ws.svg | 0 .../server}/public/images/countries/xk.svg | 0 .../server}/public/images/countries/xx.svg | 0 .../server}/public/images/countries/ye.svg | 0 .../server}/public/images/countries/yt.svg | 0 .../server}/public/images/countries/yug.svg | 0 .../server}/public/images/countries/za.svg | 0 .../server}/public/images/countries/zm.svg | 0 .../server}/public/images/countries/zw.svg | 0 .../favicons/android-chrome-192x192.png | Bin .../favicons/android-chrome-512x512.png | Bin .../images/favicons/apple-touch-icon.png | Bin .../public/images/favicons/favicon-16x16.png | Bin .../public/images/favicons/favicon-32x32.png | Bin .../public/images/favicons/favicon.ico | Bin .../public/images/favicons/site.webmanifest | 0 .../server}/public/images/icon-round.png | Bin .../server}/public/images/icon.png | Bin .../public/images/olympus-4112x4112.png | Bin .../server}/public/images/olympus-500x500.png | Bin .../server}/public/images/units/a-10.png | Bin .../server}/public/images/units/a-20.png | Bin .../server}/public/images/units/a-29.png | Bin .../server}/public/images/units/a-4.png | Bin .../server}/public/images/units/a-400.png | Bin .../server}/public/images/units/a-50.png | Bin .../server}/public/images/units/a-6.png | Bin .../server}/public/images/units/ah-1.png | Bin .../server}/public/images/units/ah-64.png | Bin .../server}/public/images/units/airUnit.png | Bin .../public/images/units/airliner2engine.png | Bin .../server}/public/images/units/an-26.png | Bin .../server}/public/images/units/av8bna.png | Bin .../server}/public/images/units/b-1.png | Bin .../server}/public/images/units/b-17.png | Bin .../server}/public/images/units/b-2.png | Bin .../server}/public/images/units/b-52.png | Bin .../server}/public/images/units/b707.png | Bin .../server}/public/images/units/bf109.png | Bin .../server}/public/images/units/c-101.png | Bin .../server}/public/images/units/c-130.png | Bin .../server}/public/images/units/c-17.png | Bin .../server}/public/images/units/c-5.png | Bin .../server}/public/images/units/ch-47.png | Bin .../server}/public/images/units/ch-53.png | Bin .../server}/public/images/units/e-2.png | Bin .../server}/public/images/units/e-3.png | Bin .../public/images/units/eurofighter.png | Bin .../server}/public/images/units/f-1.png | Bin .../server}/public/images/units/f-111.png | Bin .../server}/public/images/units/f-117.png | Bin .../server}/public/images/units/f-14.png | Bin .../server}/public/images/units/f-15.png | Bin .../server}/public/images/units/f-16c.png | Bin .../server}/public/images/units/f-22.png | Bin .../server}/public/images/units/f-35.png | Bin .../server}/public/images/units/f-4.png | Bin .../server}/public/images/units/f-5.png | Bin .../server}/public/images/units/f-86.png | Bin .../server}/public/images/units/fa-18c.png | Bin .../server}/public/images/units/fw190.png | Bin .../server}/public/images/units/general1.png | Bin .../server}/public/images/units/gripen.png | Bin .../server}/public/images/units/h-6.png | Bin .../server}/public/images/units/hawk.png | Bin .../public/images/units/helicopter1.png | Bin .../server}/public/images/units/i-16.png | Bin .../server}/public/images/units/il-76.png | Bin .../server}/public/images/units/j-10.png | Bin .../server}/public/images/units/j-20.png | Bin .../server}/public/images/units/j-7.png | Bin .../server}/public/images/units/jf-17.png | Bin .../server}/public/images/units/ju-88.png | Bin .../server}/public/images/units/ka-27.png | Bin .../server}/public/images/units/ka-50.png | Bin .../server}/public/images/units/kc-10.png | Bin .../server}/public/images/units/kc-135.png | Bin .../server}/public/images/units/l-159.png | Bin .../server}/public/images/units/l-39.png | Bin .../server}/public/images/units/m2000.png | Bin .../server}/public/images/units/mb-339.png | Bin .../server}/public/images/units/mi-24.png | Bin .../server}/public/images/units/mi-26.png | Bin .../server}/public/images/units/mi-28.png | Bin .../server}/public/images/units/mi-8.png | Bin .../server}/public/images/units/mig-15.png | Bin .../server}/public/images/units/mig-19.png | Bin .../server}/public/images/units/mig-21.png | Bin .../server}/public/images/units/mig-23.png | Bin .../server}/public/images/units/mig-25.png | Bin .../server}/public/images/units/mig-29.png | Bin .../server}/public/images/units/mosquito.png | Bin .../server}/public/images/units/oh-58.png | Bin .../server}/public/images/units/p-47.png | Bin .../server}/public/images/units/p-51.png | Bin .../server}/public/images/units/rafale.png | Bin .../server}/public/images/units/rq-1.png | Bin .../server}/public/images/units/rq-4.png | Bin .../server}/public/images/units/s-3.png | Bin .../server}/public/images/units/sa-342.png | Bin .../server}/public/images/units/spitfire.png | Bin .../server}/public/images/units/su-17.png | Bin .../server}/public/images/units/su-24.png | Bin .../server}/public/images/units/su-25.png | Bin .../server}/public/images/units/su-27.png | Bin .../server}/public/images/units/su-34.png | Bin .../server}/public/images/units/su-57.png | Bin .../server}/public/images/units/tornado.png | Bin .../server}/public/images/units/tu-160.png | Bin .../server}/public/images/units/tu-22.png | Bin .../server}/public/images/units/tu-95.png | Bin .../server}/public/images/units/u-28.png | Bin .../server}/public/images/units/uh-1.png | Bin .../server}/public/images/units/uh-60.png | Bin .../server}/public/images/units/viggen.png | Bin .../server}/public/images/units/yak-40.png | Bin .../server}/public/images/units/yak-52.png | Bin frontend/server/public/javascripts/bundle.js | 47843 ++++++++++++++++ .../server}/public/javascripts/placeholder | 0 .../public/plugins/controltipsplugin/index.js | 377 + .../plugins/controltipsplugin}/plugin.json | 0 .../plugins/controltipsplugin}/style.css | 0 .../public}/plugins/databasemanager/index.js | 0 .../plugins/databasemanager/plugin.json | 0 .../public}/plugins/databasemanager/style.css | 0 .../public/stylesheets/layout/layout.css | 0 .../public/stylesheets/markers/airbase.css | 0 .../public/stylesheets/markers/bullseye.css | 0 .../public/stylesheets/markers/units.css | 0 .../server}/public/stylesheets/olympus.css | 0 .../public/stylesheets/other/contextmenus.css | 0 .../public/stylesheets/other/popup.css | 0 .../public/stylesheets/other/toolbar.css | 0 .../stylesheets/panels/connectionstatus.css | 0 .../public/stylesheets/panels/logpanel.css | 0 .../public/stylesheets/panels/mouseinfo.css | 0 .../stylesheets/panels/serverstatus.css | 0 .../public/stylesheets/panels/unitcontrol.css | 0 .../public/stylesheets/panels/unitinfo.css | 0 .../public/stylesheets/panels/unitlist.css | 0 .../public/stylesheets/style/style.css | 0 .../public/stylesheets/uikit/uikit.css | 0 .../images/buttons/emissions/attack.svg | 0 .../images/buttons/emissions/defend.svg | 0 .../olympus/images/buttons/emissions/free.svg | 0 .../images/buttons/emissions/silent.svg | 0 .../olympus/images/buttons/intensity/1.svg | 0 .../olympus/images/buttons/intensity/2.svg | 0 .../olympus/images/buttons/intensity/3.svg | 0 .../images/buttons/other/arrow-down-solid.svg | 0 .../olympus/images/buttons/other/back.svg | 0 .../buttons/other/clock-rotate-left-solid.svg | 0 .../olympus/images/buttons/other/delete.svg | 0 .../olympus/images/buttons/other/edit.svg | 0 .../images/buttons/other/lock-open-solid.svg | 0 .../images/buttons/other/lock-solid.svg | 0 .../olympus/images/buttons/roe/designated.svg | 0 .../olympus/images/buttons/roe/free.svg | 0 .../olympus/images/buttons/roe/hold.svg | 0 .../olympus/images/buttons/roe/return.svg | 0 .../olympus/images/buttons/scatter/1.svg | 0 .../olympus/images/buttons/scatter/2.svg | 0 .../olympus/images/buttons/scatter/3.svg | 0 .../olympus/images/buttons/spawn/aircraft.svg | 0 .../images/buttons/spawn/explosion.svg | 0 .../images/buttons/spawn/groundunit.svg | 0 .../images/buttons/spawn/helicopter.svg | 0 .../olympus/images/buttons/spawn/more.svg | 0 .../olympus/images/buttons/spawn/navyunit.svg | 0 .../olympus/images/buttons/spawn/sam.svg | 0 .../olympus/images/buttons/spawn/smoke.svg | 0 .../olympus/images/buttons/threat/evade.svg | 0 .../images/buttons/threat/manoeuvre.svg | 0 .../olympus/images/buttons/threat/none.svg | 0 .../olympus/images/buttons/threat/passive.svg | 0 .../buttons/tools/draw-polygon-solid.svg | 0 .../olympus/images/buttons/tools/ground.svg | 0 .../images/buttons/tools/pen-solid.svg | 0 .../olympus/images/buttons/tools/tower.svg | 0 .../images/buttons/visibility/airbase.svg | 0 .../images/buttons/visibility/aircraft.svg | 0 .../images/buttons/visibility/circle-dot.svg | 0 .../olympus/images/buttons/visibility/dcs.svg | 0 .../images/buttons/visibility/flag.svg | 0 .../buttons/visibility/groundunit-sam.svg | 0 .../images/buttons/visibility/groundunit.svg | 0 .../visibility/head-side-virus-solid.svg | 0 .../images/buttons/visibility/helicopter.svg | 0 .../images/buttons/visibility/human.svg | 0 .../images/buttons/visibility/navyunit.svg | 0 .../images/buttons/visibility/shield.svg | 0 .../themes/olympus/images/icons/altitude.svg | 0 .../images/icons/arrow-pointer-solid.svg | 0 .../images/icons/arrows-to-eye-solid.svg | 0 .../olympus/images/icons/bomb-solid.svg | 0 .../olympus/images/icons/burst-solid.svg | 0 .../olympus/images/icons/check_square.svg | 0 .../images/icons/chevron-down-warning.svg | 0 .../olympus/images/icons/chevron-down.svg | 0 .../images/icons/circle-info-solid.svg | 0 .../images/icons/circle-question-regular.svg | 0 .../themes/olympus/images/icons/climb.svg | 0 .../olympus/images/icons/crosshairs-solid.svg | 0 .../themes/olympus/images/icons/descent.svg | 0 .../themes/olympus/images/icons/diamond.svg | 0 .../olympus/images/icons/echelon-lh.svg | 0 .../olympus/images/icons/echelon-rh.svg | 0 .../themes/olympus/images/icons/echelon.svg | 0 .../olympus/images/icons/explosion-solid.svg | 0 .../themes/olympus/images/icons/eye-solid.svg | 0 .../olympus/images/icons/fire-solid.svg | 0 .../themes/olympus/images/icons/follow.svg | 0 .../olympus/images/icons/formation-end.svg | 0 .../olympus/images/icons/formation-middle.svg | 0 .../themes/olympus/images/icons/front.svg | 0 .../themes/olympus/images/icons/fuel.svg | 0 .../olympus/images/icons/gamepad-solid.svg | 0 .../olympus/images/icons/gears-solid.svg | 0 .../olympus/images/icons/grip-lines-solid.svg | 0 .../olympus/images/icons/group-ground.svg | 0 .../olympus/images/icons/group-navy.svg | 0 .../olympus/images/icons/hand-solid.svg | 0 .../themes/olympus/images/icons/heading.svg | 0 .../themes/olympus/images/icons/health.svg | 0 .../images/icons/jet-fighter-up-solid.svg | 0 .../olympus/images/icons/keyboard-solid.svg | 0 .../olympus/images/icons/land-at-point.svg | 0 .../olympus/images/icons/line-abreast.svg | 0 .../olympus/images/icons/map-source.svg | 0 .../themes/olympus/images/icons/miss-blue.svg | 0 .../themes/olympus/images/icons/miss-red.svg | 0 .../themes/olympus/images/icons/miss.svg | 0 .../themes/olympus/images/icons/napalm.svg | 0 .../icons/person-military-pointing-solid.svg | 0 .../themes/olympus/images/icons/pin.svg | 0 .../themes/olympus/images/icons/plane.svg | 0 .../themes/olympus/images/icons/ruler.svg | 0 .../olympus/images/icons/scenic-blue.svg | 0 .../olympus/images/icons/scenic-red.svg | 0 .../themes/olympus/images/icons/scenic.svg | 0 .../olympus/images/icons/secondaries.svg | 0 .../olympus/images/icons/smog-solid.svg | 0 .../olympus/images/icons/speed-decrease.svg | 0 .../olympus/images/icons/speed-increase.svg | 0 .../themes/olympus/images/icons/speed.svg | 0 .../images/icons/square-check-solid.svg | 0 .../olympus/images/icons/square-regular.svg | 0 .../themes/olympus/images/icons/sword.svg | 0 .../themes/olympus/images/icons/trail.svg | 0 .../images/icons/trash-can-regular.svg | 0 .../icons/triangle-exclamation-solid.svg | 0 .../images/icons/white-phosphorous.svg | 0 .../themes/olympus/images/markers/airbase.svg | 0 .../olympus/images/markers/bullseye.svg | 0 .../themes/olympus/images/markers/draw.svg | 0 .../olympus/images/markers/marker-icon.png | Bin .../olympus/images/markers/marker-shadow.png | Bin .../themes/olympus/images/markers/move.svg | 0 .../themes/olympus/images/markers/smoke.svg | 0 .../olympus/images/markers/target - Copy.svg | 0 .../themes/olympus/images/markers/target.svg | 0 .../themes/olympus/images/parrot/parrot.png | Bin .../public/themes/olympus/images/splash/1.jpg | Bin .../public/themes/olympus/images/splash/1.png | Bin .../public/themes/olympus/images/splash/2.jpg | Bin .../public/themes/olympus/images/splash/3.jpg | Bin .../public/themes/olympus/images/splash/4.jpg | Bin .../public/themes/olympus/images/splash/5.jpg | Bin .../public/themes/olympus/images/splash/6.jpg | Bin .../public/themes/olympus/images/splash/7.jpg | Bin .../public/themes/olympus/images/splash/8.jpg | Bin .../themes/olympus/images/states/attack.svg | 0 .../themes/olympus/images/states/awacs.svg | 0 .../themes/olympus/images/states/dcs.svg | 0 .../themes/olympus/images/states/follow.svg | 0 .../themes/olympus/images/states/human.svg | 0 .../themes/olympus/images/states/idle.svg | 0 .../olympus/images/states/land-at-point.svg | 0 .../olympus/images/states/miss-on-purpose.svg | 0 .../themes/olympus/images/states/no-task.svg | 0 .../themes/olympus/images/states/off.svg | 0 .../themes/olympus/images/states/refuel.svg | 0 .../themes/olympus/images/states/rtb.svg | 0 .../olympus/images/states/scenic-aaa.svg | 0 .../images/states/simulate-fire-fight.svg | 0 .../themes/olympus/images/states/tanker.svg | 0 .../themes/olympus/images/units/aircraft.svg | 0 .../themes/olympus/images/units/bomb.svg | 0 .../themes/olympus/images/units/death.svg | 0 .../olympus/images/units/groundunit-aaa.svg | 0 .../olympus/images/units/groundunit-apc.svg | 0 .../images/units/groundunit-artillery.svg | 0 .../olympus/images/units/groundunit-ewr.svg | 0 .../images/units/groundunit-infantry.svg | 0 .../images/units/groundunit-sam-launcher.svg | 0 .../images/units/groundunit-sam-radar.svg | 0 .../olympus/images/units/groundunit-sam.svg | 0 .../images/units/groundunit-tactical.svg | 0 .../olympus/images/units/groundunit-tank.svg | 0 .../olympus/images/units/groundunit-truck.svg | 0 .../olympus/images/units/groundunit.svg | 0 .../olympus/images/units/helicopter.svg | 0 .../themes/olympus/images/units/missile.svg | 0 .../themes/olympus/images/units/navyunit.svg | 0 .../themes/olympus/images/units/static.svg | 0 .../server}/public/themes/olympus/theme.css | 0 .../public/themes/parrot/images/parrot.svg | 0 .../server}/public/themes/parrot/theme.css | 0 .../server}/routes/api/airbases.js | 0 {client => frontend/server}/routes/api/atc.js | 0 .../server}/routes/api/databases.js | 0 .../server}/routes/api/elevation.js | 2 +- {client => frontend/server}/routes/index.js | 0 {client => frontend/server}/routes/plugins.js | 0 .../server}/routes/resources.js | 0 {client => frontend/server}/routes/uikit.js | 0 {client => frontend/server}/routes/users.js | 0 frontend/server/scripts/build-release.bat | 10 + frontend/server/scripts/copy.bat | 5 + frontend/server/scripts/create-mock-dcs.bat | 2 + frontend/server/scripts/demo-server.bat | 3 + {client => frontend/server}/server.vbs | 0 .../server}/views/contextmenus/airbase.ejs | 0 .../views/contextmenus/airbasespawn.ejs | 0 .../views/contextmenus/coalitionarea.ejs | 0 .../server}/views/contextmenus/map.ejs | 0 .../server}/views/contextmenus/unit.ejs | 0 {client => frontend/server}/views/index.ejs | 0 .../server}/views/other/dialogs.ejs | 0 .../views/other/dialogs/advancedsettings.ejs | 0 .../other/dialogs/commandmodesettings.ejs | 0 .../views/other/dialogs/customformation.ejs | 0 .../views/other/dialogs/importexport.ejs | 0 .../views/other/dialogs/slowdelete.ejs | 0 .../server}/views/other/dialogs/splash.ejs | 0 .../server}/views/other/popups.ejs | 0 .../server}/views/panels/connectionstatus.ejs | 0 .../server}/views/panels/hotgroup.ejs | 0 .../server}/views/panels/logpanel.ejs | 0 .../server}/views/panels/mouseinfo.ejs | 0 .../server}/views/panels/serverstatus.ejs | 0 .../server}/views/panels/unitcontrol.ejs | 0 .../server}/views/panels/unitinfo.ejs | 0 .../server}/views/panels/unitlist.ejs | 0 .../server}/views/toolbars/commandmode.ejs | 0 .../server}/views/toolbars/primary.ejs | 0 .../server}/views/uikit/uikit.ejs | 0 .../website}/.vscode/launch.json | 14 +- .../website}/.vscode/tasks.json | 10 +- .../website}/@types/olympus/index.d.ts | 5 +- {client => frontend/website}/package.json | 36 +- .../website}/plugins/_boilerplate/copy.bat | 0 .../_boilerplate/images/placeholder1x1.png | Bin .../plugins/_boilerplate/package.json | 0 .../website}/plugins/_boilerplate/plugin.json | 0 .../website}/plugins/_boilerplate/readme.md | 0 .../plugins/_boilerplate/src/boilerplate.ts | 0 .../plugins/_boilerplate/src/index.ts | 0 .../website}/plugins/_boilerplate/style.css | 0 .../plugins/_boilerplate/tsconfig.json | 0 .../website}/plugins/controltips/copy.bat | 0 frontend/website/plugins/controltips/index.js | 377 + .../website}/plugins/controltips/package.json | 0 .../website/plugins/controltips/plugin.json | 6 + .../controltips/src/controltipsplugin.ts | 0 .../website}/plugins/controltips/src/index.ts | 0 .../website/plugins/controltips/style.css | 33 + .../plugins/controltips/tsconfig.json | 0 .../databasemanager/.vscode/launch.json | 0 .../databasemanager/.vscode/tasks.json | 0 .../website}/plugins/databasemanager/copy.bat | 0 .../website/plugins/databasemanager/index.js | 1 + .../plugins/databasemanager/package.json | 0 .../plugins/databasemanager/plugin.json | 6 + .../databasemanager/src/airuniteditor.ts | 0 .../src/databasemanagerplugin.ts | 0 .../databasemanager/src/grounduniteditor.ts | 0 .../plugins/databasemanager/src/index.ts | 0 .../databasemanager/src/loadouteditor.ts | 0 .../databasemanager/src/navyuniteditor.ts | 0 .../plugins/databasemanager/src/uniteditor.ts | 0 .../plugins/databasemanager/src/utils.ts | 0 .../website/plugins/databasemanager/style.css | 295 + .../plugins/databasemanager/tsconfig.json | 0 .../public/plugins/controltipsplugin/index.js | 377 + .../plugins/controltipsplugin/plugin.json | 6 + .../plugins/controltipsplugin/style.css | 33 + .../public/plugins/databasemanager/index.js | 1 + .../plugins/databasemanager/plugin.json | 6 + .../public/plugins/databasemanager/style.css | 295 + {client => frontend/website}/sample.png | Bin frontend/website/scripts/build-release.bat | 1 + .../website}/scripts/emit-declarations.bat | 0 frontend/website/scripts/watch.bat | 1 + .../website}/src/constants/constants.ts | 0 .../website}/src/context/context.ts | 0 .../website}/src/context/contextmanager.ts | 0 .../src/context/contextmenumanager.ts | 0 .../src/contextmenus/airbasecontextmenu.ts | 0 .../src/contextmenus/airbasespawnmenu.ts | 0 .../contextmenus/coalitionareacontextmenu.ts | 0 .../website}/src/contextmenus/contextmenu.ts | 0 .../src/contextmenus/mapcontextmenu.ts | 0 .../src/contextmenus/unitcontextmenu.ts | 0 .../website}/src/controls/control.ts | 0 .../website}/src/controls/dropdown.ts | 0 .../website}/src/controls/slider.ts | 0 .../website}/src/controls/switch.ts | 0 .../website}/src/controls/unitspawnmenu.ts | 0 .../website}/src/dialog/dialog.ts | 0 {client => frontend/website}/src/dom.d.ts | 0 {client => frontend/website}/src/index.ts | 0 .../website}/src/interfaces.ts | 0 .../website}/src/map/boxselect.ts | 0 .../website}/src/map/clickableminimap.ts | 0 .../src/map/coalitionarea/coalitionarea.ts | 0 .../map/coalitionarea/coalitionareahandle.ts | 0 .../coalitionareamiddlehandle.ts | 0 .../src/map/coalitionarea/drawingcursor.ts | 0 {client => frontend/website}/src/map/map.ts | 4 +- .../website}/src/map/markers/custommarker.ts | 0 .../map/markers/destinationpreviewHandle.ts | 0 .../map/markers/destinationpreviewmarker.ts | 0 .../website}/src/map/markers/smokemarker.ts | 0 .../website}/src/map/markers/targetmarker.ts | 0 .../src/map/markers/temporaryunitmarker.ts | 0 .../website}/src/map/rangecircle.ts | 0 .../website}/src/map/touchboxselect.ts | 0 .../website}/src/mission/airbase.ts | 0 .../website}/src/mission/bullseye.ts | 0 .../website}/src/mission/missionmanager.ts | 0 .../website}/src/olympusapp.ts | 31 - .../website}/src/other/eventsmanager.ts | 0 .../website}/src/other/manager.ts | 0 .../website}/src/other/utils.ts | 0 .../src/panels/connectionstatuspanel.ts | 0 .../website}/src/panels/hotgrouppanel.ts | 0 .../website}/src/panels/logpanel.ts | 0 .../website}/src/panels/mouseinfopanel.ts | 0 .../website}/src/panels/panel.ts | 0 .../website}/src/panels/paneleventsmanager.ts | 0 .../website}/src/panels/serverstatuspanel.ts | 0 .../website}/src/panels/unitcontrolpanel.ts | 0 .../website}/src/panels/unitinfopanel.ts | 0 .../website}/src/panels/unitlistpanel.ts | 0 .../website}/src/plugin/pluginmanager.ts | 0 .../website}/src/popups/popup.ts | 0 .../website}/src/schemas/airbases.schema.json | 0 .../src/schemas/importdata.schema.json | 0 frontend/website/src/schemas/schema.ts | 50 + .../website}/src/server/dataextractor.ts | 0 .../website}/src/server/servermanager.ts | 0 .../website}/src/shortcut/shortcut.ts | 0 .../website}/src/shortcut/shortcutmanager.ts | 0 .../src/toolbars/commandmodetoolbar.ts | 0 .../website}/src/toolbars/primarytoolbar.ts | 0 .../website}/src/toolbars/toolbar.ts | 0 .../website}/src/unit/contextaction.ts | 0 .../website}/src/unit/contextactionset.ts | 0 .../src/unit/databases/aircraftdatabase.ts | 0 .../src/unit/databases/citiesdatabase.ts | 0 .../src/unit/databases/groundunitdatabase.ts | 0 .../src/unit/databases/helicopterdatabase.ts | 0 .../src/unit/databases/navyunitdatabase.ts | 0 .../src/unit/databases/unitdatabase.ts | 0 .../website}/src/unit/group.ts | 0 .../src/unit/importexport/unitdatafile.ts | 0 .../unit/importexport/unitdatafileexport.ts | 0 .../unit/importexport/unitdatafileimport.ts | 0 {client => frontend/website}/src/unit/unit.ts | 0 .../website}/src/unit/unitsmanager.ts | 0 .../website}/src/weapon/weapon.ts | 0 .../website}/src/weapon/weaponsmanager.ts | 0 {client => frontend/website}/tsconfig.json | 0 manager/javascripts/filesystem.js | 16 +- manager/manager.log | 123 + manager/options.json | 4 + mock-dcs/Config/olympus.json | 19 + .../databases/units/aircraftdatabase.json | 33339 +++++++++++ .../units/default/aircraftdatabase.json | 33339 +++++++++++ .../units/default/groundunitdatabase.json | 10359 ++++ .../units/default/helicopterdatabase.json | 4482 ++ .../units/default/navyunitdatabase.json | 1748 + .../databases/units/groundunitdatabase.json | 10359 ++++ .../databases/units/helicopterdatabase.json | 4482 ++ .../databases/units/navyunitdatabase.json | 1748 + scripts/batch/build.bat | 13 +- scripts/batch/install.bat | 4 +- scripts/batch/package.bat | 2 +- test.bat | 27 + 792 files changed, 149898 insertions(+), 13872 deletions(-) create mode 100644 DCS Olympus Manager.lnk delete mode 100644 client/.vscode/settings.json delete mode 100644 client/Dockerfile delete mode 100644 client/bin/demo delete mode 100644 client/bin/www delete mode 100644 client/configurator.js delete mode 100755 client/copy.sh delete mode 100644 client/plugins/controltips/package-lock.json delete mode 100644 client/plugins/databasemanager/package-lock.json delete mode 100644 client/public/stylesheets/leaflet/leaflet.css delete mode 100644 client/scripts/build-debug.bat delete mode 100644 client/scripts/build-release.bat delete mode 100644 client/scripts/copy.bat delete mode 100644 client/scripts/debug-nodcs.bat delete mode 100644 client/scripts/debug.bat delete mode 100644 client/scripts/watch.bat delete mode 100644 client/src/schemas/schema.ts delete mode 100644 docker-compose.yml create mode 100644 frontend/server/.vscode/extensions.json create mode 100644 frontend/server/.vscode/launch.json create mode 100644 frontend/server/.vscode/tasks.json rename {client => frontend/server}/app.js (100%) rename {client => frontend/server}/client.js (100%) rename {client => frontend/server}/client.vbs (100%) rename {client => frontend/server}/demo.js (100%) create mode 100644 frontend/server/package.json rename {client => frontend/server}/public/databases/airbases/caucasus.json (100%) rename {client => frontend/server}/public/databases/airbases/falklands.json (100%) rename {client => frontend/server}/public/databases/airbases/marianas.json (100%) rename {client => frontend/server}/public/databases/airbases/nevada.json (100%) rename {client => frontend/server}/public/databases/airbases/normandy.json (100%) rename {client => frontend/server}/public/databases/airbases/persiangulf.json (100%) rename {client => frontend/server}/public/databases/airbases/sinaimap.json (100%) rename {client => frontend/server}/public/databases/airbases/syria.json (100%) rename {client => frontend/server}/public/databases/airbases/thechannel.json (100%) rename {client => frontend/server}/public/images/countries/ac.svg (100%) rename {client => frontend/server}/public/images/countries/ad.svg (100%) rename {client => frontend/server}/public/images/countries/ae.svg (100%) rename {client => frontend/server}/public/images/countries/af.svg (100%) rename {client => frontend/server}/public/images/countries/ag.svg (100%) rename {client => frontend/server}/public/images/countries/ai.svg (100%) rename {client => frontend/server}/public/images/countries/al.svg (100%) rename {client => frontend/server}/public/images/countries/am.svg (100%) rename {client => frontend/server}/public/images/countries/ao.svg (100%) rename {client => frontend/server}/public/images/countries/aq.svg (100%) rename {client => frontend/server}/public/images/countries/ar.svg (100%) rename {client => frontend/server}/public/images/countries/arab.svg (100%) rename {client => frontend/server}/public/images/countries/as.svg (100%) rename {client => frontend/server}/public/images/countries/at.svg (100%) rename {client => frontend/server}/public/images/countries/au.svg (100%) rename {client => frontend/server}/public/images/countries/aw.svg (100%) rename {client => frontend/server}/public/images/countries/ax.svg (100%) rename {client => frontend/server}/public/images/countries/az.svg (100%) rename {client => frontend/server}/public/images/countries/ba.svg (100%) rename {client => frontend/server}/public/images/countries/bb.svg (100%) rename {client => frontend/server}/public/images/countries/bd.svg (100%) rename {client => frontend/server}/public/images/countries/be.svg (100%) rename {client => frontend/server}/public/images/countries/bf.svg (100%) rename {client => frontend/server}/public/images/countries/bg.svg (100%) rename {client => frontend/server}/public/images/countries/bh.svg (100%) rename {client => frontend/server}/public/images/countries/bi.svg (100%) rename {client => frontend/server}/public/images/countries/bj.svg (100%) rename {client => frontend/server}/public/images/countries/bl.svg (100%) rename {client => frontend/server}/public/images/countries/blue.svg (100%) rename {client => frontend/server}/public/images/countries/bm.svg (100%) rename {client => frontend/server}/public/images/countries/bn.svg (100%) rename {client => frontend/server}/public/images/countries/bo.svg (100%) rename {client => frontend/server}/public/images/countries/bq.svg (100%) rename {client => frontend/server}/public/images/countries/br.svg (100%) rename {client => frontend/server}/public/images/countries/bs.svg (100%) rename {client => frontend/server}/public/images/countries/bt.svg (100%) rename {client => frontend/server}/public/images/countries/bv.svg (100%) rename {client => frontend/server}/public/images/countries/bw.svg (100%) rename {client => frontend/server}/public/images/countries/by.svg (100%) rename {client => frontend/server}/public/images/countries/bz.svg (100%) rename {client => frontend/server}/public/images/countries/ca.svg (100%) rename {client => frontend/server}/public/images/countries/cc.svg (100%) rename {client => frontend/server}/public/images/countries/cd.svg (100%) rename {client => frontend/server}/public/images/countries/cefta.svg (100%) rename {client => frontend/server}/public/images/countries/cf.svg (100%) rename {client => frontend/server}/public/images/countries/cg.svg (100%) rename {client => frontend/server}/public/images/countries/ch.svg (100%) rename {client => frontend/server}/public/images/countries/ci.svg (100%) rename {client => frontend/server}/public/images/countries/ck.svg (100%) rename {client => frontend/server}/public/images/countries/cl.svg (100%) rename {client => frontend/server}/public/images/countries/cm.svg (100%) rename {client => frontend/server}/public/images/countries/cn.svg (100%) rename {client => frontend/server}/public/images/countries/co.svg (100%) rename {client => frontend/server}/public/images/countries/codes.json (100%) rename {client => frontend/server}/public/images/countries/cp.svg (100%) rename {client => frontend/server}/public/images/countries/cr.svg (100%) rename {client => frontend/server}/public/images/countries/cu.svg (100%) rename {client => frontend/server}/public/images/countries/cv.svg (100%) rename {client => frontend/server}/public/images/countries/cw.svg (100%) rename {client => frontend/server}/public/images/countries/cx.svg (100%) rename {client => frontend/server}/public/images/countries/cy.svg (100%) rename {client => frontend/server}/public/images/countries/cz.svg (100%) rename {client => frontend/server}/public/images/countries/de.svg (100%) rename {client => frontend/server}/public/images/countries/dg.svg (100%) rename {client => frontend/server}/public/images/countries/dj.svg (100%) rename {client => frontend/server}/public/images/countries/dk.svg (100%) rename {client => frontend/server}/public/images/countries/dm.svg (100%) rename {client => frontend/server}/public/images/countries/do.svg (100%) rename {client => frontend/server}/public/images/countries/dz.svg (100%) rename {client => frontend/server}/public/images/countries/eac.svg (100%) rename {client => frontend/server}/public/images/countries/ec.svg (100%) rename {client => frontend/server}/public/images/countries/ee.svg (100%) rename {client => frontend/server}/public/images/countries/eg.svg (100%) rename {client => frontend/server}/public/images/countries/eh.svg (100%) rename {client => frontend/server}/public/images/countries/er.svg (100%) rename {client => frontend/server}/public/images/countries/es-ct.svg (100%) rename {client => frontend/server}/public/images/countries/es-ga.svg (100%) rename {client => frontend/server}/public/images/countries/es-pv.svg (100%) rename {client => frontend/server}/public/images/countries/es.svg (100%) rename {client => frontend/server}/public/images/countries/et.svg (100%) rename {client => frontend/server}/public/images/countries/eu.svg (100%) rename {client => frontend/server}/public/images/countries/fi.svg (100%) rename {client => frontend/server}/public/images/countries/fj.svg (100%) rename {client => frontend/server}/public/images/countries/fk.svg (100%) rename {client => frontend/server}/public/images/countries/fm.svg (100%) rename {client => frontend/server}/public/images/countries/fo.svg (100%) rename {client => frontend/server}/public/images/countries/fr.svg (100%) rename {client => frontend/server}/public/images/countries/ga.svg (100%) rename {client => frontend/server}/public/images/countries/gb-eng.svg (100%) rename {client => frontend/server}/public/images/countries/gb-nir.svg (100%) rename {client => frontend/server}/public/images/countries/gb-sct.svg (100%) rename {client => frontend/server}/public/images/countries/gb-wls.svg (100%) rename {client => frontend/server}/public/images/countries/gb.svg (100%) rename {client => frontend/server}/public/images/countries/gd.svg (100%) rename {client => frontend/server}/public/images/countries/ge.svg (100%) rename {client => frontend/server}/public/images/countries/gf.svg (100%) rename {client => frontend/server}/public/images/countries/gg.svg (100%) rename {client => frontend/server}/public/images/countries/gh.svg (100%) rename {client => frontend/server}/public/images/countries/gi.svg (100%) rename {client => frontend/server}/public/images/countries/gl.svg (100%) rename {client => frontend/server}/public/images/countries/gm.svg (100%) rename {client => frontend/server}/public/images/countries/gn.svg (100%) rename {client => frontend/server}/public/images/countries/gp.svg (100%) rename {client => frontend/server}/public/images/countries/gq.svg (100%) rename {client => frontend/server}/public/images/countries/gr.svg (100%) rename {client => frontend/server}/public/images/countries/gs.svg (100%) rename {client => frontend/server}/public/images/countries/gt.svg (100%) rename {client => frontend/server}/public/images/countries/gu.svg (100%) rename {client => frontend/server}/public/images/countries/gw.svg (100%) rename {client => frontend/server}/public/images/countries/gy.svg (100%) rename {client => frontend/server}/public/images/countries/hk.svg (100%) rename {client => frontend/server}/public/images/countries/hm.svg (100%) rename {client => frontend/server}/public/images/countries/hn.svg (100%) rename {client => frontend/server}/public/images/countries/hr.svg (100%) rename {client => frontend/server}/public/images/countries/ht.svg (100%) rename {client => frontend/server}/public/images/countries/hu.svg (100%) rename {client => frontend/server}/public/images/countries/ic.svg (100%) rename {client => frontend/server}/public/images/countries/id.svg (100%) rename {client => frontend/server}/public/images/countries/ie.svg (100%) rename {client => frontend/server}/public/images/countries/il.svg (100%) rename {client => frontend/server}/public/images/countries/im.svg (100%) rename {client => frontend/server}/public/images/countries/in.svg (100%) rename {client => frontend/server}/public/images/countries/io.svg (100%) rename {client => frontend/server}/public/images/countries/iq.svg (100%) rename {client => frontend/server}/public/images/countries/ir.svg (100%) rename {client => frontend/server}/public/images/countries/is.svg (100%) rename {client => frontend/server}/public/images/countries/it.svg (100%) rename {client => frontend/server}/public/images/countries/je.svg (100%) rename {client => frontend/server}/public/images/countries/jm.svg (100%) rename {client => frontend/server}/public/images/countries/jo.svg (100%) rename {client => frontend/server}/public/images/countries/jp.svg (100%) rename {client => frontend/server}/public/images/countries/ke.svg (100%) rename {client => frontend/server}/public/images/countries/kg.svg (100%) rename {client => frontend/server}/public/images/countries/kh.svg (100%) rename {client => frontend/server}/public/images/countries/ki.svg (100%) rename {client => frontend/server}/public/images/countries/km.svg (100%) rename {client => frontend/server}/public/images/countries/kn.svg (100%) rename {client => frontend/server}/public/images/countries/kp.svg (100%) rename {client => frontend/server}/public/images/countries/kr.svg (100%) rename {client => frontend/server}/public/images/countries/kw.svg (100%) rename {client => frontend/server}/public/images/countries/ky.svg (100%) rename {client => frontend/server}/public/images/countries/kz.svg (100%) rename {client => frontend/server}/public/images/countries/la.svg (100%) rename {client => frontend/server}/public/images/countries/lb.svg (100%) rename {client => frontend/server}/public/images/countries/lc.svg (100%) rename {client => frontend/server}/public/images/countries/li.svg (100%) rename {client => frontend/server}/public/images/countries/lk.svg (100%) rename {client => frontend/server}/public/images/countries/lr.svg (100%) rename {client => frontend/server}/public/images/countries/ls.svg (100%) rename {client => frontend/server}/public/images/countries/lt.svg (100%) rename {client => frontend/server}/public/images/countries/lu.svg (100%) rename {client => frontend/server}/public/images/countries/lv.svg (100%) rename {client => frontend/server}/public/images/countries/ly.svg (100%) rename {client => frontend/server}/public/images/countries/ma.svg (100%) rename {client => frontend/server}/public/images/countries/mc.svg (100%) rename {client => frontend/server}/public/images/countries/md.svg (100%) rename {client => frontend/server}/public/images/countries/me.svg (100%) rename {client => frontend/server}/public/images/countries/mf.svg (100%) rename {client => frontend/server}/public/images/countries/mg.svg (100%) rename {client => frontend/server}/public/images/countries/mh.svg (100%) rename {client => frontend/server}/public/images/countries/mk.svg (100%) rename {client => frontend/server}/public/images/countries/ml.svg (100%) rename {client => frontend/server}/public/images/countries/mm.svg (100%) rename {client => frontend/server}/public/images/countries/mn.svg (100%) rename {client => frontend/server}/public/images/countries/mo.svg (100%) rename {client => frontend/server}/public/images/countries/mp.svg (100%) rename {client => frontend/server}/public/images/countries/mq.svg (100%) rename {client => frontend/server}/public/images/countries/mr.svg (100%) rename {client => frontend/server}/public/images/countries/ms.svg (100%) rename {client => frontend/server}/public/images/countries/mt.svg (100%) rename {client => frontend/server}/public/images/countries/mu.svg (100%) rename {client => frontend/server}/public/images/countries/mv.svg (100%) rename {client => frontend/server}/public/images/countries/mw.svg (100%) rename {client => frontend/server}/public/images/countries/mx.svg (100%) rename {client => frontend/server}/public/images/countries/my.svg (100%) rename {client => frontend/server}/public/images/countries/mz.svg (100%) rename {client => frontend/server}/public/images/countries/na.svg (100%) rename {client => frontend/server}/public/images/countries/nc.svg (100%) rename {client => frontend/server}/public/images/countries/ne.svg (100%) rename {client => frontend/server}/public/images/countries/nf.svg (100%) rename {client => frontend/server}/public/images/countries/ng.svg (100%) rename {client => frontend/server}/public/images/countries/ni.svg (100%) rename {client => frontend/server}/public/images/countries/nl.svg (100%) rename {client => frontend/server}/public/images/countries/no.svg (100%) rename {client => frontend/server}/public/images/countries/np.svg (100%) rename {client => frontend/server}/public/images/countries/nr.svg (100%) rename {client => frontend/server}/public/images/countries/nu.svg (100%) rename {client => frontend/server}/public/images/countries/nz.svg (100%) rename {client => frontend/server}/public/images/countries/om.svg (100%) rename {client => frontend/server}/public/images/countries/pa.svg (100%) rename {client => frontend/server}/public/images/countries/pe.svg (100%) rename {client => frontend/server}/public/images/countries/pf.svg (100%) rename {client => frontend/server}/public/images/countries/pg.svg (100%) rename {client => frontend/server}/public/images/countries/ph.svg (100%) rename {client => frontend/server}/public/images/countries/pk.svg (100%) rename {client => frontend/server}/public/images/countries/pl.svg (100%) rename {client => frontend/server}/public/images/countries/pm.svg (100%) rename {client => frontend/server}/public/images/countries/pn.svg (100%) rename {client => frontend/server}/public/images/countries/pr.svg (100%) rename {client => frontend/server}/public/images/countries/ps.svg (100%) rename {client => frontend/server}/public/images/countries/pt.svg (100%) rename {client => frontend/server}/public/images/countries/pw.svg (100%) rename {client => frontend/server}/public/images/countries/py.svg (100%) rename {client => frontend/server}/public/images/countries/qa.svg (100%) rename {client => frontend/server}/public/images/countries/re.svg (100%) rename {client => frontend/server}/public/images/countries/red.svg (100%) rename {client => frontend/server}/public/images/countries/ro.svg (100%) rename {client => frontend/server}/public/images/countries/rs.svg (100%) rename {client => frontend/server}/public/images/countries/ru.svg (100%) rename {client => frontend/server}/public/images/countries/rw.svg (100%) rename {client => frontend/server}/public/images/countries/sa.svg (100%) rename {client => frontend/server}/public/images/countries/sb.svg (100%) rename {client => frontend/server}/public/images/countries/sc.svg (100%) rename {client => frontend/server}/public/images/countries/sd.svg (100%) rename {client => frontend/server}/public/images/countries/se.svg (100%) rename {client => frontend/server}/public/images/countries/sg.svg (100%) rename {client => frontend/server}/public/images/countries/sh.svg (100%) rename {client => frontend/server}/public/images/countries/si.svg (100%) rename {client => frontend/server}/public/images/countries/sj.svg (100%) rename {client => frontend/server}/public/images/countries/sk.svg (100%) rename {client => frontend/server}/public/images/countries/sl.svg (100%) rename {client => frontend/server}/public/images/countries/sm.svg (100%) rename {client => frontend/server}/public/images/countries/sn.svg (100%) rename {client => frontend/server}/public/images/countries/so.svg (100%) rename {client => frontend/server}/public/images/countries/social.svg (100%) rename {client => frontend/server}/public/images/countries/sr.svg (100%) rename {client => frontend/server}/public/images/countries/ss.svg (100%) rename {client => frontend/server}/public/images/countries/st.svg (100%) rename {client => frontend/server}/public/images/countries/sv.svg (100%) rename {client => frontend/server}/public/images/countries/sx.svg (100%) rename {client => frontend/server}/public/images/countries/sy.svg (100%) rename {client => frontend/server}/public/images/countries/sz.svg (100%) rename {client => frontend/server}/public/images/countries/ta.svg (100%) rename {client => frontend/server}/public/images/countries/tc.svg (100%) rename {client => frontend/server}/public/images/countries/td.svg (100%) rename {client => frontend/server}/public/images/countries/tf.svg (100%) rename {client => frontend/server}/public/images/countries/tg.svg (100%) rename {client => frontend/server}/public/images/countries/th.svg (100%) rename {client => frontend/server}/public/images/countries/third.svg (100%) rename {client => frontend/server}/public/images/countries/tj.svg (100%) rename {client => frontend/server}/public/images/countries/tk.svg (100%) rename {client => frontend/server}/public/images/countries/tl.svg (100%) rename {client => frontend/server}/public/images/countries/tm.svg (100%) rename {client => frontend/server}/public/images/countries/tn.svg (100%) rename {client => frontend/server}/public/images/countries/to.svg (100%) rename {client => frontend/server}/public/images/countries/tr.svg (100%) rename {client => frontend/server}/public/images/countries/tt.svg (100%) rename {client => frontend/server}/public/images/countries/tv.svg (100%) rename {client => frontend/server}/public/images/countries/tw.svg (100%) rename {client => frontend/server}/public/images/countries/tz.svg (100%) rename {client => frontend/server}/public/images/countries/ua.svg (100%) rename {client => frontend/server}/public/images/countries/ug.svg (100%) rename {client => frontend/server}/public/images/countries/um.svg (100%) rename {client => frontend/server}/public/images/countries/un.svg (100%) rename {client => frontend/server}/public/images/countries/unk.svg (100%) rename {client => frontend/server}/public/images/countries/us.svg (100%) rename {client => frontend/server}/public/images/countries/ussr.svg (100%) rename {client => frontend/server}/public/images/countries/uy.svg (100%) rename {client => frontend/server}/public/images/countries/uz.svg (100%) rename {client => frontend/server}/public/images/countries/va.svg (100%) rename {client => frontend/server}/public/images/countries/vc.svg (100%) rename {client => frontend/server}/public/images/countries/ve.svg (100%) rename {client => frontend/server}/public/images/countries/vg.svg (100%) rename {client => frontend/server}/public/images/countries/vi.svg (100%) rename {client => frontend/server}/public/images/countries/vn.svg (100%) rename {client => frontend/server}/public/images/countries/vu.svg (100%) rename {client => frontend/server}/public/images/countries/wf.svg (100%) rename {client => frontend/server}/public/images/countries/ws.svg (100%) rename {client => frontend/server}/public/images/countries/xk.svg (100%) rename {client => frontend/server}/public/images/countries/xx.svg (100%) rename {client => frontend/server}/public/images/countries/ye.svg (100%) rename {client => frontend/server}/public/images/countries/yt.svg (100%) rename {client => frontend/server}/public/images/countries/yug.svg (100%) rename {client => frontend/server}/public/images/countries/za.svg (100%) rename {client => frontend/server}/public/images/countries/zm.svg (100%) rename {client => frontend/server}/public/images/countries/zw.svg (100%) rename {client => frontend/server}/public/images/favicons/android-chrome-192x192.png (100%) rename {client => frontend/server}/public/images/favicons/android-chrome-512x512.png (100%) rename {client => frontend/server}/public/images/favicons/apple-touch-icon.png (100%) rename {client => frontend/server}/public/images/favicons/favicon-16x16.png (100%) rename {client => frontend/server}/public/images/favicons/favicon-32x32.png (100%) rename {client => frontend/server}/public/images/favicons/favicon.ico (100%) rename {client => frontend/server}/public/images/favicons/site.webmanifest (100%) rename {client => frontend/server}/public/images/icon-round.png (100%) rename {client => frontend/server}/public/images/icon.png (100%) rename {client => frontend/server}/public/images/olympus-4112x4112.png (100%) rename {client => frontend/server}/public/images/olympus-500x500.png (100%) rename {client => frontend/server}/public/images/units/a-10.png (100%) rename {client => frontend/server}/public/images/units/a-20.png (100%) rename {client => frontend/server}/public/images/units/a-29.png (100%) rename {client => frontend/server}/public/images/units/a-4.png (100%) rename {client => frontend/server}/public/images/units/a-400.png (100%) rename {client => frontend/server}/public/images/units/a-50.png (100%) rename {client => frontend/server}/public/images/units/a-6.png (100%) rename {client => frontend/server}/public/images/units/ah-1.png (100%) rename {client => frontend/server}/public/images/units/ah-64.png (100%) rename {client => frontend/server}/public/images/units/airUnit.png (100%) rename {client => frontend/server}/public/images/units/airliner2engine.png (100%) rename {client => frontend/server}/public/images/units/an-26.png (100%) rename {client => frontend/server}/public/images/units/av8bna.png (100%) rename {client => frontend/server}/public/images/units/b-1.png (100%) rename {client => frontend/server}/public/images/units/b-17.png (100%) rename {client => frontend/server}/public/images/units/b-2.png (100%) rename {client => frontend/server}/public/images/units/b-52.png (100%) rename {client => frontend/server}/public/images/units/b707.png (100%) rename {client => frontend/server}/public/images/units/bf109.png (100%) rename {client => frontend/server}/public/images/units/c-101.png (100%) rename {client => frontend/server}/public/images/units/c-130.png (100%) rename {client => frontend/server}/public/images/units/c-17.png (100%) rename {client => frontend/server}/public/images/units/c-5.png (100%) rename {client => frontend/server}/public/images/units/ch-47.png (100%) rename {client => frontend/server}/public/images/units/ch-53.png (100%) rename {client => frontend/server}/public/images/units/e-2.png (100%) rename {client => frontend/server}/public/images/units/e-3.png (100%) rename {client => frontend/server}/public/images/units/eurofighter.png (100%) rename {client => frontend/server}/public/images/units/f-1.png (100%) rename {client => frontend/server}/public/images/units/f-111.png (100%) rename {client => frontend/server}/public/images/units/f-117.png (100%) rename {client => frontend/server}/public/images/units/f-14.png (100%) rename {client => frontend/server}/public/images/units/f-15.png (100%) rename {client => frontend/server}/public/images/units/f-16c.png (100%) rename {client => frontend/server}/public/images/units/f-22.png (100%) rename {client => frontend/server}/public/images/units/f-35.png (100%) rename {client => frontend/server}/public/images/units/f-4.png (100%) rename {client => frontend/server}/public/images/units/f-5.png (100%) rename {client => frontend/server}/public/images/units/f-86.png (100%) rename {client => frontend/server}/public/images/units/fa-18c.png (100%) rename {client => frontend/server}/public/images/units/fw190.png (100%) rename {client => frontend/server}/public/images/units/general1.png (100%) rename {client => frontend/server}/public/images/units/gripen.png (100%) rename {client => frontend/server}/public/images/units/h-6.png (100%) rename {client => frontend/server}/public/images/units/hawk.png (100%) rename {client => frontend/server}/public/images/units/helicopter1.png (100%) rename {client => frontend/server}/public/images/units/i-16.png (100%) rename {client => frontend/server}/public/images/units/il-76.png (100%) rename {client => frontend/server}/public/images/units/j-10.png (100%) rename {client => frontend/server}/public/images/units/j-20.png (100%) rename {client => frontend/server}/public/images/units/j-7.png (100%) rename {client => frontend/server}/public/images/units/jf-17.png (100%) rename {client => frontend/server}/public/images/units/ju-88.png (100%) rename {client => frontend/server}/public/images/units/ka-27.png (100%) rename {client => frontend/server}/public/images/units/ka-50.png (100%) rename {client => frontend/server}/public/images/units/kc-10.png (100%) rename {client => frontend/server}/public/images/units/kc-135.png (100%) rename {client => frontend/server}/public/images/units/l-159.png (100%) rename {client => frontend/server}/public/images/units/l-39.png (100%) rename {client => frontend/server}/public/images/units/m2000.png (100%) rename {client => frontend/server}/public/images/units/mb-339.png (100%) rename {client => frontend/server}/public/images/units/mi-24.png (100%) rename {client => frontend/server}/public/images/units/mi-26.png (100%) rename {client => frontend/server}/public/images/units/mi-28.png (100%) rename {client => frontend/server}/public/images/units/mi-8.png (100%) rename {client => frontend/server}/public/images/units/mig-15.png (100%) rename {client => frontend/server}/public/images/units/mig-19.png (100%) rename {client => frontend/server}/public/images/units/mig-21.png (100%) rename {client => frontend/server}/public/images/units/mig-23.png (100%) rename {client => frontend/server}/public/images/units/mig-25.png (100%) rename {client => frontend/server}/public/images/units/mig-29.png (100%) rename {client => frontend/server}/public/images/units/mosquito.png (100%) rename {client => frontend/server}/public/images/units/oh-58.png (100%) rename {client => frontend/server}/public/images/units/p-47.png (100%) rename {client => frontend/server}/public/images/units/p-51.png (100%) rename {client => frontend/server}/public/images/units/rafale.png (100%) rename {client => frontend/server}/public/images/units/rq-1.png (100%) rename {client => frontend/server}/public/images/units/rq-4.png (100%) rename {client => frontend/server}/public/images/units/s-3.png (100%) rename {client => frontend/server}/public/images/units/sa-342.png (100%) rename {client => frontend/server}/public/images/units/spitfire.png (100%) rename {client => frontend/server}/public/images/units/su-17.png (100%) rename {client => frontend/server}/public/images/units/su-24.png (100%) rename {client => frontend/server}/public/images/units/su-25.png (100%) rename {client => frontend/server}/public/images/units/su-27.png (100%) rename {client => frontend/server}/public/images/units/su-34.png (100%) rename {client => frontend/server}/public/images/units/su-57.png (100%) rename {client => frontend/server}/public/images/units/tornado.png (100%) rename {client => frontend/server}/public/images/units/tu-160.png (100%) rename {client => frontend/server}/public/images/units/tu-22.png (100%) rename {client => frontend/server}/public/images/units/tu-95.png (100%) rename {client => frontend/server}/public/images/units/u-28.png (100%) rename {client => frontend/server}/public/images/units/uh-1.png (100%) rename {client => frontend/server}/public/images/units/uh-60.png (100%) rename {client => frontend/server}/public/images/units/viggen.png (100%) rename {client => frontend/server}/public/images/units/yak-40.png (100%) rename {client => frontend/server}/public/images/units/yak-52.png (100%) create mode 100644 frontend/server/public/javascripts/bundle.js rename {client => frontend/server}/public/javascripts/placeholder (100%) create mode 100644 frontend/server/public/plugins/controltipsplugin/index.js rename {client/plugins/controltips => frontend/server/public/plugins/controltipsplugin}/plugin.json (100%) rename {client/plugins/controltips => frontend/server/public/plugins/controltipsplugin}/style.css (100%) rename {client => frontend/server/public}/plugins/databasemanager/index.js (100%) rename {client => frontend/server/public}/plugins/databasemanager/plugin.json (100%) rename {client => frontend/server/public}/plugins/databasemanager/style.css (100%) rename {client => frontend/server}/public/stylesheets/layout/layout.css (100%) rename {client => frontend/server}/public/stylesheets/markers/airbase.css (100%) rename {client => frontend/server}/public/stylesheets/markers/bullseye.css (100%) rename {client => frontend/server}/public/stylesheets/markers/units.css (100%) rename {client => frontend/server}/public/stylesheets/olympus.css (100%) rename {client => frontend/server}/public/stylesheets/other/contextmenus.css (100%) rename {client => frontend/server}/public/stylesheets/other/popup.css (100%) rename {client => frontend/server}/public/stylesheets/other/toolbar.css (100%) rename {client => frontend/server}/public/stylesheets/panels/connectionstatus.css (100%) rename {client => frontend/server}/public/stylesheets/panels/logpanel.css (100%) rename {client => frontend/server}/public/stylesheets/panels/mouseinfo.css (100%) rename {client => frontend/server}/public/stylesheets/panels/serverstatus.css (100%) rename {client => frontend/server}/public/stylesheets/panels/unitcontrol.css (100%) rename {client => frontend/server}/public/stylesheets/panels/unitinfo.css (100%) rename {client => frontend/server}/public/stylesheets/panels/unitlist.css (100%) rename {client => frontend/server}/public/stylesheets/style/style.css (100%) rename {client => frontend/server}/public/stylesheets/uikit/uikit.css (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/emissions/attack.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/emissions/defend.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/emissions/free.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/emissions/silent.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/intensity/1.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/intensity/2.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/intensity/3.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/other/arrow-down-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/other/back.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/other/clock-rotate-left-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/other/delete.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/other/edit.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/other/lock-open-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/other/lock-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/roe/designated.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/roe/free.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/roe/hold.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/roe/return.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/scatter/1.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/scatter/2.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/scatter/3.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/spawn/aircraft.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/spawn/explosion.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/spawn/groundunit.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/spawn/helicopter.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/spawn/more.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/spawn/navyunit.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/spawn/sam.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/spawn/smoke.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/threat/evade.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/threat/manoeuvre.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/threat/none.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/threat/passive.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/tools/draw-polygon-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/tools/ground.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/tools/pen-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/tools/tower.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/airbase.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/aircraft.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/circle-dot.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/dcs.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/flag.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/groundunit-sam.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/groundunit.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/head-side-virus-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/helicopter.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/human.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/navyunit.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/buttons/visibility/shield.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/altitude.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/arrow-pointer-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/arrows-to-eye-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/bomb-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/burst-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/check_square.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/chevron-down-warning.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/chevron-down.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/circle-info-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/circle-question-regular.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/climb.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/crosshairs-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/descent.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/diamond.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/echelon-lh.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/echelon-rh.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/echelon.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/explosion-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/eye-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/fire-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/follow.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/formation-end.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/formation-middle.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/front.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/fuel.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/gamepad-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/gears-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/grip-lines-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/group-ground.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/group-navy.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/hand-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/heading.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/health.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/jet-fighter-up-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/keyboard-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/land-at-point.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/line-abreast.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/map-source.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/miss-blue.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/miss-red.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/miss.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/napalm.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/person-military-pointing-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/pin.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/plane.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/ruler.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/scenic-blue.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/scenic-red.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/scenic.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/secondaries.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/smog-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/speed-decrease.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/speed-increase.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/speed.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/square-check-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/square-regular.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/sword.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/trail.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/trash-can-regular.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/triangle-exclamation-solid.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/icons/white-phosphorous.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/markers/airbase.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/markers/bullseye.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/markers/draw.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/markers/marker-icon.png (100%) rename {client => frontend/server}/public/themes/olympus/images/markers/marker-shadow.png (100%) rename {client => frontend/server}/public/themes/olympus/images/markers/move.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/markers/smoke.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/markers/target - Copy.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/markers/target.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/parrot/parrot.png (100%) rename {client => frontend/server}/public/themes/olympus/images/splash/1.jpg (100%) rename {client => frontend/server}/public/themes/olympus/images/splash/1.png (100%) rename {client => frontend/server}/public/themes/olympus/images/splash/2.jpg (100%) rename {client => frontend/server}/public/themes/olympus/images/splash/3.jpg (100%) rename {client => frontend/server}/public/themes/olympus/images/splash/4.jpg (100%) rename {client => frontend/server}/public/themes/olympus/images/splash/5.jpg (100%) rename {client => frontend/server}/public/themes/olympus/images/splash/6.jpg (100%) rename {client => frontend/server}/public/themes/olympus/images/splash/7.jpg (100%) rename {client => frontend/server}/public/themes/olympus/images/splash/8.jpg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/attack.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/awacs.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/dcs.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/follow.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/human.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/idle.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/land-at-point.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/miss-on-purpose.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/no-task.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/off.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/refuel.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/rtb.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/scenic-aaa.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/simulate-fire-fight.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/states/tanker.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/aircraft.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/bomb.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/death.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit-aaa.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit-apc.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit-artillery.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit-ewr.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit-infantry.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit-sam-launcher.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit-sam-radar.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit-sam.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit-tactical.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit-tank.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit-truck.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/groundunit.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/helicopter.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/missile.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/navyunit.svg (100%) rename {client => frontend/server}/public/themes/olympus/images/units/static.svg (100%) rename {client => frontend/server}/public/themes/olympus/theme.css (100%) rename {client => frontend/server}/public/themes/parrot/images/parrot.svg (100%) rename {client => frontend/server}/public/themes/parrot/theme.css (100%) rename {client => frontend/server}/routes/api/airbases.js (100%) rename {client => frontend/server}/routes/api/atc.js (100%) rename {client => frontend/server}/routes/api/databases.js (100%) rename {client => frontend/server}/routes/api/elevation.js (94%) rename {client => frontend/server}/routes/index.js (100%) rename {client => frontend/server}/routes/plugins.js (100%) rename {client => frontend/server}/routes/resources.js (100%) rename {client => frontend/server}/routes/uikit.js (100%) rename {client => frontend/server}/routes/users.js (100%) create mode 100644 frontend/server/scripts/build-release.bat create mode 100644 frontend/server/scripts/copy.bat create mode 100644 frontend/server/scripts/create-mock-dcs.bat create mode 100644 frontend/server/scripts/demo-server.bat rename {client => frontend/server}/server.vbs (100%) rename {client => frontend/server}/views/contextmenus/airbase.ejs (100%) rename {client => frontend/server}/views/contextmenus/airbasespawn.ejs (100%) rename {client => frontend/server}/views/contextmenus/coalitionarea.ejs (100%) rename {client => frontend/server}/views/contextmenus/map.ejs (100%) rename {client => frontend/server}/views/contextmenus/unit.ejs (100%) rename {client => frontend/server}/views/index.ejs (100%) rename {client => frontend/server}/views/other/dialogs.ejs (100%) rename {client => frontend/server}/views/other/dialogs/advancedsettings.ejs (100%) rename {client => frontend/server}/views/other/dialogs/commandmodesettings.ejs (100%) rename {client => frontend/server}/views/other/dialogs/customformation.ejs (100%) rename {client => frontend/server}/views/other/dialogs/importexport.ejs (100%) rename {client => frontend/server}/views/other/dialogs/slowdelete.ejs (100%) rename {client => frontend/server}/views/other/dialogs/splash.ejs (100%) rename {client => frontend/server}/views/other/popups.ejs (100%) rename {client => frontend/server}/views/panels/connectionstatus.ejs (100%) rename {client => frontend/server}/views/panels/hotgroup.ejs (100%) rename {client => frontend/server}/views/panels/logpanel.ejs (100%) rename {client => frontend/server}/views/panels/mouseinfo.ejs (100%) rename {client => frontend/server}/views/panels/serverstatus.ejs (100%) rename {client => frontend/server}/views/panels/unitcontrol.ejs (100%) rename {client => frontend/server}/views/panels/unitinfo.ejs (100%) rename {client => frontend/server}/views/panels/unitlist.ejs (100%) rename {client => frontend/server}/views/toolbars/commandmode.ejs (100%) rename {client => frontend/server}/views/toolbars/primary.ejs (100%) rename {client => frontend/server}/views/uikit/uikit.ejs (100%) rename {client => frontend/website}/.vscode/launch.json (57%) rename {client => frontend/website}/.vscode/tasks.json (50%) rename {client => frontend/website}/@types/olympus/index.d.ts (99%) rename {client => frontend/website}/package.json (56%) rename {client => frontend/website}/plugins/_boilerplate/copy.bat (100%) rename {client => frontend/website}/plugins/_boilerplate/images/placeholder1x1.png (100%) rename {client => frontend/website}/plugins/_boilerplate/package.json (100%) rename {client => frontend/website}/plugins/_boilerplate/plugin.json (100%) rename {client => frontend/website}/plugins/_boilerplate/readme.md (100%) rename {client => frontend/website}/plugins/_boilerplate/src/boilerplate.ts (100%) rename {client => frontend/website}/plugins/_boilerplate/src/index.ts (100%) rename {client => frontend/website}/plugins/_boilerplate/style.css (100%) rename {client => frontend/website}/plugins/_boilerplate/tsconfig.json (100%) rename {client => frontend/website}/plugins/controltips/copy.bat (100%) create mode 100644 frontend/website/plugins/controltips/index.js rename {client => frontend/website}/plugins/controltips/package.json (100%) create mode 100644 frontend/website/plugins/controltips/plugin.json rename {client => frontend/website}/plugins/controltips/src/controltipsplugin.ts (100%) rename {client => frontend/website}/plugins/controltips/src/index.ts (100%) create mode 100644 frontend/website/plugins/controltips/style.css rename {client => frontend/website}/plugins/controltips/tsconfig.json (100%) rename {client => frontend/website}/plugins/databasemanager/.vscode/launch.json (100%) rename {client => frontend/website}/plugins/databasemanager/.vscode/tasks.json (100%) rename {client => frontend/website}/plugins/databasemanager/copy.bat (100%) create mode 100644 frontend/website/plugins/databasemanager/index.js rename {client => frontend/website}/plugins/databasemanager/package.json (100%) create mode 100644 frontend/website/plugins/databasemanager/plugin.json rename {client => frontend/website}/plugins/databasemanager/src/airuniteditor.ts (100%) rename {client => frontend/website}/plugins/databasemanager/src/databasemanagerplugin.ts (100%) rename {client => frontend/website}/plugins/databasemanager/src/grounduniteditor.ts (100%) rename {client => frontend/website}/plugins/databasemanager/src/index.ts (100%) rename {client => frontend/website}/plugins/databasemanager/src/loadouteditor.ts (100%) rename {client => frontend/website}/plugins/databasemanager/src/navyuniteditor.ts (100%) rename {client => frontend/website}/plugins/databasemanager/src/uniteditor.ts (100%) rename {client => frontend/website}/plugins/databasemanager/src/utils.ts (100%) create mode 100644 frontend/website/plugins/databasemanager/style.css rename {client => frontend/website}/plugins/databasemanager/tsconfig.json (100%) create mode 100644 frontend/website/public/plugins/controltipsplugin/index.js create mode 100644 frontend/website/public/plugins/controltipsplugin/plugin.json create mode 100644 frontend/website/public/plugins/controltipsplugin/style.css create mode 100644 frontend/website/public/plugins/databasemanager/index.js create mode 100644 frontend/website/public/plugins/databasemanager/plugin.json create mode 100644 frontend/website/public/plugins/databasemanager/style.css rename {client => frontend/website}/sample.png (100%) create mode 100644 frontend/website/scripts/build-release.bat rename {client => frontend/website}/scripts/emit-declarations.bat (100%) create mode 100644 frontend/website/scripts/watch.bat rename {client => frontend/website}/src/constants/constants.ts (100%) rename {client => frontend/website}/src/context/context.ts (100%) rename {client => frontend/website}/src/context/contextmanager.ts (100%) rename {client => frontend/website}/src/context/contextmenumanager.ts (100%) rename {client => frontend/website}/src/contextmenus/airbasecontextmenu.ts (100%) rename {client => frontend/website}/src/contextmenus/airbasespawnmenu.ts (100%) rename {client => frontend/website}/src/contextmenus/coalitionareacontextmenu.ts (100%) rename {client => frontend/website}/src/contextmenus/contextmenu.ts (100%) rename {client => frontend/website}/src/contextmenus/mapcontextmenu.ts (100%) rename {client => frontend/website}/src/contextmenus/unitcontextmenu.ts (100%) rename {client => frontend/website}/src/controls/control.ts (100%) rename {client => frontend/website}/src/controls/dropdown.ts (100%) rename {client => frontend/website}/src/controls/slider.ts (100%) rename {client => frontend/website}/src/controls/switch.ts (100%) rename {client => frontend/website}/src/controls/unitspawnmenu.ts (100%) rename {client => frontend/website}/src/dialog/dialog.ts (100%) rename {client => frontend/website}/src/dom.d.ts (100%) rename {client => frontend/website}/src/index.ts (100%) rename {client => frontend/website}/src/interfaces.ts (100%) rename {client => frontend/website}/src/map/boxselect.ts (100%) rename {client => frontend/website}/src/map/clickableminimap.ts (100%) rename {client => frontend/website}/src/map/coalitionarea/coalitionarea.ts (100%) rename {client => frontend/website}/src/map/coalitionarea/coalitionareahandle.ts (100%) rename {client => frontend/website}/src/map/coalitionarea/coalitionareamiddlehandle.ts (100%) rename {client => frontend/website}/src/map/coalitionarea/drawingcursor.ts (100%) rename {client => frontend/website}/src/map/map.ts (99%) rename {client => frontend/website}/src/map/markers/custommarker.ts (100%) rename {client => frontend/website}/src/map/markers/destinationpreviewHandle.ts (100%) rename {client => frontend/website}/src/map/markers/destinationpreviewmarker.ts (100%) rename {client => frontend/website}/src/map/markers/smokemarker.ts (100%) rename {client => frontend/website}/src/map/markers/targetmarker.ts (100%) rename {client => frontend/website}/src/map/markers/temporaryunitmarker.ts (100%) rename {client => frontend/website}/src/map/rangecircle.ts (100%) rename {client => frontend/website}/src/map/touchboxselect.ts (100%) rename {client => frontend/website}/src/mission/airbase.ts (100%) rename {client => frontend/website}/src/mission/bullseye.ts (100%) rename {client => frontend/website}/src/mission/missionmanager.ts (100%) rename {client => frontend/website}/src/olympusapp.ts (95%) rename {client => frontend/website}/src/other/eventsmanager.ts (100%) rename {client => frontend/website}/src/other/manager.ts (100%) rename {client => frontend/website}/src/other/utils.ts (100%) rename {client => frontend/website}/src/panels/connectionstatuspanel.ts (100%) rename {client => frontend/website}/src/panels/hotgrouppanel.ts (100%) rename {client => frontend/website}/src/panels/logpanel.ts (100%) rename {client => frontend/website}/src/panels/mouseinfopanel.ts (100%) rename {client => frontend/website}/src/panels/panel.ts (100%) rename {client => frontend/website}/src/panels/paneleventsmanager.ts (100%) rename {client => frontend/website}/src/panels/serverstatuspanel.ts (100%) rename {client => frontend/website}/src/panels/unitcontrolpanel.ts (100%) rename {client => frontend/website}/src/panels/unitinfopanel.ts (100%) rename {client => frontend/website}/src/panels/unitlistpanel.ts (100%) rename {client => frontend/website}/src/plugin/pluginmanager.ts (100%) rename {client => frontend/website}/src/popups/popup.ts (100%) rename {client => frontend/website}/src/schemas/airbases.schema.json (100%) rename {client => frontend/website}/src/schemas/importdata.schema.json (100%) create mode 100644 frontend/website/src/schemas/schema.ts rename {client => frontend/website}/src/server/dataextractor.ts (100%) rename {client => frontend/website}/src/server/servermanager.ts (100%) rename {client => frontend/website}/src/shortcut/shortcut.ts (100%) rename {client => frontend/website}/src/shortcut/shortcutmanager.ts (100%) rename {client => frontend/website}/src/toolbars/commandmodetoolbar.ts (100%) rename {client => frontend/website}/src/toolbars/primarytoolbar.ts (100%) rename {client => frontend/website}/src/toolbars/toolbar.ts (100%) rename {client => frontend/website}/src/unit/contextaction.ts (100%) rename {client => frontend/website}/src/unit/contextactionset.ts (100%) rename {client => frontend/website}/src/unit/databases/aircraftdatabase.ts (100%) rename {client => frontend/website}/src/unit/databases/citiesdatabase.ts (100%) rename {client => frontend/website}/src/unit/databases/groundunitdatabase.ts (100%) rename {client => frontend/website}/src/unit/databases/helicopterdatabase.ts (100%) rename {client => frontend/website}/src/unit/databases/navyunitdatabase.ts (100%) rename {client => frontend/website}/src/unit/databases/unitdatabase.ts (100%) rename {client => frontend/website}/src/unit/group.ts (100%) rename {client => frontend/website}/src/unit/importexport/unitdatafile.ts (100%) rename {client => frontend/website}/src/unit/importexport/unitdatafileexport.ts (100%) rename {client => frontend/website}/src/unit/importexport/unitdatafileimport.ts (100%) rename {client => frontend/website}/src/unit/unit.ts (100%) rename {client => frontend/website}/src/unit/unitsmanager.ts (100%) rename {client => frontend/website}/src/weapon/weapon.ts (100%) rename {client => frontend/website}/src/weapon/weaponsmanager.ts (100%) rename {client => frontend/website}/tsconfig.json (100%) create mode 100644 manager/manager.log create mode 100644 manager/options.json create mode 100644 mock-dcs/Config/olympus.json create mode 100644 mock-dcs/Mods/Services/Olympus/databases/units/aircraftdatabase.json create mode 100644 mock-dcs/Mods/Services/Olympus/databases/units/default/aircraftdatabase.json create mode 100644 mock-dcs/Mods/Services/Olympus/databases/units/default/groundunitdatabase.json create mode 100644 mock-dcs/Mods/Services/Olympus/databases/units/default/helicopterdatabase.json create mode 100644 mock-dcs/Mods/Services/Olympus/databases/units/default/navyunitdatabase.json create mode 100644 mock-dcs/Mods/Services/Olympus/databases/units/groundunitdatabase.json create mode 100644 mock-dcs/Mods/Services/Olympus/databases/units/helicopterdatabase.json create mode 100644 mock-dcs/Mods/Services/Olympus/databases/units/navyunitdatabase.json create mode 100644 test.bat diff --git a/DCS Olympus Manager.lnk b/DCS Olympus Manager.lnk new file mode 100644 index 0000000000000000000000000000000000000000..109a12b4c4b212715cf8099e36251881bce8b582 GIT binary patch literal 1757 zcmds1O=uHA6n?7(Tk(*FSX5dJO6s9@Nh`G&&<6A4wgeKh#ICYfx5*|h?Pk|(Qmlyd z;zccml-^W|riuqC-aJSZg$g3lTJWd6coYvUB6v_lziBtnMnM!W^}+j@c{AU<`QFY( zh=_A-fF*jgY$?3pCvqb`^ZxtuhC}mQ`(*!?nG^F|dF)+TN1W};F3q`UXY5^c#{I#k zIc~hErY5iVnveLQVpH9mI(jZV)>kxr&#EUIvA2w>P9k(#awWS$0q%`UJOAZ>zg05!sh`?w6pl%i{*}i<) zFPBSOi6^>Vlt|oBo!|DWTWK39yQ{Y-b#Nr?slmzoSvRTU8b3gZ`65s#Na5bEr zK_$kT@1O@&8K@{t8nOjcuAn*tp2rN!xj^P7qH#|`48>#dXt*;H^8A`bP0z^23Zp$q zBb(MTg`AQ%a=ex_SSQxKc+g*wLKLSMG>UiFNfC@af7Ic>?ZmpL@4vagDcl6lVqCIs zlv1s}ykR!C=~`d1bwAbLfAusaE_Pj>`073{KWS+eUe1=L7i+Jl&5Ms4yE=ZC4*|CZ t_y^!y#F%)mP7mH4Hig@QpD!Ied!+&Mr`g#8^z+9D?4Jnnvj5&1`2oY353v9M literal 0 HcmV?d00001 diff --git a/client/.vscode/settings.json b/client/.vscode/settings.json deleted file mode 100644 index 7a73a41b..00000000 --- a/client/.vscode/settings.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file diff --git a/client/Dockerfile b/client/Dockerfile deleted file mode 100644 index 23fc6e3e..00000000 --- a/client/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM node:20-alpine AS appbuild - -WORKDIR /usr/src/app -COPY package.json ./ -COPY package-lock.json ./ -RUN npm install -COPY . . -RUN npm run build-release-linux - -FROM node:20-alpine -WORKDIR /usr/src/app -COPY package.json ./ -COPY package-lock.json ./ -RUN npm install --omit=dev -COPY . . -COPY --from=appbuild /usr/src/app/public ./public -EXPOSE 3000 -CMD npm start diff --git a/client/bin/demo b/client/bin/demo deleted file mode 100644 index ba3a07df..00000000 --- a/client/bin/demo +++ /dev/null @@ -1,124 +0,0 @@ -const yargs = require('yargs'); -var fs = require('fs'); - -/* Define configuration parameter */ -yargs.alias('c', 'config').describe('c', 'olympus.json config location').string('rp'); -args = yargs.argv; - -console.log('\x1b[36m%s\x1b[0m', "*********************************************************************"); -console.log('\x1b[36m%s\x1b[0m', "* _____ _____ _____ ____ _ *"); -console.log('\x1b[36m%s\x1b[0m', "* | __ \\ / ____|/ ____| / __ \\| | *"); -console.log('\x1b[36m%s\x1b[0m', "* | | | | | | (___ | | | | |_ _ _ __ ___ _ __ _ _ ___ *"); -console.log('\x1b[36m%s\x1b[0m', "* | | | | | \\___ \\ | | | | | | | | '_ ` _ \\| '_ \\| | | / __| *"); -console.log('\x1b[36m%s\x1b[0m', "* | |__| | |____ ____) | | |__| | | |_| | | | | | | |_) | |_| \\__ \\ *"); -console.log('\x1b[36m%s\x1b[0m', "* |_____/ \\_____|_____/ \\____/|_|\\__, |_| |_| |_| .__/ \\__,_|___/ *"); -console.log('\x1b[36m%s\x1b[0m', "* __/ | | | *"); -console.log('\x1b[36m%s\x1b[0m', "* |___/ |_| *"); -console.log('\x1b[36m%s\x1b[0m', "*********************************************************************"); -console.log('\x1b[36m%s\x1b[0m', ""); -console.log("Please wait while DCS Olympus DEMO Backend Server starts up..."); -console.log(`Config location: ${args["config"]}`) - -var fs = require('fs'); -let rawdata = fs.readFileSync(args["config"]); -let config = JSON.parse(rawdata); - -/** - * Module dependencies. - */ - -var app = require('../demo')(args["config"]); -var debug = require('debug')('client:server'); -var http = require('http'); - -/** - * Get port from environment and store in Express. - */ - -var configPort = null; -if (config["server"] != undefined && config["server"]["port"] != undefined) { - configPort = config["server"]["port"]; -} - -var port = normalizePort(configPort || '3000'); -app.set('port', port); -console.log("Express server listening on port: " + port) - -/** - * Create HTTP server. - */ - -var server = http.createServer(app); - -/** - * Listen on provided port, on all network interfaces. - */ - -server.listen(port); -server.on('error', onError); -server.on('listening', onListening); - -/** - * Normalize a port into a number, string, or false. - */ - -function normalizePort(val) { - var port = parseInt(val, 10); - - if (isNaN(port)) { - // named pipe - return val; - } - - if (port >= 0) { - // port number - return port; - } - - return false; -} - -/** - * Event listener for HTTP server "error" event. - */ - -function onError(error) { - if (error.syscall !== 'listen') { - throw error; - } - - var bind = typeof port === 'string' - ? 'Pipe ' + port - : 'Port ' + port; - - // handle specific listen errors with friendly messages - switch (error.code) { - case 'EACCES': - console.error(bind + ' requires elevated privileges'); - process.exit(1); - break; - case 'EADDRINUSE': - console.error(bind + ' is already in use'); - process.exit(1); - break; - default: - throw error; - } -} - -/** - * Event listener for HTTP server "listening" event. - */ - -function onListening() { - var addr = server.address(); - var bind = typeof addr === 'string' - ? 'pipe ' + addr - : 'port ' + addr.port; - debug('Listening on ' + bind); -} - -console.log("DCS Olympus DEMO Backend Server {{OLYMPUS_VERSION_NUMBER}}.{{OLYMPUS_COMMIT_HASH}} started correctly!") -console.log("Waiting for connections...") - -process.title = `DCS Olympus DEMO Backend Server {{OLYMPUS_VERSION_NUMBER}} (${port})`; \ No newline at end of file diff --git a/client/bin/www b/client/bin/www deleted file mode 100644 index dc3cad2e..00000000 --- a/client/bin/www +++ /dev/null @@ -1,102 +0,0 @@ -const yargs = require('yargs'); -var fs = require('fs'); - -/* Define configuration parameter */ -yargs.alias('c', 'config').describe('c', 'olympus.json config location').string('rp'); -args = yargs.argv; - -console.log('\x1b[36m%s\x1b[0m', "*********************************************************************"); -console.log('\x1b[36m%s\x1b[0m', "* _____ _____ _____ ____ _ *"); -console.log('\x1b[36m%s\x1b[0m', "* | __ \\ / ____|/ ____| / __ \\| | *"); -console.log('\x1b[36m%s\x1b[0m', "* | | | | | | (___ | | | | |_ _ _ __ ___ _ __ _ _ ___ *"); -console.log('\x1b[36m%s\x1b[0m', "* | | | | | \\___ \\ | | | | | | | | '_ ` _ \\| '_ \\| | | / __| *"); -console.log('\x1b[36m%s\x1b[0m', "* | |__| | |____ ____) | | |__| | | |_| | | | | | | |_) | |_| \\__ \\ *"); -console.log('\x1b[36m%s\x1b[0m', "* |_____/ \\_____|_____/ \\____/|_|\\__, |_| |_| |_| .__/ \\__,_|___/ *"); -console.log('\x1b[36m%s\x1b[0m', "* __/ | | | *"); -console.log('\x1b[36m%s\x1b[0m', "* |___/ |_| *"); -console.log('\x1b[36m%s\x1b[0m', "*********************************************************************"); -console.log('\x1b[36m%s\x1b[0m', ""); -console.log("Please wait while DCS Olympus Server starts up..."); -console.log(`Config location: ${args["config"]}`) - -/* Load the configuration file */ -var clientPort = 0; -if (fs.existsSync(args["config"])) { - var json = JSON.parse(fs.readFileSync(args["config"], 'utf-8')); - clientPort = json["client"]["port"]; -} else { - console.log("Failed to read config, aborting!"); - return; -} - -/* Load the dependencies. The app is loaded providing the configuration file location */ -var app = require('../app')(args["config"]); -var debug = require('debug')('client:server'); -var http = require('http'); - -/* Normalize port */ -var port = normalizePort(clientPort); -app.set('port', port); -console.log("Express server listening on port: " + port) - -/* Create HTTP server */ -var server = http.createServer(app); - -/* Listen on provided port, on all network interfaces. */ -server.listen(port); -server.on('error', onError); -server.on('listening', onListening); - -/* Normalize a port into a number, string, or false. */ -function normalizePort(val) { - var port = parseInt(val, 10); - - if (isNaN(port)) { - return val; - } - - if (port >= 0) { - return port; - } - - return false; -} - -/* Event listener for HTTP server "error" event. */ -function onError(error) { - if (error.syscall !== 'listen') { - throw error; - } - - var bind = typeof port === 'string' - ? 'Pipe ' + port - : 'Port ' + port; - - /* Handle specific listen errors with friendly messages */ - switch (error.code) { - case 'EACCES': - console.error(bind + ' requires elevated privileges'); - process.exit(1); - break; - case 'EADDRINUSE': - console.error(bind + ' is already in use'); - process.exit(1); - break; - default: - throw error; - } -} - -/* Event listener for HTTP server "listening" event. */ -function onListening() { - var addr = server.address(); - var bind = typeof addr === 'string' - ? 'pipe ' + addr - : 'port ' + addr.port; - debug('Listening on ' + bind); -} - -/* Final user friendly printing */ -console.log("DCS Olympus server {{OLYMPUS_VERSION_NUMBER}}.{{OLYMPUS_COMMIT_HASH}} started correctly!") -console.log("Waiting for connections...") -process.title = `DCS Olympus server {{OLYMPUS_VERSION_NUMBER}} (${port})`; \ No newline at end of file diff --git a/client/configurator.js b/client/configurator.js deleted file mode 100644 index fce7f9e5..00000000 --- a/client/configurator.js +++ /dev/null @@ -1,194 +0,0 @@ -const fs = require('fs') -const path = require('path') -const yargs = require('yargs'); -const prompt = require('prompt-sync')({sigint: true}); -const sha256 = require('sha256'); -var jsonPath = path.join('..', 'olympus.json'); -var regedit = require('regedit') - -const shellFoldersKey = 'HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders' -const saveGamesKey = '{4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}' - -/* Set the acceptable values */ -yargs.alias('a', 'address').describe('a', 'Backend address').string('a'); -yargs.alias('b', 'backendPort').describe('b', 'Backend port').number('b'); -yargs.alias('c', 'clientPort').describe('c', 'Client port').number('c'); -yargs.alias('p', 'gameMasterPassword').describe('p', 'Game Master password').string('p'); -yargs.alias('bp', 'blueCommanderPassword').describe('bp', 'Blue Commander password').string('bp'); -yargs.alias('rp', 'redCommanderPassword').describe('rp', 'Red Commander password').string('rp'); -yargs.alias('d', 'directory').describe('d', 'Directory where the DCS Olympus configurator is located').string('rp'); -args = yargs.argv; - -async function run() { - /* Check that we can read the json */ - if (fs.existsSync(jsonPath)) { - var json = JSON.parse(fs.readFileSync(jsonPath, 'utf-8')); - - var address = args.address ?? json["server"]["address"]; - var clientPort = args.clientPort ?? json["client"]["port"]; - var backendPort = args.backendPort ?? json["server"]["port"]; - var gameMasterPassword = args.gameMasterPassword? sha256(args.gameMasterPassword): json["authentication"]["gameMasterPassword"]; - var blueCommanderPassword = args.blueCommanderPassword? sha256(args.blueCommanderPassword): json["authentication"]["blueCommanderPassword"]; - var redCommanderPassword = args.redCommanderPassword? sha256(args.redCommanderPassword): json["authentication"]["redCommanderPassword"]; - - /* Run in interactive mode */ - if (args.address === undefined && args.clientPort === undefined && args.backendPort === undefined && - args.gameMasterPassword === undefined && args.blueCommanderPassword === undefined && args.redCommanderPassword === undefined) { - - var newValue; - var result; - - /* Get the new address */ - newValue = prompt(`Insert an address or press Enter to keep current value ${address}. Use * for any address: `); - address = newValue !== ""? newValue: address; - - /* Get the new client port */ - while (true) { - newValue = prompt(`Insert a client port or press Enter to keep current value ${clientPort}. Integers between 1025 and 65535: `); - if (newValue === "") - break; - result = Number(newValue); - - if (!isNaN(result) && Number.isInteger(result) && result > 1024 && result <= 65535) - break; - } - clientPort = newValue? result: clientPort; - - /* Get the new backend port */ - while (true) { - newValue = prompt(`Insert a backend port or press Enter to keep current value ${backendPort}. Integers between 1025 and 65535: `); - if (newValue === "") - break; - result = Number(newValue); - - if (!isNaN(result) && Number.isInteger(result) && result > 1024 && result <= 65535 && result != clientPort) - break; - - if (result === clientPort) - console.log("Client port and backend port must be different."); - } - backendPort = newValue? result: backendPort; - - /* Get the new Game Master password */ - while (true) { - newValue = prompt(`Insert a new Game Master password or press Enter to keep current value: `, {echo: "*"}); - gameMasterPassword = newValue !== ""? sha256(newValue): gameMasterPassword; - - // Check if Game Master password is unique - if (gameMasterPassword === blueCommanderPassword || gameMasterPassword === redCommanderPassword) { - console.log("Game Master password must be different from other passwords. Please try again."); - continue; - } - break; - } - - /* Get the new Blue Commander password */ - while (true) { - newValue = prompt(`Insert a new Blue Commander password or press Enter to keep current value: `, {echo: "*"}); - blueCommanderPassword = newValue !== ""? sha256(newValue): blueCommanderPassword; - - // Check if Blue Commander password is unique - if (blueCommanderPassword === gameMasterPassword || blueCommanderPassword === redCommanderPassword) { - console.log("Blue Commander password must be different from other passwords. Please try again."); - continue; - } - break; - } - - /* Get the new Red Commander password */ - while (true) { - newValue = prompt(`Insert a new Red Commander password or press Enter to keep current value: `, {echo: "*"}); - redCommanderPassword = newValue !== ""? sha256(newValue): redCommanderPassword; - - // Check if Red Commander password is unique - if (redCommanderPassword === gameMasterPassword || redCommanderPassword === blueCommanderPassword) { - console.log("Red Commander password must be different from other passwords. Please try again."); - continue; - } - break; - } - } - - /* Apply the inputs */ - json["server"]["address"] = address; - json["client"]["port"] = clientPort; - json["server"]["port"] = backendPort; - json["authentication"]["gameMasterPassword"] = gameMasterPassword; - json["authentication"]["blueCommanderPassword"] = blueCommanderPassword; - json["authentication"]["redCommanderPassword"] = redCommanderPassword; - - /* Write the result to disk */ - const serialized = JSON.stringify(json, null, 4); - fs.writeFileSync(jsonPath, serialized, 'utf8'); - console.log("Olympus.json updated correctly, goodbye!"); - } - else { - console.error("Error, could not read olympus.json file!") - } - - /* Wait a bit before closing the window */ - await new Promise(resolve => setTimeout(resolve, 3000)); -} - -console.log('\x1b[36m%s\x1b[0m', "*********************************************************************"); -console.log('\x1b[36m%s\x1b[0m', "* _____ _____ _____ ____ _ *"); -console.log('\x1b[36m%s\x1b[0m', "* | __ \\ / ____|/ ____| / __ \\| | *"); -console.log('\x1b[36m%s\x1b[0m', "* | | | | | | (___ | | | | |_ _ _ __ ___ _ __ _ _ ___ *"); -console.log('\x1b[36m%s\x1b[0m', "* | | | | | \\___ \\ | | | | | | | | '_ ` _ \\| '_ \\| | | / __| *"); -console.log('\x1b[36m%s\x1b[0m', "* | |__| | |____ ____) | | |__| | | |_| | | | | | | |_) | |_| \\__ \\ *"); -console.log('\x1b[36m%s\x1b[0m', "* |_____/ \\_____|_____/ \\____/|_|\\__, |_| |_| |_| .__/ \\__,_|___/ *"); -console.log('\x1b[36m%s\x1b[0m', "* __/ | | | *"); -console.log('\x1b[36m%s\x1b[0m', "* |___/ |_| *"); -console.log('\x1b[36m%s\x1b[0m', "*********************************************************************"); -console.log('\x1b[36m%s\x1b[0m', ""); - -console.log("DCS Olympus configurator {{OLYMPUS_VERSION_NUMBER}}.{{OLYMPUS_COMMIT_HASH}}"); -console.log(""); - -/* Run the configurator */ -if (args.directory) { - jsonPath = path.join(args.directory, "olympus.json"); -} -else { - /* Automatically detect possible DCS installation folders */ - regedit.list(shellFoldersKey, function(err, result) { - if (err) { - console.log(err); - } - else { - if (result[shellFoldersKey] !== undefined && result[shellFoldersKey]["exists"] && result[shellFoldersKey]['values'][saveGamesKey] !== undefined && result[shellFoldersKey]['values'][saveGamesKey]['value'] !== undefined) - { - const searchpath = result[shellFoldersKey]['values'][saveGamesKey]['value']; - const folders = fs.readdirSync(searchpath); - var options = []; - folders.forEach((folder) => { - if (fs.existsSync(path.join(searchpath, folder, "Logs", "dcs.log"))) { - options.push(folder); - } - }) - console.log("The following DCS Saved Games folders have been automatically detected.") - options.forEach((folder, index) => { - console.log(`(${index + 1}) ${folder}`) - }); - while (true) { - var newValue = prompt(`Please choose a folder onto which the configurator shall operate by typing the associated number: `) - result = Number(newValue); - - if (!isNaN(result) && Number.isInteger(result) && result > 0 && result <= options.length) { - jsonPath = path.join(searchpath, options[result - 1], "Config", "olympus.json"); - break; - } - else { - console.log(`Please type a number between 1 and ${options.length}`); - } - } - - } else { - console.error("An error occured while trying to fetch the location of the DCS folder. Please type the folder location manually.") - jsonPath = path.join(prompt(`DCS Saved Games folder location: `), "olympus.json"); - } - console.log(`Configurator will run on ${jsonPath}, if this is incorrect please restart the configurator`) - run(); - } - }) -} diff --git a/client/copy.sh b/client/copy.sh deleted file mode 100755 index b809b1fc..00000000 --- a/client/copy.sh +++ /dev/null @@ -1,4 +0,0 @@ -cp ./node_modules/leaflet/dist/leaflet.css ./public/stylesheets/leaflet/leaflet.css -cp ./node_modules/leaflet-gesture-handling/dist/leaflet-gesture-handling.css ./public/stylesheets/leaflet/leaflet-gesture-handling.css -cp ./node_modules/leaflet.nauticscale/dist/leaflet.nauticscale.js ./public/javascripts/leaflet.nauticscale.js -cp ./node_modules/leaflet-path-drag/dist/L.Path.Drag.js ./public/javascripts/L.Path.Drag.js diff --git a/client/plugins/controltips/package-lock.json b/client/plugins/controltips/package-lock.json deleted file mode 100644 index 967172cf..00000000 --- a/client/plugins/controltips/package-lock.json +++ /dev/null @@ -1,6317 +0,0 @@ -{ - "name": "ControlTipsPlugin", - "version": "v0.0.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "ControlTipsPlugin", - "version": "v0.0.1", - "devDependencies": { - "@babel/preset-env": "^7.21.4", - "@types/node": "^18.16.1", - "@types/sortablejs": "^1.15.0", - "babelify": "^10.0.0", - "browserify": "^17.0.0", - "concurrently": "^7.6.0", - "cp": "^0.2.0", - "esmify": "^2.1.1", - "nodemon": "^2.0.20", - "requirejs": "^2.3.6", - "sortablejs": "^1.15.0", - "tinyify": "^4.0.0", - "tsify": "^5.0.4", - "tslib": "latest", - "typescript": "^4.9.4", - "usng.js": "^0.4.5", - "watchify": "^4.0.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", - "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.3", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.3", - "@babel/types": "^7.23.3", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/generator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", - "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", - "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.4", - "@babel/types": "^7.23.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", - "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", - "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", - "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", - "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", - "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", - "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.3", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.3", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.3", - "@babel/plugin-transform-classes": "^7.23.3", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.3", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.3", - "@babel/plugin-transform-for-of": "^7.23.3", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.3", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", - "@babel/plugin-transform-numeric-separator": "^7.23.3", - "@babel/plugin-transform-object-rest-spread": "^7.23.3", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.3", - "@babel/plugin-transform-optional-chaining": "^7.23.3", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.3", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", - "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", - "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.4", - "@babel/generator": "^7.23.4", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.4", - "@babel/types": "^7.23.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/types": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", - "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@browserify/envify": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@browserify/envify/-/envify-6.0.0.tgz", - "integrity": "sha512-ovxHR0KTsRCyMNwD7MGV0+VCU1sT6Ds+itC4DaQHM41eUId+w5Jd0qlhLVoDkkIVBnkY3BAAM8yb2QfpBlHkPw==", - "dev": true, - "dependencies": { - "acorn-node": "^2.0.1", - "dash-ast": "^2.0.1", - "multisplice": "^1.0.0", - "through2": "^4.0.2" - }, - "bin": { - "envify": "bin/envify" - } - }, - "node_modules/@browserify/envify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@browserify/envify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/@browserify/uglifyify": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@browserify/uglifyify/-/uglifyify-6.0.0.tgz", - "integrity": "sha512-48M2a3novsgKhUSo/B3ja10awc7unliK1HfW6aYBJdLFQj3wXDx9BBJVfj6MVYERSQVEVjNHQQ7IK89h4MpCLw==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.9.0", - "minimatch": "^3.0.2", - "terser": "^5.15.1", - "through2": "^4.0.2", - "xtend": "^4.0.1" - } - }, - "node_modules/@browserify/uglifyify/node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@browserify/uglifyify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@browserify/uglifyify/node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@browserify/uglifyify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/@goto-bus-stop/common-shake": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@goto-bus-stop/common-shake/-/common-shake-2.4.0.tgz", - "integrity": "sha512-LO+7v+UbxE3IyAS4Suf/KYB7Zq9DEIHibwDe6Wph4apNEfDyyxP7BSxzRS/Qa9lUH5gsm9eL9nF8EE1E0/nQkQ==", - "dev": true, - "dependencies": { - "acorn-walk": "^7.0.0", - "debug": "^3.2.6", - "escope": "^3.6.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@types/node": { - "version": "18.18.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.11.tgz", - "integrity": "sha512-c1vku6qnTeujJneYH94/4aq73XrVcsJe35UPyAsSok1ijiKrkRzK+AxQPSpNMUnC03roWBBwJx/9I8V7lQoxmA==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/sortablejs": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.6.tgz", - "integrity": "sha512-/G23qmK63iBjke89C1KvyFGMC7sooH4OKPuhOhLZUttZJ49dw7y7oimqICFe2PHCdQ4Cfb9tsF/Xy8kYr1/nIg==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-node": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-2.0.1.tgz", - "integrity": "sha512-VLR5sHqjk+8c5hrKeP2fWaIHb8eewsoxnZ8r2qpwRHXMHuC7KyOPflnOx9dLssVQUurzJ7rO0OzIFjHcndafWw==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", - "dev": true, - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-from": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==", - "dev": true - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", - "dev": true - }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-import-to-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-import-to-require/-/babel-plugin-import-to-require-1.0.0.tgz", - "integrity": "sha512-dc843CwrFivjO8AVgxcHvxl0cb7J7Ed8ZGFP8+PjH3X1CnyzYtAU1WL1349m9Wc/+oqk4ETx2+cIEO2jlp3XyQ==", - "dev": true, - "dependencies": { - "babel-template": "^6.26.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-traverse/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babel-types/node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babelify": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", - "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "node_modules/browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "dependencies": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - }, - "bin": { - "browser-pack": "bin/cmd.js" - } - }, - "node_modules/browser-pack-flat": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/browser-pack-flat/-/browser-pack-flat-3.5.0.tgz", - "integrity": "sha512-u3iJUjs+TC/NGIL2GLyIcn5ppoNZXhTWqSW/gQbGIGvQiXXCQQzr5VWfACFraXQn2JrDlyRnKLeOs5AWXzKI6A==", - "dev": true, - "dependencies": { - "combine-source-map": "^0.8.0", - "convert-source-map": "^1.5.1", - "count-lines": "^0.1.2", - "dedent": "^0.7.0", - "estree-is-member-expression": "^1.0.0", - "estree-is-require": "^1.0.0", - "esutils": "^2.0.2", - "JSONStream": "^1.3.2", - "path-parse": "^1.0.5", - "scope-analyzer": "^2.0.0", - "stream-combiner": "^0.2.2", - "through2": "^3.0.1", - "transform-ast": "^2.4.2", - "umd": "^3.0.3", - "wrap-comment": "^1.0.0" - }, - "bin": { - "browser-pack-flat": "cli.js" - } - }, - "node_modules/browser-pack-flat/node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", - "dev": true - }, - "node_modules/browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", - "dev": true, - "dependencies": { - "resolve": "^1.17.0" - } - }, - "node_modules/browser-unpack": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/browser-unpack/-/browser-unpack-1.4.2.tgz", - "integrity": "sha512-uHkiY4bmXjjBBWoKH1aRnEGTQxUUCCcVtoJfH9w1lmGGjETY4u93Zk+GRYkCE/SRMrdoMTINQ/1/manr/3aMVA==", - "dev": true, - "dependencies": { - "acorn-node": "^1.5.2", - "concat-stream": "^1.5.0", - "minimist": "^1.1.1" - }, - "bin": { - "browser-unpack": "bin/cmd.js" - } - }, - "node_modules/browser-unpack/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/browserify": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", - "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", - "dev": true, - "dependencies": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^2.0.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.1", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^3.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.2.1", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.2.3", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "^1.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum-object": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^3.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.12.0", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "browserify": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", - "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.4", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.6", - "readable-stream": "^3.6.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, - "node_modules/bundle-collapser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/bundle-collapser/-/bundle-collapser-1.4.0.tgz", - "integrity": "sha512-Gd3K3+3KI1Utuk+gwAvuOVOjT/2XLGL8tU6FwDKk04LlOZkYfT0pwQllsG1Dv8RRhgcjNxZSDmmSXb0AOkwSwg==", - "dev": true, - "dependencies": { - "browser-pack": "^6.0.2", - "browser-unpack": "^1.1.0", - "concat-stream": "^1.5.0", - "falafel": "^2.1.0", - "minimist": "^1.1.1", - "through2": "^2.0.0" - }, - "bin": { - "bundle-collapser": "bin/cmd.js" - } - }, - "node_modules/cached-path-relative": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", - "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", - "dev": true - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001563", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", - "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", - "dev": true, - "dependencies": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - } - }, - "node_modules/combine-source-map/node_modules/convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", - "dev": true - }, - "node_modules/combine-source-map/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/common-shakeify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/common-shakeify/-/common-shakeify-1.1.2.tgz", - "integrity": "sha512-r2zRKPCbCx1l9BT8nVGZssZXrH9jeLl5qfHKxUwSBT7Kr9l1jSjZsItZE/jXo+GYDyO3kQfsyV7Poid475MgWQ==", - "dev": true, - "dependencies": { - "@goto-bus-stop/common-shake": "^2.3.0", - "convert-source-map": "^1.5.1", - "through2": "^2.0.3", - "transform-ast": "^2.4.3", - "wrap-comment": "^1.0.1" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concurrently": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz", - "integrity": "sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.29.1", - "lodash": "^4.17.21", - "rxjs": "^7.0.0", - "shell-quote": "^1.7.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^17.3.1" - }, - "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/concurrently/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/concurrently/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.3.tgz", - "integrity": "sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==", - "dev": true, - "dependencies": { - "browserslist": "^4.22.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/count-lines": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/count-lines/-/count-lines-0.1.2.tgz", - "integrity": "sha512-YS8P4UYXX/hrDyLU3r/A5OcCNwdNbJFJckbe8j+x2Jhxsr2J4/rYl0sDwOljLZL7Uxc4s7mRSNcQD8dSjobz+g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cp": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/cp/-/cp-0.2.0.tgz", - "integrity": "sha512-4ftCvShHjIZG/zzomHyunNpBof3sOFTTmU6s6q9DdqAL/ANqrKV3pr6Z6kVfBI4hjn59DFLImrBqn7GuuMqSZA==", - "dev": true - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dash-ast": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", - "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==", - "dev": true - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deps-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", - "dev": true, - "dependencies": { - "JSONStream": "^1.0.3", - "shasum-object": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - }, - "bin": { - "deps-sort": "bin/cmd.js" - } - }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/detective": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" - }, - "bin": { - "detective": "bin/detective.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/detective/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.589", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.589.tgz", - "integrity": "sha512-zF6y5v/YfoFIgwf2dDfAqVlPPsyQeWNpEWXbAlDUS8Ax4Z2VoiiZpAPC0Jm9hXEkJm2vIZpwB6rc4KnLTQffbQ==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, - "node_modules/es6-set": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", - "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "es6-iterator": "~2.0.3", - "es6-symbol": "^3.1.3", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/es6-set/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", - "dev": true, - "dependencies": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esmify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/esmify/-/esmify-2.1.1.tgz", - "integrity": "sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.2.2", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "babel-plugin-import-to-require": "^1.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "^1.6.2", - "duplexer2": "^0.1.4", - "through2": "^2.0.5" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-is-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", - "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==", - "dev": true - }, - "node_modules/estree-is-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-identifier/-/estree-is-identifier-1.0.0.tgz", - "integrity": "sha512-2BDRGrkQJV/NhCAmmE33A35WAaxq3WQaGHgQuD//7orGWfpFqj8Srkwvx0TH+20yIdOF1yMQwi8anv5ISec2AQ==", - "dev": true - }, - "node_modules/estree-is-member-expression": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-member-expression/-/estree-is-member-expression-1.0.0.tgz", - "integrity": "sha512-Ec+X44CapIGExvSZN+pGkmr5p7HwUVQoPQSd458Lqwvaf4/61k/invHSh4BYK8OXnCkfEhWuIoG5hayKLQStIg==", - "dev": true - }, - "node_modules/estree-is-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-require/-/estree-is-require-1.0.0.tgz", - "integrity": "sha512-oWxQdSEmnUwNZsDQYiBNpVxKEhMmsJQSSxnDrwsr1MWtooCLfhgzsNGzmokdmfK0EzEIS5V4LPvqxv1Kmb1vvA==", - "dev": true, - "dependencies": { - "estree-is-identifier": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, - "node_modules/falafel": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", - "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "isarray": "^2.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/falafel/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/from2-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/from2-string/-/from2-string-1.1.0.tgz", - "integrity": "sha512-m8vCh+KnXXXBtfF2VUbiYlQ+nczLcntB0BrtNgpmLkHylhObe9WF1b2LZjBBzrZzA6P4mkEla6ZYQoOUTG8cYA==", - "dev": true, - "dependencies": { - "from2": "^2.0.3" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", - "dev": true, - "dependencies": { - "source-map": "~0.5.3" - } - }, - "node_modules/inline-source-map/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/insert-module-globals": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", - "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", - "dev": true, - "dependencies": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - }, - "bin": { - "insert-module-globals": "bin/cmd.js" - } - }, - "node_modules/insert-module-globals/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/insert-module-globals/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/labeled-stream-splicer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "stream-splicer": "^2.0.0" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", - "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.1" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/merge-source-map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/merge-source-map/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/minify-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minify-stream/-/minify-stream-2.1.0.tgz", - "integrity": "sha512-P5xE4EQRkn7Td54VGcgfDMFx1jmKPPIXCdcMfrbXS6cNHK4dO1LXwtYFb48hHrSmZfT+jlGImvHgSZEkbpNtCw==", - "dev": true, - "dependencies": { - "concat-stream": "^2.0.0", - "convert-source-map": "^1.5.0", - "duplexify": "^4.1.1", - "from2-string": "^1.1.0", - "terser": "^4.7.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minify-stream/node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "engines": [ - "node >= 6.0" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/minify-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minify-stream/node_modules/terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/module-deps": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", - "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", - "dev": true, - "dependencies": { - "browser-resolve": "^2.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.2.0", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "module-deps": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/multi-stage-sourcemap": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.3.1.tgz", - "integrity": "sha512-UiTLYjqeIoVnJHyWGskwMKIhtZKK9uXUjSTWuwatarrc0d2H/6MAVFdwvEA/aKOHamIn7z4tfvxjz+FYucFpNQ==", - "dev": true, - "dependencies": { - "source-map": "^0.1.34" - } - }, - "node_modules/multi-stage-sourcemap/node_modules/source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/multisplice": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/multisplice/-/multisplice-1.0.0.tgz", - "integrity": "sha512-KU5tVjIdTGsMb92JlWwEZCGrvtI1ku9G9GuNbWdQT/Ici1ztFXX0L8lWpbbC3pISVMfBNL56wdqplHvva2XSlA==", - "dev": true - }, - "node_modules/mutexify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", - "integrity": "sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg==", - "dev": true, - "dependencies": { - "queue-tick": "^1.0.0" - } - }, - "node_modules/nanobench": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nanobench/-/nanobench-2.1.1.tgz", - "integrity": "sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^0.1.2", - "chalk": "^1.1.3", - "mutexify": "^1.1.0", - "pretty-hrtime": "^1.0.2" - }, - "bin": { - "nanobench": "run.js", - "nanobench-compare": "compare.js" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/nodemon/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, - "node_modules/outpipe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", - "integrity": "sha512-BnNY/RwnDrkmQdUa9U+OfN/Y7AWmKuUPCCd+hbRclZnnANvYpO72zp/a6Q4n829hPbdqEac31XCcsvlEvb+rtA==", - "dev": true, - "dependencies": { - "shell-quote": "^1.4.2" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", - "dev": true, - "dependencies": { - "path-platform": "~0.11.15" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", - "dev": true, - "bin": { - "r_js": "bin/r.js", - "r.js": "bin/r.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/scope-analyzer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.2.tgz", - "integrity": "sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ==", - "dev": true, - "dependencies": { - "array-from": "^2.1.1", - "dash-ast": "^2.0.1", - "es6-map": "^0.1.5", - "es6-set": "^0.1.5", - "es6-symbol": "^3.1.1", - "estree-is-function": "^1.0.0", - "get-assigned-identifiers": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shasum-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", - "dev": true, - "dependencies": { - "fast-safe-stringify": "^2.0.7" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "dev": true, - "dependencies": { - "semver": "~7.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/sortablejs": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", - "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true - }, - "node_modules/spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", - "dev": true - }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", - "dev": true, - "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", - "dev": true, - "dependencies": { - "minimist": "^1.1.0" - } - }, - "node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "dependencies": { - "acorn-node": "^1.2.0" - } - }, - "node_modules/syntax-error/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/terser": { - "version": "3.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz", - "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==", - "dev": true, - "dependencies": { - "commander": "~2.17.1", - "source-map": "~0.6.1", - "source-map-support": "~0.5.9" - }, - "bin": { - "terser": "bin/uglifyjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", - "dev": true, - "dependencies": { - "process": "~0.11.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tinyify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tinyify/-/tinyify-4.0.0.tgz", - "integrity": "sha512-jNDxImwUrJJAU2NyGG144J8aWx2ni39UuBo7ppCXFRmhSH0CbpWL4HgjNvrsAW05WQAgNZePwAlEemNuB+byaA==", - "dev": true, - "dependencies": { - "@browserify/envify": "^6.0.0", - "@browserify/uglifyify": "^6.0.0", - "browser-pack-flat": "^3.0.9", - "bundle-collapser": "^1.3.0", - "common-shakeify": "^1.1.1", - "minify-stream": "^2.0.1", - "multisplice": "^1.0.0", - "terser": "3.16.1", - "through2": "^4.0.2", - "unassertify": "^3.0.1" - } - }, - "node_modules/tinyify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tinyify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/transform-ast": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", - "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "convert-source-map": "^1.5.1", - "dash-ast": "^1.0.0", - "is-buffer": "^2.0.0", - "magic-string": "^0.23.2", - "merge-source-map": "1.0.4", - "nanobench": "^2.1.1" - } - }, - "node_modules/transform-ast/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/transform-ast/node_modules/dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/tsconfig": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz", - "integrity": "sha512-Cq65A3kVp6BbsUgg9DRHafaGmbMb9EhAc7fjWvudNWKjkbWrt43FnrtZt6awshH1R0ocfF2Z0uxock3lVqEgOg==", - "dev": true, - "dependencies": { - "any-promise": "^1.3.0", - "parse-json": "^2.2.0", - "strip-bom": "^2.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "node_modules/tsify": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/tsify/-/tsify-5.0.4.tgz", - "integrity": "sha512-XAZtQ5OMPsJFclkZ9xMZWkSNyMhMxEPsz3D2zu79yoKorH9j/DT4xCloJeXk5+cDhosEibu4bseMVjyPOAyLJA==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.1.0", - "fs.realpath": "^1.0.0", - "object-assign": "^4.1.0", - "semver": "^6.1.0", - "through2": "^2.0.0", - "tsconfig": "^5.0.3" - }, - "engines": { - "node": ">=0.12" - }, - "peerDependencies": { - "browserify": ">= 10.x", - "typescript": ">= 2.8" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true, - "bin": { - "umd": "bin/cli.js" - } - }, - "node_modules/unassert": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unassert/-/unassert-2.0.2.tgz", - "integrity": "sha512-P6OOg/aRdQmWH+b0g+T4U+9MgL+DG7w6oQPG+N3F2IMuvvd1WfZ5alT/Rjik2lMFVyhfACUxF7PGP1VCwSHlQA==", - "dev": true, - "dependencies": { - "estraverse": "^5.0.0" - } - }, - "node_modules/unassert/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/unassertify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/unassertify/-/unassertify-3.0.1.tgz", - "integrity": "sha512-461ykSPY3oWU+39J5haiq7S/hcYy1oGJ2nHU92lqdL3jft+pSU6oAbb7o6VVmM7nZGLqppszgyzfpCnRBFgFtw==", - "dev": true, - "dependencies": { - "acorn": "^8.0.0", - "convert-source-map": "^1.1.1", - "escodegen": "^2.0.0", - "multi-stage-sourcemap": "^0.3.1", - "through": "^2.3.7", - "unassert": "^2.0.0" - } - }, - "node_modules/unassertify/node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - }, - "bin": { - "undeclared-identifiers": "bin.js" - } - }, - "node_modules/undeclared-identifiers/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/undeclared-identifiers/node_modules/dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", - "dev": true, - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.11.2" - } - }, - "node_modules/usng.js": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/usng.js/-/usng.js-0.4.5.tgz", - "integrity": "sha512-JTJcFFDy/JqA5iiU8DqMOV5gJiL3ZdXH0hCKYaRMDbbredhFna5Ok4C1YDFU07mTGAgm+5FzHaaOzQnO/3BzWQ==", - "dev": true, - "bin": { - "usng-cli": "bin/cli.js" - } - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/watchify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", - "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", - "dev": true, - "dependencies": { - "anymatch": "^3.1.0", - "browserify": "^17.0.0", - "chokidar": "^3.4.0", - "defined": "^1.0.0", - "outpipe": "^1.1.0", - "through2": "^4.0.2", - "xtend": "^4.0.2" - }, - "bin": { - "watchify": "bin/cmd.js" - }, - "engines": { - "node": ">= 8.10.0" - } - }, - "node_modules/watchify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/watchify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-comment": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrap-comment/-/wrap-comment-1.0.1.tgz", - "integrity": "sha512-APccrMwl/ont0RHFTXNAQfM647duYYEfs6cngrIyTByTI0xbWnDnPSptFZhS68L4WCjt2ZxuhCFwuY6Pe88KZQ==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - } - } -} diff --git a/client/plugins/databasemanager/package-lock.json b/client/plugins/databasemanager/package-lock.json deleted file mode 100644 index 5ff5edad..00000000 --- a/client/plugins/databasemanager/package-lock.json +++ /dev/null @@ -1,6214 +0,0 @@ -{ - "name": "DatabaseManagerPlugin", - "version": "v0.0.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "DatabaseManagerPlugin", - "version": "v0.0.1", - "devDependencies": { - "@babel/preset-env": "^7.21.4", - "@types/node": "^18.16.1", - "@types/sortablejs": "^1.15.0", - "babelify": "^10.0.0", - "browserify": "^17.0.0", - "concurrently": "^7.6.0", - "cp": "^0.2.0", - "esmify": "^2.1.1", - "nodemon": "^2.0.20", - "requirejs": "^2.3.6", - "sortablejs": "^1.15.0", - "tinyify": "^4.0.0", - "tsify": "^5.0.4", - "tslib": "latest", - "typescript": "^4.9.4", - "usng.js": "^0.4.5", - "watchify": "^4.0.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", - "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.3", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.3", - "@babel/types": "^7.23.3", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@babel/generator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", - "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", - "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.4", - "@babel/types": "^7.23.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", - "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", - "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", - "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", - "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", - "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", - "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.3", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.3", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.3", - "@babel/plugin-transform-classes": "^7.23.3", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.3", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.3", - "@babel/plugin-transform-for-of": "^7.23.3", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.3", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", - "@babel/plugin-transform-numeric-separator": "^7.23.3", - "@babel/plugin-transform-object-rest-spread": "^7.23.3", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.3", - "@babel/plugin-transform-optional-chaining": "^7.23.3", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.3", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", - "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", - "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.4", - "@babel/generator": "^7.23.4", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.4", - "@babel/types": "^7.23.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", - "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@browserify/envify": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@browserify/envify/-/envify-6.0.0.tgz", - "integrity": "sha512-ovxHR0KTsRCyMNwD7MGV0+VCU1sT6Ds+itC4DaQHM41eUId+w5Jd0qlhLVoDkkIVBnkY3BAAM8yb2QfpBlHkPw==", - "dev": true, - "dependencies": { - "acorn-node": "^2.0.1", - "dash-ast": "^2.0.1", - "multisplice": "^1.0.0", - "through2": "^4.0.2" - }, - "bin": { - "envify": "bin/envify" - } - }, - "node_modules/@browserify/envify/node_modules/acorn-node": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-2.0.1.tgz", - "integrity": "sha512-VLR5sHqjk+8c5hrKeP2fWaIHb8eewsoxnZ8r2qpwRHXMHuC7KyOPflnOx9dLssVQUurzJ7rO0OzIFjHcndafWw==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/@browserify/envify/node_modules/dash-ast": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", - "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==", - "dev": true - }, - "node_modules/@browserify/envify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@browserify/envify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/@browserify/uglifyify": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@browserify/uglifyify/-/uglifyify-6.0.0.tgz", - "integrity": "sha512-48M2a3novsgKhUSo/B3ja10awc7unliK1HfW6aYBJdLFQj3wXDx9BBJVfj6MVYERSQVEVjNHQQ7IK89h4MpCLw==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.9.0", - "minimatch": "^3.0.2", - "terser": "^5.15.1", - "through2": "^4.0.2", - "xtend": "^4.0.1" - } - }, - "node_modules/@browserify/uglifyify/node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@browserify/uglifyify/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/@browserify/uglifyify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@browserify/uglifyify/node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@browserify/uglifyify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/@goto-bus-stop/common-shake": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@goto-bus-stop/common-shake/-/common-shake-2.4.0.tgz", - "integrity": "sha512-LO+7v+UbxE3IyAS4Suf/KYB7Zq9DEIHibwDe6Wph4apNEfDyyxP7BSxzRS/Qa9lUH5gsm9eL9nF8EE1E0/nQkQ==", - "dev": true, - "dependencies": { - "acorn-walk": "^7.0.0", - "debug": "^3.2.6", - "escope": "^3.6.0" - } - }, - "node_modules/@goto-bus-stop/common-shake/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@types/node": { - "version": "18.18.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.13.tgz", - "integrity": "sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/sortablejs": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.7.tgz", - "integrity": "sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", - "dev": true, - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-from": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==", - "dev": true - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", - "dev": true - }, - "node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-import-to-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-import-to-require/-/babel-plugin-import-to-require-1.0.0.tgz", - "integrity": "sha512-dc843CwrFivjO8AVgxcHvxl0cb7J7Ed8ZGFP8+PjH3X1CnyzYtAU1WL1349m9Wc/+oqk4ETx2+cIEO2jlp3XyQ==", - "dev": true, - "dependencies": { - "babel-template": "^6.26.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-traverse/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babel-types/node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babelify": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", - "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "node_modules/browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "dependencies": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - }, - "bin": { - "browser-pack": "bin/cmd.js" - } - }, - "node_modules/browser-pack-flat": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/browser-pack-flat/-/browser-pack-flat-3.5.0.tgz", - "integrity": "sha512-u3iJUjs+TC/NGIL2GLyIcn5ppoNZXhTWqSW/gQbGIGvQiXXCQQzr5VWfACFraXQn2JrDlyRnKLeOs5AWXzKI6A==", - "dev": true, - "dependencies": { - "combine-source-map": "^0.8.0", - "convert-source-map": "^1.5.1", - "count-lines": "^0.1.2", - "dedent": "^0.7.0", - "estree-is-member-expression": "^1.0.0", - "estree-is-require": "^1.0.0", - "esutils": "^2.0.2", - "JSONStream": "^1.3.2", - "path-parse": "^1.0.5", - "scope-analyzer": "^2.0.0", - "stream-combiner": "^0.2.2", - "through2": "^3.0.1", - "transform-ast": "^2.4.2", - "umd": "^3.0.3", - "wrap-comment": "^1.0.0" - }, - "bin": { - "browser-pack-flat": "cli.js" - } - }, - "node_modules/browser-pack-flat/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/browser-pack-flat/node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", - "dev": true - }, - "node_modules/browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", - "dev": true, - "dependencies": { - "resolve": "^1.17.0" - } - }, - "node_modules/browser-unpack": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/browser-unpack/-/browser-unpack-1.4.2.tgz", - "integrity": "sha512-uHkiY4bmXjjBBWoKH1aRnEGTQxUUCCcVtoJfH9w1lmGGjETY4u93Zk+GRYkCE/SRMrdoMTINQ/1/manr/3aMVA==", - "dev": true, - "dependencies": { - "acorn-node": "^1.5.2", - "concat-stream": "^1.5.0", - "minimist": "^1.1.1" - }, - "bin": { - "browser-unpack": "bin/cmd.js" - } - }, - "node_modules/browserify": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", - "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", - "dev": true, - "dependencies": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^2.0.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.1", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^3.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.2.1", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.2.3", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "^1.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum-object": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^3.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.12.0", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "browserify": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", - "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.4", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.6", - "readable-stream": "^3.6.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, - "node_modules/bundle-collapser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/bundle-collapser/-/bundle-collapser-1.4.0.tgz", - "integrity": "sha512-Gd3K3+3KI1Utuk+gwAvuOVOjT/2XLGL8tU6FwDKk04LlOZkYfT0pwQllsG1Dv8RRhgcjNxZSDmmSXb0AOkwSwg==", - "dev": true, - "dependencies": { - "browser-pack": "^6.0.2", - "browser-unpack": "^1.1.0", - "concat-stream": "^1.5.0", - "falafel": "^2.1.0", - "minimist": "^1.1.1", - "through2": "^2.0.0" - }, - "bin": { - "bundle-collapser": "bin/cmd.js" - } - }, - "node_modules/cached-path-relative": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", - "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", - "dev": true - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001564", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz", - "integrity": "sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", - "dev": true, - "dependencies": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/common-shakeify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/common-shakeify/-/common-shakeify-1.1.2.tgz", - "integrity": "sha512-r2zRKPCbCx1l9BT8nVGZssZXrH9jeLl5qfHKxUwSBT7Kr9l1jSjZsItZE/jXo+GYDyO3kQfsyV7Poid475MgWQ==", - "dev": true, - "dependencies": { - "@goto-bus-stop/common-shake": "^2.3.0", - "convert-source-map": "^1.5.1", - "through2": "^2.0.3", - "transform-ast": "^2.4.3", - "wrap-comment": "^1.0.1" - } - }, - "node_modules/common-shakeify/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concurrently": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz", - "integrity": "sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.29.1", - "lodash": "^4.17.21", - "rxjs": "^7.0.0", - "shell-quote": "^1.7.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^17.3.1" - }, - "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/concurrently/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/concurrently/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", - "dev": true - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.3.tgz", - "integrity": "sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==", - "dev": true, - "dependencies": { - "browserslist": "^4.22.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/count-lines": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/count-lines/-/count-lines-0.1.2.tgz", - "integrity": "sha512-YS8P4UYXX/hrDyLU3r/A5OcCNwdNbJFJckbe8j+x2Jhxsr2J4/rYl0sDwOljLZL7Uxc4s7mRSNcQD8dSjobz+g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cp": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/cp/-/cp-0.2.0.tgz", - "integrity": "sha512-4ftCvShHjIZG/zzomHyunNpBof3sOFTTmU6s6q9DdqAL/ANqrKV3pr6Z6kVfBI4hjn59DFLImrBqn7GuuMqSZA==", - "dev": true - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deps-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", - "dev": true, - "dependencies": { - "JSONStream": "^1.0.3", - "shasum-object": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - }, - "bin": { - "deps-sort": "bin/cmd.js" - } - }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/detective": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" - }, - "bin": { - "detective": "bin/detective.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.593", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.593.tgz", - "integrity": "sha512-c7+Hhj87zWmdpmjDONbvNKNo24tvmD4mjal1+qqTYTrlF0/sNpAcDlU0Ki84ftA/5yj3BF2QhSGEC0Rky6larg==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, - "node_modules/es6-set": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", - "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "es6-iterator": "~2.0.3", - "es6-symbol": "^3.1.3", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/es6-set/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", - "dev": true, - "dependencies": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esmify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/esmify/-/esmify-2.1.1.tgz", - "integrity": "sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.2.2", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "babel-plugin-import-to-require": "^1.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "^1.6.2", - "duplexer2": "^0.1.4", - "through2": "^2.0.5" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-is-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", - "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==", - "dev": true - }, - "node_modules/estree-is-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-identifier/-/estree-is-identifier-1.0.0.tgz", - "integrity": "sha512-2BDRGrkQJV/NhCAmmE33A35WAaxq3WQaGHgQuD//7orGWfpFqj8Srkwvx0TH+20yIdOF1yMQwi8anv5ISec2AQ==", - "dev": true - }, - "node_modules/estree-is-member-expression": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-member-expression/-/estree-is-member-expression-1.0.0.tgz", - "integrity": "sha512-Ec+X44CapIGExvSZN+pGkmr5p7HwUVQoPQSd458Lqwvaf4/61k/invHSh4BYK8OXnCkfEhWuIoG5hayKLQStIg==", - "dev": true - }, - "node_modules/estree-is-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-require/-/estree-is-require-1.0.0.tgz", - "integrity": "sha512-oWxQdSEmnUwNZsDQYiBNpVxKEhMmsJQSSxnDrwsr1MWtooCLfhgzsNGzmokdmfK0EzEIS5V4LPvqxv1Kmb1vvA==", - "dev": true, - "dependencies": { - "estree-is-identifier": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, - "node_modules/falafel": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", - "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "isarray": "^2.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/falafel/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/from2-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/from2-string/-/from2-string-1.1.0.tgz", - "integrity": "sha512-m8vCh+KnXXXBtfF2VUbiYlQ+nczLcntB0BrtNgpmLkHylhObe9WF1b2LZjBBzrZzA6P4mkEla6ZYQoOUTG8cYA==", - "dev": true, - "dependencies": { - "from2": "^2.0.3" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", - "dev": true, - "dependencies": { - "source-map": "~0.5.3" - } - }, - "node_modules/insert-module-globals": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", - "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", - "dev": true, - "dependencies": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - }, - "bin": { - "insert-module-globals": "bin/cmd.js" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/labeled-stream-splicer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "stream-splicer": "^2.0.0" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", - "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.1" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/merge-source-map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/minify-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minify-stream/-/minify-stream-2.1.0.tgz", - "integrity": "sha512-P5xE4EQRkn7Td54VGcgfDMFx1jmKPPIXCdcMfrbXS6cNHK4dO1LXwtYFb48hHrSmZfT+jlGImvHgSZEkbpNtCw==", - "dev": true, - "dependencies": { - "concat-stream": "^2.0.0", - "convert-source-map": "^1.5.0", - "duplexify": "^4.1.1", - "from2-string": "^1.1.0", - "terser": "^4.7.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minify-stream/node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "engines": [ - "node >= 6.0" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/minify-stream/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/minify-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minify-stream/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/minify-stream/node_modules/terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/module-deps": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", - "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", - "dev": true, - "dependencies": { - "browser-resolve": "^2.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.2.0", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "module-deps": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/multi-stage-sourcemap": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.3.1.tgz", - "integrity": "sha512-UiTLYjqeIoVnJHyWGskwMKIhtZKK9uXUjSTWuwatarrc0d2H/6MAVFdwvEA/aKOHamIn7z4tfvxjz+FYucFpNQ==", - "dev": true, - "dependencies": { - "source-map": "^0.1.34" - } - }, - "node_modules/multi-stage-sourcemap/node_modules/source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/multisplice": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/multisplice/-/multisplice-1.0.0.tgz", - "integrity": "sha512-KU5tVjIdTGsMb92JlWwEZCGrvtI1ku9G9GuNbWdQT/Ici1ztFXX0L8lWpbbC3pISVMfBNL56wdqplHvva2XSlA==", - "dev": true - }, - "node_modules/mutexify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", - "integrity": "sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg==", - "dev": true, - "dependencies": { - "queue-tick": "^1.0.0" - } - }, - "node_modules/nanobench": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nanobench/-/nanobench-2.1.1.tgz", - "integrity": "sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^0.1.2", - "chalk": "^1.1.3", - "mutexify": "^1.1.0", - "pretty-hrtime": "^1.0.2" - }, - "bin": { - "nanobench": "run.js", - "nanobench-compare": "compare.js" - } - }, - "node_modules/nanobench/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanobench/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanobench/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanobench/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanobench/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/nodemon/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, - "node_modules/outpipe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", - "integrity": "sha512-BnNY/RwnDrkmQdUa9U+OfN/Y7AWmKuUPCCd+hbRclZnnANvYpO72zp/a6Q4n829hPbdqEac31XCcsvlEvb+rtA==", - "dev": true, - "dependencies": { - "shell-quote": "^1.4.2" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", - "dev": true, - "dependencies": { - "path-platform": "~0.11.15" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", - "dev": true, - "bin": { - "r_js": "bin/r.js", - "r.js": "bin/r.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/scope-analyzer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.2.tgz", - "integrity": "sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ==", - "dev": true, - "dependencies": { - "array-from": "^2.1.1", - "dash-ast": "^2.0.1", - "es6-map": "^0.1.5", - "es6-set": "^0.1.5", - "es6-symbol": "^3.1.1", - "estree-is-function": "^1.0.0", - "get-assigned-identifiers": "^1.1.0" - } - }, - "node_modules/scope-analyzer/node_modules/dash-ast": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", - "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==", - "dev": true - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shasum-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", - "dev": true, - "dependencies": { - "fast-safe-stringify": "^2.0.7" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "dev": true, - "dependencies": { - "semver": "~7.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/sortablejs": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", - "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true - }, - "node_modules/spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", - "dev": true - }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", - "dev": true, - "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", - "dev": true, - "dependencies": { - "minimist": "^1.1.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "dependencies": { - "acorn-node": "^1.2.0" - } - }, - "node_modules/terser": { - "version": "3.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz", - "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==", - "dev": true, - "dependencies": { - "commander": "~2.17.1", - "source-map": "~0.6.1", - "source-map-support": "~0.5.9" - }, - "bin": { - "terser": "bin/uglifyjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", - "dev": true, - "dependencies": { - "process": "~0.11.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tinyify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tinyify/-/tinyify-4.0.0.tgz", - "integrity": "sha512-jNDxImwUrJJAU2NyGG144J8aWx2ni39UuBo7ppCXFRmhSH0CbpWL4HgjNvrsAW05WQAgNZePwAlEemNuB+byaA==", - "dev": true, - "dependencies": { - "@browserify/envify": "^6.0.0", - "@browserify/uglifyify": "^6.0.0", - "browser-pack-flat": "^3.0.9", - "bundle-collapser": "^1.3.0", - "common-shakeify": "^1.1.1", - "minify-stream": "^2.0.1", - "multisplice": "^1.0.0", - "terser": "3.16.1", - "through2": "^4.0.2", - "unassertify": "^3.0.1" - } - }, - "node_modules/tinyify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tinyify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/transform-ast": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", - "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "convert-source-map": "^1.5.1", - "dash-ast": "^1.0.0", - "is-buffer": "^2.0.0", - "magic-string": "^0.23.2", - "merge-source-map": "1.0.4", - "nanobench": "^2.1.1" - } - }, - "node_modules/transform-ast/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/transform-ast/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/tsconfig": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz", - "integrity": "sha512-Cq65A3kVp6BbsUgg9DRHafaGmbMb9EhAc7fjWvudNWKjkbWrt43FnrtZt6awshH1R0ocfF2Z0uxock3lVqEgOg==", - "dev": true, - "dependencies": { - "any-promise": "^1.3.0", - "parse-json": "^2.2.0", - "strip-bom": "^2.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "node_modules/tsify": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/tsify/-/tsify-5.0.4.tgz", - "integrity": "sha512-XAZtQ5OMPsJFclkZ9xMZWkSNyMhMxEPsz3D2zu79yoKorH9j/DT4xCloJeXk5+cDhosEibu4bseMVjyPOAyLJA==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.1.0", - "fs.realpath": "^1.0.0", - "object-assign": "^4.1.0", - "semver": "^6.1.0", - "through2": "^2.0.0", - "tsconfig": "^5.0.3" - }, - "engines": { - "node": ">=0.12" - }, - "peerDependencies": { - "browserify": ">= 10.x", - "typescript": ">= 2.8" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true, - "bin": { - "umd": "bin/cli.js" - } - }, - "node_modules/unassert": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unassert/-/unassert-2.0.2.tgz", - "integrity": "sha512-P6OOg/aRdQmWH+b0g+T4U+9MgL+DG7w6oQPG+N3F2IMuvvd1WfZ5alT/Rjik2lMFVyhfACUxF7PGP1VCwSHlQA==", - "dev": true, - "dependencies": { - "estraverse": "^5.0.0" - } - }, - "node_modules/unassert/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/unassertify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/unassertify/-/unassertify-3.0.1.tgz", - "integrity": "sha512-461ykSPY3oWU+39J5haiq7S/hcYy1oGJ2nHU92lqdL3jft+pSU6oAbb7o6VVmM7nZGLqppszgyzfpCnRBFgFtw==", - "dev": true, - "dependencies": { - "acorn": "^8.0.0", - "convert-source-map": "^1.1.1", - "escodegen": "^2.0.0", - "multi-stage-sourcemap": "^0.3.1", - "through": "^2.3.7", - "unassert": "^2.0.0" - } - }, - "node_modules/unassertify/node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - }, - "bin": { - "undeclared-identifiers": "bin.js" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", - "dev": true, - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.11.2" - } - }, - "node_modules/usng.js": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/usng.js/-/usng.js-0.4.5.tgz", - "integrity": "sha512-JTJcFFDy/JqA5iiU8DqMOV5gJiL3ZdXH0hCKYaRMDbbredhFna5Ok4C1YDFU07mTGAgm+5FzHaaOzQnO/3BzWQ==", - "dev": true, - "bin": { - "usng-cli": "bin/cli.js" - } - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/watchify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", - "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", - "dev": true, - "dependencies": { - "anymatch": "^3.1.0", - "browserify": "^17.0.0", - "chokidar": "^3.4.0", - "defined": "^1.0.0", - "outpipe": "^1.1.0", - "through2": "^4.0.2", - "xtend": "^4.0.2" - }, - "bin": { - "watchify": "bin/cmd.js" - }, - "engines": { - "node": ">= 8.10.0" - } - }, - "node_modules/watchify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/watchify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrap-comment": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrap-comment/-/wrap-comment-1.0.1.tgz", - "integrity": "sha512-APccrMwl/ont0RHFTXNAQfM647duYYEfs6cngrIyTByTI0xbWnDnPSptFZhS68L4WCjt2ZxuhCFwuY6Pe88KZQ==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - } - } -} diff --git a/client/public/stylesheets/leaflet/leaflet.css b/client/public/stylesheets/leaflet/leaflet.css deleted file mode 100644 index 9ade8dc4..00000000 --- a/client/public/stylesheets/leaflet/leaflet.css +++ /dev/null @@ -1,661 +0,0 @@ -/* required styles */ - -.leaflet-pane, -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-tile-container, -.leaflet-pane > svg, -.leaflet-pane > canvas, -.leaflet-zoom-box, -.leaflet-image-layer, -.leaflet-layer { - position: absolute; - left: 0; - top: 0; - } -.leaflet-container { - overflow: hidden; - } -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - -webkit-user-drag: none; - } -/* Prevents IE11 from highlighting tiles in blue */ -.leaflet-tile::selection { - background: transparent; -} -/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ -.leaflet-safari .leaflet-tile { - image-rendering: -webkit-optimize-contrast; - } -/* hack that prevents hw layers "stretching" when loading new tiles */ -.leaflet-safari .leaflet-tile-container { - width: 1600px; - height: 1600px; - -webkit-transform-origin: 0 0; - } -.leaflet-marker-icon, -.leaflet-marker-shadow { - display: block; - } -/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ -/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ -.leaflet-container .leaflet-overlay-pane svg { - max-width: none !important; - max-height: none !important; - } -.leaflet-container .leaflet-marker-pane img, -.leaflet-container .leaflet-shadow-pane img, -.leaflet-container .leaflet-tile-pane img, -.leaflet-container img.leaflet-image-layer, -.leaflet-container .leaflet-tile { - max-width: none !important; - max-height: none !important; - width: auto; - padding: 0; - } - -.leaflet-container img.leaflet-tile { - /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */ - mix-blend-mode: plus-lighter; -} - -.leaflet-container.leaflet-touch-zoom { - -ms-touch-action: pan-x pan-y; - touch-action: pan-x pan-y; - } -.leaflet-container.leaflet-touch-drag { - -ms-touch-action: pinch-zoom; - /* Fallback for FF which doesn't support pinch-zoom */ - touch-action: none; - touch-action: pinch-zoom; -} -.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { - -ms-touch-action: none; - touch-action: none; -} -.leaflet-container { - -webkit-tap-highlight-color: transparent; -} -.leaflet-container a { - -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); -} -.leaflet-tile { - filter: inherit; - visibility: hidden; - } -.leaflet-tile-loaded { - visibility: inherit; - } -.leaflet-zoom-box { - width: 0; - height: 0; - -moz-box-sizing: border-box; - box-sizing: border-box; - z-index: 800; - } -/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ -.leaflet-overlay-pane svg { - -moz-user-select: none; - } - -.leaflet-pane { z-index: 400; } - -.leaflet-tile-pane { z-index: 200; } -.leaflet-overlay-pane { z-index: 400; } -.leaflet-shadow-pane { z-index: 500; } -.leaflet-marker-pane { z-index: 600; } -.leaflet-tooltip-pane { z-index: 650; } -.leaflet-popup-pane { z-index: 700; } - -.leaflet-map-pane canvas { z-index: 100; } -.leaflet-map-pane svg { z-index: 200; } - -.leaflet-vml-shape { - width: 1px; - height: 1px; - } -.lvml { - behavior: url(#default#VML); - display: inline-block; - position: absolute; - } - - -/* control positioning */ - -.leaflet-control { - position: relative; - z-index: 800; - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } -.leaflet-top, -.leaflet-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } -.leaflet-top { - top: 0; - } -.leaflet-right { - right: 0; - } -.leaflet-bottom { - bottom: 0; - } -.leaflet-left { - left: 0; - } -.leaflet-control { - float: left; - clear: both; - } -.leaflet-right .leaflet-control { - float: right; - } -.leaflet-top .leaflet-control { - margin-top: 10px; - } -.leaflet-bottom .leaflet-control { - margin-bottom: 10px; - } -.leaflet-left .leaflet-control { - margin-left: 10px; - } -.leaflet-right .leaflet-control { - margin-right: 10px; - } - - -/* zoom and fade animations */ - -.leaflet-fade-anim .leaflet-popup { - opacity: 0; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; - } -.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { - opacity: 1; - } -.leaflet-zoom-animated { - -webkit-transform-origin: 0 0; - -ms-transform-origin: 0 0; - transform-origin: 0 0; - } -svg.leaflet-zoom-animated { - will-change: transform; -} - -.leaflet-zoom-anim .leaflet-zoom-animated { - -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); - -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); - transition: transform 0.25s cubic-bezier(0,0,0.25,1); - } -.leaflet-zoom-anim .leaflet-tile, -.leaflet-pan-anim .leaflet-tile { - -webkit-transition: none; - -moz-transition: none; - transition: none; - } - -.leaflet-zoom-anim .leaflet-zoom-hide { - visibility: hidden; - } - - -/* cursors */ - -.leaflet-interactive { - cursor: pointer; - } -.leaflet-grab { - cursor: -webkit-grab; - cursor: -moz-grab; - cursor: grab; - } -.leaflet-crosshair, -.leaflet-crosshair .leaflet-interactive { - cursor: crosshair; - } -.leaflet-popup-pane, -.leaflet-control { - cursor: auto; - } -.leaflet-dragging .leaflet-grab, -.leaflet-dragging .leaflet-grab .leaflet-interactive, -.leaflet-dragging .leaflet-marker-draggable { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - cursor: grabbing; - } - -/* marker & overlays interactivity */ -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-image-layer, -.leaflet-pane > svg path, -.leaflet-tile-container { - pointer-events: none; - } - -.leaflet-marker-icon.leaflet-interactive, -.leaflet-image-layer.leaflet-interactive, -.leaflet-pane > svg path.leaflet-interactive, -svg.leaflet-image-layer.leaflet-interactive path { - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } - -/* visual tweaks */ - -.leaflet-container { - background: #ddd; - outline-offset: 1px; - } -.leaflet-container a { - color: #0078A8; - } -.leaflet-zoom-box { - border: 2px dotted #38f; - background: rgba(255,255,255,0.5); - } - - -/* general typography */ -.leaflet-container { - font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; - font-size: 12px; - font-size: 0.75rem; - line-height: 1.5; - } - - -/* general toolbar styles */ - -.leaflet-bar { - box-shadow: 0 1px 5px rgba(0,0,0,0.65); - border-radius: 4px; - } -.leaflet-bar a { - background-color: #fff; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; - } -.leaflet-bar a, -.leaflet-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } -.leaflet-bar a:hover, -.leaflet-bar a:focus { - background-color: #f4f4f4; - } -.leaflet-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } -.leaflet-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } -.leaflet-bar a.leaflet-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } - -.leaflet-touch .leaflet-bar a { - width: 30px; - height: 30px; - line-height: 30px; - } -.leaflet-touch .leaflet-bar a:first-child { - border-top-left-radius: 2px; - border-top-right-radius: 2px; - } -.leaflet-touch .leaflet-bar a:last-child { - border-bottom-left-radius: 2px; - border-bottom-right-radius: 2px; - } - -/* zoom control */ - -.leaflet-control-zoom-in, -.leaflet-control-zoom-out { - font: bold 18px 'Lucida Console', Monaco, monospace; - text-indent: 1px; - } - -.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { - font-size: 22px; - } - - -/* layers control */ - -.leaflet-control-layers { - box-shadow: 0 1px 5px rgba(0,0,0,0.4); - background: #fff; - border-radius: 5px; - } -.leaflet-control-layers-toggle { - background-image: url(images/layers.png); - width: 36px; - height: 36px; - } -.leaflet-retina .leaflet-control-layers-toggle { - background-image: url(images/layers-2x.png); - background-size: 26px 26px; - } -.leaflet-touch .leaflet-control-layers-toggle { - width: 44px; - height: 44px; - } -.leaflet-control-layers .leaflet-control-layers-list, -.leaflet-control-layers-expanded .leaflet-control-layers-toggle { - display: none; - } -.leaflet-control-layers-expanded .leaflet-control-layers-list { - display: block; - position: relative; - } -.leaflet-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; - } -.leaflet-control-layers-scrollbar { - overflow-y: scroll; - overflow-x: hidden; - padding-right: 5px; - } -.leaflet-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } -.leaflet-control-layers label { - display: block; - font-size: 13px; - font-size: 1.08333em; - } -.leaflet-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; - } - -/* Default icon URLs */ -.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ - background-image: url(images/marker-icon.png); - } - - -/* attribution and scale controls */ - -.leaflet-container .leaflet-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.8); - margin: 0; - } -.leaflet-control-attribution, -.leaflet-control-scale-line { - padding: 0 5px; - color: #333; - line-height: 1.4; - } -.leaflet-control-attribution a { - text-decoration: none; - } -.leaflet-control-attribution a:hover, -.leaflet-control-attribution a:focus { - text-decoration: underline; - } -.leaflet-attribution-flag { - display: inline !important; - vertical-align: baseline !important; - width: 1em; - height: 0.6669em; - } -.leaflet-left .leaflet-control-scale { - margin-left: 5px; - } -.leaflet-bottom .leaflet-control-scale { - margin-bottom: 5px; - } -.leaflet-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - white-space: nowrap; - -moz-box-sizing: border-box; - box-sizing: border-box; - background: rgba(255, 255, 255, 0.8); - text-shadow: 1px 1px #fff; - } -.leaflet-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } -.leaflet-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } - -.leaflet-touch .leaflet-control-attribution, -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - box-shadow: none; - } -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - border: 2px solid rgba(0,0,0,0.2); - background-clip: padding-box; - } - - -/* popup */ - -.leaflet-popup { - position: absolute; - text-align: center; - margin-bottom: 20px; - } -.leaflet-popup-content-wrapper { - padding: 1px; - text-align: left; - border-radius: 12px; - } -.leaflet-popup-content { - margin: 13px 24px 13px 20px; - line-height: 1.3; - font-size: 13px; - font-size: 1.08333em; - min-height: 1px; - } -.leaflet-popup-content p { - margin: 17px 0; - margin: 1.3em 0; - } -.leaflet-popup-tip-container { - width: 40px; - height: 20px; - position: absolute; - left: 50%; - margin-top: -1px; - margin-left: -20px; - overflow: hidden; - pointer-events: none; - } -.leaflet-popup-tip { - width: 17px; - height: 17px; - padding: 1px; - - margin: -10px auto 0; - pointer-events: auto; - - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); - } -.leaflet-popup-content-wrapper, -.leaflet-popup-tip { - background: white; - color: #333; - box-shadow: 0 3px 14px rgba(0,0,0,0.4); - } -.leaflet-container a.leaflet-popup-close-button { - position: absolute; - top: 0; - right: 0; - border: none; - text-align: center; - width: 24px; - height: 24px; - font: 16px/24px Tahoma, Verdana, sans-serif; - color: #757575; - text-decoration: none; - background: transparent; - } -.leaflet-container a.leaflet-popup-close-button:hover, -.leaflet-container a.leaflet-popup-close-button:focus { - color: #585858; - } -.leaflet-popup-scrolled { - overflow: auto; - } - -.leaflet-oldie .leaflet-popup-content-wrapper { - -ms-zoom: 1; - } -.leaflet-oldie .leaflet-popup-tip { - width: 24px; - margin: 0 auto; - - -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; - filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); - } - -.leaflet-oldie .leaflet-control-zoom, -.leaflet-oldie .leaflet-control-layers, -.leaflet-oldie .leaflet-popup-content-wrapper, -.leaflet-oldie .leaflet-popup-tip { - border: 1px solid #999; - } - - -/* div icon */ - -.leaflet-div-icon { - background: #fff; - border: 1px solid #666; - } - - -/* Tooltip */ -/* Base styles for the element that has a tooltip */ -.leaflet-tooltip { - position: absolute; - padding: 6px; - background-color: #fff; - border: 1px solid #fff; - border-radius: 3px; - color: #222; - white-space: nowrap; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - pointer-events: none; - box-shadow: 0 1px 3px rgba(0,0,0,0.4); - } -.leaflet-tooltip.leaflet-interactive { - cursor: pointer; - pointer-events: auto; - } -.leaflet-tooltip-top:before, -.leaflet-tooltip-bottom:before, -.leaflet-tooltip-left:before, -.leaflet-tooltip-right:before { - position: absolute; - pointer-events: none; - border: 6px solid transparent; - background: transparent; - content: ""; - } - -/* Directions */ - -.leaflet-tooltip-bottom { - margin-top: 6px; -} -.leaflet-tooltip-top { - margin-top: -6px; -} -.leaflet-tooltip-bottom:before, -.leaflet-tooltip-top:before { - left: 50%; - margin-left: -6px; - } -.leaflet-tooltip-top:before { - bottom: 0; - margin-bottom: -12px; - border-top-color: #fff; - } -.leaflet-tooltip-bottom:before { - top: 0; - margin-top: -12px; - margin-left: -6px; - border-bottom-color: #fff; - } -.leaflet-tooltip-left { - margin-left: -6px; -} -.leaflet-tooltip-right { - margin-left: 6px; -} -.leaflet-tooltip-left:before, -.leaflet-tooltip-right:before { - top: 50%; - margin-top: -6px; - } -.leaflet-tooltip-left:before { - right: 0; - margin-right: -12px; - border-left-color: #fff; - } -.leaflet-tooltip-right:before { - left: 0; - margin-left: -12px; - border-right-color: #fff; - } - -/* Printing */ - -@media print { - /* Prevent printers from removing background-images of controls. */ - .leaflet-control { - -webkit-print-color-adjust: exact; - print-color-adjust: exact; - } - } diff --git a/client/scripts/build-debug.bat b/client/scripts/build-debug.bat deleted file mode 100644 index 636c4acf..00000000 --- a/client/scripts/build-debug.bat +++ /dev/null @@ -1,4 +0,0 @@ -cd scripts -call copy.bat -cd .. -call browserify ./src/index.ts --debug -o ./public/javascripts/bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] \ No newline at end of file diff --git a/client/scripts/build-release.bat b/client/scripts/build-release.bat deleted file mode 100644 index c71ab8d0..00000000 --- a/client/scripts/build-release.bat +++ /dev/null @@ -1,15 +0,0 @@ -cd scripts -call copy.bat -cd .. -call browserify ./src/index.ts -o ./public/javascripts/bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] - -echo D|xcopy /Y /S /E .\bin ..\build\client\bin -echo D|xcopy /Y /S /E .\public ..\build\client\public -echo D|xcopy /Y /S /E .\routes ..\build\client\routes -echo D|xcopy /Y /S /E .\views ..\build\client\views - -echo F|xcopy /Y .\app.js ..\build\client\app.js -echo F|xcopy /Y .\client.js ..\build\client\client.js -echo F|xcopy /Y .\package.json ..\build\client\package.json - -echo F|xcopy /Y /I .\*.vbs ..\build\client \ No newline at end of file diff --git a/client/scripts/copy.bat b/client/scripts/copy.bat deleted file mode 100644 index e6568eaa..00000000 --- a/client/scripts/copy.bat +++ /dev/null @@ -1,6 +0,0 @@ -cd .. -echo F|xcopy /Y .\node_modules\leaflet\dist\leaflet.css .\public\stylesheets\leaflet\leaflet.css -echo F|xcopy /Y .\node_modules\leaflet-gesture-handling\dist\leaflet-gesture-handling.css .\public\stylesheets\leaflet\leaflet-gesture-handling.css -echo F|xcopy /Y .\node_modules\leaflet.nauticscale\dist\leaflet.nauticscale.js .\public\javascripts\leaflet.nauticscale.js -echo F|xcopy /Y .\node_modules\leaflet-path-drag\dist\L.Path.Drag.js .\public\javascripts\L.Path.Drag.js -cd scripts diff --git a/client/scripts/debug-nodcs.bat b/client/scripts/debug-nodcs.bat deleted file mode 100644 index 300fd4e7..00000000 --- a/client/scripts/debug-nodcs.bat +++ /dev/null @@ -1,10 +0,0 @@ -cd scripts -call ./copy.bat -cd .. - -REM create a "fake" dcs Saved Games folder -mkdir "%temp%\DCS Olympus\dcs" -echo F|xcopy /Y "..\olympus.json" "%temp%\DCS Olympus\dcs\Config\olympus.json" -echo D|xcopy /Y /S /E "..\databases" "%temp%\DCS Olympus\dcs\Mods\Services\Olympus\databases" - -concurrently --kill-others "node ./bin/demo --config \"%temp%\DCS Olympus\dcs\Config\olympus.json\"" "npm run watch" "nodemon --ignore ./public/databases/ ./bin/www -- --config \"%temp%\DCS Olympus\dcs\Config\olympus.json\"" \ No newline at end of file diff --git a/client/scripts/debug.bat b/client/scripts/debug.bat deleted file mode 100644 index 70a6dad9..00000000 --- a/client/scripts/debug.bat +++ /dev/null @@ -1,7 +0,0 @@ -@echo off -cd scripts -call ./copy.bat -cd .. - -set /p "config=Enter DCS Saved Games folder location: " -concurrently --kill-others "npm run watch" "nodemon --ignore ./public/databases/ ./bin/www -- --config \"%config%\Config\Olympus.json\"" \ No newline at end of file diff --git a/client/scripts/watch.bat b/client/scripts/watch.bat deleted file mode 100644 index 5bc3948a..00000000 --- a/client/scripts/watch.bat +++ /dev/null @@ -1 +0,0 @@ -watchify ./src/index.ts --debug -o ./public/javascripts/bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] \ No newline at end of file diff --git a/client/src/schemas/schema.ts b/client/src/schemas/schema.ts deleted file mode 100644 index 5ad4c527..00000000 --- a/client/src/schemas/schema.ts +++ /dev/null @@ -1,82 +0,0 @@ -import Ajv from "ajv"; -import { AnySchemaObject } from "ajv/dist/core"; - - -// For future extension -abstract class JSONSchemaValidator { - - #ajv:Ajv; - #compiledValidator:any; - #schema!:AnySchemaObject; - - constructor( schema:AnySchemaObject ) { - this.#schema = schema; - - this.#ajv = new Ajv({ - "allErrors": true - }); - - this.#compiledValidator = this.getAjv().compile(this.getSchema()); - - } - - getAjv() { - return this.#ajv; - } - - getCompiledValidator() { - return this.#compiledValidator; - } - - getErrors() { - return this.getCompiledValidator().errors; - } - - getSchema() { - return this.#schema; - } - - validate(data:any) { - return (this.getCompiledValidator())(data); - } - -} - - -export class AirbasesJSONSchemaValidator extends JSONSchemaValidator { - - constructor() { - - const schema = require("../schemas/airbases.schema.json"); - - super( schema ); - - [ - require( "../../public/databases/airbases/caucasus.json" ), - require( "../../public/databases/airbases/falklands.json" ), - require( "../../public/databases/airbases/marianas.json" ), - require( "../../public/databases/airbases/nevada.json" ), - require( "../../public/databases/airbases/normandy.json" ), - require( "../../public/databases/airbases/persiangulf.json" ), - require( "../../public/databases/airbases/sinaimap.json" ), - require( "../../public/databases/airbases/syria.json" ), - require( "../../public/databases/airbases/thechannel.json" ) - ].forEach( data => { - const validate = this.getAjv().compile(this.getSchema()); - const valid = validate(data); - - if (!valid) console.error(validate.errors); - }); - } - -} - - -export class ImportFileJSONSchemaValidator extends JSONSchemaValidator { - - constructor() { - const schema = require("../schemas/importdata.schema.json"); - super( schema ); - } - -} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 05f1ae58..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: '3' - -services: - client: - build: client - ports: - - 3000:3000 - volumes: - - ./olympus.json:/usr/src/olympus.json diff --git a/frontend/server/.vscode/extensions.json b/frontend/server/.vscode/extensions.json new file mode 100644 index 00000000..0966999c --- /dev/null +++ b/frontend/server/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "rioj7.command-variable" + ] +} \ No newline at end of file diff --git a/frontend/server/.vscode/launch.json b/frontend/server/.vscode/launch.json new file mode 100644 index 00000000..75379a94 --- /dev/null +++ b/frontend/server/.vscode/launch.json @@ -0,0 +1,42 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Launch Server (DCS)", + "skipFiles": [ + "/**" + ], + "args": ["--config", "${input:enterDir}/Config/olympus.json"], + "program": "./bin/www", + "preLaunchTask": "prepare-dcs" + }, + { + "type": "node", + "request": "launch", + "name": "Launch Server (No DCS)", + "skipFiles": [ + "/**" + ], + "args": ["--config", "${input:enterDir}/Config/olympus.json"], + "program": "./bin/www", + "preLaunchTask": "demo-server" + } + ], + "inputs": [ + { + "id": "enterDir", + "type": "command", + "command": "extension.commandvariable.promptStringRemember", + "args": { + "key": "dir", + "description": "DCS Saved Games folder (leave default for mock dcs)", + "default": "../../mock-dcs" + } + } + ] +} \ No newline at end of file diff --git a/frontend/server/.vscode/tasks.json b/frontend/server/.vscode/tasks.json new file mode 100644 index 00000000..3e9c6a18 --- /dev/null +++ b/frontend/server/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "copy-website", + "type": "shell", + "command": "./scripts/copy.bat", + "isBackground": false + }, + { + "label": "demo-server", + "type": "shell", + "command": "./scripts/demo-server.bat", + "args": ["${input:enterDir}/Config/olympus.json"], + "isBackground": true + } + ], + "inputs": [ + { + "id": "enterDir", + "type": "command", + "command": "extension.commandvariable.remember", + "args": { "key": "dir" } + } + ] +} \ No newline at end of file diff --git a/client/app.js b/frontend/server/app.js similarity index 100% rename from client/app.js rename to frontend/server/app.js diff --git a/client/client.js b/frontend/server/client.js similarity index 100% rename from client/client.js rename to frontend/server/client.js diff --git a/client/client.vbs b/frontend/server/client.vbs similarity index 100% rename from client/client.vbs rename to frontend/server/client.vbs diff --git a/client/demo.js b/frontend/server/demo.js similarity index 100% rename from client/demo.js rename to frontend/server/demo.js diff --git a/frontend/server/package.json b/frontend/server/package.json new file mode 100644 index 00000000..03a5346d --- /dev/null +++ b/frontend/server/package.json @@ -0,0 +1,31 @@ +{ + "name": "DCSOlympus Server", + "main": "client.js", + "version": "{{OLYMPUS_VERSION_NUMBER}}", + "scripts": { + "build-release": "call ./scripts/build-release.bat", + "server": "node ./bin/www", + "client": "electron ." + }, + "private": true, + "dependencies": { + "appjs": "^0.0.20", + "appjs-win32": "^0.0.19", + "body-parser": "^1.20.2", + "debug": "~2.6.9", + "ejs": "^3.1.8", + "electron": "^28.0.0", + "express": "^4.18.2", + "express-basic-auth": "^1.2.1", + "http-proxy-middleware": "^2.0.6", + "morgan": "~1.9.1", + "open": "^10.0.0", + "regedit": "^5.1.2", + "save": "^2.9.0", + "sha256": "^0.2.0", + "srtm-elevation": "^2.1.2", + "tcp-ping-port": "^1.0.1", + "uuid": "^9.0.1", + "yargs": "^17.7.2" + } +} \ No newline at end of file diff --git a/client/public/databases/airbases/caucasus.json b/frontend/server/public/databases/airbases/caucasus.json similarity index 100% rename from client/public/databases/airbases/caucasus.json rename to frontend/server/public/databases/airbases/caucasus.json diff --git a/client/public/databases/airbases/falklands.json b/frontend/server/public/databases/airbases/falklands.json similarity index 100% rename from client/public/databases/airbases/falklands.json rename to frontend/server/public/databases/airbases/falklands.json diff --git a/client/public/databases/airbases/marianas.json b/frontend/server/public/databases/airbases/marianas.json similarity index 100% rename from client/public/databases/airbases/marianas.json rename to frontend/server/public/databases/airbases/marianas.json diff --git a/client/public/databases/airbases/nevada.json b/frontend/server/public/databases/airbases/nevada.json similarity index 100% rename from client/public/databases/airbases/nevada.json rename to frontend/server/public/databases/airbases/nevada.json diff --git a/client/public/databases/airbases/normandy.json b/frontend/server/public/databases/airbases/normandy.json similarity index 100% rename from client/public/databases/airbases/normandy.json rename to frontend/server/public/databases/airbases/normandy.json diff --git a/client/public/databases/airbases/persiangulf.json b/frontend/server/public/databases/airbases/persiangulf.json similarity index 100% rename from client/public/databases/airbases/persiangulf.json rename to frontend/server/public/databases/airbases/persiangulf.json diff --git a/client/public/databases/airbases/sinaimap.json b/frontend/server/public/databases/airbases/sinaimap.json similarity index 100% rename from client/public/databases/airbases/sinaimap.json rename to frontend/server/public/databases/airbases/sinaimap.json diff --git a/client/public/databases/airbases/syria.json b/frontend/server/public/databases/airbases/syria.json similarity index 100% rename from client/public/databases/airbases/syria.json rename to frontend/server/public/databases/airbases/syria.json diff --git a/client/public/databases/airbases/thechannel.json b/frontend/server/public/databases/airbases/thechannel.json similarity index 100% rename from client/public/databases/airbases/thechannel.json rename to frontend/server/public/databases/airbases/thechannel.json diff --git a/client/public/images/countries/ac.svg b/frontend/server/public/images/countries/ac.svg similarity index 100% rename from client/public/images/countries/ac.svg rename to frontend/server/public/images/countries/ac.svg diff --git a/client/public/images/countries/ad.svg b/frontend/server/public/images/countries/ad.svg similarity index 100% rename from client/public/images/countries/ad.svg rename to frontend/server/public/images/countries/ad.svg diff --git a/client/public/images/countries/ae.svg b/frontend/server/public/images/countries/ae.svg similarity index 100% rename from client/public/images/countries/ae.svg rename to frontend/server/public/images/countries/ae.svg diff --git a/client/public/images/countries/af.svg b/frontend/server/public/images/countries/af.svg similarity index 100% rename from client/public/images/countries/af.svg rename to frontend/server/public/images/countries/af.svg diff --git a/client/public/images/countries/ag.svg b/frontend/server/public/images/countries/ag.svg similarity index 100% rename from client/public/images/countries/ag.svg rename to frontend/server/public/images/countries/ag.svg diff --git a/client/public/images/countries/ai.svg b/frontend/server/public/images/countries/ai.svg similarity index 100% rename from client/public/images/countries/ai.svg rename to frontend/server/public/images/countries/ai.svg diff --git a/client/public/images/countries/al.svg b/frontend/server/public/images/countries/al.svg similarity index 100% rename from client/public/images/countries/al.svg rename to frontend/server/public/images/countries/al.svg diff --git a/client/public/images/countries/am.svg b/frontend/server/public/images/countries/am.svg similarity index 100% rename from client/public/images/countries/am.svg rename to frontend/server/public/images/countries/am.svg diff --git a/client/public/images/countries/ao.svg b/frontend/server/public/images/countries/ao.svg similarity index 100% rename from client/public/images/countries/ao.svg rename to frontend/server/public/images/countries/ao.svg diff --git a/client/public/images/countries/aq.svg b/frontend/server/public/images/countries/aq.svg similarity index 100% rename from client/public/images/countries/aq.svg rename to frontend/server/public/images/countries/aq.svg diff --git a/client/public/images/countries/ar.svg b/frontend/server/public/images/countries/ar.svg similarity index 100% rename from client/public/images/countries/ar.svg rename to frontend/server/public/images/countries/ar.svg diff --git a/client/public/images/countries/arab.svg b/frontend/server/public/images/countries/arab.svg similarity index 100% rename from client/public/images/countries/arab.svg rename to frontend/server/public/images/countries/arab.svg diff --git a/client/public/images/countries/as.svg b/frontend/server/public/images/countries/as.svg similarity index 100% rename from client/public/images/countries/as.svg rename to frontend/server/public/images/countries/as.svg diff --git a/client/public/images/countries/at.svg b/frontend/server/public/images/countries/at.svg similarity index 100% rename from client/public/images/countries/at.svg rename to frontend/server/public/images/countries/at.svg diff --git a/client/public/images/countries/au.svg b/frontend/server/public/images/countries/au.svg similarity index 100% rename from client/public/images/countries/au.svg rename to frontend/server/public/images/countries/au.svg diff --git a/client/public/images/countries/aw.svg b/frontend/server/public/images/countries/aw.svg similarity index 100% rename from client/public/images/countries/aw.svg rename to frontend/server/public/images/countries/aw.svg diff --git a/client/public/images/countries/ax.svg b/frontend/server/public/images/countries/ax.svg similarity index 100% rename from client/public/images/countries/ax.svg rename to frontend/server/public/images/countries/ax.svg diff --git a/client/public/images/countries/az.svg b/frontend/server/public/images/countries/az.svg similarity index 100% rename from client/public/images/countries/az.svg rename to frontend/server/public/images/countries/az.svg diff --git a/client/public/images/countries/ba.svg b/frontend/server/public/images/countries/ba.svg similarity index 100% rename from client/public/images/countries/ba.svg rename to frontend/server/public/images/countries/ba.svg diff --git a/client/public/images/countries/bb.svg b/frontend/server/public/images/countries/bb.svg similarity index 100% rename from client/public/images/countries/bb.svg rename to frontend/server/public/images/countries/bb.svg diff --git a/client/public/images/countries/bd.svg b/frontend/server/public/images/countries/bd.svg similarity index 100% rename from client/public/images/countries/bd.svg rename to frontend/server/public/images/countries/bd.svg diff --git a/client/public/images/countries/be.svg b/frontend/server/public/images/countries/be.svg similarity index 100% rename from client/public/images/countries/be.svg rename to frontend/server/public/images/countries/be.svg diff --git a/client/public/images/countries/bf.svg b/frontend/server/public/images/countries/bf.svg similarity index 100% rename from client/public/images/countries/bf.svg rename to frontend/server/public/images/countries/bf.svg diff --git a/client/public/images/countries/bg.svg b/frontend/server/public/images/countries/bg.svg similarity index 100% rename from client/public/images/countries/bg.svg rename to frontend/server/public/images/countries/bg.svg diff --git a/client/public/images/countries/bh.svg b/frontend/server/public/images/countries/bh.svg similarity index 100% rename from client/public/images/countries/bh.svg rename to frontend/server/public/images/countries/bh.svg diff --git a/client/public/images/countries/bi.svg b/frontend/server/public/images/countries/bi.svg similarity index 100% rename from client/public/images/countries/bi.svg rename to frontend/server/public/images/countries/bi.svg diff --git a/client/public/images/countries/bj.svg b/frontend/server/public/images/countries/bj.svg similarity index 100% rename from client/public/images/countries/bj.svg rename to frontend/server/public/images/countries/bj.svg diff --git a/client/public/images/countries/bl.svg b/frontend/server/public/images/countries/bl.svg similarity index 100% rename from client/public/images/countries/bl.svg rename to frontend/server/public/images/countries/bl.svg diff --git a/client/public/images/countries/blue.svg b/frontend/server/public/images/countries/blue.svg similarity index 100% rename from client/public/images/countries/blue.svg rename to frontend/server/public/images/countries/blue.svg diff --git a/client/public/images/countries/bm.svg b/frontend/server/public/images/countries/bm.svg similarity index 100% rename from client/public/images/countries/bm.svg rename to frontend/server/public/images/countries/bm.svg diff --git a/client/public/images/countries/bn.svg b/frontend/server/public/images/countries/bn.svg similarity index 100% rename from client/public/images/countries/bn.svg rename to frontend/server/public/images/countries/bn.svg diff --git a/client/public/images/countries/bo.svg b/frontend/server/public/images/countries/bo.svg similarity index 100% rename from client/public/images/countries/bo.svg rename to frontend/server/public/images/countries/bo.svg diff --git a/client/public/images/countries/bq.svg b/frontend/server/public/images/countries/bq.svg similarity index 100% rename from client/public/images/countries/bq.svg rename to frontend/server/public/images/countries/bq.svg diff --git a/client/public/images/countries/br.svg b/frontend/server/public/images/countries/br.svg similarity index 100% rename from client/public/images/countries/br.svg rename to frontend/server/public/images/countries/br.svg diff --git a/client/public/images/countries/bs.svg b/frontend/server/public/images/countries/bs.svg similarity index 100% rename from client/public/images/countries/bs.svg rename to frontend/server/public/images/countries/bs.svg diff --git a/client/public/images/countries/bt.svg b/frontend/server/public/images/countries/bt.svg similarity index 100% rename from client/public/images/countries/bt.svg rename to frontend/server/public/images/countries/bt.svg diff --git a/client/public/images/countries/bv.svg b/frontend/server/public/images/countries/bv.svg similarity index 100% rename from client/public/images/countries/bv.svg rename to frontend/server/public/images/countries/bv.svg diff --git a/client/public/images/countries/bw.svg b/frontend/server/public/images/countries/bw.svg similarity index 100% rename from client/public/images/countries/bw.svg rename to frontend/server/public/images/countries/bw.svg diff --git a/client/public/images/countries/by.svg b/frontend/server/public/images/countries/by.svg similarity index 100% rename from client/public/images/countries/by.svg rename to frontend/server/public/images/countries/by.svg diff --git a/client/public/images/countries/bz.svg b/frontend/server/public/images/countries/bz.svg similarity index 100% rename from client/public/images/countries/bz.svg rename to frontend/server/public/images/countries/bz.svg diff --git a/client/public/images/countries/ca.svg b/frontend/server/public/images/countries/ca.svg similarity index 100% rename from client/public/images/countries/ca.svg rename to frontend/server/public/images/countries/ca.svg diff --git a/client/public/images/countries/cc.svg b/frontend/server/public/images/countries/cc.svg similarity index 100% rename from client/public/images/countries/cc.svg rename to frontend/server/public/images/countries/cc.svg diff --git a/client/public/images/countries/cd.svg b/frontend/server/public/images/countries/cd.svg similarity index 100% rename from client/public/images/countries/cd.svg rename to frontend/server/public/images/countries/cd.svg diff --git a/client/public/images/countries/cefta.svg b/frontend/server/public/images/countries/cefta.svg similarity index 100% rename from client/public/images/countries/cefta.svg rename to frontend/server/public/images/countries/cefta.svg diff --git a/client/public/images/countries/cf.svg b/frontend/server/public/images/countries/cf.svg similarity index 100% rename from client/public/images/countries/cf.svg rename to frontend/server/public/images/countries/cf.svg diff --git a/client/public/images/countries/cg.svg b/frontend/server/public/images/countries/cg.svg similarity index 100% rename from client/public/images/countries/cg.svg rename to frontend/server/public/images/countries/cg.svg diff --git a/client/public/images/countries/ch.svg b/frontend/server/public/images/countries/ch.svg similarity index 100% rename from client/public/images/countries/ch.svg rename to frontend/server/public/images/countries/ch.svg diff --git a/client/public/images/countries/ci.svg b/frontend/server/public/images/countries/ci.svg similarity index 100% rename from client/public/images/countries/ci.svg rename to frontend/server/public/images/countries/ci.svg diff --git a/client/public/images/countries/ck.svg b/frontend/server/public/images/countries/ck.svg similarity index 100% rename from client/public/images/countries/ck.svg rename to frontend/server/public/images/countries/ck.svg diff --git a/client/public/images/countries/cl.svg b/frontend/server/public/images/countries/cl.svg similarity index 100% rename from client/public/images/countries/cl.svg rename to frontend/server/public/images/countries/cl.svg diff --git a/client/public/images/countries/cm.svg b/frontend/server/public/images/countries/cm.svg similarity index 100% rename from client/public/images/countries/cm.svg rename to frontend/server/public/images/countries/cm.svg diff --git a/client/public/images/countries/cn.svg b/frontend/server/public/images/countries/cn.svg similarity index 100% rename from client/public/images/countries/cn.svg rename to frontend/server/public/images/countries/cn.svg diff --git a/client/public/images/countries/co.svg b/frontend/server/public/images/countries/co.svg similarity index 100% rename from client/public/images/countries/co.svg rename to frontend/server/public/images/countries/co.svg diff --git a/client/public/images/countries/codes.json b/frontend/server/public/images/countries/codes.json similarity index 100% rename from client/public/images/countries/codes.json rename to frontend/server/public/images/countries/codes.json diff --git a/client/public/images/countries/cp.svg b/frontend/server/public/images/countries/cp.svg similarity index 100% rename from client/public/images/countries/cp.svg rename to frontend/server/public/images/countries/cp.svg diff --git a/client/public/images/countries/cr.svg b/frontend/server/public/images/countries/cr.svg similarity index 100% rename from client/public/images/countries/cr.svg rename to frontend/server/public/images/countries/cr.svg diff --git a/client/public/images/countries/cu.svg b/frontend/server/public/images/countries/cu.svg similarity index 100% rename from client/public/images/countries/cu.svg rename to frontend/server/public/images/countries/cu.svg diff --git a/client/public/images/countries/cv.svg b/frontend/server/public/images/countries/cv.svg similarity index 100% rename from client/public/images/countries/cv.svg rename to frontend/server/public/images/countries/cv.svg diff --git a/client/public/images/countries/cw.svg b/frontend/server/public/images/countries/cw.svg similarity index 100% rename from client/public/images/countries/cw.svg rename to frontend/server/public/images/countries/cw.svg diff --git a/client/public/images/countries/cx.svg b/frontend/server/public/images/countries/cx.svg similarity index 100% rename from client/public/images/countries/cx.svg rename to frontend/server/public/images/countries/cx.svg diff --git a/client/public/images/countries/cy.svg b/frontend/server/public/images/countries/cy.svg similarity index 100% rename from client/public/images/countries/cy.svg rename to frontend/server/public/images/countries/cy.svg diff --git a/client/public/images/countries/cz.svg b/frontend/server/public/images/countries/cz.svg similarity index 100% rename from client/public/images/countries/cz.svg rename to frontend/server/public/images/countries/cz.svg diff --git a/client/public/images/countries/de.svg b/frontend/server/public/images/countries/de.svg similarity index 100% rename from client/public/images/countries/de.svg rename to frontend/server/public/images/countries/de.svg diff --git a/client/public/images/countries/dg.svg b/frontend/server/public/images/countries/dg.svg similarity index 100% rename from client/public/images/countries/dg.svg rename to frontend/server/public/images/countries/dg.svg diff --git a/client/public/images/countries/dj.svg b/frontend/server/public/images/countries/dj.svg similarity index 100% rename from client/public/images/countries/dj.svg rename to frontend/server/public/images/countries/dj.svg diff --git a/client/public/images/countries/dk.svg b/frontend/server/public/images/countries/dk.svg similarity index 100% rename from client/public/images/countries/dk.svg rename to frontend/server/public/images/countries/dk.svg diff --git a/client/public/images/countries/dm.svg b/frontend/server/public/images/countries/dm.svg similarity index 100% rename from client/public/images/countries/dm.svg rename to frontend/server/public/images/countries/dm.svg diff --git a/client/public/images/countries/do.svg b/frontend/server/public/images/countries/do.svg similarity index 100% rename from client/public/images/countries/do.svg rename to frontend/server/public/images/countries/do.svg diff --git a/client/public/images/countries/dz.svg b/frontend/server/public/images/countries/dz.svg similarity index 100% rename from client/public/images/countries/dz.svg rename to frontend/server/public/images/countries/dz.svg diff --git a/client/public/images/countries/eac.svg b/frontend/server/public/images/countries/eac.svg similarity index 100% rename from client/public/images/countries/eac.svg rename to frontend/server/public/images/countries/eac.svg diff --git a/client/public/images/countries/ec.svg b/frontend/server/public/images/countries/ec.svg similarity index 100% rename from client/public/images/countries/ec.svg rename to frontend/server/public/images/countries/ec.svg diff --git a/client/public/images/countries/ee.svg b/frontend/server/public/images/countries/ee.svg similarity index 100% rename from client/public/images/countries/ee.svg rename to frontend/server/public/images/countries/ee.svg diff --git a/client/public/images/countries/eg.svg b/frontend/server/public/images/countries/eg.svg similarity index 100% rename from client/public/images/countries/eg.svg rename to frontend/server/public/images/countries/eg.svg diff --git a/client/public/images/countries/eh.svg b/frontend/server/public/images/countries/eh.svg similarity index 100% rename from client/public/images/countries/eh.svg rename to frontend/server/public/images/countries/eh.svg diff --git a/client/public/images/countries/er.svg b/frontend/server/public/images/countries/er.svg similarity index 100% rename from client/public/images/countries/er.svg rename to frontend/server/public/images/countries/er.svg diff --git a/client/public/images/countries/es-ct.svg b/frontend/server/public/images/countries/es-ct.svg similarity index 100% rename from client/public/images/countries/es-ct.svg rename to frontend/server/public/images/countries/es-ct.svg diff --git a/client/public/images/countries/es-ga.svg b/frontend/server/public/images/countries/es-ga.svg similarity index 100% rename from client/public/images/countries/es-ga.svg rename to frontend/server/public/images/countries/es-ga.svg diff --git a/client/public/images/countries/es-pv.svg b/frontend/server/public/images/countries/es-pv.svg similarity index 100% rename from client/public/images/countries/es-pv.svg rename to frontend/server/public/images/countries/es-pv.svg diff --git a/client/public/images/countries/es.svg b/frontend/server/public/images/countries/es.svg similarity index 100% rename from client/public/images/countries/es.svg rename to frontend/server/public/images/countries/es.svg diff --git a/client/public/images/countries/et.svg b/frontend/server/public/images/countries/et.svg similarity index 100% rename from client/public/images/countries/et.svg rename to frontend/server/public/images/countries/et.svg diff --git a/client/public/images/countries/eu.svg b/frontend/server/public/images/countries/eu.svg similarity index 100% rename from client/public/images/countries/eu.svg rename to frontend/server/public/images/countries/eu.svg diff --git a/client/public/images/countries/fi.svg b/frontend/server/public/images/countries/fi.svg similarity index 100% rename from client/public/images/countries/fi.svg rename to frontend/server/public/images/countries/fi.svg diff --git a/client/public/images/countries/fj.svg b/frontend/server/public/images/countries/fj.svg similarity index 100% rename from client/public/images/countries/fj.svg rename to frontend/server/public/images/countries/fj.svg diff --git a/client/public/images/countries/fk.svg b/frontend/server/public/images/countries/fk.svg similarity index 100% rename from client/public/images/countries/fk.svg rename to frontend/server/public/images/countries/fk.svg diff --git a/client/public/images/countries/fm.svg b/frontend/server/public/images/countries/fm.svg similarity index 100% rename from client/public/images/countries/fm.svg rename to frontend/server/public/images/countries/fm.svg diff --git a/client/public/images/countries/fo.svg b/frontend/server/public/images/countries/fo.svg similarity index 100% rename from client/public/images/countries/fo.svg rename to frontend/server/public/images/countries/fo.svg diff --git a/client/public/images/countries/fr.svg b/frontend/server/public/images/countries/fr.svg similarity index 100% rename from client/public/images/countries/fr.svg rename to frontend/server/public/images/countries/fr.svg diff --git a/client/public/images/countries/ga.svg b/frontend/server/public/images/countries/ga.svg similarity index 100% rename from client/public/images/countries/ga.svg rename to frontend/server/public/images/countries/ga.svg diff --git a/client/public/images/countries/gb-eng.svg b/frontend/server/public/images/countries/gb-eng.svg similarity index 100% rename from client/public/images/countries/gb-eng.svg rename to frontend/server/public/images/countries/gb-eng.svg diff --git a/client/public/images/countries/gb-nir.svg b/frontend/server/public/images/countries/gb-nir.svg similarity index 100% rename from client/public/images/countries/gb-nir.svg rename to frontend/server/public/images/countries/gb-nir.svg diff --git a/client/public/images/countries/gb-sct.svg b/frontend/server/public/images/countries/gb-sct.svg similarity index 100% rename from client/public/images/countries/gb-sct.svg rename to frontend/server/public/images/countries/gb-sct.svg diff --git a/client/public/images/countries/gb-wls.svg b/frontend/server/public/images/countries/gb-wls.svg similarity index 100% rename from client/public/images/countries/gb-wls.svg rename to frontend/server/public/images/countries/gb-wls.svg diff --git a/client/public/images/countries/gb.svg b/frontend/server/public/images/countries/gb.svg similarity index 100% rename from client/public/images/countries/gb.svg rename to frontend/server/public/images/countries/gb.svg diff --git a/client/public/images/countries/gd.svg b/frontend/server/public/images/countries/gd.svg similarity index 100% rename from client/public/images/countries/gd.svg rename to frontend/server/public/images/countries/gd.svg diff --git a/client/public/images/countries/ge.svg b/frontend/server/public/images/countries/ge.svg similarity index 100% rename from client/public/images/countries/ge.svg rename to frontend/server/public/images/countries/ge.svg diff --git a/client/public/images/countries/gf.svg b/frontend/server/public/images/countries/gf.svg similarity index 100% rename from client/public/images/countries/gf.svg rename to frontend/server/public/images/countries/gf.svg diff --git a/client/public/images/countries/gg.svg b/frontend/server/public/images/countries/gg.svg similarity index 100% rename from client/public/images/countries/gg.svg rename to frontend/server/public/images/countries/gg.svg diff --git a/client/public/images/countries/gh.svg b/frontend/server/public/images/countries/gh.svg similarity index 100% rename from client/public/images/countries/gh.svg rename to frontend/server/public/images/countries/gh.svg diff --git a/client/public/images/countries/gi.svg b/frontend/server/public/images/countries/gi.svg similarity index 100% rename from client/public/images/countries/gi.svg rename to frontend/server/public/images/countries/gi.svg diff --git a/client/public/images/countries/gl.svg b/frontend/server/public/images/countries/gl.svg similarity index 100% rename from client/public/images/countries/gl.svg rename to frontend/server/public/images/countries/gl.svg diff --git a/client/public/images/countries/gm.svg b/frontend/server/public/images/countries/gm.svg similarity index 100% rename from client/public/images/countries/gm.svg rename to frontend/server/public/images/countries/gm.svg diff --git a/client/public/images/countries/gn.svg b/frontend/server/public/images/countries/gn.svg similarity index 100% rename from client/public/images/countries/gn.svg rename to frontend/server/public/images/countries/gn.svg diff --git a/client/public/images/countries/gp.svg b/frontend/server/public/images/countries/gp.svg similarity index 100% rename from client/public/images/countries/gp.svg rename to frontend/server/public/images/countries/gp.svg diff --git a/client/public/images/countries/gq.svg b/frontend/server/public/images/countries/gq.svg similarity index 100% rename from client/public/images/countries/gq.svg rename to frontend/server/public/images/countries/gq.svg diff --git a/client/public/images/countries/gr.svg b/frontend/server/public/images/countries/gr.svg similarity index 100% rename from client/public/images/countries/gr.svg rename to frontend/server/public/images/countries/gr.svg diff --git a/client/public/images/countries/gs.svg b/frontend/server/public/images/countries/gs.svg similarity index 100% rename from client/public/images/countries/gs.svg rename to frontend/server/public/images/countries/gs.svg diff --git a/client/public/images/countries/gt.svg b/frontend/server/public/images/countries/gt.svg similarity index 100% rename from client/public/images/countries/gt.svg rename to frontend/server/public/images/countries/gt.svg diff --git a/client/public/images/countries/gu.svg b/frontend/server/public/images/countries/gu.svg similarity index 100% rename from client/public/images/countries/gu.svg rename to frontend/server/public/images/countries/gu.svg diff --git a/client/public/images/countries/gw.svg b/frontend/server/public/images/countries/gw.svg similarity index 100% rename from client/public/images/countries/gw.svg rename to frontend/server/public/images/countries/gw.svg diff --git a/client/public/images/countries/gy.svg b/frontend/server/public/images/countries/gy.svg similarity index 100% rename from client/public/images/countries/gy.svg rename to frontend/server/public/images/countries/gy.svg diff --git a/client/public/images/countries/hk.svg b/frontend/server/public/images/countries/hk.svg similarity index 100% rename from client/public/images/countries/hk.svg rename to frontend/server/public/images/countries/hk.svg diff --git a/client/public/images/countries/hm.svg b/frontend/server/public/images/countries/hm.svg similarity index 100% rename from client/public/images/countries/hm.svg rename to frontend/server/public/images/countries/hm.svg diff --git a/client/public/images/countries/hn.svg b/frontend/server/public/images/countries/hn.svg similarity index 100% rename from client/public/images/countries/hn.svg rename to frontend/server/public/images/countries/hn.svg diff --git a/client/public/images/countries/hr.svg b/frontend/server/public/images/countries/hr.svg similarity index 100% rename from client/public/images/countries/hr.svg rename to frontend/server/public/images/countries/hr.svg diff --git a/client/public/images/countries/ht.svg b/frontend/server/public/images/countries/ht.svg similarity index 100% rename from client/public/images/countries/ht.svg rename to frontend/server/public/images/countries/ht.svg diff --git a/client/public/images/countries/hu.svg b/frontend/server/public/images/countries/hu.svg similarity index 100% rename from client/public/images/countries/hu.svg rename to frontend/server/public/images/countries/hu.svg diff --git a/client/public/images/countries/ic.svg b/frontend/server/public/images/countries/ic.svg similarity index 100% rename from client/public/images/countries/ic.svg rename to frontend/server/public/images/countries/ic.svg diff --git a/client/public/images/countries/id.svg b/frontend/server/public/images/countries/id.svg similarity index 100% rename from client/public/images/countries/id.svg rename to frontend/server/public/images/countries/id.svg diff --git a/client/public/images/countries/ie.svg b/frontend/server/public/images/countries/ie.svg similarity index 100% rename from client/public/images/countries/ie.svg rename to frontend/server/public/images/countries/ie.svg diff --git a/client/public/images/countries/il.svg b/frontend/server/public/images/countries/il.svg similarity index 100% rename from client/public/images/countries/il.svg rename to frontend/server/public/images/countries/il.svg diff --git a/client/public/images/countries/im.svg b/frontend/server/public/images/countries/im.svg similarity index 100% rename from client/public/images/countries/im.svg rename to frontend/server/public/images/countries/im.svg diff --git a/client/public/images/countries/in.svg b/frontend/server/public/images/countries/in.svg similarity index 100% rename from client/public/images/countries/in.svg rename to frontend/server/public/images/countries/in.svg diff --git a/client/public/images/countries/io.svg b/frontend/server/public/images/countries/io.svg similarity index 100% rename from client/public/images/countries/io.svg rename to frontend/server/public/images/countries/io.svg diff --git a/client/public/images/countries/iq.svg b/frontend/server/public/images/countries/iq.svg similarity index 100% rename from client/public/images/countries/iq.svg rename to frontend/server/public/images/countries/iq.svg diff --git a/client/public/images/countries/ir.svg b/frontend/server/public/images/countries/ir.svg similarity index 100% rename from client/public/images/countries/ir.svg rename to frontend/server/public/images/countries/ir.svg diff --git a/client/public/images/countries/is.svg b/frontend/server/public/images/countries/is.svg similarity index 100% rename from client/public/images/countries/is.svg rename to frontend/server/public/images/countries/is.svg diff --git a/client/public/images/countries/it.svg b/frontend/server/public/images/countries/it.svg similarity index 100% rename from client/public/images/countries/it.svg rename to frontend/server/public/images/countries/it.svg diff --git a/client/public/images/countries/je.svg b/frontend/server/public/images/countries/je.svg similarity index 100% rename from client/public/images/countries/je.svg rename to frontend/server/public/images/countries/je.svg diff --git a/client/public/images/countries/jm.svg b/frontend/server/public/images/countries/jm.svg similarity index 100% rename from client/public/images/countries/jm.svg rename to frontend/server/public/images/countries/jm.svg diff --git a/client/public/images/countries/jo.svg b/frontend/server/public/images/countries/jo.svg similarity index 100% rename from client/public/images/countries/jo.svg rename to frontend/server/public/images/countries/jo.svg diff --git a/client/public/images/countries/jp.svg b/frontend/server/public/images/countries/jp.svg similarity index 100% rename from client/public/images/countries/jp.svg rename to frontend/server/public/images/countries/jp.svg diff --git a/client/public/images/countries/ke.svg b/frontend/server/public/images/countries/ke.svg similarity index 100% rename from client/public/images/countries/ke.svg rename to frontend/server/public/images/countries/ke.svg diff --git a/client/public/images/countries/kg.svg b/frontend/server/public/images/countries/kg.svg similarity index 100% rename from client/public/images/countries/kg.svg rename to frontend/server/public/images/countries/kg.svg diff --git a/client/public/images/countries/kh.svg b/frontend/server/public/images/countries/kh.svg similarity index 100% rename from client/public/images/countries/kh.svg rename to frontend/server/public/images/countries/kh.svg diff --git a/client/public/images/countries/ki.svg b/frontend/server/public/images/countries/ki.svg similarity index 100% rename from client/public/images/countries/ki.svg rename to frontend/server/public/images/countries/ki.svg diff --git a/client/public/images/countries/km.svg b/frontend/server/public/images/countries/km.svg similarity index 100% rename from client/public/images/countries/km.svg rename to frontend/server/public/images/countries/km.svg diff --git a/client/public/images/countries/kn.svg b/frontend/server/public/images/countries/kn.svg similarity index 100% rename from client/public/images/countries/kn.svg rename to frontend/server/public/images/countries/kn.svg diff --git a/client/public/images/countries/kp.svg b/frontend/server/public/images/countries/kp.svg similarity index 100% rename from client/public/images/countries/kp.svg rename to frontend/server/public/images/countries/kp.svg diff --git a/client/public/images/countries/kr.svg b/frontend/server/public/images/countries/kr.svg similarity index 100% rename from client/public/images/countries/kr.svg rename to frontend/server/public/images/countries/kr.svg diff --git a/client/public/images/countries/kw.svg b/frontend/server/public/images/countries/kw.svg similarity index 100% rename from client/public/images/countries/kw.svg rename to frontend/server/public/images/countries/kw.svg diff --git a/client/public/images/countries/ky.svg b/frontend/server/public/images/countries/ky.svg similarity index 100% rename from client/public/images/countries/ky.svg rename to frontend/server/public/images/countries/ky.svg diff --git a/client/public/images/countries/kz.svg b/frontend/server/public/images/countries/kz.svg similarity index 100% rename from client/public/images/countries/kz.svg rename to frontend/server/public/images/countries/kz.svg diff --git a/client/public/images/countries/la.svg b/frontend/server/public/images/countries/la.svg similarity index 100% rename from client/public/images/countries/la.svg rename to frontend/server/public/images/countries/la.svg diff --git a/client/public/images/countries/lb.svg b/frontend/server/public/images/countries/lb.svg similarity index 100% rename from client/public/images/countries/lb.svg rename to frontend/server/public/images/countries/lb.svg diff --git a/client/public/images/countries/lc.svg b/frontend/server/public/images/countries/lc.svg similarity index 100% rename from client/public/images/countries/lc.svg rename to frontend/server/public/images/countries/lc.svg diff --git a/client/public/images/countries/li.svg b/frontend/server/public/images/countries/li.svg similarity index 100% rename from client/public/images/countries/li.svg rename to frontend/server/public/images/countries/li.svg diff --git a/client/public/images/countries/lk.svg b/frontend/server/public/images/countries/lk.svg similarity index 100% rename from client/public/images/countries/lk.svg rename to frontend/server/public/images/countries/lk.svg diff --git a/client/public/images/countries/lr.svg b/frontend/server/public/images/countries/lr.svg similarity index 100% rename from client/public/images/countries/lr.svg rename to frontend/server/public/images/countries/lr.svg diff --git a/client/public/images/countries/ls.svg b/frontend/server/public/images/countries/ls.svg similarity index 100% rename from client/public/images/countries/ls.svg rename to frontend/server/public/images/countries/ls.svg diff --git a/client/public/images/countries/lt.svg b/frontend/server/public/images/countries/lt.svg similarity index 100% rename from client/public/images/countries/lt.svg rename to frontend/server/public/images/countries/lt.svg diff --git a/client/public/images/countries/lu.svg b/frontend/server/public/images/countries/lu.svg similarity index 100% rename from client/public/images/countries/lu.svg rename to frontend/server/public/images/countries/lu.svg diff --git a/client/public/images/countries/lv.svg b/frontend/server/public/images/countries/lv.svg similarity index 100% rename from client/public/images/countries/lv.svg rename to frontend/server/public/images/countries/lv.svg diff --git a/client/public/images/countries/ly.svg b/frontend/server/public/images/countries/ly.svg similarity index 100% rename from client/public/images/countries/ly.svg rename to frontend/server/public/images/countries/ly.svg diff --git a/client/public/images/countries/ma.svg b/frontend/server/public/images/countries/ma.svg similarity index 100% rename from client/public/images/countries/ma.svg rename to frontend/server/public/images/countries/ma.svg diff --git a/client/public/images/countries/mc.svg b/frontend/server/public/images/countries/mc.svg similarity index 100% rename from client/public/images/countries/mc.svg rename to frontend/server/public/images/countries/mc.svg diff --git a/client/public/images/countries/md.svg b/frontend/server/public/images/countries/md.svg similarity index 100% rename from client/public/images/countries/md.svg rename to frontend/server/public/images/countries/md.svg diff --git a/client/public/images/countries/me.svg b/frontend/server/public/images/countries/me.svg similarity index 100% rename from client/public/images/countries/me.svg rename to frontend/server/public/images/countries/me.svg diff --git a/client/public/images/countries/mf.svg b/frontend/server/public/images/countries/mf.svg similarity index 100% rename from client/public/images/countries/mf.svg rename to frontend/server/public/images/countries/mf.svg diff --git a/client/public/images/countries/mg.svg b/frontend/server/public/images/countries/mg.svg similarity index 100% rename from client/public/images/countries/mg.svg rename to frontend/server/public/images/countries/mg.svg diff --git a/client/public/images/countries/mh.svg b/frontend/server/public/images/countries/mh.svg similarity index 100% rename from client/public/images/countries/mh.svg rename to frontend/server/public/images/countries/mh.svg diff --git a/client/public/images/countries/mk.svg b/frontend/server/public/images/countries/mk.svg similarity index 100% rename from client/public/images/countries/mk.svg rename to frontend/server/public/images/countries/mk.svg diff --git a/client/public/images/countries/ml.svg b/frontend/server/public/images/countries/ml.svg similarity index 100% rename from client/public/images/countries/ml.svg rename to frontend/server/public/images/countries/ml.svg diff --git a/client/public/images/countries/mm.svg b/frontend/server/public/images/countries/mm.svg similarity index 100% rename from client/public/images/countries/mm.svg rename to frontend/server/public/images/countries/mm.svg diff --git a/client/public/images/countries/mn.svg b/frontend/server/public/images/countries/mn.svg similarity index 100% rename from client/public/images/countries/mn.svg rename to frontend/server/public/images/countries/mn.svg diff --git a/client/public/images/countries/mo.svg b/frontend/server/public/images/countries/mo.svg similarity index 100% rename from client/public/images/countries/mo.svg rename to frontend/server/public/images/countries/mo.svg diff --git a/client/public/images/countries/mp.svg b/frontend/server/public/images/countries/mp.svg similarity index 100% rename from client/public/images/countries/mp.svg rename to frontend/server/public/images/countries/mp.svg diff --git a/client/public/images/countries/mq.svg b/frontend/server/public/images/countries/mq.svg similarity index 100% rename from client/public/images/countries/mq.svg rename to frontend/server/public/images/countries/mq.svg diff --git a/client/public/images/countries/mr.svg b/frontend/server/public/images/countries/mr.svg similarity index 100% rename from client/public/images/countries/mr.svg rename to frontend/server/public/images/countries/mr.svg diff --git a/client/public/images/countries/ms.svg b/frontend/server/public/images/countries/ms.svg similarity index 100% rename from client/public/images/countries/ms.svg rename to frontend/server/public/images/countries/ms.svg diff --git a/client/public/images/countries/mt.svg b/frontend/server/public/images/countries/mt.svg similarity index 100% rename from client/public/images/countries/mt.svg rename to frontend/server/public/images/countries/mt.svg diff --git a/client/public/images/countries/mu.svg b/frontend/server/public/images/countries/mu.svg similarity index 100% rename from client/public/images/countries/mu.svg rename to frontend/server/public/images/countries/mu.svg diff --git a/client/public/images/countries/mv.svg b/frontend/server/public/images/countries/mv.svg similarity index 100% rename from client/public/images/countries/mv.svg rename to frontend/server/public/images/countries/mv.svg diff --git a/client/public/images/countries/mw.svg b/frontend/server/public/images/countries/mw.svg similarity index 100% rename from client/public/images/countries/mw.svg rename to frontend/server/public/images/countries/mw.svg diff --git a/client/public/images/countries/mx.svg b/frontend/server/public/images/countries/mx.svg similarity index 100% rename from client/public/images/countries/mx.svg rename to frontend/server/public/images/countries/mx.svg diff --git a/client/public/images/countries/my.svg b/frontend/server/public/images/countries/my.svg similarity index 100% rename from client/public/images/countries/my.svg rename to frontend/server/public/images/countries/my.svg diff --git a/client/public/images/countries/mz.svg b/frontend/server/public/images/countries/mz.svg similarity index 100% rename from client/public/images/countries/mz.svg rename to frontend/server/public/images/countries/mz.svg diff --git a/client/public/images/countries/na.svg b/frontend/server/public/images/countries/na.svg similarity index 100% rename from client/public/images/countries/na.svg rename to frontend/server/public/images/countries/na.svg diff --git a/client/public/images/countries/nc.svg b/frontend/server/public/images/countries/nc.svg similarity index 100% rename from client/public/images/countries/nc.svg rename to frontend/server/public/images/countries/nc.svg diff --git a/client/public/images/countries/ne.svg b/frontend/server/public/images/countries/ne.svg similarity index 100% rename from client/public/images/countries/ne.svg rename to frontend/server/public/images/countries/ne.svg diff --git a/client/public/images/countries/nf.svg b/frontend/server/public/images/countries/nf.svg similarity index 100% rename from client/public/images/countries/nf.svg rename to frontend/server/public/images/countries/nf.svg diff --git a/client/public/images/countries/ng.svg b/frontend/server/public/images/countries/ng.svg similarity index 100% rename from client/public/images/countries/ng.svg rename to frontend/server/public/images/countries/ng.svg diff --git a/client/public/images/countries/ni.svg b/frontend/server/public/images/countries/ni.svg similarity index 100% rename from client/public/images/countries/ni.svg rename to frontend/server/public/images/countries/ni.svg diff --git a/client/public/images/countries/nl.svg b/frontend/server/public/images/countries/nl.svg similarity index 100% rename from client/public/images/countries/nl.svg rename to frontend/server/public/images/countries/nl.svg diff --git a/client/public/images/countries/no.svg b/frontend/server/public/images/countries/no.svg similarity index 100% rename from client/public/images/countries/no.svg rename to frontend/server/public/images/countries/no.svg diff --git a/client/public/images/countries/np.svg b/frontend/server/public/images/countries/np.svg similarity index 100% rename from client/public/images/countries/np.svg rename to frontend/server/public/images/countries/np.svg diff --git a/client/public/images/countries/nr.svg b/frontend/server/public/images/countries/nr.svg similarity index 100% rename from client/public/images/countries/nr.svg rename to frontend/server/public/images/countries/nr.svg diff --git a/client/public/images/countries/nu.svg b/frontend/server/public/images/countries/nu.svg similarity index 100% rename from client/public/images/countries/nu.svg rename to frontend/server/public/images/countries/nu.svg diff --git a/client/public/images/countries/nz.svg b/frontend/server/public/images/countries/nz.svg similarity index 100% rename from client/public/images/countries/nz.svg rename to frontend/server/public/images/countries/nz.svg diff --git a/client/public/images/countries/om.svg b/frontend/server/public/images/countries/om.svg similarity index 100% rename from client/public/images/countries/om.svg rename to frontend/server/public/images/countries/om.svg diff --git a/client/public/images/countries/pa.svg b/frontend/server/public/images/countries/pa.svg similarity index 100% rename from client/public/images/countries/pa.svg rename to frontend/server/public/images/countries/pa.svg diff --git a/client/public/images/countries/pe.svg b/frontend/server/public/images/countries/pe.svg similarity index 100% rename from client/public/images/countries/pe.svg rename to frontend/server/public/images/countries/pe.svg diff --git a/client/public/images/countries/pf.svg b/frontend/server/public/images/countries/pf.svg similarity index 100% rename from client/public/images/countries/pf.svg rename to frontend/server/public/images/countries/pf.svg diff --git a/client/public/images/countries/pg.svg b/frontend/server/public/images/countries/pg.svg similarity index 100% rename from client/public/images/countries/pg.svg rename to frontend/server/public/images/countries/pg.svg diff --git a/client/public/images/countries/ph.svg b/frontend/server/public/images/countries/ph.svg similarity index 100% rename from client/public/images/countries/ph.svg rename to frontend/server/public/images/countries/ph.svg diff --git a/client/public/images/countries/pk.svg b/frontend/server/public/images/countries/pk.svg similarity index 100% rename from client/public/images/countries/pk.svg rename to frontend/server/public/images/countries/pk.svg diff --git a/client/public/images/countries/pl.svg b/frontend/server/public/images/countries/pl.svg similarity index 100% rename from client/public/images/countries/pl.svg rename to frontend/server/public/images/countries/pl.svg diff --git a/client/public/images/countries/pm.svg b/frontend/server/public/images/countries/pm.svg similarity index 100% rename from client/public/images/countries/pm.svg rename to frontend/server/public/images/countries/pm.svg diff --git a/client/public/images/countries/pn.svg b/frontend/server/public/images/countries/pn.svg similarity index 100% rename from client/public/images/countries/pn.svg rename to frontend/server/public/images/countries/pn.svg diff --git a/client/public/images/countries/pr.svg b/frontend/server/public/images/countries/pr.svg similarity index 100% rename from client/public/images/countries/pr.svg rename to frontend/server/public/images/countries/pr.svg diff --git a/client/public/images/countries/ps.svg b/frontend/server/public/images/countries/ps.svg similarity index 100% rename from client/public/images/countries/ps.svg rename to frontend/server/public/images/countries/ps.svg diff --git a/client/public/images/countries/pt.svg b/frontend/server/public/images/countries/pt.svg similarity index 100% rename from client/public/images/countries/pt.svg rename to frontend/server/public/images/countries/pt.svg diff --git a/client/public/images/countries/pw.svg b/frontend/server/public/images/countries/pw.svg similarity index 100% rename from client/public/images/countries/pw.svg rename to frontend/server/public/images/countries/pw.svg diff --git a/client/public/images/countries/py.svg b/frontend/server/public/images/countries/py.svg similarity index 100% rename from client/public/images/countries/py.svg rename to frontend/server/public/images/countries/py.svg diff --git a/client/public/images/countries/qa.svg b/frontend/server/public/images/countries/qa.svg similarity index 100% rename from client/public/images/countries/qa.svg rename to frontend/server/public/images/countries/qa.svg diff --git a/client/public/images/countries/re.svg b/frontend/server/public/images/countries/re.svg similarity index 100% rename from client/public/images/countries/re.svg rename to frontend/server/public/images/countries/re.svg diff --git a/client/public/images/countries/red.svg b/frontend/server/public/images/countries/red.svg similarity index 100% rename from client/public/images/countries/red.svg rename to frontend/server/public/images/countries/red.svg diff --git a/client/public/images/countries/ro.svg b/frontend/server/public/images/countries/ro.svg similarity index 100% rename from client/public/images/countries/ro.svg rename to frontend/server/public/images/countries/ro.svg diff --git a/client/public/images/countries/rs.svg b/frontend/server/public/images/countries/rs.svg similarity index 100% rename from client/public/images/countries/rs.svg rename to frontend/server/public/images/countries/rs.svg diff --git a/client/public/images/countries/ru.svg b/frontend/server/public/images/countries/ru.svg similarity index 100% rename from client/public/images/countries/ru.svg rename to frontend/server/public/images/countries/ru.svg diff --git a/client/public/images/countries/rw.svg b/frontend/server/public/images/countries/rw.svg similarity index 100% rename from client/public/images/countries/rw.svg rename to frontend/server/public/images/countries/rw.svg diff --git a/client/public/images/countries/sa.svg b/frontend/server/public/images/countries/sa.svg similarity index 100% rename from client/public/images/countries/sa.svg rename to frontend/server/public/images/countries/sa.svg diff --git a/client/public/images/countries/sb.svg b/frontend/server/public/images/countries/sb.svg similarity index 100% rename from client/public/images/countries/sb.svg rename to frontend/server/public/images/countries/sb.svg diff --git a/client/public/images/countries/sc.svg b/frontend/server/public/images/countries/sc.svg similarity index 100% rename from client/public/images/countries/sc.svg rename to frontend/server/public/images/countries/sc.svg diff --git a/client/public/images/countries/sd.svg b/frontend/server/public/images/countries/sd.svg similarity index 100% rename from client/public/images/countries/sd.svg rename to frontend/server/public/images/countries/sd.svg diff --git a/client/public/images/countries/se.svg b/frontend/server/public/images/countries/se.svg similarity index 100% rename from client/public/images/countries/se.svg rename to frontend/server/public/images/countries/se.svg diff --git a/client/public/images/countries/sg.svg b/frontend/server/public/images/countries/sg.svg similarity index 100% rename from client/public/images/countries/sg.svg rename to frontend/server/public/images/countries/sg.svg diff --git a/client/public/images/countries/sh.svg b/frontend/server/public/images/countries/sh.svg similarity index 100% rename from client/public/images/countries/sh.svg rename to frontend/server/public/images/countries/sh.svg diff --git a/client/public/images/countries/si.svg b/frontend/server/public/images/countries/si.svg similarity index 100% rename from client/public/images/countries/si.svg rename to frontend/server/public/images/countries/si.svg diff --git a/client/public/images/countries/sj.svg b/frontend/server/public/images/countries/sj.svg similarity index 100% rename from client/public/images/countries/sj.svg rename to frontend/server/public/images/countries/sj.svg diff --git a/client/public/images/countries/sk.svg b/frontend/server/public/images/countries/sk.svg similarity index 100% rename from client/public/images/countries/sk.svg rename to frontend/server/public/images/countries/sk.svg diff --git a/client/public/images/countries/sl.svg b/frontend/server/public/images/countries/sl.svg similarity index 100% rename from client/public/images/countries/sl.svg rename to frontend/server/public/images/countries/sl.svg diff --git a/client/public/images/countries/sm.svg b/frontend/server/public/images/countries/sm.svg similarity index 100% rename from client/public/images/countries/sm.svg rename to frontend/server/public/images/countries/sm.svg diff --git a/client/public/images/countries/sn.svg b/frontend/server/public/images/countries/sn.svg similarity index 100% rename from client/public/images/countries/sn.svg rename to frontend/server/public/images/countries/sn.svg diff --git a/client/public/images/countries/so.svg b/frontend/server/public/images/countries/so.svg similarity index 100% rename from client/public/images/countries/so.svg rename to frontend/server/public/images/countries/so.svg diff --git a/client/public/images/countries/social.svg b/frontend/server/public/images/countries/social.svg similarity index 100% rename from client/public/images/countries/social.svg rename to frontend/server/public/images/countries/social.svg diff --git a/client/public/images/countries/sr.svg b/frontend/server/public/images/countries/sr.svg similarity index 100% rename from client/public/images/countries/sr.svg rename to frontend/server/public/images/countries/sr.svg diff --git a/client/public/images/countries/ss.svg b/frontend/server/public/images/countries/ss.svg similarity index 100% rename from client/public/images/countries/ss.svg rename to frontend/server/public/images/countries/ss.svg diff --git a/client/public/images/countries/st.svg b/frontend/server/public/images/countries/st.svg similarity index 100% rename from client/public/images/countries/st.svg rename to frontend/server/public/images/countries/st.svg diff --git a/client/public/images/countries/sv.svg b/frontend/server/public/images/countries/sv.svg similarity index 100% rename from client/public/images/countries/sv.svg rename to frontend/server/public/images/countries/sv.svg diff --git a/client/public/images/countries/sx.svg b/frontend/server/public/images/countries/sx.svg similarity index 100% rename from client/public/images/countries/sx.svg rename to frontend/server/public/images/countries/sx.svg diff --git a/client/public/images/countries/sy.svg b/frontend/server/public/images/countries/sy.svg similarity index 100% rename from client/public/images/countries/sy.svg rename to frontend/server/public/images/countries/sy.svg diff --git a/client/public/images/countries/sz.svg b/frontend/server/public/images/countries/sz.svg similarity index 100% rename from client/public/images/countries/sz.svg rename to frontend/server/public/images/countries/sz.svg diff --git a/client/public/images/countries/ta.svg b/frontend/server/public/images/countries/ta.svg similarity index 100% rename from client/public/images/countries/ta.svg rename to frontend/server/public/images/countries/ta.svg diff --git a/client/public/images/countries/tc.svg b/frontend/server/public/images/countries/tc.svg similarity index 100% rename from client/public/images/countries/tc.svg rename to frontend/server/public/images/countries/tc.svg diff --git a/client/public/images/countries/td.svg b/frontend/server/public/images/countries/td.svg similarity index 100% rename from client/public/images/countries/td.svg rename to frontend/server/public/images/countries/td.svg diff --git a/client/public/images/countries/tf.svg b/frontend/server/public/images/countries/tf.svg similarity index 100% rename from client/public/images/countries/tf.svg rename to frontend/server/public/images/countries/tf.svg diff --git a/client/public/images/countries/tg.svg b/frontend/server/public/images/countries/tg.svg similarity index 100% rename from client/public/images/countries/tg.svg rename to frontend/server/public/images/countries/tg.svg diff --git a/client/public/images/countries/th.svg b/frontend/server/public/images/countries/th.svg similarity index 100% rename from client/public/images/countries/th.svg rename to frontend/server/public/images/countries/th.svg diff --git a/client/public/images/countries/third.svg b/frontend/server/public/images/countries/third.svg similarity index 100% rename from client/public/images/countries/third.svg rename to frontend/server/public/images/countries/third.svg diff --git a/client/public/images/countries/tj.svg b/frontend/server/public/images/countries/tj.svg similarity index 100% rename from client/public/images/countries/tj.svg rename to frontend/server/public/images/countries/tj.svg diff --git a/client/public/images/countries/tk.svg b/frontend/server/public/images/countries/tk.svg similarity index 100% rename from client/public/images/countries/tk.svg rename to frontend/server/public/images/countries/tk.svg diff --git a/client/public/images/countries/tl.svg b/frontend/server/public/images/countries/tl.svg similarity index 100% rename from client/public/images/countries/tl.svg rename to frontend/server/public/images/countries/tl.svg diff --git a/client/public/images/countries/tm.svg b/frontend/server/public/images/countries/tm.svg similarity index 100% rename from client/public/images/countries/tm.svg rename to frontend/server/public/images/countries/tm.svg diff --git a/client/public/images/countries/tn.svg b/frontend/server/public/images/countries/tn.svg similarity index 100% rename from client/public/images/countries/tn.svg rename to frontend/server/public/images/countries/tn.svg diff --git a/client/public/images/countries/to.svg b/frontend/server/public/images/countries/to.svg similarity index 100% rename from client/public/images/countries/to.svg rename to frontend/server/public/images/countries/to.svg diff --git a/client/public/images/countries/tr.svg b/frontend/server/public/images/countries/tr.svg similarity index 100% rename from client/public/images/countries/tr.svg rename to frontend/server/public/images/countries/tr.svg diff --git a/client/public/images/countries/tt.svg b/frontend/server/public/images/countries/tt.svg similarity index 100% rename from client/public/images/countries/tt.svg rename to frontend/server/public/images/countries/tt.svg diff --git a/client/public/images/countries/tv.svg b/frontend/server/public/images/countries/tv.svg similarity index 100% rename from client/public/images/countries/tv.svg rename to frontend/server/public/images/countries/tv.svg diff --git a/client/public/images/countries/tw.svg b/frontend/server/public/images/countries/tw.svg similarity index 100% rename from client/public/images/countries/tw.svg rename to frontend/server/public/images/countries/tw.svg diff --git a/client/public/images/countries/tz.svg b/frontend/server/public/images/countries/tz.svg similarity index 100% rename from client/public/images/countries/tz.svg rename to frontend/server/public/images/countries/tz.svg diff --git a/client/public/images/countries/ua.svg b/frontend/server/public/images/countries/ua.svg similarity index 100% rename from client/public/images/countries/ua.svg rename to frontend/server/public/images/countries/ua.svg diff --git a/client/public/images/countries/ug.svg b/frontend/server/public/images/countries/ug.svg similarity index 100% rename from client/public/images/countries/ug.svg rename to frontend/server/public/images/countries/ug.svg diff --git a/client/public/images/countries/um.svg b/frontend/server/public/images/countries/um.svg similarity index 100% rename from client/public/images/countries/um.svg rename to frontend/server/public/images/countries/um.svg diff --git a/client/public/images/countries/un.svg b/frontend/server/public/images/countries/un.svg similarity index 100% rename from client/public/images/countries/un.svg rename to frontend/server/public/images/countries/un.svg diff --git a/client/public/images/countries/unk.svg b/frontend/server/public/images/countries/unk.svg similarity index 100% rename from client/public/images/countries/unk.svg rename to frontend/server/public/images/countries/unk.svg diff --git a/client/public/images/countries/us.svg b/frontend/server/public/images/countries/us.svg similarity index 100% rename from client/public/images/countries/us.svg rename to frontend/server/public/images/countries/us.svg diff --git a/client/public/images/countries/ussr.svg b/frontend/server/public/images/countries/ussr.svg similarity index 100% rename from client/public/images/countries/ussr.svg rename to frontend/server/public/images/countries/ussr.svg diff --git a/client/public/images/countries/uy.svg b/frontend/server/public/images/countries/uy.svg similarity index 100% rename from client/public/images/countries/uy.svg rename to frontend/server/public/images/countries/uy.svg diff --git a/client/public/images/countries/uz.svg b/frontend/server/public/images/countries/uz.svg similarity index 100% rename from client/public/images/countries/uz.svg rename to frontend/server/public/images/countries/uz.svg diff --git a/client/public/images/countries/va.svg b/frontend/server/public/images/countries/va.svg similarity index 100% rename from client/public/images/countries/va.svg rename to frontend/server/public/images/countries/va.svg diff --git a/client/public/images/countries/vc.svg b/frontend/server/public/images/countries/vc.svg similarity index 100% rename from client/public/images/countries/vc.svg rename to frontend/server/public/images/countries/vc.svg diff --git a/client/public/images/countries/ve.svg b/frontend/server/public/images/countries/ve.svg similarity index 100% rename from client/public/images/countries/ve.svg rename to frontend/server/public/images/countries/ve.svg diff --git a/client/public/images/countries/vg.svg b/frontend/server/public/images/countries/vg.svg similarity index 100% rename from client/public/images/countries/vg.svg rename to frontend/server/public/images/countries/vg.svg diff --git a/client/public/images/countries/vi.svg b/frontend/server/public/images/countries/vi.svg similarity index 100% rename from client/public/images/countries/vi.svg rename to frontend/server/public/images/countries/vi.svg diff --git a/client/public/images/countries/vn.svg b/frontend/server/public/images/countries/vn.svg similarity index 100% rename from client/public/images/countries/vn.svg rename to frontend/server/public/images/countries/vn.svg diff --git a/client/public/images/countries/vu.svg b/frontend/server/public/images/countries/vu.svg similarity index 100% rename from client/public/images/countries/vu.svg rename to frontend/server/public/images/countries/vu.svg diff --git a/client/public/images/countries/wf.svg b/frontend/server/public/images/countries/wf.svg similarity index 100% rename from client/public/images/countries/wf.svg rename to frontend/server/public/images/countries/wf.svg diff --git a/client/public/images/countries/ws.svg b/frontend/server/public/images/countries/ws.svg similarity index 100% rename from client/public/images/countries/ws.svg rename to frontend/server/public/images/countries/ws.svg diff --git a/client/public/images/countries/xk.svg b/frontend/server/public/images/countries/xk.svg similarity index 100% rename from client/public/images/countries/xk.svg rename to frontend/server/public/images/countries/xk.svg diff --git a/client/public/images/countries/xx.svg b/frontend/server/public/images/countries/xx.svg similarity index 100% rename from client/public/images/countries/xx.svg rename to frontend/server/public/images/countries/xx.svg diff --git a/client/public/images/countries/ye.svg b/frontend/server/public/images/countries/ye.svg similarity index 100% rename from client/public/images/countries/ye.svg rename to frontend/server/public/images/countries/ye.svg diff --git a/client/public/images/countries/yt.svg b/frontend/server/public/images/countries/yt.svg similarity index 100% rename from client/public/images/countries/yt.svg rename to frontend/server/public/images/countries/yt.svg diff --git a/client/public/images/countries/yug.svg b/frontend/server/public/images/countries/yug.svg similarity index 100% rename from client/public/images/countries/yug.svg rename to frontend/server/public/images/countries/yug.svg diff --git a/client/public/images/countries/za.svg b/frontend/server/public/images/countries/za.svg similarity index 100% rename from client/public/images/countries/za.svg rename to frontend/server/public/images/countries/za.svg diff --git a/client/public/images/countries/zm.svg b/frontend/server/public/images/countries/zm.svg similarity index 100% rename from client/public/images/countries/zm.svg rename to frontend/server/public/images/countries/zm.svg diff --git a/client/public/images/countries/zw.svg b/frontend/server/public/images/countries/zw.svg similarity index 100% rename from client/public/images/countries/zw.svg rename to frontend/server/public/images/countries/zw.svg diff --git a/client/public/images/favicons/android-chrome-192x192.png b/frontend/server/public/images/favicons/android-chrome-192x192.png similarity index 100% rename from client/public/images/favicons/android-chrome-192x192.png rename to frontend/server/public/images/favicons/android-chrome-192x192.png diff --git a/client/public/images/favicons/android-chrome-512x512.png b/frontend/server/public/images/favicons/android-chrome-512x512.png similarity index 100% rename from client/public/images/favicons/android-chrome-512x512.png rename to frontend/server/public/images/favicons/android-chrome-512x512.png diff --git a/client/public/images/favicons/apple-touch-icon.png b/frontend/server/public/images/favicons/apple-touch-icon.png similarity index 100% rename from client/public/images/favicons/apple-touch-icon.png rename to frontend/server/public/images/favicons/apple-touch-icon.png diff --git a/client/public/images/favicons/favicon-16x16.png b/frontend/server/public/images/favicons/favicon-16x16.png similarity index 100% rename from client/public/images/favicons/favicon-16x16.png rename to frontend/server/public/images/favicons/favicon-16x16.png diff --git a/client/public/images/favicons/favicon-32x32.png b/frontend/server/public/images/favicons/favicon-32x32.png similarity index 100% rename from client/public/images/favicons/favicon-32x32.png rename to frontend/server/public/images/favicons/favicon-32x32.png diff --git a/client/public/images/favicons/favicon.ico b/frontend/server/public/images/favicons/favicon.ico similarity index 100% rename from client/public/images/favicons/favicon.ico rename to frontend/server/public/images/favicons/favicon.ico diff --git a/client/public/images/favicons/site.webmanifest b/frontend/server/public/images/favicons/site.webmanifest similarity index 100% rename from client/public/images/favicons/site.webmanifest rename to frontend/server/public/images/favicons/site.webmanifest diff --git a/client/public/images/icon-round.png b/frontend/server/public/images/icon-round.png similarity index 100% rename from client/public/images/icon-round.png rename to frontend/server/public/images/icon-round.png diff --git a/client/public/images/icon.png b/frontend/server/public/images/icon.png similarity index 100% rename from client/public/images/icon.png rename to frontend/server/public/images/icon.png diff --git a/client/public/images/olympus-4112x4112.png b/frontend/server/public/images/olympus-4112x4112.png similarity index 100% rename from client/public/images/olympus-4112x4112.png rename to frontend/server/public/images/olympus-4112x4112.png diff --git a/client/public/images/olympus-500x500.png b/frontend/server/public/images/olympus-500x500.png similarity index 100% rename from client/public/images/olympus-500x500.png rename to frontend/server/public/images/olympus-500x500.png diff --git a/client/public/images/units/a-10.png b/frontend/server/public/images/units/a-10.png similarity index 100% rename from client/public/images/units/a-10.png rename to frontend/server/public/images/units/a-10.png diff --git a/client/public/images/units/a-20.png b/frontend/server/public/images/units/a-20.png similarity index 100% rename from client/public/images/units/a-20.png rename to frontend/server/public/images/units/a-20.png diff --git a/client/public/images/units/a-29.png b/frontend/server/public/images/units/a-29.png similarity index 100% rename from client/public/images/units/a-29.png rename to frontend/server/public/images/units/a-29.png diff --git a/client/public/images/units/a-4.png b/frontend/server/public/images/units/a-4.png similarity index 100% rename from client/public/images/units/a-4.png rename to frontend/server/public/images/units/a-4.png diff --git a/client/public/images/units/a-400.png b/frontend/server/public/images/units/a-400.png similarity index 100% rename from client/public/images/units/a-400.png rename to frontend/server/public/images/units/a-400.png diff --git a/client/public/images/units/a-50.png b/frontend/server/public/images/units/a-50.png similarity index 100% rename from client/public/images/units/a-50.png rename to frontend/server/public/images/units/a-50.png diff --git a/client/public/images/units/a-6.png b/frontend/server/public/images/units/a-6.png similarity index 100% rename from client/public/images/units/a-6.png rename to frontend/server/public/images/units/a-6.png diff --git a/client/public/images/units/ah-1.png b/frontend/server/public/images/units/ah-1.png similarity index 100% rename from client/public/images/units/ah-1.png rename to frontend/server/public/images/units/ah-1.png diff --git a/client/public/images/units/ah-64.png b/frontend/server/public/images/units/ah-64.png similarity index 100% rename from client/public/images/units/ah-64.png rename to frontend/server/public/images/units/ah-64.png diff --git a/client/public/images/units/airUnit.png b/frontend/server/public/images/units/airUnit.png similarity index 100% rename from client/public/images/units/airUnit.png rename to frontend/server/public/images/units/airUnit.png diff --git a/client/public/images/units/airliner2engine.png b/frontend/server/public/images/units/airliner2engine.png similarity index 100% rename from client/public/images/units/airliner2engine.png rename to frontend/server/public/images/units/airliner2engine.png diff --git a/client/public/images/units/an-26.png b/frontend/server/public/images/units/an-26.png similarity index 100% rename from client/public/images/units/an-26.png rename to frontend/server/public/images/units/an-26.png diff --git a/client/public/images/units/av8bna.png b/frontend/server/public/images/units/av8bna.png similarity index 100% rename from client/public/images/units/av8bna.png rename to frontend/server/public/images/units/av8bna.png diff --git a/client/public/images/units/b-1.png b/frontend/server/public/images/units/b-1.png similarity index 100% rename from client/public/images/units/b-1.png rename to frontend/server/public/images/units/b-1.png diff --git a/client/public/images/units/b-17.png b/frontend/server/public/images/units/b-17.png similarity index 100% rename from client/public/images/units/b-17.png rename to frontend/server/public/images/units/b-17.png diff --git a/client/public/images/units/b-2.png b/frontend/server/public/images/units/b-2.png similarity index 100% rename from client/public/images/units/b-2.png rename to frontend/server/public/images/units/b-2.png diff --git a/client/public/images/units/b-52.png b/frontend/server/public/images/units/b-52.png similarity index 100% rename from client/public/images/units/b-52.png rename to frontend/server/public/images/units/b-52.png diff --git a/client/public/images/units/b707.png b/frontend/server/public/images/units/b707.png similarity index 100% rename from client/public/images/units/b707.png rename to frontend/server/public/images/units/b707.png diff --git a/client/public/images/units/bf109.png b/frontend/server/public/images/units/bf109.png similarity index 100% rename from client/public/images/units/bf109.png rename to frontend/server/public/images/units/bf109.png diff --git a/client/public/images/units/c-101.png b/frontend/server/public/images/units/c-101.png similarity index 100% rename from client/public/images/units/c-101.png rename to frontend/server/public/images/units/c-101.png diff --git a/client/public/images/units/c-130.png b/frontend/server/public/images/units/c-130.png similarity index 100% rename from client/public/images/units/c-130.png rename to frontend/server/public/images/units/c-130.png diff --git a/client/public/images/units/c-17.png b/frontend/server/public/images/units/c-17.png similarity index 100% rename from client/public/images/units/c-17.png rename to frontend/server/public/images/units/c-17.png diff --git a/client/public/images/units/c-5.png b/frontend/server/public/images/units/c-5.png similarity index 100% rename from client/public/images/units/c-5.png rename to frontend/server/public/images/units/c-5.png diff --git a/client/public/images/units/ch-47.png b/frontend/server/public/images/units/ch-47.png similarity index 100% rename from client/public/images/units/ch-47.png rename to frontend/server/public/images/units/ch-47.png diff --git a/client/public/images/units/ch-53.png b/frontend/server/public/images/units/ch-53.png similarity index 100% rename from client/public/images/units/ch-53.png rename to frontend/server/public/images/units/ch-53.png diff --git a/client/public/images/units/e-2.png b/frontend/server/public/images/units/e-2.png similarity index 100% rename from client/public/images/units/e-2.png rename to frontend/server/public/images/units/e-2.png diff --git a/client/public/images/units/e-3.png b/frontend/server/public/images/units/e-3.png similarity index 100% rename from client/public/images/units/e-3.png rename to frontend/server/public/images/units/e-3.png diff --git a/client/public/images/units/eurofighter.png b/frontend/server/public/images/units/eurofighter.png similarity index 100% rename from client/public/images/units/eurofighter.png rename to frontend/server/public/images/units/eurofighter.png diff --git a/client/public/images/units/f-1.png b/frontend/server/public/images/units/f-1.png similarity index 100% rename from client/public/images/units/f-1.png rename to frontend/server/public/images/units/f-1.png diff --git a/client/public/images/units/f-111.png b/frontend/server/public/images/units/f-111.png similarity index 100% rename from client/public/images/units/f-111.png rename to frontend/server/public/images/units/f-111.png diff --git a/client/public/images/units/f-117.png b/frontend/server/public/images/units/f-117.png similarity index 100% rename from client/public/images/units/f-117.png rename to frontend/server/public/images/units/f-117.png diff --git a/client/public/images/units/f-14.png b/frontend/server/public/images/units/f-14.png similarity index 100% rename from client/public/images/units/f-14.png rename to frontend/server/public/images/units/f-14.png diff --git a/client/public/images/units/f-15.png b/frontend/server/public/images/units/f-15.png similarity index 100% rename from client/public/images/units/f-15.png rename to frontend/server/public/images/units/f-15.png diff --git a/client/public/images/units/f-16c.png b/frontend/server/public/images/units/f-16c.png similarity index 100% rename from client/public/images/units/f-16c.png rename to frontend/server/public/images/units/f-16c.png diff --git a/client/public/images/units/f-22.png b/frontend/server/public/images/units/f-22.png similarity index 100% rename from client/public/images/units/f-22.png rename to frontend/server/public/images/units/f-22.png diff --git a/client/public/images/units/f-35.png b/frontend/server/public/images/units/f-35.png similarity index 100% rename from client/public/images/units/f-35.png rename to frontend/server/public/images/units/f-35.png diff --git a/client/public/images/units/f-4.png b/frontend/server/public/images/units/f-4.png similarity index 100% rename from client/public/images/units/f-4.png rename to frontend/server/public/images/units/f-4.png diff --git a/client/public/images/units/f-5.png b/frontend/server/public/images/units/f-5.png similarity index 100% rename from client/public/images/units/f-5.png rename to frontend/server/public/images/units/f-5.png diff --git a/client/public/images/units/f-86.png b/frontend/server/public/images/units/f-86.png similarity index 100% rename from client/public/images/units/f-86.png rename to frontend/server/public/images/units/f-86.png diff --git a/client/public/images/units/fa-18c.png b/frontend/server/public/images/units/fa-18c.png similarity index 100% rename from client/public/images/units/fa-18c.png rename to frontend/server/public/images/units/fa-18c.png diff --git a/client/public/images/units/fw190.png b/frontend/server/public/images/units/fw190.png similarity index 100% rename from client/public/images/units/fw190.png rename to frontend/server/public/images/units/fw190.png diff --git a/client/public/images/units/general1.png b/frontend/server/public/images/units/general1.png similarity index 100% rename from client/public/images/units/general1.png rename to frontend/server/public/images/units/general1.png diff --git a/client/public/images/units/gripen.png b/frontend/server/public/images/units/gripen.png similarity index 100% rename from client/public/images/units/gripen.png rename to frontend/server/public/images/units/gripen.png diff --git a/client/public/images/units/h-6.png b/frontend/server/public/images/units/h-6.png similarity index 100% rename from client/public/images/units/h-6.png rename to frontend/server/public/images/units/h-6.png diff --git a/client/public/images/units/hawk.png b/frontend/server/public/images/units/hawk.png similarity index 100% rename from client/public/images/units/hawk.png rename to frontend/server/public/images/units/hawk.png diff --git a/client/public/images/units/helicopter1.png b/frontend/server/public/images/units/helicopter1.png similarity index 100% rename from client/public/images/units/helicopter1.png rename to frontend/server/public/images/units/helicopter1.png diff --git a/client/public/images/units/i-16.png b/frontend/server/public/images/units/i-16.png similarity index 100% rename from client/public/images/units/i-16.png rename to frontend/server/public/images/units/i-16.png diff --git a/client/public/images/units/il-76.png b/frontend/server/public/images/units/il-76.png similarity index 100% rename from client/public/images/units/il-76.png rename to frontend/server/public/images/units/il-76.png diff --git a/client/public/images/units/j-10.png b/frontend/server/public/images/units/j-10.png similarity index 100% rename from client/public/images/units/j-10.png rename to frontend/server/public/images/units/j-10.png diff --git a/client/public/images/units/j-20.png b/frontend/server/public/images/units/j-20.png similarity index 100% rename from client/public/images/units/j-20.png rename to frontend/server/public/images/units/j-20.png diff --git a/client/public/images/units/j-7.png b/frontend/server/public/images/units/j-7.png similarity index 100% rename from client/public/images/units/j-7.png rename to frontend/server/public/images/units/j-7.png diff --git a/client/public/images/units/jf-17.png b/frontend/server/public/images/units/jf-17.png similarity index 100% rename from client/public/images/units/jf-17.png rename to frontend/server/public/images/units/jf-17.png diff --git a/client/public/images/units/ju-88.png b/frontend/server/public/images/units/ju-88.png similarity index 100% rename from client/public/images/units/ju-88.png rename to frontend/server/public/images/units/ju-88.png diff --git a/client/public/images/units/ka-27.png b/frontend/server/public/images/units/ka-27.png similarity index 100% rename from client/public/images/units/ka-27.png rename to frontend/server/public/images/units/ka-27.png diff --git a/client/public/images/units/ka-50.png b/frontend/server/public/images/units/ka-50.png similarity index 100% rename from client/public/images/units/ka-50.png rename to frontend/server/public/images/units/ka-50.png diff --git a/client/public/images/units/kc-10.png b/frontend/server/public/images/units/kc-10.png similarity index 100% rename from client/public/images/units/kc-10.png rename to frontend/server/public/images/units/kc-10.png diff --git a/client/public/images/units/kc-135.png b/frontend/server/public/images/units/kc-135.png similarity index 100% rename from client/public/images/units/kc-135.png rename to frontend/server/public/images/units/kc-135.png diff --git a/client/public/images/units/l-159.png b/frontend/server/public/images/units/l-159.png similarity index 100% rename from client/public/images/units/l-159.png rename to frontend/server/public/images/units/l-159.png diff --git a/client/public/images/units/l-39.png b/frontend/server/public/images/units/l-39.png similarity index 100% rename from client/public/images/units/l-39.png rename to frontend/server/public/images/units/l-39.png diff --git a/client/public/images/units/m2000.png b/frontend/server/public/images/units/m2000.png similarity index 100% rename from client/public/images/units/m2000.png rename to frontend/server/public/images/units/m2000.png diff --git a/client/public/images/units/mb-339.png b/frontend/server/public/images/units/mb-339.png similarity index 100% rename from client/public/images/units/mb-339.png rename to frontend/server/public/images/units/mb-339.png diff --git a/client/public/images/units/mi-24.png b/frontend/server/public/images/units/mi-24.png similarity index 100% rename from client/public/images/units/mi-24.png rename to frontend/server/public/images/units/mi-24.png diff --git a/client/public/images/units/mi-26.png b/frontend/server/public/images/units/mi-26.png similarity index 100% rename from client/public/images/units/mi-26.png rename to frontend/server/public/images/units/mi-26.png diff --git a/client/public/images/units/mi-28.png b/frontend/server/public/images/units/mi-28.png similarity index 100% rename from client/public/images/units/mi-28.png rename to frontend/server/public/images/units/mi-28.png diff --git a/client/public/images/units/mi-8.png b/frontend/server/public/images/units/mi-8.png similarity index 100% rename from client/public/images/units/mi-8.png rename to frontend/server/public/images/units/mi-8.png diff --git a/client/public/images/units/mig-15.png b/frontend/server/public/images/units/mig-15.png similarity index 100% rename from client/public/images/units/mig-15.png rename to frontend/server/public/images/units/mig-15.png diff --git a/client/public/images/units/mig-19.png b/frontend/server/public/images/units/mig-19.png similarity index 100% rename from client/public/images/units/mig-19.png rename to frontend/server/public/images/units/mig-19.png diff --git a/client/public/images/units/mig-21.png b/frontend/server/public/images/units/mig-21.png similarity index 100% rename from client/public/images/units/mig-21.png rename to frontend/server/public/images/units/mig-21.png diff --git a/client/public/images/units/mig-23.png b/frontend/server/public/images/units/mig-23.png similarity index 100% rename from client/public/images/units/mig-23.png rename to frontend/server/public/images/units/mig-23.png diff --git a/client/public/images/units/mig-25.png b/frontend/server/public/images/units/mig-25.png similarity index 100% rename from client/public/images/units/mig-25.png rename to frontend/server/public/images/units/mig-25.png diff --git a/client/public/images/units/mig-29.png b/frontend/server/public/images/units/mig-29.png similarity index 100% rename from client/public/images/units/mig-29.png rename to frontend/server/public/images/units/mig-29.png diff --git a/client/public/images/units/mosquito.png b/frontend/server/public/images/units/mosquito.png similarity index 100% rename from client/public/images/units/mosquito.png rename to frontend/server/public/images/units/mosquito.png diff --git a/client/public/images/units/oh-58.png b/frontend/server/public/images/units/oh-58.png similarity index 100% rename from client/public/images/units/oh-58.png rename to frontend/server/public/images/units/oh-58.png diff --git a/client/public/images/units/p-47.png b/frontend/server/public/images/units/p-47.png similarity index 100% rename from client/public/images/units/p-47.png rename to frontend/server/public/images/units/p-47.png diff --git a/client/public/images/units/p-51.png b/frontend/server/public/images/units/p-51.png similarity index 100% rename from client/public/images/units/p-51.png rename to frontend/server/public/images/units/p-51.png diff --git a/client/public/images/units/rafale.png b/frontend/server/public/images/units/rafale.png similarity index 100% rename from client/public/images/units/rafale.png rename to frontend/server/public/images/units/rafale.png diff --git a/client/public/images/units/rq-1.png b/frontend/server/public/images/units/rq-1.png similarity index 100% rename from client/public/images/units/rq-1.png rename to frontend/server/public/images/units/rq-1.png diff --git a/client/public/images/units/rq-4.png b/frontend/server/public/images/units/rq-4.png similarity index 100% rename from client/public/images/units/rq-4.png rename to frontend/server/public/images/units/rq-4.png diff --git a/client/public/images/units/s-3.png b/frontend/server/public/images/units/s-3.png similarity index 100% rename from client/public/images/units/s-3.png rename to frontend/server/public/images/units/s-3.png diff --git a/client/public/images/units/sa-342.png b/frontend/server/public/images/units/sa-342.png similarity index 100% rename from client/public/images/units/sa-342.png rename to frontend/server/public/images/units/sa-342.png diff --git a/client/public/images/units/spitfire.png b/frontend/server/public/images/units/spitfire.png similarity index 100% rename from client/public/images/units/spitfire.png rename to frontend/server/public/images/units/spitfire.png diff --git a/client/public/images/units/su-17.png b/frontend/server/public/images/units/su-17.png similarity index 100% rename from client/public/images/units/su-17.png rename to frontend/server/public/images/units/su-17.png diff --git a/client/public/images/units/su-24.png b/frontend/server/public/images/units/su-24.png similarity index 100% rename from client/public/images/units/su-24.png rename to frontend/server/public/images/units/su-24.png diff --git a/client/public/images/units/su-25.png b/frontend/server/public/images/units/su-25.png similarity index 100% rename from client/public/images/units/su-25.png rename to frontend/server/public/images/units/su-25.png diff --git a/client/public/images/units/su-27.png b/frontend/server/public/images/units/su-27.png similarity index 100% rename from client/public/images/units/su-27.png rename to frontend/server/public/images/units/su-27.png diff --git a/client/public/images/units/su-34.png b/frontend/server/public/images/units/su-34.png similarity index 100% rename from client/public/images/units/su-34.png rename to frontend/server/public/images/units/su-34.png diff --git a/client/public/images/units/su-57.png b/frontend/server/public/images/units/su-57.png similarity index 100% rename from client/public/images/units/su-57.png rename to frontend/server/public/images/units/su-57.png diff --git a/client/public/images/units/tornado.png b/frontend/server/public/images/units/tornado.png similarity index 100% rename from client/public/images/units/tornado.png rename to frontend/server/public/images/units/tornado.png diff --git a/client/public/images/units/tu-160.png b/frontend/server/public/images/units/tu-160.png similarity index 100% rename from client/public/images/units/tu-160.png rename to frontend/server/public/images/units/tu-160.png diff --git a/client/public/images/units/tu-22.png b/frontend/server/public/images/units/tu-22.png similarity index 100% rename from client/public/images/units/tu-22.png rename to frontend/server/public/images/units/tu-22.png diff --git a/client/public/images/units/tu-95.png b/frontend/server/public/images/units/tu-95.png similarity index 100% rename from client/public/images/units/tu-95.png rename to frontend/server/public/images/units/tu-95.png diff --git a/client/public/images/units/u-28.png b/frontend/server/public/images/units/u-28.png similarity index 100% rename from client/public/images/units/u-28.png rename to frontend/server/public/images/units/u-28.png diff --git a/client/public/images/units/uh-1.png b/frontend/server/public/images/units/uh-1.png similarity index 100% rename from client/public/images/units/uh-1.png rename to frontend/server/public/images/units/uh-1.png diff --git a/client/public/images/units/uh-60.png b/frontend/server/public/images/units/uh-60.png similarity index 100% rename from client/public/images/units/uh-60.png rename to frontend/server/public/images/units/uh-60.png diff --git a/client/public/images/units/viggen.png b/frontend/server/public/images/units/viggen.png similarity index 100% rename from client/public/images/units/viggen.png rename to frontend/server/public/images/units/viggen.png diff --git a/client/public/images/units/yak-40.png b/frontend/server/public/images/units/yak-40.png similarity index 100% rename from client/public/images/units/yak-40.png rename to frontend/server/public/images/units/yak-40.png diff --git a/client/public/images/units/yak-52.png b/frontend/server/public/images/units/yak-52.png similarity index 100% rename from client/public/images/units/yak-52.png rename to frontend/server/public/images/units/yak-52.png diff --git a/frontend/server/public/javascripts/bundle.js b/frontend/server/public/javascripts/bundle.js new file mode 100644 index 00000000..ced732f0 --- /dev/null +++ b/frontend/server/public/javascripts/bundle.js @@ -0,0 +1,47843 @@ +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0) { + throw new Error('Invalid string. Length must be a multiple of 4'); + } + + // Trim off extra bytes after placeholder bytes are found + // See: https://github.com/beatgammit/base64-js/issues/42 + var validLen = b64.indexOf('='); + if (validLen === -1) validLen = len; + var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4; + return [validLen, placeHoldersLen]; +} + +// base64 is 4/3 + up to two characters of the original data +function byteLength(b64) { + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; +} +function _byteLength(b64, validLen, placeHoldersLen) { + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; +} +function toByteArray(b64) { + var tmp; + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); + var curByte = 0; + + // if there are placeholders, only get up to the last complete 4 chars + var len = placeHoldersLen > 0 ? validLen - 4 : validLen; + var i; + for (i = 0; i < len; i += 4) { + tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)]; + arr[curByte++] = tmp >> 16 & 0xFF; + arr[curByte++] = tmp >> 8 & 0xFF; + arr[curByte++] = tmp & 0xFF; + } + if (placeHoldersLen === 2) { + tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4; + arr[curByte++] = tmp & 0xFF; + } + if (placeHoldersLen === 1) { + tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2; + arr[curByte++] = tmp >> 8 & 0xFF; + arr[curByte++] = tmp & 0xFF; + } + return arr; +} +function tripletToBase64(num) { + return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]; +} +function encodeChunk(uint8, start, end) { + var tmp; + var output = []; + for (var i = start; i < end; i += 3) { + tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF); + output.push(tripletToBase64(tmp)); + } + return output.join(''); +} +function fromByteArray(uint8) { + var tmp; + var len = uint8.length; + var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes + var parts = []; + var maxChunkLength = 16383; // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength)); + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1]; + parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '=='); + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1]; + parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '='); + } + return parts.join(''); +} + +},{}],2:[function(require,module,exports){ +"use strict"; + +},{}],3:[function(require,module,exports){ +(function (Buffer){(function (){ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/* eslint-disable no-proto */ + +'use strict'; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +var base64 = require('base64-js'); +var ieee754 = require('ieee754'); +exports.Buffer = Buffer; +exports.SlowBuffer = SlowBuffer; +exports.INSPECT_MAX_BYTES = 50; +var K_MAX_LENGTH = 0x7fffffff; +exports.kMaxLength = K_MAX_LENGTH; + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Print warning and recommend using `buffer` v4.x which has an Object + * implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * We report that the browser does not support typed arrays if the are not subclassable + * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` + * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support + * for __proto__ and has a buggy typed array implementation. + */ +Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport(); +if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && typeof console.error === 'function') { + console.error('This browser lacks typed array (Uint8Array) support which is required by ' + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'); +} +function typedArraySupport() { + // Can typed array instances can be augmented? + try { + var arr = new Uint8Array(1); + arr.__proto__ = { + __proto__: Uint8Array.prototype, + foo: function foo() { + return 42; + } + }; + return arr.foo() === 42; + } catch (e) { + return false; + } +} +Object.defineProperty(Buffer.prototype, 'parent', { + enumerable: true, + get: function get() { + if (!Buffer.isBuffer(this)) return undefined; + return this.buffer; + } +}); +Object.defineProperty(Buffer.prototype, 'offset', { + enumerable: true, + get: function get() { + if (!Buffer.isBuffer(this)) return undefined; + return this.byteOffset; + } +}); +function createBuffer(length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"'); + } + // Return an augmented `Uint8Array` instance + var buf = new Uint8Array(length); + buf.__proto__ = Buffer.prototype; + return buf; +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer(arg, encodingOrOffset, length) { + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new TypeError('The "string" argument must be of type string. Received type number'); + } + return allocUnsafe(arg); + } + return from(arg, encodingOrOffset, length); +} + +// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 +if (typeof Symbol !== 'undefined' && Symbol.species != null && Buffer[Symbol.species] === Buffer) { + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true, + enumerable: false, + writable: false + }); +} +Buffer.poolSize = 8192; // not used by this implementation + +function from(value, encodingOrOffset, length) { + if (typeof value === 'string') { + return fromString(value, encodingOrOffset); + } + if (ArrayBuffer.isView(value)) { + return fromArrayLike(value); + } + if (value == null) { + throw TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + _typeof(value)); + } + if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof value === 'number') { + throw new TypeError('The "value" argument must not be of type number. Received type number'); + } + var valueOf = value.valueOf && value.valueOf(); + if (valueOf != null && valueOf !== value) { + return Buffer.from(valueOf, encodingOrOffset, length); + } + var b = fromObject(value); + if (b) return b; + if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === 'function') { + return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length); + } + throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + _typeof(value)); +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length); +}; + +// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: +// https://github.com/feross/buffer/pull/148 +Buffer.prototype.__proto__ = Uint8Array.prototype; +Buffer.__proto__ = Uint8Array; +function assertSize(size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be of type number'); + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } +} +function alloc(size, fill, encoding) { + assertSize(size); + if (size <= 0) { + return createBuffer(size); + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill); + } + return createBuffer(size); +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(size, fill, encoding); +}; +function allocUnsafe(size) { + assertSize(size); + return createBuffer(size < 0 ? 0 : checked(size) | 0); +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(size); +}; +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(size); +}; +function fromString(string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8'; + } + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding); + } + var length = byteLength(string, encoding) | 0; + var buf = createBuffer(length); + var actual = buf.write(string, encoding); + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual); + } + return buf; +} +function fromArrayLike(array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0; + var buf = createBuffer(length); + for (var i = 0; i < length; i += 1) { + buf[i] = array[i] & 255; + } + return buf; +} +function fromArrayBuffer(array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds'); + } + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds'); + } + var buf; + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array); + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset); + } else { + buf = new Uint8Array(array, byteOffset, length); + } + + // Return an augmented `Uint8Array` instance + buf.__proto__ = Buffer.prototype; + return buf; +} +function fromObject(obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0; + var buf = createBuffer(len); + if (buf.length === 0) { + return buf; + } + obj.copy(buf, 0, 0, len); + return buf; + } + if (obj.length !== undefined) { + if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { + return createBuffer(0); + } + return fromArrayLike(obj); + } + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(obj.data); + } +} +function checked(length) { + // Note: cannot use `length < K_MAX_LENGTH` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= K_MAX_LENGTH) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes'); + } + return length | 0; +} +function SlowBuffer(length) { + if (+length != length) { + // eslint-disable-line eqeqeq + length = 0; + } + return Buffer.alloc(+length); +} +Buffer.isBuffer = function isBuffer(b) { + return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false +}; +Buffer.compare = function compare(a, b) { + if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength); + if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength); + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); + } + if (a === b) return 0; + var x = a.length; + var y = b.length; + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i]; + y = b[i]; + break; + } + } + if (x < y) return -1; + if (y < x) return 1; + return 0; +}; +Buffer.isEncoding = function isEncoding(encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true; + default: + return false; + } +}; +Buffer.concat = function concat(list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } + if (list.length === 0) { + return Buffer.alloc(0); + } + var i; + if (length === undefined) { + length = 0; + for (i = 0; i < list.length; ++i) { + length += list[i].length; + } + } + var buffer = Buffer.allocUnsafe(length); + var pos = 0; + for (i = 0; i < list.length; ++i) { + var buf = list[i]; + if (isInstance(buf, Uint8Array)) { + buf = Buffer.from(buf); + } + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } + buf.copy(buffer, pos); + pos += buf.length; + } + return buffer; +}; +function byteLength(string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length; + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength; + } + if (typeof string !== 'string') { + throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + 'Received type ' + _typeof(string)); + } + var len = string.length; + var mustMatch = arguments.length > 2 && arguments[2] === true; + if (!mustMatch && len === 0) return 0; + + // Use a for loop to avoid recursion + var loweredCase = false; + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len; + case 'utf8': + case 'utf-8': + return utf8ToBytes(string).length; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2; + case 'hex': + return len >>> 1; + case 'base64': + return base64ToBytes(string).length; + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8 + } + encoding = ('' + encoding).toLowerCase(); + loweredCase = true; + } + } +} +Buffer.byteLength = byteLength; +function slowToString(encoding, start, end) { + var loweredCase = false; + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0; + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return ''; + } + if (end === undefined || end > this.length) { + end = this.length; + } + if (end <= 0) { + return ''; + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0; + start >>>= 0; + if (end <= start) { + return ''; + } + if (!encoding) encoding = 'utf8'; + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end); + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end); + case 'ascii': + return asciiSlice(this, start, end); + case 'latin1': + case 'binary': + return latin1Slice(this, start, end); + case 'base64': + return base64Slice(this, start, end); + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end); + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding); + encoding = (encoding + '').toLowerCase(); + loweredCase = true; + } + } +} + +// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) +// to detect a Buffer instance. It's not possible to use `instanceof Buffer` +// reliably in a browserify context because there could be multiple different +// copies of the 'buffer' package in use. This method works even for Buffer +// instances that were created from another copy of the `buffer` package. +// See: https://github.com/feross/buffer/issues/154 +Buffer.prototype._isBuffer = true; +function swap(b, n, m) { + var i = b[n]; + b[n] = b[m]; + b[m] = i; +} +Buffer.prototype.swap16 = function swap16() { + var len = this.length; + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits'); + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1); + } + return this; +}; +Buffer.prototype.swap32 = function swap32() { + var len = this.length; + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits'); + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3); + swap(this, i + 1, i + 2); + } + return this; +}; +Buffer.prototype.swap64 = function swap64() { + var len = this.length; + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits'); + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7); + swap(this, i + 1, i + 6); + swap(this, i + 2, i + 5); + swap(this, i + 3, i + 4); + } + return this; +}; +Buffer.prototype.toString = function toString() { + var length = this.length; + if (length === 0) return ''; + if (arguments.length === 0) return utf8Slice(this, 0, length); + return slowToString.apply(this, arguments); +}; +Buffer.prototype.toLocaleString = Buffer.prototype.toString; +Buffer.prototype.equals = function equals(b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer'); + if (this === b) return true; + return Buffer.compare(this, b) === 0; +}; +Buffer.prototype.inspect = function inspect() { + var str = ''; + var max = exports.INSPECT_MAX_BYTES; + str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim(); + if (this.length > max) str += ' ... '; + return ''; +}; +Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer.from(target, target.offset, target.byteLength); + } + if (!Buffer.isBuffer(target)) { + throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. ' + 'Received type ' + _typeof(target)); + } + if (start === undefined) { + start = 0; + } + if (end === undefined) { + end = target ? target.length : 0; + } + if (thisStart === undefined) { + thisStart = 0; + } + if (thisEnd === undefined) { + thisEnd = this.length; + } + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index'); + } + if (thisStart >= thisEnd && start >= end) { + return 0; + } + if (thisStart >= thisEnd) { + return -1; + } + if (start >= end) { + return 1; + } + start >>>= 0; + end >>>= 0; + thisStart >>>= 0; + thisEnd >>>= 0; + if (this === target) return 0; + var x = thisEnd - thisStart; + var y = end - start; + var len = Math.min(x, y); + var thisCopy = this.slice(thisStart, thisEnd); + var targetCopy = target.slice(start, end); + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i]; + y = targetCopy[i]; + break; + } + } + if (x < y) return -1; + if (y < x) return 1; + return 0; +}; + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1; + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff; + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000; + } + byteOffset = +byteOffset; // Coerce to Number. + if (numberIsNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : buffer.length - 1; + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset; + if (byteOffset >= buffer.length) { + if (dir) return -1;else byteOffset = buffer.length - 1; + } else if (byteOffset < 0) { + if (dir) byteOffset = 0;else return -1; + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding); + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1; + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir); + } else if (typeof val === 'number') { + val = val & 0xFF; // Search for a byte value [0-255] + if (typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset); + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset); + } + } + return arrayIndexOf(buffer, [val], byteOffset, encoding, dir); + } + throw new TypeError('val must be string, number or Buffer'); +} +function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + var indexSize = 1; + var arrLength = arr.length; + var valLength = val.length; + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase(); + if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1; + } + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + function read(buf, i) { + if (indexSize === 1) { + return buf[i]; + } else { + return buf.readUInt16BE(i * indexSize); + } + } + var i; + if (dir) { + var foundIndex = -1; + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i; + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize; + } else { + if (foundIndex !== -1) i -= i - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; + for (i = byteOffset; i >= 0; i--) { + var found = true; + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false; + break; + } + } + if (found) return i; + } + } + return -1; +} +Buffer.prototype.includes = function includes(val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1; +}; +Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true); +}; +Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false); +}; +function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0; + var remaining = buf.length - offset; + if (!length) { + length = remaining; + } else { + length = Number(length); + if (length > remaining) { + length = remaining; + } + } + var strLen = string.length; + if (length > strLen / 2) { + length = strLen / 2; + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16); + if (numberIsNaN(parsed)) return i; + buf[offset + i] = parsed; + } + return i; +} +function utf8Write(buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length); +} +function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length); +} +function latin1Write(buf, string, offset, length) { + return asciiWrite(buf, string, offset, length); +} +function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length); +} +function ucs2Write(buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length); +} +Buffer.prototype.write = function write(string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8'; + length = this.length; + offset = 0; + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset; + length = this.length; + offset = 0; + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset >>> 0; + if (isFinite(length)) { + length = length >>> 0; + if (encoding === undefined) encoding = 'utf8'; + } else { + encoding = length; + length = undefined; + } + } else { + throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported'); + } + var remaining = this.length - offset; + if (length === undefined || length > remaining) length = remaining; + if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds'); + } + if (!encoding) encoding = 'utf8'; + var loweredCase = false; + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length); + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length); + case 'ascii': + return asciiWrite(this, string, offset, length); + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length); + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length); + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length); + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding); + encoding = ('' + encoding).toLowerCase(); + loweredCase = true; + } + } +}; +Buffer.prototype.toJSON = function toJSON() { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + }; +}; +function base64Slice(buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf); + } else { + return base64.fromByteArray(buf.slice(start, end)); + } +} +function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end); + var res = []; + var i = start; + while (i < end) { + var firstByte = buf[i]; + var codePoint = null; + var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1; + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint; + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte; + } + break; + case 2: + secondByte = buf[i + 1]; + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F; + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint; + } + } + break; + case 3: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F; + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint; + } + } + break; + case 4: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + fourthByte = buf[i + 3]; + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F; + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint; + } + } + } + } + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD; + bytesPerSequence = 1; + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000; + res.push(codePoint >>> 10 & 0x3FF | 0xD800); + codePoint = 0xDC00 | codePoint & 0x3FF; + } + res.push(codePoint); + i += bytesPerSequence; + } + return decodeCodePointsArray(res); +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000; +function decodeCodePointsArray(codePoints) { + var len = codePoints.length; + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints); // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = ''; + var i = 0; + while (i < len) { + res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); + } + return res; +} +function asciiSlice(buf, start, end) { + var ret = ''; + end = Math.min(buf.length, end); + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F); + } + return ret; +} +function latin1Slice(buf, start, end) { + var ret = ''; + end = Math.min(buf.length, end); + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]); + } + return ret; +} +function hexSlice(buf, start, end) { + var len = buf.length; + if (!start || start < 0) start = 0; + if (!end || end < 0 || end > len) end = len; + var out = ''; + for (var i = start; i < end; ++i) { + out += toHex(buf[i]); + } + return out; +} +function utf16leSlice(buf, start, end) { + var bytes = buf.slice(start, end); + var res = ''; + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); + } + return res; +} +Buffer.prototype.slice = function slice(start, end) { + var len = this.length; + start = ~~start; + end = end === undefined ? len : ~~end; + if (start < 0) { + start += len; + if (start < 0) start = 0; + } else if (start > len) { + start = len; + } + if (end < 0) { + end += len; + if (end < 0) end = 0; + } else if (end > len) { + end = len; + } + if (end < start) end = start; + var newBuf = this.subarray(start, end); + // Return an augmented `Uint8Array` instance + newBuf.__proto__ = Buffer.prototype; + return newBuf; +}; + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset(offset, ext, length) { + if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint'); + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length'); +} +Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + var val = this[offset]; + var mul = 1; + var i = 0; + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul; + } + return val; +}; +Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) { + checkOffset(offset, byteLength, this.length); + } + var val = this[offset + --byteLength]; + var mul = 1; + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul; + } + return val; +}; +Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 1, this.length); + return this[offset]; +}; +Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + return this[offset] | this[offset + 1] << 8; +}; +Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + return this[offset] << 8 | this[offset + 1]; +}; +Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000; +}; +Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]); +}; +Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + var val = this[offset]; + var mul = 1; + var i = 0; + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul; + } + mul *= 0x80; + if (val >= mul) val -= Math.pow(2, 8 * byteLength); + return val; +}; +Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + var i = byteLength; + var mul = 1; + var val = this[offset + --i]; + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul; + } + mul *= 0x80; + if (val >= mul) val -= Math.pow(2, 8 * byteLength); + return val; +}; +Buffer.prototype.readInt8 = function readInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 1, this.length); + if (!(this[offset] & 0x80)) return this[offset]; + return (0xff - this[offset] + 1) * -1; +}; +Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + var val = this[offset] | this[offset + 1] << 8; + return val & 0x8000 ? val | 0xFFFF0000 : val; +}; +Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + var val = this[offset + 1] | this[offset] << 8; + return val & 0x8000 ? val | 0xFFFF0000 : val; +}; +Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24; +}; +Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]; +}; +Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, true, 23, 4); +}; +Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, false, 23, 4); +}; +Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, true, 52, 8); +}; +Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, false, 52, 8); +}; +function checkInt(buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance'); + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds'); + if (offset + ext > buf.length) throw new RangeError('Index out of range'); +} +Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1; + checkInt(this, value, offset, byteLength, maxBytes, 0); + } + var mul = 1; + var i = 0; + this[offset] = value & 0xFF; + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = value / mul & 0xFF; + } + return offset + byteLength; +}; +Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1; + checkInt(this, value, offset, byteLength, maxBytes, 0); + } + var i = byteLength - 1; + var mul = 1; + this[offset + i] = value & 0xFF; + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = value / mul & 0xFF; + } + return offset + byteLength; +}; +Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0); + this[offset] = value & 0xff; + return offset + 1; +}; +Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); + this[offset] = value & 0xff; + this[offset + 1] = value >>> 8; + return offset + 2; +}; +Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); + this[offset] = value >>> 8; + this[offset + 1] = value & 0xff; + return offset + 2; +}; +Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); + this[offset + 3] = value >>> 24; + this[offset + 2] = value >>> 16; + this[offset + 1] = value >>> 8; + this[offset] = value & 0xff; + return offset + 4; +}; +Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 0xff; + return offset + 4; +}; +Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1); + checkInt(this, value, offset, byteLength, limit - 1, -limit); + } + var i = 0; + var mul = 1; + var sub = 0; + this[offset] = value & 0xFF; + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 0xFF; + } + return offset + byteLength; +}; +Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1); + checkInt(this, value, offset, byteLength, limit - 1, -limit); + } + var i = byteLength - 1; + var mul = 1; + var sub = 0; + this[offset + i] = value & 0xFF; + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 0xFF; + } + return offset + byteLength; +}; +Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80); + if (value < 0) value = 0xff + value + 1; + this[offset] = value & 0xff; + return offset + 1; +}; +Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); + this[offset] = value & 0xff; + this[offset + 1] = value >>> 8; + return offset + 2; +}; +Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); + this[offset] = value >>> 8; + this[offset + 1] = value & 0xff; + return offset + 2; +}; +Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); + this[offset] = value & 0xff; + this[offset + 1] = value >>> 8; + this[offset + 2] = value >>> 16; + this[offset + 3] = value >>> 24; + return offset + 4; +}; +Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); + if (value < 0) value = 0xffffffff + value + 1; + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 0xff; + return offset + 4; +}; +function checkIEEE754(buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range'); + if (offset < 0) throw new RangeError('Index out of range'); +} +function writeFloat(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38); + } + ieee754.write(buf, value, offset, littleEndian, 23, 4); + return offset + 4; +} +Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert); +}; +Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert); +}; +function writeDouble(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308); + } + ieee754.write(buf, value, offset, littleEndian, 52, 8); + return offset + 8; +} +Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert); +}; +Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert); +}; + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy(target, targetStart, start, end) { + if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer'); + if (!start) start = 0; + if (!end && end !== 0) end = this.length; + if (targetStart >= target.length) targetStart = target.length; + if (!targetStart) targetStart = 0; + if (end > 0 && end < start) end = start; + + // Copy 0 bytes; we're done + if (end === start) return 0; + if (target.length === 0 || this.length === 0) return 0; + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds'); + } + if (start < 0 || start >= this.length) throw new RangeError('Index out of range'); + if (end < 0) throw new RangeError('sourceEnd out of bounds'); + + // Are we oob? + if (end > this.length) end = this.length; + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + var len = end - start; + if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { + // Use built-in when available, missing from IE11 + this.copyWithin(targetStart, start, end); + } else if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (var i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start]; + } + } else { + Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart); + } + return len; +}; + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill(val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === 'string') { + encoding = end; + end = this.length; + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string'); + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding); + } + if (val.length === 1) { + var code = val.charCodeAt(0); + if (encoding === 'utf8' && code < 128 || encoding === 'latin1') { + // Fast path: If `val` fits into a single byte, use that numeric value. + val = code; + } + } + } else if (typeof val === 'number') { + val = val & 255; + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index'); + } + if (end <= start) { + return this; + } + start = start >>> 0; + end = end === undefined ? this.length : end >>> 0; + if (!val) val = 0; + var i; + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val; + } + } else { + var bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding); + var len = bytes.length; + if (len === 0) { + throw new TypeError('The value "' + val + '" is invalid for argument "value"'); + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len]; + } + } + return this; +}; + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g; +function base64clean(str) { + // Node takes equal signs as end of the Base64 encoding + str = str.split('=')[0]; + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = str.trim().replace(INVALID_BASE64_RE, ''); + // Node converts strings with length < 2 to '' + if (str.length < 2) return ''; + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '='; + } + return str; +} +function toHex(n) { + if (n < 16) return '0' + n.toString(16); + return n.toString(16); +} +function utf8ToBytes(string, units) { + units = units || Infinity; + var codePoint; + var length = string.length; + var leadSurrogate = null; + var bytes = []; + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + continue; + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + continue; + } + + // valid lead + leadSurrogate = codePoint; + continue; + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + leadSurrogate = codePoint; + continue; + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000; + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + } + leadSurrogate = null; + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break; + bytes.push(codePoint); + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break; + bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80); + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break; + bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80); + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break; + bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80); + } else { + throw new Error('Invalid code point'); + } + } + return bytes; +} +function asciiToBytes(str) { + var byteArray = []; + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF); + } + return byteArray; +} +function utf16leToBytes(str, units) { + var c, hi, lo; + var byteArray = []; + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break; + c = str.charCodeAt(i); + hi = c >> 8; + lo = c % 256; + byteArray.push(lo); + byteArray.push(hi); + } + return byteArray; +} +function base64ToBytes(str) { + return base64.toByteArray(base64clean(str)); +} +function blitBuffer(src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) break; + dst[i + offset] = src[i]; + } + return i; +} + +// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass +// the `instanceof` check but they should be treated as of that type. +// See: https://github.com/feross/buffer/issues/166 +function isInstance(obj, type) { + return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name; +} +function numberIsNaN(obj) { + // For IE11 support + return obj !== obj; // eslint-disable-line no-self-compare +} + +}).call(this)}).call(this,require("buffer").Buffer) + +},{"base64-js":1,"buffer":3,"ieee754":4}],4:[function(require,module,exports){ +"use strict"; + +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i = isLE ? nBytes - 1 : 0; + var d = isLE ? -1 : 1; + var s = buffer[offset + i]; + i += d; + e = s & (1 << -nBits) - 1; + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); +}; +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; + var i = isLE ? 0 : nBytes - 1; + var d = isLE ? 1 : -1; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + value = Math.abs(value); + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + buffer[offset + i - d] |= s * 128; +}; + +},{}],5:[function(require,module,exports){ +(function (process){(function (){ +// 'path' module extracted from Node.js v8.11.1 (only the posix part) +// transplited with Babel + +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function assertPath(path) { + if (typeof path !== 'string') { + throw new TypeError('Path must be a string. Received ' + JSON.stringify(path)); + } +} + +// Resolves . and .. elements in a path with directory names +function normalizeStringPosix(path, allowAboveRoot) { + var res = ''; + var lastSegmentLength = 0; + var lastSlash = -1; + var dots = 0; + var code; + for (var i = 0; i <= path.length; ++i) { + if (i < path.length) code = path.charCodeAt(i);else if (code === 47 /*/*/) break;else code = 47 /*/*/; + if (code === 47 /*/*/) { + if (lastSlash === i - 1 || dots === 1) { + // NOOP + } else if (lastSlash !== i - 1 && dots === 2) { + if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) { + if (res.length > 2) { + var lastSlashIndex = res.lastIndexOf('/'); + if (lastSlashIndex !== res.length - 1) { + if (lastSlashIndex === -1) { + res = ''; + lastSegmentLength = 0; + } else { + res = res.slice(0, lastSlashIndex); + lastSegmentLength = res.length - 1 - res.lastIndexOf('/'); + } + lastSlash = i; + dots = 0; + continue; + } + } else if (res.length === 2 || res.length === 1) { + res = ''; + lastSegmentLength = 0; + lastSlash = i; + dots = 0; + continue; + } + } + if (allowAboveRoot) { + if (res.length > 0) res += '/..';else res = '..'; + lastSegmentLength = 2; + } + } else { + if (res.length > 0) res += '/' + path.slice(lastSlash + 1, i);else res = path.slice(lastSlash + 1, i); + lastSegmentLength = i - lastSlash - 1; + } + lastSlash = i; + dots = 0; + } else if (code === 46 /*.*/ && dots !== -1) { + ++dots; + } else { + dots = -1; + } + } + return res; +} +function _format(sep, pathObject) { + var dir = pathObject.dir || pathObject.root; + var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || ''); + if (!dir) { + return base; + } + if (dir === pathObject.root) { + return dir + base; + } + return dir + sep + base; +} +var posix = { + // path.resolve([from ...], to) + resolve: function resolve() { + var resolvedPath = ''; + var resolvedAbsolute = false; + var cwd; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path; + if (i >= 0) path = arguments[i];else { + if (cwd === undefined) cwd = process.cwd(); + path = cwd; + } + assertPath(path); + + // Skip empty entries + if (path.length === 0) { + continue; + } + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/; + } + + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + + // Normalize the path + resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute); + if (resolvedAbsolute) { + if (resolvedPath.length > 0) return '/' + resolvedPath;else return '/'; + } else if (resolvedPath.length > 0) { + return resolvedPath; + } else { + return '.'; + } + }, + normalize: function normalize(path) { + assertPath(path); + if (path.length === 0) return '.'; + var isAbsolute = path.charCodeAt(0) === 47 /*/*/; + var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/; + + // Normalize the path + path = normalizeStringPosix(path, !isAbsolute); + if (path.length === 0 && !isAbsolute) path = '.'; + if (path.length > 0 && trailingSeparator) path += '/'; + if (isAbsolute) return '/' + path; + return path; + }, + isAbsolute: function isAbsolute(path) { + assertPath(path); + return path.length > 0 && path.charCodeAt(0) === 47 /*/*/; + }, + join: function join() { + if (arguments.length === 0) return '.'; + var joined; + for (var i = 0; i < arguments.length; ++i) { + var arg = arguments[i]; + assertPath(arg); + if (arg.length > 0) { + if (joined === undefined) joined = arg;else joined += '/' + arg; + } + } + if (joined === undefined) return '.'; + return posix.normalize(joined); + }, + relative: function relative(from, to) { + assertPath(from); + assertPath(to); + if (from === to) return ''; + from = posix.resolve(from); + to = posix.resolve(to); + if (from === to) return ''; + + // Trim any leading backslashes + var fromStart = 1; + for (; fromStart < from.length; ++fromStart) { + if (from.charCodeAt(fromStart) !== 47 /*/*/) break; + } + var fromEnd = from.length; + var fromLen = fromEnd - fromStart; + + // Trim any leading backslashes + var toStart = 1; + for (; toStart < to.length; ++toStart) { + if (to.charCodeAt(toStart) !== 47 /*/*/) break; + } + var toEnd = to.length; + var toLen = toEnd - toStart; + + // Compare paths to find the longest common path from root + var length = fromLen < toLen ? fromLen : toLen; + var lastCommonSep = -1; + var i = 0; + for (; i <= length; ++i) { + if (i === length) { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === 47 /*/*/) { + // We get here if `from` is the exact base path for `to`. + // For example: from='/foo/bar'; to='/foo/bar/baz' + return to.slice(toStart + i + 1); + } else if (i === 0) { + // We get here if `from` is the root + // For example: from='/'; to='/foo' + return to.slice(toStart + i); + } + } else if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === 47 /*/*/) { + // We get here if `to` is the exact base path for `from`. + // For example: from='/foo/bar/baz'; to='/foo/bar' + lastCommonSep = i; + } else if (i === 0) { + // We get here if `to` is the root. + // For example: from='/foo'; to='/' + lastCommonSep = 0; + } + } + break; + } + var fromCode = from.charCodeAt(fromStart + i); + var toCode = to.charCodeAt(toStart + i); + if (fromCode !== toCode) break;else if (fromCode === 47 /*/*/) lastCommonSep = i; + } + var out = ''; + // Generate the relative path based on the path difference between `to` + // and `from` + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) { + if (out.length === 0) out += '..';else out += '/..'; + } + } + + // Lastly, append the rest of the destination (`to`) path that comes after + // the common path parts + if (out.length > 0) return out + to.slice(toStart + lastCommonSep);else { + toStart += lastCommonSep; + if (to.charCodeAt(toStart) === 47 /*/*/) ++toStart; + return to.slice(toStart); + } + }, + _makeLong: function _makeLong(path) { + return path; + }, + dirname: function dirname(path) { + assertPath(path); + if (path.length === 0) return '.'; + var code = path.charCodeAt(0); + var hasRoot = code === 47 /*/*/; + var end = -1; + var matchedSlash = true; + for (var i = path.length - 1; i >= 1; --i) { + code = path.charCodeAt(i); + if (code === 47 /*/*/) { + if (!matchedSlash) { + end = i; + break; + } + } else { + // We saw the first non-path separator + matchedSlash = false; + } + } + if (end === -1) return hasRoot ? '/' : '.'; + if (hasRoot && end === 1) return '//'; + return path.slice(0, end); + }, + basename: function basename(path, ext) { + if (ext !== undefined && typeof ext !== 'string') throw new TypeError('"ext" argument must be a string'); + assertPath(path); + var start = 0; + var end = -1; + var matchedSlash = true; + var i; + if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { + if (ext.length === path.length && ext === path) return ''; + var extIdx = ext.length - 1; + var firstNonSlashEnd = -1; + for (i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i); + if (code === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } else { + if (firstNonSlashEnd === -1) { + // We saw the first non-path separator, remember this index in case + // we need it if the extension ends up not matching + matchedSlash = false; + firstNonSlashEnd = i + 1; + } + if (extIdx >= 0) { + // Try to match the explicit extension + if (code === ext.charCodeAt(extIdx)) { + if (--extIdx === -1) { + // We matched the extension, so mark this as the end of our path + // component + end = i; + } + } else { + // Extension does not match, so our result is the entire path + // component + extIdx = -1; + end = firstNonSlashEnd; + } + } + } + } + if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length; + return path.slice(start, end); + } else { + for (i = path.length - 1; i >= 0; --i) { + if (path.charCodeAt(i) === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } + if (end === -1) return ''; + return path.slice(start, end); + } + }, + extname: function extname(path) { + assertPath(path); + var startDot = -1; + var startPart = 0; + var end = -1; + var matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + var preDotState = 0; + for (var i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i); + if (code === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === 46 /*.*/) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1; + } else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (startDot === -1 || end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { + return ''; + } + return path.slice(startDot, end); + }, + format: function format(pathObject) { + if (pathObject === null || _typeof(pathObject) !== 'object') { + throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + _typeof(pathObject)); + } + return _format('/', pathObject); + }, + parse: function parse(path) { + assertPath(path); + var ret = { + root: '', + dir: '', + base: '', + ext: '', + name: '' + }; + if (path.length === 0) return ret; + var code = path.charCodeAt(0); + var isAbsolute = code === 47 /*/*/; + var start; + if (isAbsolute) { + ret.root = '/'; + start = 1; + } else { + start = 0; + } + var startDot = -1; + var startPart = 0; + var end = -1; + var matchedSlash = true; + var i = path.length - 1; + + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + var preDotState = 0; + + // Get non-dir info + for (; i >= start; --i) { + code = path.charCodeAt(i); + if (code === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === 46 /*.*/) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1; + } else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (startDot === -1 || end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { + if (end !== -1) { + if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end); + } + } else { + if (startPart === 0 && isAbsolute) { + ret.name = path.slice(1, startDot); + ret.base = path.slice(1, end); + } else { + ret.name = path.slice(startPart, startDot); + ret.base = path.slice(startPart, end); + } + ret.ext = path.slice(startDot, end); + } + if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/'; + return ret; + }, + sep: '/', + delimiter: ':', + win32: null, + posix: null +}; +posix.posix = posix; +module.exports = posix; + +}).call(this)}).call(this,require('_process')) + +},{"_process":6}],6:[function(require,module,exports){ +"use strict"; + +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout() { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +})(); +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch (e) { + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch (e) { + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e) { + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e) { + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + var len = queue.length; + while (len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; +function noop() {} +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; +process.listeners = function (name) { + return []; +}; +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; +process.cwd = function () { + return '/'; +}; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function () { + return 0; +}; + +},{}],7:[function(require,module,exports){ +(function (process){(function (){ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./svg-injector.cjs.production.js'); +} else { + module.exports = require('./svg-injector.cjs.development.js'); +} + +}).call(this)}).call(this,require('_process')) + +},{"./svg-injector.cjs.development.js":8,"./svg-injector.cjs.production.js":9,"_process":6}],8:[function(require,module,exports){ +'use strict'; + +var tslib = require('tslib'); +var contentType = require('content-type'); +var cache = new Map(); +var cloneSvg = function cloneSvg(sourceSvg) { + return sourceSvg.cloneNode(true); +}; +var isLocal = function isLocal() { + return window.location.protocol === 'file:'; +}; +var makeAjaxRequest = function makeAjaxRequest(url, httpRequestWithCredentials, callback) { + var httpRequest = new XMLHttpRequest(); + httpRequest.onreadystatechange = function () { + try { + if (!/\.svg/i.test(url) && httpRequest.readyState === 2) { + var contentType$1 = httpRequest.getResponseHeader('Content-Type'); + if (!contentType$1) { + throw new Error('Content type not found'); + } + var type = contentType.parse(contentType$1).type; + if (!(type === 'image/svg+xml' || type === 'text/plain')) { + throw new Error("Invalid content type: ".concat(type)); + } + } + if (httpRequest.readyState === 4) { + if (httpRequest.status === 404 || httpRequest.responseXML === null) { + throw new Error(isLocal() ? 'Note: SVG injection ajax calls do not work locally without ' + 'adjusting security settings in your browser. Or consider ' + 'using a local webserver.' : 'Unable to load SVG file: ' + url); + } + if (httpRequest.status === 200 || isLocal() && httpRequest.status === 0) { + callback(null, httpRequest); + } else { + throw new Error('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText); + } + } + } catch (error) { + httpRequest.abort(); + if (error instanceof Error) { + callback(error, httpRequest); + } else { + throw error; + } + } + }; + httpRequest.open('GET', url); + httpRequest.withCredentials = httpRequestWithCredentials; + if (httpRequest.overrideMimeType) { + httpRequest.overrideMimeType('text/xml'); + } + httpRequest.send(); +}; +var requestQueue = {}; +var queueRequest = function queueRequest(url, callback) { + requestQueue[url] = requestQueue[url] || []; + requestQueue[url].push(callback); +}; +var processRequestQueue = function processRequestQueue(url) { + var _loop_1 = function _loop_1(i, len) { + setTimeout(function () { + if (Array.isArray(requestQueue[url])) { + var cacheValue = cache.get(url); + var callback = requestQueue[url][i]; + if (cacheValue instanceof SVGSVGElement) { + callback(null, cloneSvg(cacheValue)); + } + if (cacheValue instanceof Error) { + callback(cacheValue); + } + if (i === requestQueue[url].length - 1) { + delete requestQueue[url]; + } + } + }, 0); + }; + for (var i = 0, len = requestQueue[url].length; i < len; i++) { + _loop_1(i); + } +}; +var loadSvgCached = function loadSvgCached(url, httpRequestWithCredentials, callback) { + if (cache.has(url)) { + var cacheValue = cache.get(url); + if (cacheValue === undefined) { + queueRequest(url, callback); + return; + } + if (cacheValue instanceof SVGSVGElement) { + callback(null, cloneSvg(cacheValue)); + return; + } + } + cache.set(url, undefined); + queueRequest(url, callback); + makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) { + var _a; + if (error) { + cache.set(url, error); + } else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) { + cache.set(url, httpRequest.responseXML.documentElement); + } + processRequestQueue(url); + }); +}; +var loadSvgUncached = function loadSvgUncached(url, httpRequestWithCredentials, callback) { + makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) { + var _a; + if (error) { + callback(error); + } else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) { + callback(null, httpRequest.responseXML.documentElement); + } + }); +}; +var idCounter = 0; +var uniqueId = function uniqueId() { + return ++idCounter; +}; +var injectedElements = []; +var ranScripts = {}; +var svgNamespace = 'http://www.w3.org/2000/svg'; +var xlinkNamespace = 'http://www.w3.org/1999/xlink'; +var injectElement = function injectElement(el, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, callback) { + var elUrl = el.getAttribute('data-src') || el.getAttribute('src'); + if (!elUrl) { + callback(new Error('Invalid data-src or src attribute')); + return; + } + if (injectedElements.indexOf(el) !== -1) { + injectedElements.splice(injectedElements.indexOf(el), 1); + el = null; + return; + } + injectedElements.push(el); + el.setAttribute('src', ''); + var loadSvg = cacheRequests ? loadSvgCached : loadSvgUncached; + loadSvg(elUrl, httpRequestWithCredentials, function (error, svg) { + if (!svg) { + injectedElements.splice(injectedElements.indexOf(el), 1); + el = null; + callback(error); + return; + } + var elId = el.getAttribute('id'); + if (elId) { + svg.setAttribute('id', elId); + } + var elTitle = el.getAttribute('title'); + if (elTitle) { + svg.setAttribute('title', elTitle); + } + var elWidth = el.getAttribute('width'); + if (elWidth) { + svg.setAttribute('width', elWidth); + } + var elHeight = el.getAttribute('height'); + if (elHeight) { + svg.setAttribute('height', elHeight); + } + var mergedClasses = Array.from(new Set(tslib.__spreadArray(tslib.__spreadArray(tslib.__spreadArray([], (svg.getAttribute('class') || '').split(' '), true), ['injected-svg'], false), (el.getAttribute('class') || '').split(' '), true))).join(' ').trim(); + svg.setAttribute('class', mergedClasses); + var elStyle = el.getAttribute('style'); + if (elStyle) { + svg.setAttribute('style', elStyle); + } + svg.setAttribute('data-src', elUrl); + var elData = [].filter.call(el.attributes, function (at) { + return /^data-\w[\w-]*$/.test(at.name); + }); + Array.prototype.forEach.call(elData, function (dataAttr) { + if (dataAttr.name && dataAttr.value) { + svg.setAttribute(dataAttr.name, dataAttr.value); + } + }); + if (renumerateIRIElements) { + var iriElementsAndProperties_1 = { + clipPath: ['clip-path'], + 'color-profile': ['color-profile'], + cursor: ['cursor'], + filter: ['filter'], + linearGradient: ['fill', 'stroke'], + marker: ['marker', 'marker-start', 'marker-mid', 'marker-end'], + mask: ['mask'], + path: [], + pattern: ['fill', 'stroke'], + radialGradient: ['fill', 'stroke'] + }; + var element_1; + var elements_1; + var properties_1; + var currentId_1; + var newId_1; + Object.keys(iriElementsAndProperties_1).forEach(function (key) { + element_1 = key; + properties_1 = iriElementsAndProperties_1[key]; + elements_1 = svg.querySelectorAll(element_1 + '[id]'); + var _loop_1 = function _loop_1(a, elementsLen) { + currentId_1 = elements_1[a].id; + newId_1 = currentId_1 + '-' + uniqueId(); + var referencingElements; + Array.prototype.forEach.call(properties_1, function (property) { + referencingElements = svg.querySelectorAll('[' + property + '*="' + currentId_1 + '"]'); + for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) { + var attrValue = referencingElements[b].getAttribute(property); + if (attrValue && !attrValue.match(new RegExp('url\\("?#' + currentId_1 + '"?\\)'))) { + continue; + } + referencingElements[b].setAttribute(property, 'url(#' + newId_1 + ')'); + } + }); + var allLinks = svg.querySelectorAll('[*|href]'); + var links = []; + for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) { + var href = allLinks[c].getAttributeNS(xlinkNamespace, 'href'); + if (href && href.toString() === '#' + elements_1[a].id) { + links.push(allLinks[c]); + } + } + for (var d = 0, linksLen = links.length; d < linksLen; d++) { + links[d].setAttributeNS(xlinkNamespace, 'href', '#' + newId_1); + } + elements_1[a].id = newId_1; + }; + for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) { + _loop_1(a); + } + }); + } + svg.removeAttribute('xmlns:a'); + var scripts = svg.querySelectorAll('script'); + var scriptsToEval = []; + var script; + var scriptType; + for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) { + scriptType = scripts[i].getAttribute('type'); + if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript' || scriptType === 'text/javascript') { + script = scripts[i].innerText || scripts[i].textContent; + if (script) { + scriptsToEval.push(script); + } + svg.removeChild(scripts[i]); + } + } + if (scriptsToEval.length > 0 && (evalScripts === 'always' || evalScripts === 'once' && !ranScripts[elUrl])) { + for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) { + new Function(scriptsToEval[l])(window); + } + ranScripts[elUrl] = true; + } + var styleTags = svg.querySelectorAll('style'); + Array.prototype.forEach.call(styleTags, function (styleTag) { + styleTag.textContent += ''; + }); + svg.setAttribute('xmlns', svgNamespace); + svg.setAttribute('xmlns:xlink', xlinkNamespace); + beforeEach(svg); + if (!el.parentNode) { + injectedElements.splice(injectedElements.indexOf(el), 1); + el = null; + callback(new Error('Parent node is null')); + return; + } + el.parentNode.replaceChild(svg, el); + injectedElements.splice(injectedElements.indexOf(el), 1); + el = null; + callback(null, svg); + }); +}; +var SVGInjector = function SVGInjector(elements, _a) { + var _b = _a === void 0 ? {} : _a, + _c = _b.afterAll, + afterAll = _c === void 0 ? function () { + return undefined; + } : _c, + _d = _b.afterEach, + afterEach = _d === void 0 ? function () { + return undefined; + } : _d, + _e = _b.beforeEach, + beforeEach = _e === void 0 ? function () { + return undefined; + } : _e, + _f = _b.cacheRequests, + cacheRequests = _f === void 0 ? true : _f, + _g = _b.evalScripts, + evalScripts = _g === void 0 ? 'never' : _g, + _h = _b.httpRequestWithCredentials, + httpRequestWithCredentials = _h === void 0 ? false : _h, + _j = _b.renumerateIRIElements, + renumerateIRIElements = _j === void 0 ? true : _j; + if (elements && 'length' in elements) { + var elementsLoaded_1 = 0; + for (var i = 0, j = elements.length; i < j; i++) { + injectElement(elements[i], evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) { + afterEach(error, svg); + if (elements && 'length' in elements && elements.length === ++elementsLoaded_1) { + afterAll(elementsLoaded_1); + } + }); + } + } else if (elements) { + injectElement(elements, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) { + afterEach(error, svg); + afterAll(1); + elements = null; + }); + } else { + afterAll(0); + } +}; +exports.SVGInjector = SVGInjector; + +},{"content-type":74,"tslib":84}],9:[function(require,module,exports){ +"use strict"; + +var tslib = require("tslib"), + contentType = require("content-type"), + cache = new Map(), + cloneSvg = function cloneSvg(e) { + return e.cloneNode(!0); + }, + isLocal = function isLocal() { + return "file:" === window.location.protocol; + }, + makeAjaxRequest = function makeAjaxRequest(e, t, r) { + var n = new XMLHttpRequest(); + n.onreadystatechange = function () { + try { + if (!/\.svg/i.test(e) && 2 === n.readyState) { + var t = n.getResponseHeader("Content-Type"); + if (!t) throw new Error("Content type not found"); + var i = contentType.parse(t).type; + if ("image/svg+xml" !== i && "text/plain" !== i) throw new Error("Invalid content type: ".concat(i)); + } + if (4 === n.readyState) { + if (404 === n.status || null === n.responseXML) throw new Error(isLocal() ? "Note: SVG injection ajax calls do not work locally without adjusting security settings in your browser. Or consider using a local webserver." : "Unable to load SVG file: " + e); + if (!(200 === n.status || isLocal() && 0 === n.status)) throw new Error("There was a problem injecting the SVG: " + n.status + " " + n.statusText); + r(null, n); + } + } catch (e) { + if (n.abort(), !(e instanceof Error)) throw e; + r(e, n); + } + }, n.open("GET", e), n.withCredentials = t, n.overrideMimeType && n.overrideMimeType("text/xml"), n.send(); + }, + requestQueue = {}, + queueRequest = function queueRequest(e, t) { + requestQueue[e] = requestQueue[e] || [], requestQueue[e].push(t); + }, + processRequestQueue = function processRequestQueue(e) { + for (var t = function t(_t, r) { + setTimeout(function () { + if (Array.isArray(requestQueue[e])) { + var r = cache.get(e), + n = requestQueue[e][_t]; + r instanceof SVGSVGElement && n(null, cloneSvg(r)), r instanceof Error && n(r), _t === requestQueue[e].length - 1 && delete requestQueue[e]; + } + }, 0); + }, r = 0, n = requestQueue[e].length; r < n; r++) t(r); + }, + loadSvgCached = function loadSvgCached(e, t, r) { + if (cache.has(e)) { + var n = cache.get(e); + if (void 0 === n) return void queueRequest(e, r); + if (n instanceof SVGSVGElement) return void r(null, cloneSvg(n)); + } + cache.set(e, void 0), queueRequest(e, r), makeAjaxRequest(e, t, function (t, r) { + var n; + t ? cache.set(e, t) : (null === (n = r.responseXML) || void 0 === n ? void 0 : n.documentElement) instanceof SVGSVGElement && cache.set(e, r.responseXML.documentElement), processRequestQueue(e); + }); + }, + loadSvgUncached = function loadSvgUncached(e, t, r) { + makeAjaxRequest(e, t, function (e, t) { + var n; + e ? r(e) : (null === (n = t.responseXML) || void 0 === n ? void 0 : n.documentElement) instanceof SVGSVGElement && r(null, t.responseXML.documentElement); + }); + }, + idCounter = 0, + uniqueId = function uniqueId() { + return ++idCounter; + }, + injectedElements = [], + ranScripts = {}, + svgNamespace = "http://www.w3.org/2000/svg", + xlinkNamespace = "http://www.w3.org/1999/xlink", + injectElement = function injectElement(e, t, r, n, i, a, o) { + var l = e.getAttribute("data-src") || e.getAttribute("src"); + if (l) { + if (-1 !== injectedElements.indexOf(e)) return injectedElements.splice(injectedElements.indexOf(e), 1), void (e = null); + injectedElements.push(e), e.setAttribute("src", ""), (n ? loadSvgCached : loadSvgUncached)(l, i, function (n, i) { + if (!i) return injectedElements.splice(injectedElements.indexOf(e), 1), e = null, void o(n); + var s = e.getAttribute("id"); + s && i.setAttribute("id", s); + var u = e.getAttribute("title"); + u && i.setAttribute("title", u); + var c = e.getAttribute("width"); + c && i.setAttribute("width", c); + var d = e.getAttribute("height"); + d && i.setAttribute("height", d); + var f = Array.from(new Set(tslib.__spreadArray(tslib.__spreadArray(tslib.__spreadArray([], (i.getAttribute("class") || "").split(" "), !0), ["injected-svg"], !1), (e.getAttribute("class") || "").split(" "), !0))).join(" ").trim(); + i.setAttribute("class", f); + var p = e.getAttribute("style"); + p && i.setAttribute("style", p), i.setAttribute("data-src", l); + var v = [].filter.call(e.attributes, function (e) { + return /^data-\w[\w-]*$/.test(e.name); + }); + if (Array.prototype.forEach.call(v, function (e) { + e.name && e.value && i.setAttribute(e.name, e.value); + }), r) { + var h, + m, + g, + A, + b = { + clipPath: ["clip-path"], + "color-profile": ["color-profile"], + cursor: ["cursor"], + filter: ["filter"], + linearGradient: ["fill", "stroke"], + marker: ["marker", "marker-start", "marker-mid", "marker-end"], + mask: ["mask"], + path: [], + pattern: ["fill", "stroke"], + radialGradient: ["fill", "stroke"] + }; + Object.keys(b).forEach(function (e) { + m = b[e]; + for (var t = function t(e, _t2) { + var r; + A = (g = h[e].id) + "-" + uniqueId(), Array.prototype.forEach.call(m, function (e) { + for (var t = 0, n = (r = i.querySelectorAll("[" + e + '*="' + g + '"]')).length; t < n; t++) { + var a = r[t].getAttribute(e); + a && !a.match(new RegExp('url\\("?#' + g + '"?\\)')) || r[t].setAttribute(e, "url(#" + A + ")"); + } + }); + for (var n = i.querySelectorAll("[*|href]"), a = [], o = 0, l = n.length; o < l; o++) { + var s = n[o].getAttributeNS(xlinkNamespace, "href"); + s && s.toString() === "#" + h[e].id && a.push(n[o]); + } + for (var u = 0, c = a.length; u < c; u++) a[u].setAttributeNS(xlinkNamespace, "href", "#" + A); + h[e].id = A; + }, r = 0, n = (h = i.querySelectorAll(e + "[id]")).length; r < n; r++) t(r); + }); + } + i.removeAttribute("xmlns:a"); + for (var w, y, E = i.querySelectorAll("script"), S = [], q = 0, j = E.length; q < j; q++) (y = E[q].getAttribute("type")) && "application/ecmascript" !== y && "application/javascript" !== y && "text/javascript" !== y || ((w = E[q].innerText || E[q].textContent) && S.push(w), i.removeChild(E[q])); + if (S.length > 0 && ("always" === t || "once" === t && !ranScripts[l])) { + for (var x = 0, k = S.length; x < k; x++) new Function(S[x])(window); + ranScripts[l] = !0; + } + var G = i.querySelectorAll("style"); + if (Array.prototype.forEach.call(G, function (e) { + e.textContent += ""; + }), i.setAttribute("xmlns", svgNamespace), i.setAttribute("xmlns:xlink", xlinkNamespace), a(i), !e.parentNode) return injectedElements.splice(injectedElements.indexOf(e), 1), e = null, void o(new Error("Parent node is null")); + e.parentNode.replaceChild(i, e), injectedElements.splice(injectedElements.indexOf(e), 1), e = null, o(null, i); + }); + } else o(new Error("Invalid data-src or src attribute")); + }, + SVGInjector = function SVGInjector(e, t) { + var r = void 0 === t ? {} : t, + n = r.afterAll, + i = void 0 === n ? function () {} : n, + a = r.afterEach, + o = void 0 === a ? function () {} : a, + l = r.beforeEach, + s = void 0 === l ? function () {} : l, + u = r.cacheRequests, + c = void 0 === u || u, + d = r.evalScripts, + f = void 0 === d ? "never" : d, + p = r.httpRequestWithCredentials, + v = void 0 !== p && p, + h = r.renumerateIRIElements, + m = void 0 === h || h; + if (e && "length" in e) for (var g = 0, A = 0, b = e.length; A < b; A++) injectElement(e[A], f, m, c, v, s, function (t, r) { + o(t, r), e && "length" in e && e.length === ++g && i(g); + });else e ? injectElement(e, f, m, c, v, s, function (t, r) { + o(t, r), i(1), e = null; + }) : i(0); + }; +exports.SVGInjector = SVGInjector; + +},{"content-type":74,"tslib":84}],10:[function(require,module,exports){ +(function (process){(function (){ +"use strict";function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}!function(t,e){"object"==(typeof exports==="undefined"?"undefined":_typeof(exports))&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).turf={});}(void 0,function(t){"use strict";var e=6371008.8,n={centimeters:637100880,centimetres:637100880,degrees:57.22891354143274,feet:20902260.511392,inches:39.37*e,kilometers:6371.0088,kilometres:6371.0088,meters:e,metres:e,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:e/1852,radians:1,yards:6967335.223679999},r={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/e,yards:1.0936133},i={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046};function o(t,e,n){void 0===n&&(n={});var r={type:"Feature"};return(0===n.id||n.id)&&(r.id=n.id),n.bbox&&(r.bbox=n.bbox),r.properties=e||{},r.geometry=t,r;}function s(t,e,n){switch(t){case"Point":return a(e).geometry;case"LineString":return h(e).geometry;case"Polygon":return l(e).geometry;case"MultiPoint":return d(e).geometry;case"MultiLineString":return g(e).geometry;case"MultiPolygon":return y(e).geometry;default:throw new Error(t+" is invalid");}}function a(t,e,n){if(void 0===n&&(n={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!C(t[0])||!C(t[1]))throw new Error("coordinates must contain numbers");return o({type:"Point",coordinates:t},e,n);}function u(t,e,n){return void 0===n&&(n={}),f(t.map(function(t){return a(t,e);}),n);}function l(t,e,n){void 0===n&&(n={});for(var r=0,i=t;r=0))throw new Error("precision must be a positive number");var n=Math.pow(10,e||0);return Math.round(t*n)/n;}function m(t,e){void 0===e&&(e="kilometers");var r=n[e];if(!r)throw new Error(e+" units is invalid");return t*r;}function x(t,e){void 0===e&&(e="kilometers");var r=n[e];if(!r)throw new Error(e+" units is invalid");return t/r;}function E(t,e){return w(x(t,e));}function b(t){var e=t%360;return e<0&&(e+=360),e;}function w(t){return 180*(t%(2*Math.PI))/Math.PI;}function I(t){return t%360*Math.PI/180;}function N(t,e,n){if(void 0===e&&(e="kilometers"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("length must be a positive number");return m(x(t,e),n);}function S(t,e,n){if(void 0===e&&(e="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var r=i[e];if(!r)throw new Error("invalid original units");var o=i[n];if(!o)throw new Error("invalid final units");return t/r*o;}function C(t){return!isNaN(t)&&null!==t&&!Array.isArray(t);}function P(t){return!!t&&t.constructor===Object;}function M(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach(function(t){if(!C(t))throw new Error("bbox must only contain numbers");});}function L(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(_typeof(t)))throw new Error("id must be a number or a string");}var O=Object.freeze({__proto__:null,earthRadius:e,factors:n,unitsFactors:r,areaFactors:i,feature:o,geometry:s,point:a,points:u,polygon:l,polygons:c,lineString:h,lineStrings:p,featureCollection:f,multiLineString:g,multiPoint:d,multiPolygon:y,geometryCollection:v,round:_,radiansToLength:m,lengthToRadians:x,lengthToDegrees:E,bearingToAzimuth:b,radiansToDegrees:w,degreesToRadians:I,convertLength:N,convertArea:S,isNumber:C,isObject:P,validateBBox:M,validateId:L});function R(t,e,n){if(null!==t)for(var r,i,o,s,a,u,l,c,h=0,p=0,f=t.type,g="FeatureCollection"===f,d="Feature"===f,y=g?t.features.length:1,v=0;va||f>u||g>l)return s=o,a=n,u=f,l=g,void(i=0);var d=h([s,o],t.properties);if(!1===e(d,n,r,g,i))return!1;i++,s=o;})&&void 0;}}});}function V(t,e,n){var r=n,i=!1;return U(t,function(t,o,s,a,u){r=!1===i&&void 0===n?t:e(r,t,o,s,a,u),i=!0;}),r;}function X(t,e){if(!t)throw new Error("geojson is required");z(t,function(t,n,r){if(null!==t.geometry){var i=t.geometry.type,o=t.geometry.coordinates;switch(i){case"LineString":if(!1===e(t,n,r,0,0))return!1;break;case"Polygon":for(var s=0;st[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers");}function Q(t){if(Array.isArray(t))return t;if("Feature"===t.type){if(null!==t.geometry)return t.geometry.coordinates;}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array");}function $(t){if(t.length>1&&C(t[0])&&C(t[1]))return!0;if(Array.isArray(t[0])&&t[0].length)return $(t[0]);throw new Error("coordinates must only contain numbers");}function tt(t,e,n){if(!e||!n)throw new Error("type and name required");if(!t||t.type!==e)throw new Error("Invalid input to "+n+": must be a "+e+", given "+t.type);}function et(t,e,n){if(!t)throw new Error("No feature passed");if(!n)throw new Error(".featureOf() requires a name");if(!t||"Feature"!==t.type||!t.geometry)throw new Error("Invalid input to "+n+", Feature with geometry required");if(!t.geometry||t.geometry.type!==e)throw new Error("Invalid input to "+n+": must be a "+e+", given "+t.geometry.type);}function nt(t,e,n){if(!t)throw new Error("No featureCollection passed");if(!n)throw new Error(".collectionOf() requires a name");if(!t||"FeatureCollection"!==t.type)throw new Error("Invalid input to "+n+", FeatureCollection required");for(var r=0,i=t.features;r + * v. 1.2.0 + * https://github.com/RaumZeit/MarchingSquares.js + * + * MarchingSquaresJS is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * MarchingSquaresJS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * As additional permission under GNU Affero General Public License version 3 + * section 7, third-party projects (personal or commercial) may distribute, + * include, or link against UNMODIFIED VERSIONS of MarchingSquaresJS without the + * requirement that said third-party project for that reason alone becomes + * subject to any requirement of the GNU Affero General Public License version 3. + * Any modifications to MarchingSquaresJS, however, must be shared with the public + * and made available. + * + * In summary this: + * - allows you to use MarchingSquaresJS at no cost + * - allows you to use MarchingSquaresJS for both personal and commercial purposes + * - allows you to distribute UNMODIFIED VERSIONS of MarchingSquaresJS under any + * license as long as this license notice is included + * - enables you to keep the source code of your program that uses MarchingSquaresJS + * undisclosed + * - forces you to share any modifications you have made to MarchingSquaresJS, + * e.g. bug-fixes + * + * You should have received a copy of the GNU Affero General Public License + * along with MarchingSquaresJS. If not, see . + */function ft(t,e,n){n=n||{};for(var r=Object.keys(ht),i=0;i=0&&y>=0&&y=0;h--)if(Math.abs(e[h][0][0]-l)<=r&&Math.abs(e[h][0][1]-c)<=r){for(var p=a.path.length-2;p>=0;--p)e[h].unshift(a.path[p]);u=!0;break;}u||(e[n++]=a.path);}var f;});}),e;}(function(t,e){for(var n=t.length-1,r=t[0].length-1,i={rows:n,cols:r,cells:[]},o=0;o=e?8:0,a|=l>=e?4:0,a|=c>=e?2:0;var p,f,g,d,y=!1;if(5===(a|=h>=e?1:0)||10===a){var v=(u+l+c+h)/4;5===a&&vn;){if(r-n>600){var o=r-n+1,s=e-n+1,a=Math.log(o),u=.5*Math.exp(2*a/3),l=.5*Math.sqrt(a*u*(o-u)/o)*(s-o/2<0?-1:1);bt(t,e,Math.max(n,Math.floor(e-s*u/o+l)),Math.min(r,Math.floor(e+(o-s)*u/o+l)),i);}var c=t[e],h=n,p=r;for(wt(t,n,e),i(t[r],c)>0&&wt(t,n,r);h0;)p--;}0===i(t[n],c)?wt(t,n,p):wt(t,++p,r),p<=e&&(n=p+1),e<=p&&(r=p-1);}}function wt(t,e,n){var r=t[e];t[e]=t[n],t[n]=r;}function It(t,e){return te?1:0;}mt["default"]=xt;var Nt=Ct,St=Ct;function Ct(t,e){if(!(this instanceof Ct))return new Ct(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear();}function Pt(t,e,n){if(!n)return e.indexOf(t);for(var r=0;r=t.minX&&e.maxY>=t.minY;}function Gt(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};}function qt(t,e,n,r,i){for(var o,s=[e,n];s.length;)(n=s.pop())-(e=s.pop())<=r||(o=e+Math.ceil((n-e)/r/2)*r,mt(t,o,e,n,i),s.push(e,o,o,n));}function Bt(t){var e={exports:{}};return t(e,e.exports),e.exports;}Ct.prototype={all:function all(){return this._all(this.data,[]);},search:function search(t){var e=this.data,n=[],r=this.toBBox;if(!kt(t,e))return n;for(var i,o,s,a,u=[];e;){for(i=0,o=e.children.length;i=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(i,o,e);},_split:function _split(t,e){var n=t[e],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);var o=this._chooseSplitIndex(n,i,r),s=Gt(n.children.splice(o,n.children.length-o));s.height=n.height,s.leaf=n.leaf,Mt(n,this.toBBox),Mt(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(n,s);},_splitRoot:function _splitRoot(t,e){this.data=Gt([t,e]),this.data.height=t.height+1,this.data.leaf=!1,Mt(this.data,this.toBBox);},_chooseSplitIndex:function _chooseSplitIndex(t,e,n){var r,i,o,s,a,u,l,c,h,p,f,g,d,y;for(u=l=1/0,r=e;r<=n-e;r++)i=Lt(t,0,r,this.toBBox),o=Lt(t,r,n,this.toBBox),h=i,p=o,f=void 0,g=void 0,d=void 0,y=void 0,f=Math.max(h.minX,p.minX),g=Math.max(h.minY,p.minY),d=Math.min(h.maxX,p.maxX),y=Math.min(h.maxY,p.maxY),s=Math.max(0,d-f)*Math.max(0,y-g),a=At(i)+At(o),s=e;i--)o=t.children[i],Ot(u,t.leaf?s(o):o),l+=Dt(u);return l;},_adjustParentBBoxes:function _adjustParentBBoxes(t,e,n){for(var r=n;r>=0;r--)Ot(e[r],t);},_condense:function _condense(t){for(var e,n=t.length-1;n>=0;n--)0===t[n].children.length?n>0?(e=t[n-1].children).splice(e.indexOf(t[n]),1):this.clear():Mt(t[n],this.toBBox);},_initFormat:function _initFormat(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};");}},Nt["default"]=St;var zt=function zt(t,e,n){var r=t*e,i=jt*t,o=i-(i-t),s=t-o,a=jt*e,u=a-(a-e),l=e-u,c=s*l-(r-o*u-s*u-o*l);if(n)return n[0]=c,n[1]=r,n;return[c,r];},jt=+(Math.pow(2,27)+1);var Ut=function Ut(t,e){var n=0|t.length,r=0|e.length;if(1===n&&1===r)return function(t,e){var n=t+e,r=n-t,i=t-(n-r)+(e-r);if(i)return[i,n];return[n];}(t[0],e[0]);var i,o,s=new Array(n+r),a=0,u=0,l=0,c=Math.abs,h=t[u],p=c(h),f=e[l],g=c(f);p=r?(i=h,(u+=1)=r?(i=h,(u+=1)>1;return["sum(",n(t.slice(0,e)),",",n(t.slice(e)),")"].join("");}function r(t){if(2===t.length)return[["sum(prod(",t[0][0],",",t[1][1],"),prod(-",t[0][1],",",t[1][0],"))"].join("")];for(var i=[],o=0;o0){if(s<=0)return a;r=i+s;}else{if(!(i<0))return a;if(s>=0)return a;r=-(i+s);}var u=33306690738754716e-32*r;return a>=u||a<=-u?a:o(t,e,n);},function(t,e,n,r){var i=t[0]-r[0],o=e[0]-r[0],a=n[0]-r[0],u=t[1]-r[1],l=e[1]-r[1],c=n[1]-r[1],h=t[2]-r[2],p=e[2]-r[2],f=n[2]-r[2],g=o*c,d=a*l,y=a*u,v=i*c,_=i*l,m=o*u,x=h*(g-d)+p*(y-v)+f*(_-m),E=7771561172376103e-31*((Math.abs(g)+Math.abs(d))*Math.abs(h)+(Math.abs(y)+Math.abs(v))*Math.abs(p)+(Math.abs(_)+Math.abs(m))*Math.abs(f));return x>E||-x>E?x:s(t,e,n,r);}];function u(t){var e=a[t.length];return e||(e=a[t.length]=i(t.length)),e.apply(void 0,t);}!function(){for(;a.length<=5;)a.push(i(a.length));for(var e=[],n=["slow"],r=0;r<=5;++r)e.push("a"+r),n.push("o"+r);var o=["function getOrientation(",e.join(),"){switch(arguments.length){case 0:case 1:return 0;"];for(r=2;r<=5;++r)o.push("case ",r,":return o",r,"(",e.slice(0,r).join(),");");o.push("}var s=new Array(arguments.length);for(var i=0;i1&&Jt(t[o[l-2]],t[o[l-1]],u)<=0;)l-=1,o.pop();for(o.push(a),l=s.length;l>1&&Jt(t[s[l-2]],t[s[l-1]],u)>=0;)l-=1,s.pop();s.push(a);}n=new Array(s.length+o.length-2);for(var c=0,h=(r=0,o.length);r0;--p)n[c++]=s[p];return n;},Jt=Ht[3];var Zt=Qt,Kt=Qt;function Qt(t,e){if(!(this instanceof Qt))return new Qt(t,e);if(this.data=t||[],this.length=this.data.length,this.compare=e||$t,this.length>0)for(var n=(this.length>>1)-1;n>=0;n--)this._down(n);}function $t(t,e){return te?1:0;}Qt.prototype={push:function push(t){this.data.push(t),this.length++,this._up(this.length-1);},pop:function pop(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),t;}},peek:function peek(){return this.data[0];},_up:function _up(t){for(var e=this.data,n=this.compare,r=e[t];t>0;){var i=t-1>>1,o=e[i];if(n(r,o)>=0)break;e[t]=o,t=i;}e[t]=r;},_down:function _down(t){for(var e=this.data,n=this.compare,r=this.length>>1,i=e[t];t=0)break;e[t]=a,t=o;}e[t]=i;}},Zt["default"]=Kt;var te=function te(t,e){for(var n=t[0],r=t[1],i=!1,o=0,s=e.length-1;or!=c>r&&n<(l-a)*(r-u)/(c-u)+a&&(i=!i);}return i;},ee=Ht[3],ne=ie,re=ie;function ie(t,e,n){e=Math.max(0,void 0===e?2:e),n=n||0;for(var r,i=function(t){for(var e=t[0],n=t[0],r=t[0],i=t[0],o=0;or[0]&&(r=s),s[1]i[1]&&(i=s);}var a=[e,n,r,i],u=a.slice();for(o=0;oo||a.push({node:c,dist:h});}for(;a.length&&!a.peek().node.children;){var p=a.pop(),f=p.node,g=fe(f,e,n),d=fe(f,r,i);if(p.dist=e.minX&&t[0]<=e.maxX&&t[1]>=e.minY&&t[1]<=e.maxY;}function le(t,e,n){for(var r,i,o,s,a=Math.min(t[0],e[0]),u=Math.min(t[1],e[1]),l=Math.max(t[0],e[0]),c=Math.max(t[1],e[1]),h=n.search({minX:a,minY:u,maxX:l,maxY:c}),p=0;p0!=ee(r,i,s)>0&&ee(o,s,r)>0!=ee(o,s,i)>0)return!1;return!0;}function ce(t){var e=t.p,n=t.next.p;return t.minX=Math.min(e[0],n[0]),t.minY=Math.min(e[1],n[1]),t.maxX=Math.max(e[0],n[0]),t.maxY=Math.max(e[1],n[1]),t;}function he(t,e){var n={p:t,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return e?(n.next=e.next,n.prev=e,e.next.prev=n,e.next=n):(n.prev=n,n.next=n),n;}function pe(t,e){var n=t[0]-e[0],r=t[1]-e[1];return n*n+r*r;}function fe(t,e,n){var r=e[0],i=e[1],o=n[0]-r,s=n[1]-i;if(0!==o||0!==s){var a=((t[0]-r)*o+(t[1]-i)*s)/(o*o+s*s);a>1?(r=n[0],i=n[1]):a>0&&(r+=o*a,i+=s*a);}return(o=t[0]-r)*o+(s=t[1]-i)*s;}function ge(t,e,n,r,i,o,s,a){var u,l,c,h,p=n-t,f=r-e,g=s-i,d=a-o,y=t-i,v=e-o,_=p*p+f*f,m=p*g+f*d,x=g*g+d*d,E=p*y+f*v,b=g*y+d*v,w=_*x-m*m,I=w,N=w;0===w?(l=0,I=1,h=b,N=x):(h=_*b-m*E,(l=m*b-x*E)<0?(l=0,h=b,N=x):l>I&&(l=I,h=b+m,N=x)),h<0?(h=0,-E<0?l=0:-E>_?l=I:(l=-E,I=_)):h>N&&(h=N,-E+m<0?l=0:-E+m>_?l=I:(l=-E+m,I=_));var S=(1-(c=0===h?0:h/N))*i+c*s-((1-(u=0===l?0:l/I))*t+u*n),C=(1-c)*o+c*a-((1-u)*e+u*r);return S*S+C*C;}function de(t,e){void 0===e&&(e={}),e.concavity=e.concavity||1/0;var n=[];if(R(t,function(t){n.push([t[0],t[1]]);}),!n.length)return null;var r=ne(n,e.concavity);return r.length>3?l([r]):null;}function ye(t,e,n){if(void 0===n&&(n={}),!t)throw new Error("point is required");if(!e)throw new Error("polygon is required");var r=K(t),i=rt(e),o=i.type,s=e.bbox,a=i.coordinates;if(s&&!1===function(t,e){return e[0]<=t[0]&&e[1]<=t[1]&&e[2]>=t[0]&&e[3]>=t[1];}(r,s))return!1;"Polygon"===o&&(a=[a]);for(var u=!1,l=0;lt[1]!=l>t[1]&&t[0]<(u-s)*(t[1]-a)/(l-a)+s&&(r=!r);}return r;}function _e(t,e){var n=[];return F(t,function(t){var r=!1;if("Point"===t.geometry.type)q(e,function(e){ye(t,e)&&(r=!0);}),r&&n.push(t);else{if("MultiPoint"!==t.geometry.type)throw new Error("Input geometry must be a Point or MultiPoint");var i=[];q(e,function(e){R(t,function(t){ye(t,e)&&(r=!0,i.push(t));});}),r&&n.push(d(i));}}),f(n);}function me(t,e,n){void 0===n&&(n={});var r=K(t),i=K(e),o=I(i[1]-r[1]),s=I(i[0]-r[0]),a=I(r[1]),u=I(i[1]),l=Math.pow(Math.sin(o/2),2)+Math.pow(Math.sin(s/2),2)*Math.cos(a)*Math.cos(u);return m(2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l)),n.units);}function xe(t,e){var n=!1;return f(function(t){if(t.length<3)return[];t.sort(be);var e,n,r,i,o,s,a=t.length-1,u=t[a].x,l=t[0].x,c=t[a].y,h=c,p=1e-12;for(;a--;)t[a].yh&&(h=t[a].y);var f,g=l-u,d=h-c,y=g>d?g:d,v=.5*(l+u),_=.5*(h+c),m=[new Ee({__sentinel:!0,x:v-20*y,y:_-y},{__sentinel:!0,x:v,y:_+20*y},{__sentinel:!0,x:v+20*y,y:_-y})],x=[],E=[];a=t.length;for(;a--;){for(E.length=0,f=m.length;f--;)(g=t[a].x-m[f].x)>0&&g*g>m[f].r?(x.push(m[f]),m.splice(f,1)):g*g+(d=t[a].y-m[f].y)*d>m[f].r||(E.push(m[f].a,m[f].b,m[f].b,m[f].c,m[f].c,m[f].a),m.splice(f,1));for(we(E),f=E.length;f;)n=E[--f],e=E[--f],r=t[a],i=n.x-e.x,o=n.y-e.y,s=2*(i*(r.y-n.y)-o*(r.x-n.x)),Math.abs(s)>p&&m.push(new Ee(e,n,r));}Array.prototype.push.apply(x,m),a=x.length;for(;a--;)(x[a].a.__sentinel||x[a].b.__sentinel||x[a].c.__sentinel)&&x.splice(a,1);return x;}(t.features.map(function(t){var r={x:t.geometry.coordinates[0],y:t.geometry.coordinates[1]};return e?r.z=t.properties[e]:3===t.geometry.coordinates.length&&(n=!0,r.z=t.geometry.coordinates[2]),r;})).map(function(t){var e=[t.a.x,t.a.y],r=[t.b.x,t.b.y],i=[t.c.x,t.c.y],o={};return n?(e.push(t.a.z),r.push(t.b.z),i.push(t.c.z)):o={a:t.a.z,b:t.b.z,c:t.c.z},l([[e,r,i,e]],o);}));}ne["default"]=re;var Ee=function Ee(t,e,n){this.a=t,this.b=e,this.c=n;var r,i,o=e.x-t.x,s=e.y-t.y,a=n.x-t.x,u=n.y-t.y,l=o*(t.x+e.x)+s*(t.y+e.y),c=a*(t.x+n.x)+u*(t.y+n.y),h=2*(o*(n.y-e.y)-s*(n.x-e.x));this.x=(u*l-s*c)/h,this.y=(o*c-a*l)/h,r=this.x-t.x,i=this.y-t.y,this.r=r*r+i*i;};function be(t,e){return e.x-t.x;}function we(t){var e,n,r,i,o,s=t.length;t:for(;s;)for(n=t[--s],e=t[--s],r=s;r;)if(o=t[--r],e===(i=t[--r])&&n===o||e===o&&n===i){t.splice(s,2),t.splice(r,2),s-=2;continue t;}}function Ie(t){if(!t)throw new Error("geojson is required");switch(t.type){case"Feature":return Ne(t);case"FeatureCollection":return function(t){var e={type:"FeatureCollection"};return Object.keys(t).forEach(function(n){switch(n){case"type":case"features":return;default:e[n]=t[n];}}),e.features=t.features.map(function(t){return Ne(t);}),e;}(t);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return Ce(t);default:throw new Error("unknown GeoJSON type");}}function Ne(t){var e={type:"Feature"};return Object.keys(t).forEach(function(n){switch(n){case"type":case"properties":case"geometry":return;default:e[n]=t[n];}}),e.properties=Se(t.properties),e.geometry=Ce(t.geometry),e;}function Se(t){var e={};return t?(Object.keys(t).forEach(function(n){var r=t[n];"object"==_typeof(r)?null===r?e[n]=null:Array.isArray(r)?e[n]=r.map(function(t){return t;}):e[n]=Se(r):e[n]=r;}),e):e;}function Ce(t){var e={type:t.type};return t.bbox&&(e.bbox=t.bbox),"GeometryCollection"===t.type?(e.geometries=t.geometries.map(function(t){return Ce(t);}),e):(e.coordinates=Pe(t.coordinates),e);}function Pe(t){var e=t;return"object"!=_typeof(e[0])?e.slice():e.map(function(t){return Pe(t);});}function Me(t,e){if(void 0===e&&(e={}),!P(e=e||{}))throw new Error("options is invalid");var n=e.mutate;if("FeatureCollection"!==it(t))throw new Error("geojson must be a FeatureCollection");if(!t.features.length)throw new Error("geojson is empty");!1!==n&&void 0!==n||(t=Ie(t));var r=[],i=Y(t,function(t,e){var n=function(t,e){var n,r=t.geometry.coordinates,i=e.geometry.coordinates,o=Le(r[0]),s=Le(r[r.length-1]),a=Le(i[0]),u=Le(i[i.length-1]);if(o===u)n=i.concat(r.slice(1));else if(a===s)n=r.concat(i.slice(1));else if(o===a)n=r.slice(1).reverse().concat(i);else{if(s!==u)return null;n=r.concat(i.reverse().slice(1));}return h(n);}(t,e);return n||(r.push(t),e);});return i&&r.push(i),r.length?1===r.length?r[0]:g(r.map(function(t){return t.coordinates;})):null;}function Le(t){return t[0].toString()+","+t[1].toString();}function Oe(t){return t;}function Re(t,e){var n=function(t){if(null==t)return Oe;var e,n,r=t.scale[0],i=t.scale[1],o=t.translate[0],s=t.translate[1];return function(t,a){a||(e=n=0);var u=2,l=t.length,c=new Array(l);for(c[0]=(e+=t[0])*r+o,c[1]=(n+=t[1])*i+s;u1)for(var o,a,u=1,l=s(i[0]);ul&&(a=i[0],i[0]=i[u],i[u]=a,l=o);return i;}).filter(function(t){return t.length>0;})};}var De=Object.prototype.hasOwnProperty;function Fe(t,e,n,r,i,o){3===arguments.length&&(r=o=Array,i=null);for(var s=new r(t=1<=t)throw new Error("full hashmap");c=s[l=l+1&u];}return s[l]=r,a[l]=o,o;}function h(r,o){for(var l=e(r)&u,c=s[l],h=0;c!=i;){if(n(c,r))return a[l];if(++h>=t)throw new Error("full hashmap");c=s[l=l+1&u];}return s[l]=r,a[l]=o,o;}function p(r,o){for(var l=e(r)&u,c=s[l],h=0;c!=i;){if(n(c,r))return a[l];if(++h>=t)break;c=s[l=l+1&u];}return o;}function f(){for(var t=[],e=0,n=s.length;e>7^Be[2]^Be[3]);}function je(t){var e,n,r,i,o=t.coordinates,s=t.lines,a=t.rings,u=function(){for(var t=Fe(1.4*o.length,E,b,Int32Array,-1,Int32Array),e=new Int32Array(o.length),n=0,r=o.length;n=0){var o=h[n];i===e&&o===r||i===r&&o===e||(++f,p[n]=1);}else c[n]=e,h[n]=r;}}function E(t){return ze(o[t]);}function b(t,e){return ke(o[t],o[e]);}l=c=h=null;var w,I=function(t,e,n,r,i){3===arguments.length&&(r=Array,i=null);for(var o=new r(t=1<=t)throw new Error("full hashset");u=o[a=a+1&s];}return o[a]=r,!0;}function l(r){for(var a=e(r)&s,u=o[a],l=0;u!=i;){if(n(u,r))return!0;if(++l>=t)break;u=o[a=a+1&s];}return!1;}function c(){for(var t=[],e=0,n=o.length;e>1);er&&(r=o),si&&(i=s);}function u(t){t.forEach(a);}function l(t){t.forEach(u);}for(var c in t)o(t[c]);return r>=e&&i>=n?[e,n,r,i]:void 0;}(t=Xe(t)),r=e>0&&n&&function(t,e,n){var r=e[0],i=e[1],o=e[2],s=e[3],a=o-r?(n-1)/(o-r):1,u=s-i?(n-1)/(s-i):1;function l(t){return[Math.round((t[0]-r)*a),Math.round((t[1]-i)*u)];}function c(t,e){for(var n,o,s,l,c,h=-1,p=0,f=t.length,g=new Array(f);++h2&&rn(n[i-3],n[i-1],n[i-2])&&n.splice(n.length-2,1));}if(n.push(e[e.length-1]),i=n.length,nn(e[0],e[e.length-1])&&i<4)throw new Error("invalid polygon");return rn(n[i-3],n[i-1],n[i-2])&&n.splice(n.length-2,1),n;}function nn(t,e){return t[0]===e[0]&&t[1]===e[1];}function rn(t,e,n){var r=n[0],i=n[1],o=t[0],s=t[1],a=e[0],u=e[1],l=a-o,c=u-s;return 0===(r-o)*c-(i-s)*l&&(Math.abs(l)>=Math.abs(c)?l>0?o<=r&&r<=a:a<=r&&r<=o:c>0?s<=i&&i<=u:u<=i&&i<=s);}function on(t,e,n){var r=e.x,i=e.y,o=n.x-r,s=n.y-i;if(0!==o||0!==s){var a=((t.x-r)*o+(t.y-i)*s)/(o*o+s*s);a>1?(r=n.x,i=n.y):a>0&&(r+=o*a,i+=s*a);}return(o=t.x-r)*o+(s=t.y-i)*s;}function sn(t,e,n,r,i){for(var o,s=r,a=e+1;as&&(o=a,s=u);}s>r&&(o-e>1&&sn(t,e,o,r,i),i.push(t[o]),n-o>1&&sn(t,o,n,r,i));}function an(t,e){var n=t.length-1,r=[t[0]];return sn(t,0,n,e,r),r.push(t[n]),r;}function un(t,e,n){if(t.length<=2)return t;var r=void 0!==e?e*e:1;return t=an(t=n?t:function(t,e){for(var n,r,i,o,s,a=t[0],u=[a],l=1,c=t.length;le&&(u.push(n),a=n);return a!==n&&u.push(n),u;}(t,r),r);}function ln(t,e,n){return un(t.map(function(t){return{x:t[0],y:t[1],z:t[2]};}),e,n).map(function(t){return t.z?[t.x,t.y,t.z]:[t.x,t.y];});}function cn(t,e,n){return t.map(function(t){var r=t.map(function(t){return{x:t[0],y:t[1]};});if(r.length<4)throw new Error("invalid polygon");for(var i=un(r,e,n).map(function(t){return[t.x,t.y];});!hn(i);)i=un(r,e-=.01*e,n).map(function(t){return[t.x,t.y];});return i[i.length-1][0]===i[0][0]&&i[i.length-1][1]===i[0][1]||i.push(i[0]),i;});}function hn(t){return!(t.length<3)&&!(3===t.length&&t[2][0]===t[0][0]&&t[2][1]===t[0][1]);}var pn=function(){function t(t){this.points=t.points||[],this.duration=t.duration||1e4,this.sharpness=t.sharpness||.85,this.centers=[],this.controls=[],this.stepLength=t.stepLength||60,this.length=this.points.length,this.delay=0;for(var e=0;et&&(e.push(r),n=i);}return e;},t.prototype.vector=function(t){var e=this.pos(t+10),n=this.pos(t-10);return{angle:180*Math.atan2(e.y-n.y,e.x-n.x)/3.14,speed:Math.sqrt((n.x-e.x)*(n.x-e.x)+(n.y-e.y)*(n.y-e.y)+(n.z-e.z)*(n.z-e.z))};},t.prototype.pos=function(t){var e=t-this.delay;e<0&&(e=0),e>this.duration&&(e=this.duration-1);var n=e/this.duration;if(n>=1)return this.points[this.length-1];var r=Math.floor((this.points.length-1)*n);return function(t,e,n,r,i){var o=function(t){var e=t*t;return[e*t,3*e*(1-t),3*t*(1-t)*(1-t),(1-t)*(1-t)*(1-t)];}(t);return{x:i.x*o[0]+r.x*o[1]+n.x*o[2]+e.x*o[3],y:i.y*o[0]+r.y*o[1]+n.y*o[2]+e.y*o[3],z:i.z*o[0]+r.z*o[1]+n.z*o[2]+e.z*o[3]};}((this.length-1)*n-r,this.points[r],this.controls[r][1],this.controls[r+1][0],this.points[r+1]);},t;}();function fn(t,e){void 0===e&&(e={});for(var n=e.resolution||1e4,r=e.sharpness||.85,i=[],o=rt(t).coordinates.map(function(t){return{x:t[0],y:t[1]};}),s=new pn({duration:n,points:o,sharpness:r}),a=function a(t){var e=s.pos(t);Math.floor(t/100)%2==0&&i.push([e.x,e.y]);},u=0;u=me(t.slice(0,2),[e,i])){var o=(n+i)/2;return[e,o-(r-e)/2,r,o+(r-e)/2];}var s=(e+r)/2;return[s-(i-n)/2,n,s+(i-n)/2,i];}function vn(t,e,n,r){void 0===r&&(r={});var i=K(t),o=I(i[0]),s=I(i[1]),u=I(n),l=x(e,r.units),c=Math.asin(Math.sin(s)*Math.cos(l)+Math.cos(s)*Math.sin(l)*Math.cos(u));return a([w(o+Math.atan2(Math.sin(u)*Math.sin(l)*Math.cos(s),Math.cos(l)-Math.sin(s)*Math.sin(c))),w(c)],r.properties);}function _n(t,e,n){void 0===n&&(n={});for(var r=n.steps||64,i=n.properties?n.properties:!Array.isArray(t)&&"Feature"===t.type&&t.properties?t.properties:{},o=[],s=0;s80*n){r=o=t[0],i=s=t[1];for(var g=n;go&&(o=a),u>s&&(s=u);l=0!==(l=Math.max(o-r,s-i))?1/l:0;}return Pn(p,f,n,r,i,l),f;}function Sn(t,e,n,r,i){var o,s;if(i===Hn(t,e,n,r)>0)for(o=e;o=e;o-=r)s=Vn(o,t[o],t[o+1],s);return s&&Bn(s,s.next)&&(Xn(s),s=s.next),s;}function Cn(t,e){if(!t)return t;e||(e=t);var n,r=t;do{if(n=!1,r.steiner||!Bn(r,r.next)&&0!==qn(r.prev,r,r.next))r=r.next;else{if(Xn(r),(r=e=r.prev)===r.next)break;n=!0;}}while(n||r!==e);return e;}function Pn(t,e,n,r,i,o,s){if(t){!s&&o&&function(t,e,n,r){var i=t;do{null===i.z&&(i.z=Dn(i.x,i.y,e,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,n,r,i,o,s,a,u,l=1;do{for(n=t,t=null,o=null,s=0;n;){for(s++,r=n,a=0,e=0;e0||u>0&&r;)0!==a&&(0===u||!r||n.z<=r.z)?(i=n,n=n.nextZ,a--):(i=r,r=r.nextZ,u--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;n=r;}o.nextZ=null,l*=2;}while(s>1);}(i);}(t,r,i,o);for(var a,u,l=t;t.prev!==t.next;)if(a=t.prev,u=t.next,o?Ln(t,r,i,o):Mn(t))e.push(a.i/n),e.push(t.i/n),e.push(u.i/n),Xn(t),t=u.next,l=u.next;else if((t=u)===l){s?1===s?Pn(t=On(t,e,n),e,n,r,i,o,2):2===s&&Rn(t,e,n,r,i,o):Pn(Cn(t),e,n,r,i,o,1);break;}}}function Mn(t){var e=t.prev,n=t,r=t.next;if(qn(e,n,r)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(kn(e.x,e.y,n.x,n.y,r.x,r.y,i.x,i.y)&&qn(i.prev,i,i.next)>=0)return!1;i=i.next;}return!0;}function Ln(t,e,n,r){var i=t.prev,o=t,s=t.next;if(qn(i,o,s)>=0)return!1;for(var a=i.xo.x?i.x>s.x?i.x:s.x:o.x>s.x?o.x:s.x,c=i.y>o.y?i.y>s.y?i.y:s.y:o.y>s.y?o.y:s.y,h=Dn(a,u,e,n,r),p=Dn(l,c,e,n,r),f=t.prevZ,g=t.nextZ;f&&f.z>=h&&g&&g.z<=p;){if(f!==t.prev&&f!==t.next&&kn(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&qn(f.prev,f,f.next)>=0)return!1;if(f=f.prevZ,g!==t.prev&&g!==t.next&&kn(i.x,i.y,o.x,o.y,s.x,s.y,g.x,g.y)&&qn(g.prev,g,g.next)>=0)return!1;g=g.nextZ;}for(;f&&f.z>=h;){if(f!==t.prev&&f!==t.next&&kn(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&qn(f.prev,f,f.next)>=0)return!1;f=f.prevZ;}for(;g&&g.z<=p;){if(g!==t.prev&&g!==t.next&&kn(i.x,i.y,o.x,o.y,s.x,s.y,g.x,g.y)&&qn(g.prev,g,g.next)>=0)return!1;g=g.nextZ;}return!0;}function On(t,e,n){var r=t;do{var i=r.prev,o=r.next.next;!Bn(i,o)&&zn(i,r,r.next,o)&&jn(i,o)&&jn(o,i)&&(e.push(i.i/n),e.push(r.i/n),e.push(o.i/n),Xn(r),Xn(r.next),r=t=o),r=r.next;}while(r!==t);return r;}function Rn(t,e,n,r,i,o){var s=t;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&Gn(s,a)){var u=Un(s,a);return s=Cn(s,s.next),u=Cn(u,u.next),Pn(s,e,n,r,i,o),void Pn(u,e,n,r,i,o);}a=a.next;}s=s.next;}while(s!==t);}function Tn(t,e){return t.x-e.x;}function An(t,e){if(e=function(t,e){var n,r=e,i=t.x,o=t.y,s=-1/0;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){var a=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=i&&a>s){if(s=a,a===i){if(o===r.y)return r;if(o===r.next.y)return r.next;}n=r.x=r.x&&r.x>=c&&i!==r.x&&kn(on.x)&&jn(r,t)&&(n=r,p=u),r=r.next;return n;}(t,e)){var n=Un(e,t);Cn(n,n.next);}}function Dn(t,e,n,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-r)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1;}function Fn(t){var e=t,n=t;do{e.x=0&&(t-s)*(r-a)-(n-s)*(e-a)>=0&&(n-s)*(o-a)-(i-s)*(r-a)>=0;}function Gn(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&zn(n,n.next,t,e))return!0;n=n.next;}while(n!==t);return!1;}(t,e)&&jn(t,e)&&jn(e,t)&&function(t,e){var n=t,r=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next;}while(n!==t);return r;}(t,e);}function qn(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y);}function Bn(t,e){return t.x===e.x&&t.y===e.y;}function zn(t,e,n,r){return!!(Bn(t,e)&&Bn(n,r)||Bn(t,r)&&Bn(n,e))||qn(t,e,n)>0!=qn(t,e,r)>0&&qn(n,r,t)>0!=qn(n,r,e)>0;}function jn(t,e){return qn(t.prev,t,t.next)<0?qn(t,e,t.next)>=0&&qn(t,t.prev,e)>=0:qn(t,e,t.prev)<0||qn(t,t.next,e)<0;}function Un(t,e){var n=new Yn(t.i,t.x,t.y),r=new Yn(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r;}function Vn(t,e,n,r){var i=new Yn(t,e,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i;}function Xn(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ);}function Yn(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1;}function Hn(t,e,n,r){for(var i=0,o=e,s=n-r;o0&&(r+=t[i-1].length,n.holes.push(r));}return n;}(t),n=wn(e.vertices,e.holes,2),r=[],i=[];n.forEach(function(t,r){var o=n[r];i.push([e.vertices[2*o],e.vertices[2*o+1]]);});for(var o=0;oi?n:i,r>o?r:o];}(t,r),n.push(i),r;}),n;})(n,t.properties).forEach(function(t){t.id=e.length,e.push(t);});});}}(t,e);}),f(e);}Nn.deviation=function(t,e,n,r){var i=e&&e.length,o=i?e[0]*n:t.length,s=Math.abs(Hn(t,0,o,n));if(i)for(var a=0,u=e.length;a0&&(r+=t[i-1].length,n.holes.push(r));}return n;},wn["default"]=In;var Kn=Bt(function(t,e){function n(t,e,n){void 0===n&&(n={});var r={type:"Feature"};return(0===n.id||n.id)&&(r.id=n.id),n.bbox&&(r.bbox=n.bbox),r.properties=e||{},r.geometry=t,r;}function r(t,e,r){if(void 0===r&&(r={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!f(t[0])||!f(t[1]))throw new Error("coordinates must contain numbers");return n({type:"Point",coordinates:t},e,r);}function i(t,e,r){void 0===r&&(r={});for(var i=0,o=t;i=0))throw new Error("precision must be a positive number");var n=Math.pow(10,e||0);return Math.round(t*n)/n;},e.radiansToLength=c,e.lengthToRadians=h,e.lengthToDegrees=function(t,e){return p(h(t,e));},e.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e;},e.radiansToDegrees=p,e.degreesToRadians=function(t){return t%360*Math.PI/180;},e.convertLength=function(t,e,n){if(void 0===e&&(e="kilometers"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("length must be a positive number");return c(h(t,e),n);},e.convertArea=function(t,n,r){if(void 0===n&&(n="meters"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=e.areaFactors[n];if(!i)throw new Error("invalid original units");var o=e.areaFactors[r];if(!o)throw new Error("invalid final units");return t/i*o;},e.isNumber=f,e.isObject=function(t){return!!t&&t.constructor===Object;},e.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach(function(t){if(!f(t))throw new Error("bbox must only contain numbers");});},e.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(_typeof(t)))throw new Error("id must be a number or a string");};});function Qn(t,e,n){if(null!==t)for(var r,i,o,s,a,u,l,c,h=0,p=0,f=t.type,g="FeatureCollection"===f,d="Feature"===f,y=g?t.features.length:1,v=0;va||p>u||f>l)return s=o,a=n,u=p,l=f,void(i=0);var g=Kn.lineString([s,o],t.properties);if(!1===e(g,n,r,f,i))return!1;i++,s=o;})&&void 0;}}});}function ir(t,e){if(!t)throw new Error("geojson is required");nr(t,function(t,n,r){if(null!==t.geometry){var i=t.geometry.type,o=t.geometry.coordinates;switch(i){case"LineString":if(!1===e(t,n,r,0,0))return!1;break;case"Polygon":for(var s=0;st[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2] line1 must only contain 2 coordinates");if(2!==r.length)throw new Error(" line2 must only contain 2 coordinates");var i=n[0][0],o=n[0][1],s=n[1][0],u=n[1][1],l=r[0][0],c=r[0][1],h=r[1][0],p=r[1][1],f=(p-c)*(s-i)-(h-l)*(u-o),g=(h-l)*(o-c)-(p-c)*(i-l),d=(s-i)*(o-c)-(u-o)*(i-l);if(0===f)return null;var y=g/f,v=d/f;return y>=0&&y<=1&&v>=0&&v<=1?a([i+y*(s-i),o+y*(u-o)]):null;}function Tr(t,e,n){void 0===n&&(n={});var r=a([1/0,1/0],{dist:1/0}),i=0;return z(t,function(t){for(var o=Q(t),s=0;s0&&((v=y.features[0]).properties.dist=me(e,v,n),v.properties.location=i+me(u,v,n)),u.properties.dist180?-360:i[0]-o[0]>180?360:0,N(function(t,n,r){var i=r=void 0===r?e:Number(r),o=t[1]*Math.PI/180,s=n[1]*Math.PI/180,a=s-o,u=Math.abs(n[0]-t[0])*Math.PI/180;u>Math.PI&&(u-=2*Math.PI);var l=Math.log(Math.tan(s/2+Math.PI/4)/Math.tan(o/2+Math.PI/4)),c=Math.abs(l)>1e-11?a/l:Math.cos(o);return Math.sqrt(a*a+c*c*u*u)*i;}(i,o),"meters",r.units);}function Dr(t,e,n){if(void 0===n&&(n={}),n.method||(n.method="geodesic"),n.units||(n.units="kilometers"),!t)throw new Error("pt is required");if(Array.isArray(t)?t=a(t):"Point"===t.type?t=o(t):et(t,"Point","point"),!e)throw new Error("line is required");Array.isArray(e)?e=h(e):"LineString"===e.type?e=o(e):et(e,"LineString","line");var r=1/0,i=t.geometry.coordinates;return U(e,function(t){var e=t.geometry.coordinates[0],o=t.geometry.coordinates[1],s=function(t,e,n,r){var i=[n[0]-e[0],n[1]-e[1]],o=Fr([t[0]-e[0],t[1]-e[1]],i);if(o<=0)return kr(t,e,{method:r.method,units:"degrees"});var s=Fr(i,i);if(s<=o)return kr(t,n,{method:r.method,units:"degrees"});var a=o/s,u=[e[0]+a*i[0],e[1]+a*i[1]];return kr(t,u,{method:r.method,units:"degrees"});}(i,e,o,n);s=0&&l<=1&&(p.onLine1=!0),c>=0&&c<=1&&(p.onLine2=!0),!(!p.onLine1||!p.onLine2)&&[p.x,p.y]);}function qr(t){for(var e=function(t){if("FeatureCollection"!==t.type)return"Feature"!==t.type?f([o(t)]):f([t]);return t;}(t),n=xn(e),r=!1,i=0;!r&&i0){e+=Math.abs(Vr(t[0]));for(var n=1;n2){for(s=0;s=c&&p===i.length-1);p++){if(c>e&&0===o.length){if(!(s=e-c))return o.push(i[p]),h(o);a=mn(i[p],i[p-1])-180,u=vn(i[p],s,a,r),o.push(u.geometry.coordinates);}if(c>=n)return(s=n-c)?(a=mn(i[p],i[p-1])-180,u=vn(i[p],s,a,r),o.push(u.geometry.coordinates),h(o)):(o.push(i[p]),h(o));if(c>=e&&o.push(i[p]),p===i.length-1)return h(o);c+=me(i[p],i[p+1],r);}if(ci)return!1;}else if(0!==f)return!1;return r?"start"===r?Math.abs(h)>=Math.abs(p)?h>0?a0?u=Math.abs(p)?h>0?a<=o&&o0?u<=s&&s=Math.abs(p)?h>0?a0?u=Math.abs(p)?h>0?a<=o&&o<=l:l<=o&&o<=a:p>0?u<=s&&s<=c:c<=s&&s<=u;}function Zr(t,e){var n=rt(t),r=rt(e),i=n.type,o=r.type;switch(i){case"Point":switch(o){case"MultiPoint":return function(t,e){var n,r=!1;for(n=0;ne[0])&&!(t[2]e[1])&&!(t[3] is required");if("number"!=typeof n)throw new Error(" must be a number");if("number"!=typeof r)throw new Error(" must be a number");!1!==i&&void 0!==i||(t=JSON.parse(JSON.stringify(t)));var o=Math.pow(10,n);return R(t,function(t){!function(t,e,n){t.length>n&&t.splice(n,t.length);for(var r=0;r=1||u<=0||l>=1||l<=0))){var d=g,y=!o[d];y&&(o[d]=!0),e?i.push(e(g,t,n,c,h,u,s,a,p,f,l,y)):i.push(g);}}function d(t,e){var n,i,o,s,a=r[t][e],u=r[t][e+1];return a[0]p[e.isect].coord?-1:1;});for(u=[];b.length>0;){var C=b.pop(),P=C.isect,M=C.parent,L=C.winding,O=u.length,R=[p[P].coord],T=P;if(p[P].ringAndEdge1Walkable)var A=p[P].ringAndEdge1,D=p[P].nxtIsectAlongRingAndEdge1;else A=p[P].ringAndEdge2,D=p[P].nxtIsectAlongRingAndEdge2;for(;!ci(p[P].coord,p[D].coord);){R.push(p[D].coord);var F=void 0;for(r=0;r1)for(e=0;e=0==e;}function li(t){for(var e=0,n=0;n1&&n.push(h(l)),f(n);}function xi(t,e){if(!e.features.length)throw new Error("lines must contain features");if(1===e.features.length)return e.features[0];var n,r=1/0;return F(e,function(e){var i=Tr(e,t).properties.dist;ic&&f.push(vn(t,e,c,i).geometry.coordinates),h(f,u);}function wi(t){var e=t%360;return e<0&&(e+=360),e;}function Ii(t,e){void 0===e&&(e={});var n=rt(t);switch(e.properties||"Feature"!==t.type||(e.properties=t.properties),n.type){case"Polygon":return Ni(n,e);case"MultiPolygon":return function(t,e){void 0===e&&(e={});var n=rt(t).coordinates,r=e.properties?e.properties:"Feature"===t.type?t.properties:{},i=[];return n.forEach(function(t){i.push(Si(t,r));}),f(i);}(n,e);default:throw new Error("invalid poly");}}function Ni(t,e){return void 0===e&&(e={}),Si(rt(t).coordinates,e.properties?e.properties:"Feature"===t.type?t.properties:{});}function Si(t,e){return t.length>1?g(t,e):h(t[0],e);}function Ci(t,e){var n,r,i;void 0===e&&(e={});var o=e.properties,s=null===(n=e.autoComplete)||void 0===n||n,a=null===(r=e.orderCoords)||void 0===r||r;switch(null!==(i=e.mutate)&&void 0!==i&&i||(t=Ie(t)),t.type){case"FeatureCollection":var u=[];return t.features.forEach(function(t){u.push(Q(Pi(t,{},s,a)));}),y(u,o);default:return Pi(t,o,s,a);}}function Pi(t,e,n,r){e=e||("Feature"===t.type?t.properties:{});var i=rt(t),o=i.coordinates,s=i.type;if(!o.length)throw new Error("line must contain coordinates");switch(s){case"LineString":return n&&(o=Mi(o)),l([o],e);case"MultiLineString":var a=[],u=0;return o.forEach(function(t){if(n&&(t=Mi(t)),r){var e=function(t){var e=t[0],n=t[1],r=t[2],i=t[3];return Math.abs(e-r)*Math.abs(n-i);}(Z(h(t)));e>u?(a.unshift(t),u=e):a.push(t);}else a.push(t);}),l(a,e);default:throw new Error("geometry type "+s+" is not supported");}}function Mi(t){var e=t[0],n=e[0],r=e[1],i=t[t.length-1],o=i[0],s=i[1];return n===o&&r===s||t.push(e),t;}function Li(t,e){var n,r,i,o,s,a,u;for(r=1;r<=8;r*=2){for(n=[],o=!(Ri(i=t[t.length-1],e)&r),s=0;se[2]&&(n|=2),t[1]e[3]&&(n|=8),n;}function Ti(t,e){for(var n=[],r=0,i=t;r0&&(o[0][0]===o[o.length-1][0]&&o[0][1]===o[o.length-1][1]||o.push(o[0]),o.length>=4&&n.push(o));}return n;}vi.prototype.interpolate=function(t){var e=Math.sin((1-t)*this.g)/Math.sin(this.g),n=Math.sin(t*this.g)/Math.sin(this.g),r=e*Math.cos(this.start.y)*Math.cos(this.start.x)+n*Math.cos(this.end.y)*Math.cos(this.end.x),i=e*Math.cos(this.start.y)*Math.sin(this.start.x)+n*Math.cos(this.end.y)*Math.sin(this.end.x),o=e*Math.sin(this.start.y)+n*Math.sin(this.end.y),s=fi*Math.atan2(o,Math.sqrt(Math.pow(r,2)+Math.pow(i,2)));return[fi*Math.atan2(i,r),s];},vi.prototype.Arc=function(t,e){var n=[];if(!t||t<=2)n.push([this.start.lon,this.start.lat]),n.push([this.end.lon,this.end.lat]);else for(var r=1/(t-1),i=0;ip&&(d>c&&gc&&du&&(u=y);}var v=[];if(a&&u0&&Math.abs(x-n[m-1][0])>p){var E=parseFloat(n[m-1][0]),b=parseFloat(n[m-1][1]),w=parseFloat(n[m][0]),I=parseFloat(n[m][1]);if(E>-180&&E-180&&n[m-1][0]c&&E<180&&-180===w&&m+1c&&n[m-1][0]<180){_.push([180,n[m][1]]),m++,_.push([n[m][0],n[m][1]]);continue;}if(Ec){var N=E;E=w,w=N;var S=b;b=I,I=S;}if(E>c&&w=180&&Ec?180:-180,P]),(_=[]).push([n[m-1][0]>c?-180:180,P]),v.push(_);}else _=[],v.push(_);_.push([x,n[m][1]]);}else _.push([n[m][0],n[m][1]]);}}else{var M=[];v.push(M);for(var L=0;L=0;a--)if(l[a]!=c[a])return!1;for(a=l.length-1;a>=0;a--)if(u=l[a],!n(t[u],o[u],s))return!1;return _typeof(t)==_typeof(o);}(t,o,s));};function r(t){return null==t;}function i(t){return!(!t||"object"!=_typeof(t)||"number"!=typeof t.length)&&"function"==typeof t.copy&&"function"==typeof t.slice&&!(t.length>0&&"number"!=typeof t[0]);}});function ki(t,e,n){if(void 0===n&&(n={}),!P(n=n||{}))throw new Error("options is invalid");var r,i=n.tolerance||0,o=[],s=Mr(),a=Zn(t);return s.load(a),U(e,function(t){var e=!1;t&&(F(s.search(t),function(n){if(!1===e){var o=Q(t).sort(),s=Q(n).sort();Fi(o,s)||(0===i?Wr(o[0],n)&&Wr(o[1],n):Tr(n,o[0]).properties.dist<=i&&Tr(n,o[1]).properties.dist<=i)?(e=!0,r=r?Gi(r,t):t):(0===i?Wr(s[0],t)&&Wr(s[1],t):Tr(t,s[0]).properties.dist<=i&&Tr(t,s[1]).properties.dist<=i)&&(r=r?Gi(r,n):n);}}),!1===e&&r&&(o.push(r),r=void 0));}),r&&o.push(r),f(o);}function Gi(t,e){var n=Q(e),r=Q(t),i=r[0],o=r[r.length-1],s=t.geometry.coordinates;return Fi(n[0],i)?s.unshift(n[1]):Fi(n[0],o)?s.push(n[1]):Fi(n[1],i)?s.unshift(n[0]):Fi(n[1],o)&&s.push(n[0]),t;}function qi(t){var e=t%360;return e<0&&(e+=360),e;}function Bi(t,e,n){var r;return void 0===n&&(n={}),(r=n["final"]?zi(K(e),K(t)):zi(K(t),K(e)))>180?-(360-r):r;}function zi(t,e){var n=I(t[1]),r=I(e[1]),i=I(e[0]-t[0]);i>Math.PI&&(i-=2*Math.PI),i<-Math.PI&&(i+=2*Math.PI);var o=Math.log(Math.tan(r/2+Math.PI/4)/Math.tan(n/2+Math.PI/4));return(w(Math.atan2(i,o))+360)%360;}function ji(t,n,r,i){void 0===i&&(i={});var o=n<0,s=N(Math.abs(n),i.units,"meters");o&&(s=-Math.abs(s));var u=K(t),l=function(t,n,r,i){i=void 0===i?e:Number(i);var o=n/i,s=t[0]*Math.PI/180,a=I(t[1]),u=I(r),l=o*Math.cos(u),c=a+l;Math.abs(c)>Math.PI/2&&(c=c>0?Math.PI-c:-Math.PI-c);var h=Math.log(Math.tan(c/2+Math.PI/4)/Math.tan(a/2+Math.PI/4)),p=Math.abs(h)>1e-11?l/h:Math.cos(a),f=o*Math.sin(u)/p;return[(180*(s+f)/Math.PI+540)%360-180,180*c/Math.PI];}(u,s,r);return l[0]+=l[0]-u[0]>180?-360:u[0]-l[0]>180?360:0,a(l,i.properties);}function Ui(t,e,n,r,i,o){for(var s=0;s0?Xi(e,a,i)<0||(i=a):n>0&&r<=0&&(Vi(e,a,o)||(o=a)),n=r;}return[i,o];}function Vi(t,e,n){return Xi(t,e,n)>0;}function Xi(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(n[0]-t[0])*(e[1]-t[1]);}function Yi(t){for(var e,n,r=Q(t),i=0,o=1;o0;}function Hi(t,e){switch("Feature"===t.type?t.geometry.type:t.type){case"GeometryCollection":return q(t,function(t){Hi(t,e);}),t;case"LineString":return Wi(Q(t),e),t;case"Polygon":return Ji(Q(t),e),t;case"MultiLineString":return Q(t).forEach(function(t){Wi(t,e);}),t;case"MultiPolygon":return Q(t).forEach(function(t){Ji(t,e);}),t;case"Point":case"MultiPoint":return t;}}function Wi(t,e){Yi(t)===e&&t.reverse();}function Ji(t,e){Yi(t[0])!==e&&t[0].reverse();for(var n=1;n + * v. 1.2.0 + * https://github.com/RaumZeit/MarchingSquares.js + * + * MarchingSquaresJS is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * MarchingSquaresJS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * As additional permission under GNU Affero General Public License version 3 + * section 7, third-party projects (personal or commercial) may distribute, + * include, or link against UNMODIFIED VERSIONS of MarchingSquaresJS without the + * requirement that said third-party project for that reason alone becomes + * subject to any requirement of the GNU Affero General Public License version 3. + * Any modifications to MarchingSquaresJS, however, must be shared with the public + * and made available. + * + * In summary this: + * - allows you to use MarchingSquaresJS at no cost + * - allows you to use MarchingSquaresJS for both personal and commercial purposes + * - allows you to distribute UNMODIFIED VERSIONS of MarchingSquaresJS under any + * license as long as this license notice is included + * - enables you to keep the source code of your program that uses MarchingSquaresJS + * undisclosed + * - forces you to share any modifications you have made to MarchingSquaresJS, + * e.g. bug-fixes + * + * You should have received a copy of the GNU Affero General Public License + * along with MarchingSquaresJS. If not, see . + */(t,r),s=[],a=0;as?128:64,l|=hs?32:16,l|=ps?8:4;var g=+(l|=fs?2:1),d=0;if(17===l||18===l||33===l||34===l||38===l||68===l||72===l||98===l||102===l||132===l||136===l||137===l||152===l||153===l){var y=(c+h+p+f)/4;d=y>s?2:y0?(l=156,d=4):l=152:33===l?d>0?(l=139,d=4):l=137:72===l?d>0?(l=99,d=4):l=98:132===l&&(d>0?(l=39,d=4):l=38);}if(0!=l&&170!=l){var v,_,m,x,E,b,w,I;v=_=m=x=E=b=w=I=.5;var N=[];1===l?(m=1-Vo(e,p,f),I=1-Vo(e,c,f),N.push(Go[l])):169===l?(m=Vo(s,f,p),I=Vo(s,f,c),N.push(Go[l])):4===l?(b=1-Vo(e,h,p),x=Vo(e,f,p),N.push(Fo[l])):166===l?(b=Vo(s,p,h),x=1-Vo(s,p,f),N.push(Fo[l])):16===l?(E=Vo(e,p,h),_=Vo(e,c,h),N.push(Do[l])):154===l?(E=1-Vo(s,h,p),_=1-Vo(s,h,c),N.push(Do[l])):64===l?(w=Vo(e,f,c),v=1-Vo(e,h,c),N.push(Bo[l])):106===l?(w=1-Vo(s,c,f),v=Vo(s,c,h),N.push(Bo[l])):168===l?(x=Vo(s,f,p),m=Vo(e,f,p),I=Vo(e,f,c),w=Vo(s,f,c),N.push(ko[l]),N.push(Go[l])):2===l?(x=1-Vo(e,p,f),m=1-Vo(s,p,f),I=1-Vo(s,c,f),w=1-Vo(e,c,f),N.push(ko[l]),N.push(Go[l])):162===l?(E=Vo(s,p,h),b=Vo(e,p,h),x=1-Vo(e,p,f),m=1-Vo(s,p,f),N.push(ko[l]),N.push(Go[l])):8===l?(E=1-Vo(e,h,p),b=1-Vo(s,h,p),x=Vo(s,f,p),m=Vo(e,f,p),N.push(Do[l]),N.push(Fo[l])):138===l?(E=1-Vo(e,h,p),b=1-Vo(s,h,p),v=1-Vo(s,h,c),_=1-Vo(e,h,c),N.push(Do[l]),N.push(Fo[l])):32===l?(E=Vo(s,p,h),b=Vo(e,p,h),v=Vo(e,c,h),_=Vo(s,c,h),N.push(Do[l]),N.push(Fo[l])):42===l?(I=1-Vo(s,c,f),w=1-Vo(e,c,f),v=Vo(e,c,h),_=Vo(s,c,h),N.push(qo[l]),N.push(Bo[l])):128===l&&(I=Vo(e,f,c),w=Vo(s,f,c),v=1-Vo(s,h,c),_=1-Vo(e,h,c),N.push(qo[l]),N.push(Bo[l])),5===l?(b=1-Vo(e,h,p),I=1-Vo(e,c,f),N.push(Fo[l])):165===l?(b=Vo(s,p,h),I=Vo(s,f,c),N.push(Fo[l])):20===l?(x=Vo(e,f,p),_=Vo(e,c,h),N.push(ko[l])):150===l?(x=1-Vo(s,p,f),_=1-Vo(s,h,c),N.push(ko[l])):80===l?(E=Vo(e,p,h),w=Vo(e,f,c),N.push(Do[l])):90===l?(E=1-Vo(s,h,p),w=1-Vo(s,c,f),N.push(Do[l])):65===l?(m=1-Vo(e,p,f),v=1-Vo(e,h,c),N.push(Go[l])):105===l?(m=Vo(s,f,p),v=Vo(s,c,h),N.push(Go[l])):160===l?(E=Vo(s,p,h),b=Vo(e,p,h),I=Vo(e,f,c),w=Vo(s,f,c),N.push(Do[l]),N.push(Fo[l])):10===l?(E=1-Vo(e,h,p),b=1-Vo(s,h,p),I=1-Vo(s,c,f),w=1-Vo(e,c,f),N.push(Do[l]),N.push(Fo[l])):130===l?(x=1-Vo(e,p,f),m=1-Vo(s,p,f),v=1-Vo(s,h,c),_=1-Vo(e,h,c),N.push(ko[l]),N.push(Go[l])):40===l?(x=Vo(s,f,p),m=Vo(e,f,p),v=Vo(e,c,h),_=Vo(s,c,h),N.push(ko[l]),N.push(Go[l])):101===l?(b=Vo(s,p,h),v=Vo(s,c,h),N.push(Fo[l])):69===l?(b=1-Vo(e,h,p),v=1-Vo(e,h,c),N.push(Fo[l])):149===l?(I=Vo(s,f,c),_=1-Vo(s,h,c),N.push(qo[l])):21===l?(I=1-Vo(e,c,f),_=Vo(e,c,h),N.push(qo[l])):86===l?(x=1-Vo(s,p,f),w=1-Vo(s,c,f),N.push(ko[l])):84===l?(x=Vo(e,f,p),w=Vo(e,f,c),N.push(ko[l])):89===l?(E=1-Vo(s,h,p),m=Vo(s,f,p),N.push(Go[l])):81===l?(E=Vo(e,p,h),m=1-Vo(e,p,f),N.push(Go[l])):96===l?(E=Vo(s,p,h),b=Vo(e,p,h),w=Vo(e,f,c),v=Vo(s,c,h),N.push(Do[l]),N.push(Fo[l])):74===l?(E=1-Vo(e,h,p),b=1-Vo(s,h,p),w=1-Vo(s,c,f),v=1-Vo(e,h,c),N.push(Do[l]),N.push(Fo[l])):24===l?(E=1-Vo(s,h,p),x=Vo(s,f,p),m=Vo(e,f,p),_=Vo(e,c,h),N.push(Do[l]),N.push(Go[l])):146===l?(E=Vo(e,p,h),x=1-Vo(e,p,f),m=1-Vo(s,p,f),_=1-Vo(s,h,c),N.push(Do[l]),N.push(Go[l])):6===l?(b=1-Vo(e,h,p),x=1-Vo(s,p,f),I=1-Vo(s,c,f),w=1-Vo(e,c,f),N.push(Fo[l]),N.push(ko[l])):164===l?(b=Vo(s,p,h),x=Vo(e,f,p),I=Vo(e,f,c),w=Vo(s,f,c),N.push(Fo[l]),N.push(ko[l])):129===l?(m=1-Vo(e,p,f),I=Vo(s,f,c),v=1-Vo(s,h,c),_=1-Vo(e,h,c),N.push(Go[l]),N.push(qo[l])):41===l?(m=Vo(s,f,p),I=1-Vo(e,c,f),v=Vo(e,c,h),_=Vo(s,c,h),N.push(Go[l]),N.push(qo[l])):66===l?(x=1-Vo(e,p,f),m=1-Vo(s,p,f),w=1-Vo(s,c,f),v=1-Vo(e,h,c),N.push(ko[l]),N.push(Go[l])):104===l?(x=Vo(s,f,p),m=Vo(e,f,p),w=Vo(e,f,c),v=Vo(s,c,h),N.push(Go[l]),N.push(zo[l])):144===l?(E=Vo(e,p,h),I=Vo(e,f,c),w=Vo(s,f,c),_=1-Vo(s,h,c),N.push(Do[l]),N.push(Bo[l])):26===l?(E=1-Vo(s,h,p),I=1-Vo(s,c,f),w=1-Vo(e,c,f),_=Vo(e,c,h),N.push(Do[l]),N.push(Bo[l])):36===l?(b=Vo(s,p,h),x=Vo(e,f,p),v=Vo(e,c,h),_=Vo(s,c,h),N.push(Fo[l]),N.push(ko[l])):134===l?(b=1-Vo(e,h,p),x=1-Vo(s,p,f),v=1-Vo(s,h,c),_=1-Vo(e,h,c),N.push(Fo[l]),N.push(ko[l])):9===l?(E=1-Vo(e,h,p),b=1-Vo(s,h,p),m=Vo(s,f,p),I=1-Vo(e,c,f),N.push(Do[l]),N.push(Fo[l])):161===l?(E=Vo(s,p,h),b=Vo(e,p,h),m=1-Vo(e,p,f),I=Vo(s,f,c),N.push(Do[l]),N.push(Fo[l])):37===l?(b=Vo(s,p,h),I=1-Vo(e,c,f),v=Vo(e,c,h),_=Vo(s,c,h),N.push(Fo[l]),N.push(qo[l])):133===l?(b=1-Vo(e,h,p),I=Vo(s,f,c),v=1-Vo(s,h,c),_=1-Vo(e,h,c),N.push(Fo[l]),N.push(qo[l])):148===l?(x=Vo(e,f,p),I=Vo(e,f,c),w=Vo(s,f,c),_=1-Vo(s,h,c),N.push(ko[l]),N.push(Bo[l])):22===l?(x=1-Vo(s,p,f),I=1-Vo(s,c,f),w=1-Vo(e,c,f),_=Vo(e,c,h),N.push(ko[l]),N.push(Bo[l])):82===l?(E=Vo(e,p,h),x=1-Vo(e,p,f),m=1-Vo(s,p,f),w=1-Vo(s,c,f),N.push(Do[l]),N.push(Go[l])):88===l?(E=1-Vo(s,h,p),x=Vo(s,f,p),m=Vo(e,f,p),w=Vo(e,f,c),N.push(Do[l]),N.push(Go[l])):73===l?(E=1-Vo(e,h,p),b=1-Vo(s,h,p),m=Vo(s,f,p),v=1-Vo(e,h,c),N.push(Do[l]),N.push(Fo[l])):97===l?(E=Vo(s,p,h),b=Vo(e,p,h),m=1-Vo(e,p,f),v=Vo(s,c,h),N.push(Do[l]),N.push(Fo[l])):145===l?(E=Vo(e,p,h),m=1-Vo(e,p,f),I=Vo(s,f,c),_=1-Vo(s,h,c),N.push(Do[l]),N.push(qo[l])):25===l?(E=1-Vo(s,h,p),m=Vo(s,f,p),I=1-Vo(e,c,f),_=Vo(e,c,h),N.push(Do[l]),N.push(qo[l])):70===l?(b=1-Vo(e,h,p),x=1-Vo(s,p,f),w=1-Vo(s,c,f),v=1-Vo(e,h,c),N.push(Fo[l]),N.push(ko[l])):100===l?(b=Vo(s,p,h),x=Vo(e,f,p),w=Vo(e,f,c),v=Vo(s,c,h),N.push(Fo[l]),N.push(ko[l])):34===l?(0===d?(E=1-Vo(e,h,p),b=1-Vo(s,h,p),x=Vo(s,f,p),m=Vo(e,f,p),I=Vo(e,f,c),w=Vo(s,f,c),v=1-Vo(s,h,c),_=1-Vo(e,h,c)):(E=Vo(s,p,h),b=Vo(e,p,h),x=1-Vo(e,p,f),m=1-Vo(s,p,f),I=1-Vo(s,c,f),w=1-Vo(e,c,f),v=Vo(e,c,h),_=Vo(s,c,h)),N.push(Do[l]),N.push(Fo[l]),N.push(qo[l]),N.push(Bo[l])):35===l?(4===d?(E=1-Vo(e,h,p),b=1-Vo(s,h,p),x=Vo(s,f,p),m=Vo(e,f,p),I=Vo(e,f,c),w=Vo(s,f,c),v=1-Vo(s,h,c),_=1-Vo(e,h,c)):(E=Vo(s,p,h),b=Vo(e,p,h),x=1-Vo(e,p,f),m=1-Vo(s,p,f),I=1-Vo(s,c,f),w=1-Vo(e,c,f),v=Vo(e,c,h),_=Vo(s,c,h)),N.push(Do[l]),N.push(Fo[l]),N.push(Go[l]),N.push(Bo[l])):136===l?(0===d?(E=Vo(s,p,h),b=Vo(e,p,h),x=1-Vo(e,p,f),m=1-Vo(s,p,f),I=1-Vo(s,c,f),w=1-Vo(e,c,f),v=Vo(e,c,h),_=Vo(s,c,h)):(E=1-Vo(e,h,p),b=1-Vo(s,h,p),x=Vo(s,f,p),m=Vo(e,f,p),I=Vo(e,f,c),w=Vo(s,f,c),v=1-Vo(s,h,c),_=1-Vo(e,h,c)),N.push(Do[l]),N.push(Fo[l]),N.push(qo[l]),N.push(Bo[l])):153===l?(0===d?(E=Vo(e,p,h),m=1-Vo(e,p,f),I=1-Vo(e,c,f),_=Vo(e,c,h)):(E=1-Vo(s,h,p),m=Vo(s,f,p),I=Vo(s,f,c),_=1-Vo(s,h,c)),N.push(Do[l]),N.push(Go[l])):102===l?(0===d?(b=1-Vo(e,h,p),x=Vo(e,f,p),w=Vo(e,f,c),v=1-Vo(e,h,c)):(b=Vo(s,p,h),x=1-Vo(s,p,f),w=1-Vo(s,c,f),v=Vo(s,c,h)),N.push(Fo[l]),N.push(Bo[l])):155===l?(4===d?(E=Vo(e,p,h),m=1-Vo(e,p,f),I=1-Vo(e,c,f),_=Vo(e,c,h)):(E=1-Vo(s,h,p),m=Vo(s,f,p),I=Vo(s,f,c),_=1-Vo(s,h,c)),N.push(Do[l]),N.push(qo[l])):103===l?(4===d?(b=1-Vo(e,h,p),x=Vo(e,f,p),w=Vo(e,f,c),v=1-Vo(e,h,c)):(b=Vo(s,p,h),x=1-Vo(s,p,f),w=1-Vo(s,c,f),v=Vo(s,c,h)),N.push(Fo[l]),N.push(ko[l])):152===l?(0===d?(E=Vo(e,p,h),x=1-Vo(e,p,f),m=1-Vo(s,p,f),I=1-Vo(s,c,f),w=1-Vo(e,c,f),_=Vo(e,c,h)):(E=1-Vo(s,h,p),x=Vo(s,f,p),m=Vo(e,f,p),I=Vo(e,f,c),w=Vo(s,f,c),_=1-Vo(s,h,c)),N.push(Do[l]),N.push(ko[l]),N.push(Go[l])):156===l?(4===d?(E=Vo(e,p,h),x=1-Vo(e,p,f),m=1-Vo(s,p,f),I=1-Vo(s,c,f),w=1-Vo(e,c,f),_=Vo(e,c,h)):(E=1-Vo(s,h,p),x=Vo(s,f,p),m=Vo(e,f,p),I=Vo(e,f,c),w=Vo(s,f,c),_=1-Vo(s,h,c)),N.push(Do[l]),N.push(Go[l]),N.push(Bo[l])):137===l?(0===d?(E=Vo(s,p,h),b=Vo(e,p,h),m=1-Vo(e,p,f),I=1-Vo(e,c,f),v=Vo(e,c,h),_=Vo(s,c,h)):(E=1-Vo(e,h,p),b=1-Vo(s,h,p),m=Vo(s,f,p),I=Vo(s,f,c),v=1-Vo(s,h,c),_=1-Vo(e,h,c)),N.push(Do[l]),N.push(Fo[l]),N.push(Go[l])):139===l?(4===d?(E=Vo(s,p,h),b=Vo(e,p,h),m=1-Vo(e,p,f),I=1-Vo(e,c,f),v=Vo(e,c,h),_=Vo(s,c,h)):(E=1-Vo(e,h,p),b=1-Vo(s,h,p),m=Vo(s,f,p),I=Vo(s,f,c),v=1-Vo(s,h,c),_=1-Vo(e,h,c)),N.push(Do[l]),N.push(Fo[l]),N.push(qo[l])):98===l?(0===d?(E=1-Vo(e,h,p),b=1-Vo(s,h,p),x=Vo(s,f,p),m=Vo(e,f,p),w=Vo(e,f,c),v=1-Vo(e,h,c)):(E=Vo(s,p,h),b=Vo(e,p,h),x=1-Vo(e,p,f),m=1-Vo(s,p,f),w=1-Vo(s,c,f),v=Vo(s,c,h)),N.push(Do[l]),N.push(Fo[l]),N.push(Bo[l])):99===l?(4===d?(E=1-Vo(e,h,p),b=1-Vo(s,h,p),x=Vo(s,f,p),m=Vo(e,f,p),w=Vo(e,f,c),v=1-Vo(e,h,c)):(E=Vo(s,p,h),b=Vo(e,p,h),x=1-Vo(e,p,f),m=1-Vo(s,p,f),w=1-Vo(s,c,f),v=Vo(s,c,h)),N.push(Do[l]),N.push(Fo[l]),N.push(Go[l])):38===l?(0===d?(b=1-Vo(e,h,p),x=Vo(e,f,p),I=Vo(e,f,c),w=Vo(s,f,c),v=1-Vo(s,h,c),_=1-Vo(e,h,c)):(b=Vo(s,p,h),x=1-Vo(s,p,f),I=1-Vo(s,c,f),w=1-Vo(e,c,f),v=Vo(e,c,h),_=Vo(s,c,h)),N.push(Fo[l]),N.push(qo[l]),N.push(Bo[l])):39===l?(4===d?(b=1-Vo(e,h,p),x=Vo(e,f,p),I=Vo(e,f,c),w=Vo(s,f,c),v=1-Vo(s,h,c),_=1-Vo(e,h,c)):(b=Vo(s,p,h),x=1-Vo(s,p,f),I=1-Vo(s,c,f),w=1-Vo(e,c,f),v=Vo(e,c,h),_=Vo(s,c,h)),N.push(Fo[l]),N.push(ko[l]),N.push(Bo[l])):85===l&&(E=1,b=0,x=1,m=0,I=0,w=1,v=0,_=1),(v<0||v>1||_<0||_>1||E<0||E>1||x<0||x>1||I<0||I>1||w<0||w>1)&&console.log("MarchingSquaresJS-isoBands: "+l+" "+g+" "+c+","+h+","+p+","+f+" "+d+" "+v+" "+_+" "+E+" "+b+" "+x+" "+m+" "+I+" "+w),o.cells[a][u]={cval:l,cval_real:g,flipped:d,topleft:v,topright:_,righttop:E,rightbottom:b,bottomright:x,bottomleft:m,leftbottom:I,lefttop:w,edges:N};}}}}return o;}(t,e,n);return Qi.polygons?(Qi.verbose&&console.log("MarchingSquaresJS-isoBands: returning single polygons for each grid cell"),u=function(t){var e=[],n=0;return t.cells.forEach(function(t,r){t.forEach(function(t,i){if(void 0!==t){var o=Uo[t.cval](t);"object"==_typeof(o)&&Xo(o)?"object"==_typeof(o[0])&&Xo(o[0])?"object"==_typeof(o[0][0])&&Xo(o[0][0])?o.forEach(function(t){t.forEach(function(t){t[0]+=i,t[1]+=r;}),e[n++]=t;}):(o.forEach(function(t){t[0]+=i,t[1]+=r;}),e[n++]=o):console.log("MarchingSquaresJS-isoBands: bandcell polygon with malformed coordinates"):console.log("MarchingSquaresJS-isoBands: bandcell polygon with null coordinates");}});}),e;}(l)):(Qi.verbose&&console.log("MarchingSquaresJS-isoBands: returning polygon paths for entire data grid"),u=function(t){for(var e=[],n=t.rows,r=t.cols,i=[],o=0;o0){var a=Ho(t.cells[o][s]),u=null,l=s,c=o;null!==a&&i.push([a.p[0]+l,a.p[1]+c]);do{if(null===(u=Wo(t.cells[c][l],a.x,a.y,a.o)))break;if(i.push([u.p[0]+l,u.p[1]+c]),l+=u.x,a=u,(c+=u.y)<0||c>=n||l<0||l>=r||void 0===t.cells[c][l]){var h=Yo(t,l-=u.x,c-=u.y,u.x,u.y,u.o);if(null===h)break;h.path.forEach(function(t){i.push(t);}),l=h.i,c=h.j,a=h;}}while(void 0!==t.cells[c][l]&&t.cells[c][l].edges.length>0);e.push(i),i=[],t.cells[o][s].edges.length>0&&s--;}return e;}(l)),"function"==typeof Qi.successCallback&&Qi.successCallback(u),u;}var to=64,eo=16,no=[],ro=[],io=[],oo=[],so=[],ao=[],uo=[],lo=[],co=[],ho=[],po=[],fo=[],go=[],yo=[],vo=[],_o=[],mo=[],xo=[],Eo=[],bo=[],wo=[],Io=[],No=[],So=[];uo[85]=ho[85]=-1,lo[85]=po[85]=0,co[85]=fo[85]=1,Eo[85]=Io[85]=1,bo[85]=No[85]=0,wo[85]=So[85]=1,no[85]=oo[85]=0,ro[85]=so[85]=-1,io[85]=vo[85]=0,_o[85]=go[85]=0,mo[85]=yo[85]=1,ao[85]=xo[85]=1,Io[1]=Io[169]=0,No[1]=No[169]=-1,So[1]=So[169]=0,go[1]=go[169]=-1,yo[1]=yo[169]=0,vo[1]=vo[169]=0,ho[4]=ho[166]=0,po[4]=po[166]=-1,fo[4]=fo[166]=1,_o[4]=_o[166]=1,mo[4]=mo[166]=0,xo[4]=xo[166]=0,uo[16]=uo[154]=0,lo[16]=lo[154]=1,co[16]=co[154]=1,oo[16]=oo[154]=1,so[16]=so[154]=0,ao[16]=ao[154]=1,Eo[64]=Eo[106]=0,bo[64]=bo[106]=1,wo[64]=wo[106]=0,no[64]=no[106]=-1,ro[64]=ro[106]=0,io[64]=io[106]=1,Eo[2]=Eo[168]=0,bo[2]=bo[168]=-1,wo[2]=wo[168]=1,Io[2]=Io[168]=0,No[2]=No[168]=-1,So[2]=So[168]=0,go[2]=go[168]=-1,yo[2]=yo[168]=0,vo[2]=vo[168]=0,_o[2]=_o[168]=-1,mo[2]=mo[168]=0,xo[2]=xo[168]=1,uo[8]=uo[162]=0,lo[8]=lo[162]=-1,co[8]=co[162]=0,ho[8]=ho[162]=0,po[8]=po[162]=-1,fo[8]=fo[162]=1,go[8]=go[162]=1,yo[8]=yo[162]=0,vo[8]=vo[162]=1,_o[8]=_o[162]=1,mo[8]=mo[162]=0,xo[8]=xo[162]=0,uo[32]=uo[138]=0,lo[32]=lo[138]=1,co[32]=co[138]=1,ho[32]=ho[138]=0,po[32]=po[138]=1,fo[32]=fo[138]=0,no[32]=no[138]=1,ro[32]=ro[138]=0,io[32]=io[138]=0,oo[32]=oo[138]=1,so[32]=so[138]=0,ao[32]=ao[138]=1,Io[128]=Io[42]=0,No[128]=No[42]=1,So[128]=So[42]=1,Eo[128]=Eo[42]=0,bo[128]=bo[42]=1,wo[128]=wo[42]=0,no[128]=no[42]=-1,ro[128]=ro[42]=0,io[128]=io[42]=1,oo[128]=oo[42]=-1,so[128]=so[42]=0,ao[128]=ao[42]=0,ho[5]=ho[165]=-1,po[5]=po[165]=0,fo[5]=fo[165]=0,Io[5]=Io[165]=1,No[5]=No[165]=0,So[5]=So[165]=0,_o[20]=_o[150]=0,mo[20]=mo[150]=1,xo[20]=xo[150]=1,oo[20]=oo[150]=0,so[20]=so[150]=-1,ao[20]=ao[150]=1,uo[80]=uo[90]=-1,lo[80]=lo[90]=0,co[80]=co[90]=1,Eo[80]=Eo[90]=1,bo[80]=bo[90]=0,wo[80]=wo[90]=1,go[65]=go[105]=0,yo[65]=yo[105]=1,vo[65]=vo[105]=0,no[65]=no[105]=0,ro[65]=ro[105]=-1,io[65]=io[105]=0,uo[160]=uo[10]=-1,lo[160]=lo[10]=0,co[160]=co[10]=1,ho[160]=ho[10]=-1,po[160]=po[10]=0,fo[160]=fo[10]=0,Io[160]=Io[10]=1,No[160]=No[10]=0,So[160]=So[10]=0,Eo[160]=Eo[10]=1,bo[160]=bo[10]=0,wo[160]=wo[10]=1,_o[130]=_o[40]=0,mo[130]=mo[40]=1,xo[130]=xo[40]=1,go[130]=go[40]=0,yo[130]=yo[40]=1,vo[130]=vo[40]=0,no[130]=no[40]=0,ro[130]=ro[40]=-1,io[130]=io[40]=0,oo[130]=oo[40]=0,so[130]=so[40]=-1,ao[130]=ao[40]=1,ho[37]=ho[133]=0,po[37]=po[133]=1,fo[37]=fo[133]=1,Io[37]=Io[133]=0,No[37]=No[133]=1,So[37]=So[133]=0,no[37]=no[133]=-1,ro[37]=ro[133]=0,io[37]=io[133]=0,oo[37]=oo[133]=1,so[37]=so[133]=0,ao[37]=ao[133]=0,_o[148]=_o[22]=-1,mo[148]=mo[22]=0,xo[148]=xo[22]=0,Io[148]=Io[22]=0,No[148]=No[22]=-1,So[148]=So[22]=1,Eo[148]=Eo[22]=0,bo[148]=bo[22]=1,wo[148]=wo[22]=1,oo[148]=oo[22]=-1,so[148]=so[22]=0,ao[148]=ao[22]=1,uo[82]=uo[88]=0,lo[82]=lo[88]=-1,co[82]=co[88]=1,_o[82]=_o[88]=1,mo[82]=mo[88]=0,xo[82]=xo[88]=1,go[82]=go[88]=-1,yo[82]=yo[88]=0,vo[82]=vo[88]=1,Eo[82]=Eo[88]=0,bo[82]=bo[88]=-1,wo[82]=wo[88]=0,uo[73]=uo[97]=0,lo[73]=lo[97]=1,co[73]=co[97]=0,ho[73]=ho[97]=0,po[73]=po[97]=-1,fo[73]=fo[97]=0,go[73]=go[97]=1,yo[73]=yo[97]=0,vo[73]=vo[97]=0,no[73]=no[97]=1,ro[73]=ro[97]=0,io[73]=io[97]=1,uo[145]=uo[25]=0,lo[145]=lo[25]=-1,co[145]=co[25]=0,go[145]=go[25]=1,yo[145]=yo[25]=0,vo[145]=vo[25]=1,Io[145]=Io[25]=0,No[145]=No[25]=1,So[145]=So[25]=1,oo[145]=oo[25]=-1,so[145]=so[25]=0,ao[145]=ao[25]=0,ho[70]=ho[100]=0,po[70]=po[100]=1,fo[70]=fo[100]=0,_o[70]=_o[100]=-1,mo[70]=mo[100]=0,xo[70]=xo[100]=1,Eo[70]=Eo[100]=0,bo[70]=bo[100]=-1,wo[70]=wo[100]=1,no[70]=no[100]=1,ro[70]=ro[100]=0,io[70]=io[100]=0,ho[101]=ho[69]=0,po[101]=po[69]=1,fo[101]=fo[69]=0,no[101]=no[69]=1,ro[101]=ro[69]=0,io[101]=io[69]=0,Io[149]=Io[21]=0,No[149]=No[21]=1,So[149]=So[21]=1,oo[149]=oo[21]=-1,so[149]=so[21]=0,ao[149]=ao[21]=0,_o[86]=_o[84]=-1,mo[86]=mo[84]=0,xo[86]=xo[84]=1,Eo[86]=Eo[84]=0,bo[86]=bo[84]=-1,wo[86]=wo[84]=1,uo[89]=uo[81]=0,lo[89]=lo[81]=-1,co[89]=co[81]=0,go[89]=go[81]=1,yo[89]=yo[81]=0,vo[89]=vo[81]=1,uo[96]=uo[74]=0,lo[96]=lo[74]=1,co[96]=co[74]=0,ho[96]=ho[74]=-1,po[96]=po[74]=0,fo[96]=fo[74]=1,Eo[96]=Eo[74]=1,bo[96]=bo[74]=0,wo[96]=wo[74]=0,no[96]=no[74]=1,ro[96]=ro[74]=0,io[96]=io[74]=1,uo[24]=uo[146]=0,lo[24]=lo[146]=-1,co[24]=co[146]=1,_o[24]=_o[146]=1,mo[24]=mo[146]=0,xo[24]=xo[146]=1,go[24]=go[146]=0,yo[24]=yo[146]=1,vo[24]=vo[146]=1,oo[24]=oo[146]=0,so[24]=so[146]=-1,ao[24]=ao[146]=0,ho[6]=ho[164]=-1,po[6]=po[164]=0,fo[6]=fo[164]=1,_o[6]=_o[164]=-1,mo[6]=mo[164]=0,xo[6]=xo[164]=0,Io[6]=Io[164]=0,No[6]=No[164]=-1,So[6]=So[164]=1,Eo[6]=Eo[164]=1,bo[6]=bo[164]=0,wo[6]=wo[164]=0,go[129]=go[41]=0,yo[129]=yo[41]=1,vo[129]=vo[41]=1,Io[129]=Io[41]=0,No[129]=No[41]=1,So[129]=So[41]=0,no[129]=no[41]=-1,ro[129]=ro[41]=0,io[129]=io[41]=0,oo[129]=oo[41]=0,so[129]=so[41]=-1,ao[129]=ao[41]=0,_o[66]=_o[104]=0,mo[66]=mo[104]=1,xo[66]=xo[104]=0,go[66]=go[104]=-1,yo[66]=yo[104]=0,vo[66]=vo[104]=1,Eo[66]=Eo[104]=0,bo[66]=bo[104]=-1,wo[66]=wo[104]=0,no[66]=no[104]=0,ro[66]=ro[104]=-1,io[66]=io[104]=1,uo[144]=uo[26]=-1,lo[144]=lo[26]=0,co[144]=co[26]=0,Io[144]=Io[26]=1,No[144]=No[26]=0,So[144]=So[26]=1,Eo[144]=Eo[26]=0,bo[144]=bo[26]=1,wo[144]=wo[26]=1,oo[144]=oo[26]=-1,so[144]=so[26]=0,ao[144]=ao[26]=1,ho[36]=ho[134]=0,po[36]=po[134]=1,fo[36]=fo[134]=1,_o[36]=_o[134]=0,mo[36]=mo[134]=1,xo[36]=xo[134]=0,no[36]=no[134]=0,ro[36]=ro[134]=-1,io[36]=io[134]=1,oo[36]=oo[134]=1,so[36]=so[134]=0,ao[36]=ao[134]=0,uo[9]=uo[161]=-1,lo[9]=lo[161]=0,co[9]=co[161]=0,ho[9]=ho[161]=0,po[9]=po[161]=-1,fo[9]=fo[161]=0,go[9]=go[161]=1,yo[9]=yo[161]=0,vo[9]=vo[161]=0,Io[9]=Io[161]=1,No[9]=No[161]=0,So[9]=So[161]=1,uo[136]=0,lo[136]=1,co[136]=1,ho[136]=0,po[136]=1,fo[136]=0,_o[136]=-1,mo[136]=0,xo[136]=1,go[136]=-1,yo[136]=0,vo[136]=0,Io[136]=0,No[136]=-1,So[136]=0,Eo[136]=0,bo[136]=-1,wo[136]=1,no[136]=1,ro[136]=0,io[136]=0,oo[136]=1,so[136]=0,ao[136]=1,uo[34]=0,lo[34]=-1,co[34]=0,ho[34]=0,po[34]=-1,fo[34]=1,_o[34]=1,mo[34]=0,xo[34]=0,go[34]=1,yo[34]=0,vo[34]=1,Io[34]=0,No[34]=1,So[34]=1,Eo[34]=0,bo[34]=1,wo[34]=0,no[34]=-1,ro[34]=0,io[34]=1,oo[34]=-1,so[34]=0,ao[34]=0,uo[35]=0,lo[35]=1,co[35]=1,ho[35]=0,po[35]=-1,fo[35]=1,_o[35]=1,mo[35]=0,xo[35]=0,go[35]=-1,yo[35]=0,vo[35]=0,Io[35]=0,No[35]=-1,So[35]=0,Eo[35]=0,bo[35]=1,wo[35]=0,no[35]=-1,ro[35]=0,io[35]=1,oo[35]=1,so[35]=0,ao[35]=1,uo[153]=0,lo[153]=1,co[153]=1,go[153]=-1,yo[153]=0,vo[153]=0,Io[153]=0,No[153]=-1,So[153]=0,oo[153]=1,so[153]=0,ao[153]=1,ho[102]=0,po[102]=-1,fo[102]=1,_o[102]=1,mo[102]=0,xo[102]=0,Eo[102]=0,bo[102]=1,wo[102]=0,no[102]=-1,ro[102]=0,io[102]=1,uo[155]=0,lo[155]=-1,co[155]=0,go[155]=1,yo[155]=0,vo[155]=1,Io[155]=0,No[155]=1,So[155]=1,oo[155]=-1,so[155]=0,ao[155]=0,ho[103]=0,po[103]=1,fo[103]=0,_o[103]=-1,mo[103]=0,xo[103]=1,Eo[103]=0,bo[103]=-1,wo[103]=1,no[103]=1,ro[103]=0,io[103]=0,uo[152]=0,lo[152]=1,co[152]=1,_o[152]=-1,mo[152]=0,xo[152]=1,go[152]=-1,yo[152]=0,vo[152]=0,Io[152]=0,No[152]=-1,So[152]=0,Eo[152]=0,bo[152]=-1,wo[152]=1,oo[152]=1,so[152]=0,ao[152]=1,uo[156]=0,lo[156]=-1,co[156]=1,_o[156]=1,mo[156]=0,xo[156]=1,go[156]=-1,yo[156]=0,vo[156]=0,Io[156]=0,No[156]=-1,So[156]=0,Eo[156]=0,bo[156]=1,wo[156]=1,oo[156]=-1,so[156]=0,ao[156]=1,uo[137]=0,lo[137]=1,co[137]=1,ho[137]=0,po[137]=1,fo[137]=0,go[137]=-1,yo[137]=0,vo[137]=0,Io[137]=0,No[137]=-1,So[137]=0,no[137]=1,ro[137]=0,io[137]=0,oo[137]=1,so[137]=0,ao[137]=1,uo[139]=0,lo[139]=1,co[139]=1,ho[139]=0,po[139]=-1,fo[139]=0,go[139]=1,yo[139]=0,vo[139]=0,Io[139]=0,No[139]=1,So[139]=0,no[139]=-1,ro[139]=0,io[139]=0,oo[139]=1,so[139]=0,ao[139]=1,uo[98]=0,lo[98]=-1,co[98]=0,ho[98]=0,po[98]=-1,fo[98]=1,_o[98]=1,mo[98]=0,xo[98]=0,go[98]=1,yo[98]=0,vo[98]=1,Eo[98]=0,bo[98]=1,wo[98]=0,no[98]=-1,ro[98]=0,io[98]=1,uo[99]=0,lo[99]=1,co[99]=0,ho[99]=0,po[99]=-1,fo[99]=1,_o[99]=1,mo[99]=0,xo[99]=0,go[99]=-1,yo[99]=0,vo[99]=1,Eo[99]=0,bo[99]=-1,wo[99]=0,no[99]=1,ro[99]=0,io[99]=1,ho[38]=0,po[38]=-1,fo[38]=1,_o[38]=1,mo[38]=0,xo[38]=0,Io[38]=0,No[38]=1,So[38]=1,Eo[38]=0,bo[38]=1,wo[38]=0,no[38]=-1,ro[38]=0,io[38]=1,oo[38]=-1,so[38]=0,ao[38]=0,ho[39]=0,po[39]=1,fo[39]=1,_o[39]=-1,mo[39]=0,xo[39]=0,Io[39]=0,No[39]=-1,So[39]=1,Eo[39]=0,bo[39]=1,wo[39]=0,no[39]=-1,ro[39]=0,io[39]=1,oo[39]=1,so[39]=0,ao[39]=0;var Co=function Co(t){return[[t.bottomleft,0],[0,0],[0,t.leftbottom]];},Po=function Po(t){return[[1,t.rightbottom],[1,0],[t.bottomright,0]];},Mo=function Mo(t){return[[t.topright,1],[1,1],[1,t.righttop]];},Lo=function Lo(t){return[[0,t.lefttop],[0,1],[t.topleft,1]];},Oo=function Oo(t){return[[t.bottomright,0],[t.bottomleft,0],[0,t.leftbottom],[0,t.lefttop]];},Ro=function Ro(t){return[[t.bottomright,0],[t.bottomleft,0],[1,t.righttop],[1,t.rightbottom]];},To=function To(t){return[[1,t.righttop],[1,t.rightbottom],[t.topleft,1],[t.topright,1]];},Ao=function Ao(t){return[[0,t.leftbottom],[0,t.lefttop],[t.topleft,1],[t.topright,1]];},Do=[],Fo=[],ko=[],Go=[],qo=[],Bo=[],zo=[],jo=[];Go[1]=qo[1]=18,Go[169]=qo[169]=18,ko[4]=Fo[4]=12,ko[166]=Fo[166]=12,Do[16]=jo[16]=4,Do[154]=jo[154]=4,Bo[64]=zo[64]=22,Bo[106]=zo[106]=22,ko[2]=Bo[2]=17,Go[2]=qo[2]=18,ko[168]=Bo[168]=17,Go[168]=qo[168]=18,Do[8]=Go[8]=9,Fo[8]=ko[8]=12,Do[162]=Go[162]=9,Fo[162]=ko[162]=12,Do[32]=jo[32]=4,Fo[32]=zo[32]=1,Do[138]=jo[138]=4,Fo[138]=zo[138]=1,qo[128]=jo[128]=21,Bo[128]=zo[128]=22,qo[42]=jo[42]=21,Bo[42]=zo[42]=22,Fo[5]=qo[5]=14,Fo[165]=qo[165]=14,ko[20]=jo[20]=6,ko[150]=jo[150]=6,Do[80]=Bo[80]=11,Do[90]=Bo[90]=11,Go[65]=zo[65]=3,Go[105]=zo[105]=3,Do[160]=Bo[160]=11,Fo[160]=qo[160]=14,Do[10]=Bo[10]=11,Fo[10]=qo[10]=14,ko[130]=jo[130]=6,Go[130]=zo[130]=3,ko[40]=jo[40]=6,Go[40]=zo[40]=3,Fo[101]=zo[101]=1,Fo[69]=zo[69]=1,qo[149]=jo[149]=21,qo[21]=jo[21]=21,ko[86]=Bo[86]=17,ko[84]=Bo[84]=17,Do[89]=Go[89]=9,Do[81]=Go[81]=9,Do[96]=zo[96]=0,Fo[96]=Bo[96]=15,Do[74]=zo[74]=0,Fo[74]=Bo[74]=15,Do[24]=ko[24]=8,Go[24]=jo[24]=7,Do[146]=ko[146]=8,Go[146]=jo[146]=7,Fo[6]=Bo[6]=15,ko[6]=qo[6]=16,Fo[164]=Bo[164]=15,ko[164]=qo[164]=16,Go[129]=jo[129]=7,qo[129]=zo[129]=20,Go[41]=jo[41]=7,qo[41]=zo[41]=20,ko[66]=zo[66]=2,Go[66]=Bo[66]=19,ko[104]=zo[104]=2,Go[104]=Bo[104]=19,Do[144]=qo[144]=10,Bo[144]=jo[144]=23,Do[26]=qo[26]=10,Bo[26]=jo[26]=23,Fo[36]=jo[36]=5,ko[36]=zo[36]=2,Fo[134]=jo[134]=5,ko[134]=zo[134]=2,Do[9]=qo[9]=10,Fo[9]=Go[9]=13,Do[161]=qo[161]=10,Fo[161]=Go[161]=13,Fo[37]=jo[37]=5,qo[37]=zo[37]=20,Fo[133]=jo[133]=5,qo[133]=zo[133]=20,ko[148]=qo[148]=16,Bo[148]=jo[148]=23,ko[22]=qo[22]=16,Bo[22]=jo[22]=23,Do[82]=ko[82]=8,Go[82]=Bo[82]=19,Do[88]=ko[88]=8,Go[88]=Bo[88]=19,Do[73]=zo[73]=0,Fo[73]=Go[73]=13,Do[97]=zo[97]=0,Fo[97]=Go[97]=13,Do[145]=Go[145]=9,qo[145]=jo[145]=21,Do[25]=Go[25]=9,qo[25]=jo[25]=21,Fo[70]=zo[70]=1,ko[70]=Bo[70]=17,Fo[100]=zo[100]=1,ko[100]=Bo[100]=17,Do[34]=Go[34]=9,Fo[34]=ko[34]=12,qo[34]=jo[34]=21,Bo[34]=zo[34]=22,Do[136]=jo[136]=4,Fo[136]=zo[136]=1,ko[136]=Bo[136]=17,Go[136]=qo[136]=18,Do[35]=jo[35]=4,Fo[35]=ko[35]=12,Go[35]=qo[35]=18,Bo[35]=zo[35]=22,Do[153]=jo[153]=4,Go[153]=qo[153]=18,Fo[102]=ko[102]=12,Bo[102]=zo[102]=22,Do[155]=Go[155]=9,qo[155]=jo[155]=23,Fo[103]=zo[103]=1,ko[103]=Bo[103]=17,Do[152]=jo[152]=4,ko[152]=Bo[152]=17,Go[152]=qo[152]=18,Do[156]=ko[156]=8,Go[156]=qo[156]=18,Bo[156]=jo[156]=23,Do[137]=jo[137]=4,Fo[137]=zo[137]=1,Go[137]=qo[137]=18,Do[139]=jo[139]=4,Fo[139]=Go[139]=13,qo[139]=zo[139]=20,Do[98]=Go[98]=9,Fo[98]=ko[98]=12,Bo[98]=zo[98]=22,Do[99]=zo[99]=0,Fo[99]=ko[99]=12,Go[99]=Bo[99]=19,Fo[38]=ko[38]=12,qo[38]=jo[38]=21,Bo[38]=zo[38]=22,Fo[39]=jo[39]=5,ko[39]=qo[39]=16,Bo[39]=zo[39]=22;var Uo=[];function Vo(t,e,n){return(t-e)/(n-e);}function Xo(t){return t.constructor.toString().indexOf("Array")>-1;}function Yo(t,e,n,r,i,o){for(var s=t.cells[n][e],a=s.cval_real,u=e+r,l=n+i,c=[],h=!1;!h;){if(void 0===t.cells[l]||void 0===t.cells[l][u]){if(l-=i,u-=r,a=(s=t.cells[l][u]).cval_real,-1===i){if(0===o){if(1&a)c.push([u,l]),r=-1,i=0,o=0;else{if(!(4&a)){c.push([u+s.bottomright,l]),r=0,i=1,o=1,h=!0;break;}c.push([u+1,l]),r=1,i=0,o=0;}}else{if(!(1&a)){if(4&a){c.push([u+s.bottomright,l]),r=0,i=1,o=1,h=!0;break;}c.push([u+s.bottomleft,l]),r=0,i=1,o=0,h=!0;break;}c.push([u,l]),r=-1,i=0,o=0;}}else if(1===i){if(0===o){if(!(a&eo)){if(a&to){c.push([u+s.topleft,l+1]),r=0,i=-1,o=0,h=!0;break;}c.push([u+s.topright,l+1]),r=0,i=-1,o=1,h=!0;break;}c.push([u+1,l+1]),r=1,i=0,o=1;}else c.push([u+1,l+1]),r=1,i=0,o=1;}else if(-1===r){if(0===o){if(!(a&to)){if(1&a){c.push([u,l+s.leftbottom]),r=1,i=0,o=0,h=!0;break;}c.push([u,l+s.lefttop]),r=1,i=0,o=1,h=!0;break;}c.push([u,l+1]),r=0,i=1,o=0;}else{if(!(a&to)){console.log("MarchingSquaresJS-isoBands: wtf");break;}c.push([u,l+1]),r=0,i=1,o=0;}}else{if(1!==r){console.log("MarchingSquaresJS-isoBands: we came from nowhere!");break;}if(0===o){if(!(4&a)){c.push([u+1,l+s.rightbottom]),r=-1,i=0,o=0,h=!0;break;}c.push([u+1,l]),r=0,i=-1,o=1;}else{if(!(4&a)){if(a&eo){c.push([u+1,l+s.righttop]),r=-1,i=0,o=1;break;}c.push([u+1,l+s.rightbottom]),r=-1,i=0,o=0,h=!0;break;}c.push([u+1,l]),r=0,i=-1,o=1;}}}else if(a=(s=t.cells[l][u]).cval_real,-1===r){if(0===o){if(void 0!==t.cells[l-1]&&void 0!==t.cells[l-1][u])r=0,i=-1,o=1;else{if(!(1&a)){c.push([u+s.bottomright,l]),r=0,i=1,o=1,h=!0;break;}c.push([u,l]);}}else{if(!(a&to)){console.log("MarchingSquaresJS-isoBands: found entry from top at "+u+","+l);break;}console.log("MarchingSquaresJS-isoBands: proceeding in x-direction!");}}else if(1===r){if(0===o){console.log("MarchingSquaresJS-isoBands: wtf");break;}if(void 0!==t.cells[l+1]&&void 0!==t.cells[l+1][u])r=0,i=1,o=0;else{if(!(a&eo)){c.push([u+s.topleft,l+1]),r=0,i=-1,o=0,h=!0;break;}c.push([u+1,l+1]),r=1,i=0,o=1;}}else if(-1===i){if(1!==o){console.log("MarchingSquaresJS-isoBands: wtf");break;}if(void 0!==t.cells[l][u+1])r=1,i=0,o=1;else{if(!(4&a)){c.push([u+1,l+s.righttop]),r=-1,i=0,o=1,h=!0;break;}c.push([u+1,l]),r=0,i=-1,o=1;}}else{if(1!==i){console.log("MarchingSquaresJS-isoBands: where did we came from???");break;}if(0!==o){console.log("MarchingSquaresJS-isoBands: wtf");break;}if(void 0!==t.cells[l][u-1])r=-1,i=0,o=0;else{if(!(a&to)){c.push([u,l+s.leftbottom]),r=1,i=0,o=0,h=!0;break;}c.push([u,l+1]),r=0,i=1,o=0;}}if(l+=i,(u+=r)===e&&l===n)break;}return{path:c,i:u,j:l,x:r,y:i,o:o};}function Ho(t){if(t.edges.length>0){var e=t.edges[t.edges.length-1],n=t.cval_real;switch(e){case 0:return n&eo?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[t.topleft,1],x:0,y:-1,o:0};case 1:return 4&n?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 2:return 4&n?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[t.topleft,1],x:0,y:-1,o:0};case 3:return 1&n?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 4:return n&eo?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[t.topright,1],x:0,y:-1,o:1};case 5:return 4&n?{p:[t.topright,1],x:0,y:-1,o:1}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 6:return 4&n?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[t.topright,1],x:0,y:-1,o:1};case 7:return 1&n?{p:[t.topright,1],x:0,y:-1,o:1}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 8:return 4&n?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[1,t.righttop],x:-1,y:0,o:1};case 9:return 1&n?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 10:return 1&n?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[1,t.righttop],x:-1,y:0,o:1};case 11:return n&to?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[0,t.lefttop],x:1,y:0,o:1};case 12:return 4&n?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 13:return 1&n?{p:[1,t.rightbottom],x:-1,y:0,o:0}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 14:return 1&n?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 15:return n&to?{p:[1,t.rightbottom],x:-1,y:0,o:0}:{p:[0,t.lefttop],x:1,y:0,o:1};case 16:return 4&n?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[0,t.leftbottom],x:1,y:0,o:0};case 17:return n&to?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[0,t.lefttop],x:1,y:0,o:1};case 18:return 1&n?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 19:return n&to?{p:[t.bottomleft,0],x:0,y:1,o:0}:{p:[0,t.lefttop],x:1,y:0,o:1};case 20:return n&to?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[0,t.leftbottom],x:1,y:0,o:0};case 21:return n&eo?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[t.topright,1],x:0,y:-1,o:1};case 22:return n&to?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[0,t.lefttop],x:1,y:0,o:1};case 23:return n&eo?{p:[0,t.lefttop],x:1,y:0,o:1}:{p:[t.topright,1],x:0,y:-1,o:1};default:console.log("MarchingSquaresJS-isoBands: edge index out of range!"),console.log(t);}}return null;}function Wo(t,e,n,r){var i,o,s,a,u,l=t.cval;switch(e){case-1:switch(r){case 0:i=Fo[l],s=ho[l],a=po[l],u=fo[l];break;default:i=Do[l],s=uo[l],a=lo[l],u=co[l];}break;case 1:switch(r){case 0:i=qo[l],s=Io[l],a=No[l],u=So[l];break;default:i=Bo[l],s=Eo[l],a=bo[l],u=wo[l];}break;default:switch(n){case-1:switch(r){case 0:i=zo[l],s=no[l],a=ro[l],u=io[l];break;default:i=jo[l],s=oo[l],a=so[l],u=ao[l];}break;case 1:switch(r){case 0:i=Go[l],s=go[l],a=yo[l],u=vo[l];break;default:i=ko[l],s=_o[l],a=mo[l],u=xo[l];}}}if(o=t.edges.indexOf(i),void 0===t.edges[o])return null;switch(function(t,e){delete t.edges[e];for(var n=e+1;n0){var a=r[e-1],u=is(n,a);!1!==u&&(a[1]=u,n[0]=u),s.push(a[0]),e===o.length-2&&(s.push(n[0]),s.push(n[1]));}2===o.length&&(s.push(n[0]),s.push(n[1]));}var l,c,h,p,f,g,d,y;}),h(s,t.properties);}function ss(t,e,n){var r=e[0]-t[0],i=e[1]-t[1],o=n[0]-e[0];return function(t){return(t>0)-(t<0)||+t;}(r*(n[1]-e[1])-o*i);}function as(t,e){return e.geometry.coordinates[0].every(function(e){return ye(a(e),t);});}Uo[1]=Uo[169]=Co,Uo[4]=Uo[166]=Po,Uo[16]=Uo[154]=Mo,Uo[64]=Uo[106]=Lo,Uo[168]=Uo[2]=Oo,Uo[162]=Uo[8]=Ro,Uo[138]=Uo[32]=To,Uo[42]=Uo[128]=Ao,Uo[5]=Uo[165]=function(t){return[[0,0],[0,t.leftbottom],[1,t.rightbottom],[1,0]];},Uo[20]=Uo[150]=function(t){return[[1,0],[t.bottomright,0],[t.topright,1],[1,1]];},Uo[80]=Uo[90]=function(t){return[[1,1],[1,t.righttop],[0,t.lefttop],[0,1]];},Uo[65]=Uo[105]=function(t){return[[t.bottomleft,0],[0,0],[0,1],[t.topleft,1]];},Uo[160]=Uo[10]=function(t){return[[1,t.righttop],[1,t.rightbottom],[0,t.leftbottom],[0,t.lefttop]];},Uo[130]=Uo[40]=function(t){return[[t.topleft,1],[t.topright,1],[t.bottomright,0],[t.bottomleft,0]];},Uo[85]=function(){return[[0,0],[0,1],[1,1],[1,0]];},Uo[101]=Uo[69]=function(t){return[[1,t.rightbottom],[1,0],[0,0],[0,1],[t.topleft,1]];},Uo[149]=Uo[21]=function(t){return[[t.topright,1],[1,1],[1,0],[0,0],[0,t.leftbottom]];},Uo[86]=Uo[84]=function(t){return[[1,0],[t.bottomright,0],[0,t.lefttop],[0,1],[1,1]];},Uo[89]=Uo[81]=function(t){return[[1,1],[1,t.righttop],[t.bottomleft,0],[0,0],[0,1]];},Uo[96]=Uo[74]=function(t){return[[1,t.righttop],[1,t.rightbottom],[0,t.lefttop],[0,1],[t.topleft,1]];},Uo[24]=Uo[146]=function(t){return[[1,1],[1,t.righttop],[t.bottomright,0],[t.bottomleft,0],[t.topright,1]];},Uo[6]=Uo[164]=function(t){return[[1,t.rightbottom],[1,0],[t.bottomright,0],[0,t.leftbottom],[0,t.lefttop]];},Uo[129]=Uo[41]=function(t){return[[t.topright,1],[t.bottomleft,0],[0,0],[0,t.leftbottom],[t.topleft,1]];},Uo[66]=Uo[104]=function(t){return[[t.bottomright,0],[t.bottomleft,0],[0,t.lefttop],[0,1],[t.topleft,1]];},Uo[144]=Uo[26]=function(t){return[[1,1],[1,t.righttop],[0,t.leftbottom],[0,t.lefttop],[t.topright,1]];},Uo[36]=Uo[134]=function(t){return[[1,t.rightbottom],[1,0],[t.bottomright,0],[t.topleft,1],[t.topright,1]];},Uo[9]=Uo[161]=function(t){return[[1,t.righttop],[1,t.rightbottom],[t.bottomleft,0],[0,0],[0,t.leftbottom]];},Uo[37]=Uo[133]=function(t){return[[1,t.rightbottom],[1,0],[0,0],[0,t.leftbottom],[t.topleft,1],[t.topright,1]];},Uo[148]=Uo[22]=function(t){return[[1,1],[1,0],[t.bottomright,0],[0,t.leftbottom],[0,t.lefttop],[t.topright,1]];},Uo[82]=Uo[88]=function(t){return[[1,1],[1,t.righttop],[t.bottomright,0],[t.bottomleft,0],[0,t.lefttop],[0,1]];},Uo[73]=Uo[97]=function(t){return[[1,t.righttop],[1,t.rightbottom],[t.bottomleft,0],[0,0],[0,1],[t.topleft,1]];},Uo[145]=Uo[25]=function(t){return[[1,1],[1,t.righttop],[t.bottomleft,0],[0,0],[0,t.leftbottom],[t.topright,1]];},Uo[70]=Uo[100]=function(t){return[[1,t.rightbottom],[1,0],[t.bottomright,0],[0,t.lefttop],[0,1],[t.topleft,1]];},Uo[34]=function(t){return[Ao(t),Ro(t)];},Uo[35]=function(t){return[[1,t.righttop],[1,t.rightbottom],[t.bottomright,0],[t.bottomleft,0],[0,t.leftbottom],[0,t.lefttop],[t.topleft,1],[t.topright,1]];},Uo[136]=function(t){return[To(t),Oo(t)];},Uo[153]=function(t){return[Mo(t),Co(t)];},Uo[102]=function(t){return[Po(t),Lo(t)];},Uo[155]=function(t){return[[1,1],[1,t.righttop],[t.bottomleft,0],[0,0],[0,t.leftbottom],[t.topright,1]];},Uo[103]=function(t){return[[1,t.rightbottom],[1,0],[t.bottomright,0],[0,t.lefttop],[0,1],[t.topleft,1]];},Uo[152]=function(t){return[Mo(t),Oo(t)];},Uo[156]=function(t){return[[1,1],[1,t.righttop],[t.bottomright,0],[t.bottomleft,0],[0,t.leftbottom],[0,t.lefttop],[t.topright,1]];},Uo[137]=function(t){return[To(t),Co(t)];},Uo[139]=function(t){return[[1,t.righttop],[1,t.rightbottom],[t.bottomleft,0],[0,0],[0,t.leftbottom],[t.topleft,1],[t.topright,1]];},Uo[98]=function(t){return[Ro(t),Lo(t)];},Uo[99]=function(t){return[[1,t.righttop],[1,t.rightbottom],[t.bottomright,0],[t.bottomleft,0],[0,t.lefttop],[0,1],[t.topleft,1]];},Uo[38]=function(t){return[Po(t),Ao(t)];},Uo[39]=function(t){return[[1,t.rightbottom],[1,0],[t.bottomright,0],[0,t.leftbottom],[0,t.lefttop],[t.topleft,1],[t.topright,1]];};var us=function(){function t(e){this.id=t.buildId(e),this.coordinates=e,this.innerEdges=[],this.outerEdges=[],this.outerEdgesSorted=!1;}return t.buildId=function(t){return t.join(",");},t.prototype.removeInnerEdge=function(t){this.innerEdges=this.innerEdges.filter(function(e){return e.from.id!==t.from.id;});},t.prototype.removeOuterEdge=function(t){this.outerEdges=this.outerEdges.filter(function(e){return e.to.id!==t.to.id;});},t.prototype.addOuterEdge=function(t){this.outerEdges.push(t),this.outerEdgesSorted=!1;},t.prototype.sortOuterEdges=function(){var t=this;this.outerEdgesSorted||(this.outerEdges.sort(function(e,n){var r=e.to,i=n.to;if(r.coordinates[0]-t.coordinates[0]>=0&&i.coordinates[0]-t.coordinates[0]<0)return 1;if(r.coordinates[0]-t.coordinates[0]<0&&i.coordinates[0]-t.coordinates[0]>=0)return-1;if(r.coordinates[0]-t.coordinates[0]==0&&i.coordinates[0]-t.coordinates[0]==0)return r.coordinates[1]-t.coordinates[1]>=0||i.coordinates[1]-t.coordinates[1]>=0?r.coordinates[1]-i.coordinates[1]:i.coordinates[1]-r.coordinates[1];var o=ss(t.coordinates,r.coordinates,i.coordinates);return o<0?1:o>0?-1:Math.pow(r.coordinates[0]-t.coordinates[0],2)+Math.pow(r.coordinates[1]-t.coordinates[1],2)-(Math.pow(i.coordinates[0]-t.coordinates[0],2)+Math.pow(i.coordinates[1]-t.coordinates[1],2));}),this.outerEdgesSorted=!0);},t.prototype.getOuterEdges=function(){return this.sortOuterEdges(),this.outerEdges;},t.prototype.getOuterEdge=function(t){return this.sortOuterEdges(),this.outerEdges[t];},t.prototype.addInnerEdge=function(t){this.innerEdges.push(t);},t;}(),ls=function(){function t(t,e){this.from=t,this.to=e,this.next=void 0,this.label=void 0,this.symetric=void 0,this.ring=void 0,this.from.addOuterEdge(this),this.to.addInnerEdge(this);}return t.prototype.getSymetric=function(){return this.symetric||(this.symetric=new t(this.to,this.from),this.symetric.symetric=this),this.symetric;},t.prototype.deleteEdge=function(){this.from.removeOuterEdge(this),this.to.removeInnerEdge(this);},t.prototype.isEqual=function(t){return this.from.id===t.from.id&&this.to.id===t.to.id;},t.prototype.toString=function(){return"Edge { "+this.from.id+" -> "+this.to.id+" }";},t.prototype.toLineString=function(){return h([this.from.coordinates,this.to.coordinates]);},t.prototype.compareTo=function(t){return ss(t.from.coordinates,t.to.coordinates,this.to.coordinates);},t;}(),cs=function(){function t(){this.edges=[],this.polygon=void 0,this.envelope=void 0;}return t.prototype.push=function(t){this.edges.push(t),this.polygon=this.envelope=void 0;},t.prototype.get=function(t){return this.edges[t];},Object.defineProperty(t.prototype,"length",{get:function get(){return this.edges.length;},enumerable:!0,configurable:!0}),t.prototype.forEach=function(t){this.edges.forEach(t);},t.prototype.map=function(t){return this.edges.map(t);},t.prototype.some=function(t){return this.edges.some(t);},t.prototype.isValid=function(){return!0;},t.prototype.isHole=function(){var t=this,e=this.edges.reduce(function(e,n,r){return n.from.coordinates[1]>t.edges[e].from.coordinates[1]&&(e=r),e;},0),n=(0===e?this.length:e)-1,r=(e+1)%this.length,i=ss(this.edges[n].from.coordinates,this.edges[e].from.coordinates,this.edges[r].from.coordinates);return 0===i?this.edges[n].from.coordinates[0]>this.edges[r].from.coordinates[0]:i>0;},t.prototype.toMultiPoint=function(){return d(this.edges.map(function(t){return t.from.coordinates;}));},t.prototype.toPolygon=function(){if(this.polygon)return this.polygon;var t=this.edges.map(function(t){return t.from.coordinates;});return t.push(this.edges[0].from.coordinates),this.polygon=l([t]);},t.prototype.getEnvelope=function(){return this.envelope?this.envelope:this.envelope=dn(this.toPolygon());},t.findEdgeRingContaining=function(t,e){var n,r,i=t.getEnvelope();return e.forEach(function(e){var o,s,u,l,c,h,p=e.getEnvelope();if((r&&(n=r.getEnvelope()),s=i,u=(o=p).geometry.coordinates[0].map(function(t){return t[0];}),l=o.geometry.coordinates[0].map(function(t){return t[1];}),c=s.geometry.coordinates[0].map(function(t){return t[0];}),h=s.geometry.coordinates[0].map(function(t){return t[1];}),Math.max.apply(null,u)!==Math.max.apply(null,c)||Math.max.apply(null,l)!==Math.max.apply(null,h)||Math.min.apply(null,u)!==Math.min.apply(null,c)||Math.min.apply(null,l)!==Math.min.apply(null,h))&&as(p,i)){for(var f=t.map(function(t){return t.from.coordinates;}),g=void 0,d=function d(t){e.some(function(e){return n=t,r=e.from.coordinates,n[0]===r[0]&&n[1]===r[1];var n,r;})||(g=t);},y=0,v=f;y=0;--o){var s=i[o],a=s.symetric,u=void 0,l=void 0;s.label===e&&(u=s),a.label===e&&(l=a),u&&l&&(l&&(r=l),u&&(r&&(r.next=u,r=void 0),n||(n=u)));}r&&(r.next=n);},t.prototype._findLabeledEdgeRings=function(){var t=[],e=0;return this.edges.forEach(function(n){if(!(n.label>=0)){t.push(n);var r=n;do{r.label=e,r=r.next;}while(!n.isEqual(r));e++;}}),t;},t.prototype.getEdgeRings=function(){var t=this;this._computeNextCWEdges(),this.edges.forEach(function(t){t.label=void 0;}),this._findLabeledEdgeRings().forEach(function(e){t._findIntersectionNodes(e).forEach(function(n){t._computeNextCCWEdges(n,e.label);});});var e=[];return this.edges.forEach(function(n){n.ring||e.push(t._findEdgeRing(n));}),e;},t.prototype._findIntersectionNodes=function(t){var e=[],n=t,r=function r(){var r=0;n.from.getOuterEdges().forEach(function(e){e.label===t.label&&++r;}),r>1&&e.push(n.from),n=n.next;};do{r();}while(!t.isEqual(n));return e;},t.prototype._findEdgeRing=function(t){var e=t,n=new cs();do{n.push(e),e.ring=n,e=e.next;}while(!t.isEqual(e));return n;},t.prototype.removeNode=function(t){var e=this;t.getOuterEdges().forEach(function(t){return e.removeEdge(t);}),t.innerEdges.forEach(function(t){return e.removeEdge(t);}),delete this.nodes[t.id];},t.prototype.removeEdge=function(t){this.edges=this.edges.filter(function(e){return!e.isEqual(t);}),t.deleteEdge();},t;}();function ps(t,e){var n=!0;return z(t,function(t){z(e,function(e){if(!1===n)return!1;n=function(t,e){switch(t.type){case"Point":switch(e.type){case"Point":return n=t.coordinates,r=e.coordinates,!(n[0]===r[0]&&n[1]===r[1]);case"LineString":return!fs(e,t);case"Polygon":return!ye(t,e);}break;case"LineString":switch(e.type){case"Point":return!fs(t,e);case"LineString":return!function(t,e){if(Or(t,e).features.length>0)return!0;return!1;}(t,e);case"Polygon":return!gs(e,t);}break;case"Polygon":switch(e.type){case"Point":return!ye(e,t);case"LineString":return!gs(t,e);case"Polygon":return!function(t,e){for(var n=0,r=t.coordinates[0];n0)return!0;return!1;}(e,t);}}var n,r;return!1;}(t.geometry,e.geometry);});}),n;}function fs(t,e){for(var n=0;n0;}function ds(t,e,n){var r=n[0]-t[0],i=n[1]-t[1],o=e[0]-t[0],s=e[1]-t[1];return 0==r*s-i*o&&(Math.abs(o)>=Math.abs(s)?o>0?t[0]<=n[0]&&n[0]<=e[0]:e[0]<=n[0]&&n[0]<=t[0]:s>0?t[1]<=n[1]&&n[1]<=e[1]:e[1]<=n[1]&&n[1]<=t[1]);}function ys(t,e){return!(t[0]>e[0])&&!(t[2]e[1])&&!(t[3]0;}function Es(t,e){for(var n=!1,r=!1,i=t.coordinates.length,o=0;o=Math.abs(a)?s>0?t[0]<=n[0]&&n[0]<=e[0]:e[0]<=n[0]&&n[0]<=t[0]:a>0?t[1]<=n[1]&&n[1]<=e[1]:e[1]<=n[1]&&n[1]<=t[1]:Math.abs(s)>=Math.abs(a)?s>0?t[0]0?t[1]=0&&(n=[].concat(t.slice(r,t.length),t.slice(1,r+1))),n;},ws.prototype.comparePath=function(t,e){var n=this;return t.every(function(t,e){return n.compareCoord(t,this[e]);},e);},ws.prototype.comparePolygon=function(t,e){if(this.compareLine(t.coordinates[0],e.coordinates[0],1,!0)){var n=t.coordinates.slice(1,t.coordinates.length),r=e.coordinates.slice(1,e.coordinates.length),i=this;return n.every(function(t){return this.some(function(e){return i.compareLine(t,e,1,!0);});},r);}return!1;},ws.prototype.compareFeature=function(t,e){return!(t.id!==e.id||!this.objectComparator(t.properties,e.properties)||!this.compareBBox(t,e))&&this.compare(t.geometry,e.geometry);},ws.prototype.compareBBox=function(t,e){return!!(!t.bbox&&!e.bbox||t.bbox&&e.bbox&&this.compareCoord(t.bbox,e.bbox));},ws.prototype.removePseudo=function(t){return t;};var Cs=ws;function Ps(t,e){var n=!1;return z(t,function(t){z(e,function(e){if(!0===n)return!0;n=!ps(t.geometry,e.geometry);});}),n;}var Ms=Bt(function(t){function e(t,e,n,r){this.dataset=[],this.epsilon=1,this.minPts=2,this.distance=this._euclideanDistance,this.clusters=[],this.noise=[],this._visited=[],this._assigned=[],this._datasetLength=0,this._init(t,e,n,r);}e.prototype.run=function(t,e,n,r){this._init(t,e,n,r);for(var i=0;i=this.minPts&&(e=this._mergeArrays(e,i));}1!==this._assigned[r]&&this._addToCluster(r,t);}},e.prototype._addToCluster=function(t,e){this.clusters[e].push(t),this._assigned[t]=1;},e.prototype._regionQuery=function(t){for(var e=[],n=0;n0){for(u=0;u=0);return t;},e.prototype.assign=function(){for(var t,e=!1,n=this.dataset.length,r=0;ri&&(n=r):e=this.minPts)return n;}},n.prototype._regionQuery=function(t,e){e=e||this.epsilon;for(var n=[],r=0,i=this.dataset.length;r0;r.length0;){var a=t[Math.floor(Math.random()*o)],u=s?a.join("_"):""+a;n[u]||(n[u]=!0,r.push(a));}if(r.length0,s=t[Math.floor(Math.random()*i)];o&&s.join("_");for(r.push(s);r.length0,f=[];if(n)i="kmrand"==n?Gs(t,e):"kmpp"==n?qs(t,e):n;else for(var g={};i.length0;){var u=s.pop();if(u===n)return Vs(u);u.closed=!0;for(var l=t.neighbors(u),c=0,h=l.length;c0)){if(o/=p,p<0){if(o0){if(o>h)return;o>c&&(c=o);}if(o=r-u,p||!(o<0)){if(o/=p,p<0){if(o>h)return;o>c&&(c=o);}else if(p>0){if(o0)){if(o/=f,f<0){if(o0){if(o>h)return;o>c&&(c=o);}if(o=i-l,f||!(o<0)){if(o/=f,f<0){if(o>h)return;o>c&&(c=o);}else if(f>0){if(o0||h<1)||(c>0&&(t[0]=[u+c*p,l+c*f]),h<1&&(t[1]=[u+h*p,l+h*f]),!0);}}}}}function ua(t,e,n,r,i){var o=t[1];if(o)return!0;var s,a,u=t[0],l=t.left,c=t.right,h=l[0],p=l[1],f=c[0],g=c[1],d=(h+f)/2,y=(p+g)/2;if(g===p){if(d=r)return;if(h>f){if(u){if(u[1]>=i)return;}else u=[d,n];o=[d,i];}else{if(u){if(u[1]1){if(h>f){if(u){if(u[1]>=i)return;}else u=[(n-a)/s,n];o=[(i-a)/s,i];}else{if(u){if(u[1]=r)return;}else u=[e,s*e+a];o=[r,s*r+a];}else{if(u){if(u[0]0&&(this.content[0]=e,this.bubbleUp(0)),t;},remove:function remove(t){var e=this.content.indexOf(t),n=this.content.pop();e!==this.content.length-1&&(this.content[e]=n,this.scoreFunction(n)0;){var n=(t+1>>1)-1,r=this.content[n];if(!(this.scoreFunction(e)=-La)){var f=u*u+l*l,g=c*c+h*h,d=(h*f-l*g)/p,y=(u*g-c*f)/p,v=fa.pop()||new ga();v.arc=t,v.site=i,v.x=d+s,v.y=(v.cy=y+a)+Math.sqrt(d*d+y*y),t.circle=v;for(var _=null,m=Ca._;m;)if(v.yMa)a=a.L;else{if(!((i=o-Ia(a,s))>Ma)){r>-Ma?(e=a.P,n=a):i>-Ma?(e=a,n=a.N):e=n=a;break;}if(!a.R){e=a;break;}a=a.R;}!function(t){Sa[t.index]={site:t,halfedges:[]};}(t);var u=ma(t);if(Na.insert(e,u),e||n){if(e===n)return ya(e),n=ma(e.site),Na.insert(u,n),u.edge=n.edge=ia(e.site,u.site),da(e),void da(n);if(n){ya(e),ya(n);var l=e.site,c=l[0],h=l[1],p=t[0]-c,f=t[1]-h,g=n.site,d=g[0]-c,y=g[1]-h,v=2*(p*y-f*d),_=p*p+f*f,m=d*d+y*y,x=[(y*_-f*m)/v+c,(p*m-d*_)/v+h];sa(n.edge,l,g,x),u.edge=ia(l,t,null,x),n.edge=ia(t,g,null,x),da(e),da(n);}else u.edge=ia(e.site,u.site);}}function wa(t,e){var n=t.site,r=n[0],i=n[1],o=i-e;if(!o)return r;var s=t.P;if(!s)return-1/0;var a=(n=s.site)[0],u=n[1],l=u-e;if(!l)return a;var c=a-r,h=1/o-1/l,p=c/l;return h?(-p+Math.sqrt(p*p-2*h*(c*c/(-2*l)-u+l/2+i-o/2)))/h+r:(r+a)/2;}function Ia(t,e){var n=t.N;if(n)return wa(n,e);var r=t.site;return r[1]===e?r[0]:1/0;}var Na,Sa,Ca,Pa,Ma=1e-6,La=1e-12;function Oa(t,e){return e[1]-t[1]||e[0]-t[0];}function Ra(t,e){var n,r,i,o=t.sort(Oa).pop();for(Pa=[],Sa=new Array(t.length),Na=new $s(),Ca=new $s();;)if(i=pa,o&&(!i||o[1]Ma||Math.abs(i[0][1]-i[1][1])>Ma)||delete Pa[o];}(s,a,u,l),function(t,e,n,r){var i,o,s,a,u,l,c,h,p,f,g,d,y=Sa.length,v=!0;for(i=0;iMa||Math.abs(d-p)>Ma)&&(u.splice(a,0,Pa.push(oa(s,f,Math.abs(g-t)Ma?[t,Math.abs(h-t)Ma?[Math.abs(p-r)Ma?[n,Math.abs(h-n)Ma?[Math.abs(p-e)=-270&&(d=-d),g<-180&&g>=-360&&(y=-y),"degrees"===o){var v=d*Math.cos(h)+y*Math.sin(h),_=y*Math.cos(h)-d*Math.sin(h);d=v,y=_;}p.push([d+c[0],y+c[1]]);}return p.push(p[0]),"degrees"===o?l([p],u):$o(l([p],u),s,{pivot:a});}function Da(t){var e=t*Math.PI/180;return Math.tan(e);}function Fa(t,e){void 0===e&&(e={});var n=0,r=0,i=0;return q(t,function(t,o,s){var a=e.weight?null==s?void 0:s[e.weight]:void 0;if(!C(a=null==a?1:a))throw new Error("weight value must be a number for feature index "+o);(a=Number(a))>0&&R(t,function(t){n+=t[0]*a,r+=t[1]*a,i+=a;});}),a([n/i,r/i],e.properties,e);}function ka(t,e,n,r,i){var o=r.tolerance||.001,s=0,u=0,l=0,c=0;if(F(n,function(e){var n,r=null===(n=e.properties)||void 0===n?void 0:n.weight,i=null==r?1:r;if(!C(i=Number(i)))throw new Error("weight value must be a number");if(i>0){c+=1;var o=i*me(e,t);0===o&&(o=1);var a=i/o;s+=e.geometry.coordinates[0]*a,u+=e.geometry.coordinates[1]*a,l+=a;}}),c<1)throw new Error("no features to measure");var h=s/l,p=u/l;return 1===c||0===i||Math.abs(h-e[0])n&&(n=u,r=o,e.push([]));var l=o-r,c=t.coordinates[u][l+1],h=i[0],p=i[1],f=c[0],g=c[1];e[u].push([.75*h+.25*f,.75*p+.25*g]),e[u].push([.25*h+.75*f,.25*p+.75*g]);},!0),e.forEach(function(t){t.push(t[0]);});}function Ba(t,e){var n=0,r=0,i=0;R(t,function(o,s,a,u,l){u>i&&(i=u,r=s,e.push([[]])),l>n&&(n=l,r=s,e[u].push([]));var c=s-r,h=t.coordinates[u][l][c+1],p=o[0],f=o[1],g=h[0],d=h[1];e[u][l].push([.75*p+.25*g,.75*f+.25*d]),e[u][l].push([.25*p+.75*g,.25*f+.75*d]);},!0),e.forEach(function(t){t.forEach(function(t){t.push(t[0]);});});}function za(t,e,n){void 0===n&&(n=2);var r=K(t),i=K(e),o=r[0]-i[0],s=r[1]-i[1];return 1===n?Math.abs(o)+Math.abs(s):Math.pow(Math.pow(o,n)+Math.pow(s,n),1/n);}function ja(t,e){var n=(e=e||{}).threshold||1e4,r=e.p||2,i=e.binary||!1,o=e.alpha||-1,s=e.standardization||!1,a=[];F(t,function(t){a.push(En(t));});for(var u=[],l=0;l0?1:0;}(t[0]))*e,n*Math.log(Math.tan(.25*Math.PI+.5*t[1]*e))];return i[0]>r&&(i[0]=r),i[0]<-r&&(i[0]=-r),i[1]>r&&(i[1]=r),i[1]<-r&&(i[1]=-r),i;}function Wa(t){var e=180/Math.PI,n=6378137;return[t[0]*e/n,(.5*Math.PI-2*Math.atan(Math.exp(-t[1]/n)))*e];}Ra.prototype={constructor:Ra,polygons:function polygons(){var t=this.edges;return this.cells.map(function(e){var n=e.halfedges.map(function(n){return ca(e,t[n]);});return n.data=e.site.data,n;});},triangles:function triangles(){var t=[],e=this.edges;return this.cells.forEach(function(n,r){if(o=(i=n.halfedges).length)for(var i,o,s,a,u,l,c=n.site,h=-1,p=e[i[o-1]],f=p.left===c?p.right:p.left;++h=a)return null;var u=t-i.site[0],l=e-i.site[1],c=u*u+l*l;do{i=o.cells[r=s],s=null,i.halfedges.forEach(function(n){var r=o.edges[n],a=r.left;if(a!==i.site&&a||(a=r.right)){var u=t-a[0],l=e-a[1],h=u*u+l*l;h0?t+n[e-1]:t;}),o.forEach(function(t){t=2*t*Math.PI/o[o.length-1];var n=Math.random();i.push([n*(e.max_radial_length||10)*Math.sin(t),n*(e.max_radial_length||10)*Math.cos(t)]);}),i[i.length-1]=i[0],i=i.map((r=Ka(e.bbox),function(t){return[t[0]+r[0],t[1]+r[1]];})),n.push(l([i]));},i=0;i + * @license MIT + * @preserve + */function fu(t,e){return t>e?1:t0))break;if(null===e.right)break;if(n(t,e.right.key)>0){a=e.right;if(e.right=a.left,a.left=e,null===(e=a).right)break;}i.right=e,i=e,e=e.right;}}return i.right=e.left,o.left=e.right,e.left=r.right,e.right=r.left,e;}function du(t,e,n,r){var i=new pu(t,e);if(null===n)return i.left=i.right=null,i;var o=r(t,(n=gu(t,n,r)).key);return o<0?(i.left=n.left,i.right=n,n.left=null):o>=0&&(i.right=n.right,i.left=n,n.right=null),i;}function yu(t,e,n){var r=null,i=null;if(e){var o=n((e=gu(t,e,n)).key,t);0===o?(r=e.left,i=e.right):o<0?(i=e.right,e.right=null,r=e):(r=e.left,e.left=null,i=e);}return{left:r,right:i};}function vu(t,e,n,r,i){if(t){r(e+(n?"└── ":"├── ")+i(t)+"\n");var o=e+(n?" ":"│ ");t.left&&vu(t.left,o,!1,r,i),t.right&&vu(t.right,o,!0,r,i);}}var _u=function(){function t(t){void 0===t&&(t=fu),this._root=null,this._size=0,this._comparator=t;}return t.prototype.insert=function(t,e){return this._size++,this._root=du(t,e,this._root,this._comparator);},t.prototype.add=function(t,e){var n=new pu(t,e);null===this._root&&(n.left=n.right=null,this._size++,this._root=n);var r=this._comparator,i=gu(t,this._root,r),o=r(t,i.key);return 0===o?this._root=i:(o<0?(n.left=i.left,n.right=i,i.left=null):o>0&&(n.right=i.right,n.left=i,i.right=null),this._size++,this._root=n),this._root;},t.prototype.remove=function(t){this._root=this._remove(t,this._root,this._comparator);},t.prototype._remove=function(t,e,n){var r;return null===e?null:0===n(t,(e=gu(t,e,n)).key)?(null===e.left?r=e.right:(r=gu(t,e.left,n)).right=e.right,this._size--,r):e;},t.prototype.pop=function(){var t=this._root;if(t){for(;t.left;)t=t.left;return this._root=gu(t.key,this._root,this._comparator),this._root=this._remove(t.key,this._root,this._comparator),{key:t.key,data:t.data};}return null;},t.prototype.findStatic=function(t){for(var e=this._root,n=this._comparator;e;){var r=n(t,e.key);if(0===r)return e;e=r<0?e.left:e.right;}return null;},t.prototype.find=function(t){return this._root&&(this._root=gu(t,this._root,this._comparator),0!==this._comparator(t,this._root.key))?null:this._root;},t.prototype.contains=function(t){for(var e=this._root,n=this._comparator;e;){var r=n(t,e.key);if(0===r)return!0;e=r<0?e.left:e.right;}return!1;},t.prototype.forEach=function(t,e){for(var n=this._root,r=[],i=!1;!i;)null!==n?(r.push(n),n=n.left):0!==r.length?(n=r.pop(),t.call(e,n),n=n.right):i=!0;return this;},t.prototype.range=function(t,e,n,r){for(var i=[],o=this._comparator,s=this._root;0!==i.length||s;)if(s)i.push(s),s=s.left;else{if(o((s=i.pop()).key,e)>0)break;if(o(s.key,t)>=0&&n.call(r,s))return this;s=s.right;}return this;},t.prototype.keys=function(){var t=[];return this.forEach(function(e){var n=e.key;return t.push(n);}),t;},t.prototype.values=function(){var t=[];return this.forEach(function(e){var n=e.data;return t.push(n);}),t;},t.prototype.min=function(){return this._root?this.minNode(this._root).key:null;},t.prototype.max=function(){return this._root?this.maxNode(this._root).key:null;},t.prototype.minNode=function(t){if(void 0===t&&(t=this._root),t)for(;t.left;)t=t.left;return t;},t.prototype.maxNode=function(t){if(void 0===t&&(t=this._root),t)for(;t.right;)t=t.right;return t;},t.prototype.at=function(t){for(var e=this._root,n=!1,r=0,i=[];!n;)if(e)i.push(e),e=e.left;else if(i.length>0){if(e=i.pop(),r===t)return e;r++,e=e.right;}else n=!0;return null;},t.prototype.next=function(t){var e=this._root,n=null;if(t.right){for(n=t.right;n.left;)n=n.left;return n;}for(var r=this._comparator;e;){var i=r(t.key,e.key);if(0===i)break;i<0?(n=e,e=e.left):e=e.right;}return n;},t.prototype.prev=function(t){var e=this._root,n=null;if(null!==t.left){for(n=t.left;n.right;)n=n.right;return n;}for(var r=this._comparator;e;){var i=r(t.key,e.key);if(0===i)break;i<0?e=e.left:(n=e,e=e.right);}return n;},t.prototype.clear=function(){return this._root=null,this._size=0,this;},t.prototype.toList=function(){return function(t){var e=t,n=[],r=!1,i=new pu(null,null),o=i;for(;!r;)e?(n.push(e),e=e.left):n.length>0?e=(e=o=o.next=n.pop()).right:r=!0;return o.next=null,i.next;}(this._root);},t.prototype.load=function(t,e,n){void 0===e&&(e=[]),void 0===n&&(n=!1);var r=t.length,i=this._comparator;if(n&&Eu(t,e,0,r-1,i),null===this._root)this._root=mu(t,e,0,r),this._size=r;else{var o=function(t,e,n){var r=new pu(null,null),i=r,o=t,s=e;for(;null!==o&&null!==s;)n(o.key,s.key)<0?(i.next=o,o=o.next):(i.next=s,s=s.next),i=i.next;null!==o?i.next=o:null!==s&&(i.next=s);return r.next;}(this.toList(),function(t,e){for(var n=new pu(null,null),r=n,i=0;i0){var o=n+Math.floor(i/2),s=t[o],a=e[o],u=new pu(s,a);return u.left=mu(t,e,n,o),u.right=mu(t,e,o+1,r),u;}return null;}function xu(t,e,n){var r=n-e;if(r>0){var i=e+Math.floor(r/2),o=xu(t,e,i),s=t.head;return s.left=o,t.head=t.head.next,s.right=xu(t,i+1,n),s;}return null;}function Eu(t,e,n,r,i){if(!(n>=r)){for(var o=t[n+r>>1],s=n-1,a=r+1;;){do{s++;}while(i(t[s],o)<0);do{a--;}while(i(t[a],o)>0);if(s>=a)break;var u=t[s];t[s]=t[a],t[a]=u,u=e[s],e[s]=e[a],e[a]=u;}Eu(t,e,n,a,i),Eu(t,e,a+1,r,i);}}function bu(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function");}function wu(t,e){for(var n=0;ne.x?1:t.ye.y?1:0;}}]),Iu(t,[{key:"link",value:function value(t){if(t.point===this.point)throw new Error("Tried to link already linked events");for(var e=t.point.events,n=0,r=e.length;n=0&&u>=0?sl?-1:0:o<0&&u<0?sl?1:0:uo?1:0;};}}]),t;}(),zu=0,ju=function(){function t(e,n,r,i){bu(this,t),this.id=++zu,this.leftSE=e,e.segment=this,e.otherSE=n,this.rightSE=n,n.segment=this,n.otherSE=e,this.rings=r,this.windings=i;}return Iu(t,null,[{key:"compare",value:function value(t,e){var n=t.leftSE.point.x,r=e.leftSE.point.x,i=t.rightSE.point.x,o=e.rightSE.point.x;if(os&&a>u)return-1;var c=t.comparePoint(e.leftSE.point);if(c<0)return 1;if(c>0)return-1;var h=e.comparePoint(t.rightSE.point);return 0!==h?h:-1;}if(n>r){if(sa&&s>l)return 1;var p=e.comparePoint(t.leftSE.point);if(0!==p)return p;var f=t.comparePoint(e.rightSE.point);return f<0?1:f>0?-1:1;}if(sa)return 1;if(io){var d=t.comparePoint(e.rightSE.point);if(d<0)return 1;if(d>0)return-1;}if(i!==o){var y=u-s,v=i-n,_=l-a,m=o-r;if(y>v&&_m)return-1;}return i>o?1:il?1:t.ide.id?1:0;}}]),Iu(t,[{key:"replaceRightSE",value:function value(t){this.rightSE=t,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE;}},{key:"bbox",value:function value(){var t=this.leftSE.point.y,e=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:te?t:e}};}},{key:"vector",value:function value(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y};}},{key:"isAnEndpoint",value:function value(t){return t.x===this.leftSE.point.x&&t.y===this.leftSE.point.y||t.x===this.rightSE.point.x&&t.y===this.rightSE.point.y;}},{key:"comparePoint",value:function value(t){if(this.isAnEndpoint(t))return 0;var e=this.leftSE.point,n=this.rightSE.point,r=this.vector();if(e.x===n.x)return t.x===e.x?0:t.x0&&a.swapEvents(),Bu.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),r&&(i.checkForConsuming(),o.checkForConsuming()),n;}},{key:"swapEvents",value:function value(){var t=this.rightSE;this.rightSE=this.leftSE,this.leftSE=t,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var e=0,n=this.windings.length;e0){var o=n;n=r,r=o;}if(n.prev===r){var s=n;n=r,r=s;}for(var a=0,u=r.rings.length;a0))throw new Error("Tried to create degenerate segment at [".concat(e.x,", ").concat(e.y,"]"));i=n,o=e,s=-1;}return new t(new Bu(i,!0),new Bu(o,!1),[r],[s]);}}]),t;}(),Uu=function(){function t(e,n,r){if(bu(this,t),!Array.isArray(e)||0===e.length)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=n,this.isExterior=r,this.segments=[],"number"!=typeof e[0][0]||"number"!=typeof e[0][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var i=Ru.round(e[0][0],e[0][1]);this.bbox={ll:{x:i.x,y:i.y},ur:{x:i.x,y:i.y}};for(var o=i,s=1,a=e.length;sthis.bbox.ur.x&&(this.bbox.ur.x=u.x),u.y>this.bbox.ur.y&&(this.bbox.ur.y=u.y),o=u);}i.x===o.x&&i.y===o.y||this.segments.push(ju.fromRing(o,i,this));}return Iu(t,[{key:"getSweepEvents",value:function value(){for(var t=[],e=0,n=this.segments.length;ethis.bbox.ur.x&&(this.bbox.ur.x=o.bbox.ur.x),o.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=o.bbox.ur.y),this.interiorRings.push(o);}this.multiPoly=n;}return Iu(t,[{key:"getSweepEvents",value:function value(){for(var t=this.exteriorRing.getSweepEvents(),e=0,n=this.interiorRings.length;ethis.bbox.ur.x&&(this.bbox.ur.x=o.bbox.ur.x),o.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=o.bbox.ur.y),this.polys.push(o);}this.isSubject=n;}return Iu(t,[{key:"getSweepEvents",value:function value(){for(var t=[],e=0,n=this.polys.length;e0&&(t=r);}for(var i=t.segment.prevInResult(),o=i?i.prevInResult():null;;){if(!i)return null;if(!o)return i.ringOut;if(o.ringOut!==i.ringOut)return o.ringOut.enclosingRing()!==i.ringOut?i.ringOut:i.ringOut.enclosingRing();i=o.prevInResult(),o=i?i.prevInResult():null;}}}]),t;}(),Hu=function(){function t(e){bu(this,t),this.exteriorRing=e,e.poly=this,this.interiorRings=[];}return Iu(t,[{key:"addInterior",value:function value(t){this.interiorRings.push(t),t.poly=this;}},{key:"getGeom",value:function value(){var t=[this.exteriorRing.getGeom()];if(null===t[0])return null;for(var e=0,n=this.interiorRings.length;e1&&void 0!==arguments[1]?arguments[1]:ju.compare;bu(this,t),this.queue=e,this.tree=new _u(n),this.segments=[];}return Iu(t,[{key:"process",value:function value(t){var e=t.segment,n=[];if(t.consumedBy)return t.isLeft?this.queue.remove(t.otherSE):this.tree.remove(e),n;var r=t.isLeft?this.tree.insert(e):this.tree.find(e);if(!r)throw new Error("Unable to find segment #".concat(e.id," ")+"[".concat(e.leftSE.point.x,", ").concat(e.leftSE.point.y,"] -> ")+"[".concat(e.rightSE.point.x,", ").concat(e.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var i=r,o=r,s=void 0,a=void 0;void 0===s;)null===(i=this.tree.prev(i))?s=null:void 0===i.key.consumedBy&&(s=i.key);for(;void 0===a;)null===(o=this.tree.next(o))?a=null:void 0===o.key.consumedBy&&(a=o.key);if(t.isLeft){var u=null;if(s){var l=s.getIntersection(e);if(null!==l&&(e.isAnEndpoint(l)||(u=l),!s.isAnEndpoint(l)))for(var c=this._splitSafely(s,l),h=0,p=c.length;h0?(this.tree.remove(e),n.push(t)):(this.segments.push(e),e.prev=s);}else{if(s&&a){var b=s.getIntersection(a);if(null!==b){if(!s.isAnEndpoint(b))for(var w=this._splitSafely(s,b),I=0,N=w.length;IZu)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var m=new Ju(f),x=f.size,E=f.pop();E;){var b=E.key;if(f.size===x){var w=b.segment;throw new Error("Unable to pop() ".concat(b.isLeft?"left":"right"," SweepEvent ")+"[".concat(b.point.x,", ").concat(b.point.y,"] from segment #").concat(w.id," ")+"[".concat(w.leftSE.point.x,", ").concat(w.leftSE.point.y,"] -> ")+"[".concat(w.rightSE.point.x,", ").concat(w.rightSE.point.y,"] from queue. ")+"Please file a bug report.");}if(f.size>Zu)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(m.segments.length>Ku)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var I=m.process(b),N=0,S=I.length;N1?e-1:0),r=1;r1?e-1:0),r=1;r1?e-1:0),r=1;r1?e-1:0),r=1;re.x?1:this.ye.y?1:0;},ul.prototype.clone=function(){},ul.prototype.copy=function(){return new ul(this);},ul.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")";},ul.prototype.distance3D=function(t){var e=this.x-t.x,n=this.y-t.y,r=this.z-t.z;return Math.sqrt(e*e+n*n+r*r);},ul.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n);},ul.prototype.hashCode=function(){var t=17;return t=37*(t=37*t+ul.hashCode(this.x))+ul.hashCode(this.y);},ul.prototype.setCoordinate=function(t){this.x=t.x,this.y=t.y,this.z=t.z;},ul.prototype.interfaces_=function(){return[il,ol,al];},ul.prototype.getClass=function(){return ul;},ul.hashCode=function(){if(1===arguments.length){var t=arguments[0],e=nl.doubleToLongBits(t);return Math.trunc((e^e)>>>32);}},ll.DimensionalComparator.get=function(){return cl;},ll.serialVersionUID.get=function(){return 0x5cbf2c235c7e5800;},ll.NULL_ORDINATE.get=function(){return nl.NaN;},ll.X.get=function(){return 0;},ll.Y.get=function(){return 1;},ll.Z.get=function(){return 2;},Object.defineProperties(ul,ll);var cl=function cl(t){if(this._dimensionsToTest=2,0===arguments.length);else if(1===arguments.length){var e=arguments[0];if(2!==e&&3!==e)throw new el("only 2 or 3 dimensions may be specified");this._dimensionsToTest=e;}};cl.prototype.compare=function(t,e){var n=t,r=e,i=cl.compare(n.x,r.x);if(0!==i)return i;var o=cl.compare(n.y,r.y);return 0!==o?o:this._dimensionsToTest<=2?0:cl.compare(n.z,r.z);},cl.prototype.interfaces_=function(){return[sl];},cl.prototype.getClass=function(){return cl;},cl.compare=function(t,e){return te?1:nl.isNaN(t)?nl.isNaN(e)?0:-1:nl.isNaN(e)?1:0;};var hl=function hl(){};hl.prototype.create=function(){},hl.prototype.interfaces_=function(){return[];},hl.prototype.getClass=function(){return hl;};var pl=function pl(){},fl={INTERIOR:{configurable:!0},BOUNDARY:{configurable:!0},EXTERIOR:{configurable:!0},NONE:{configurable:!0}};pl.prototype.interfaces_=function(){return[];},pl.prototype.getClass=function(){return pl;},pl.toLocationSymbol=function(t){switch(t){case pl.EXTERIOR:return"e";case pl.BOUNDARY:return"b";case pl.INTERIOR:return"i";case pl.NONE:return"-";}throw new el("Unknown location value: "+t);},fl.INTERIOR.get=function(){return 0;},fl.BOUNDARY.get=function(){return 1;},fl.EXTERIOR.get=function(){return 2;},fl.NONE.get=function(){return-1;},Object.defineProperties(pl,fl);var gl=function gl(t,e){return t.interfaces_&&t.interfaces_().indexOf(e)>-1;},dl=function dl(){},yl={LOG_10:{configurable:!0}};dl.prototype.interfaces_=function(){return[];},dl.prototype.getClass=function(){return dl;},dl.log10=function(t){var e=Math.log(t);return nl.isInfinite(e)||nl.isNaN(e)?e:e/dl.LOG_10;},dl.min=function(t,e,n,r){var i=t;return en?n:t;}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var r=arguments[0],i=arguments[1],o=arguments[2];return ro?o:r;}},dl.wrap=function(t,e){return t<0?e- -t%e:t%e;},dl.max=function(){if(3===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2],r=t;return e>r&&(r=e),n>r&&(r=n),r;}if(4===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2],a=arguments[3],u=i;return o>u&&(u=o),s>u&&(u=s),a>u&&(u=a),u;}},dl.average=function(t,e){return(t+e)/2;},yl.LOG_10.get=function(){return Math.log(10);},Object.defineProperties(dl,yl);var vl=function vl(t){this.str=t;};vl.prototype.append=function(t){this.str+=t;},vl.prototype.setCharAt=function(t,e){this.str=this.str.substr(0,t)+e+this.str.substr(t+1);},vl.prototype.toString=function(t){return this.str;};var _l=function _l(t){this.value=t;};_l.prototype.intValue=function(){return this.value;},_l.prototype.compareTo=function(t){return this.valuet?1:0;},_l.isNaN=function(t){return Number.isNaN(t);};var ml=function ml(){};ml.isWhitespace=function(t){return t<=32&&t>=0||127===t;},ml.toUpperCase=function(t){return t.toUpperCase();};var xl=function t(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if("number"==typeof arguments[0]){var e=arguments[0];this.init(e);}else if(arguments[0]instanceof t){var n=arguments[0];this.init(n);}else if("string"==typeof arguments[0]){var r=arguments[0];t.call(this,t.parse(r));}}else if(2===arguments.length){var i=arguments[0],o=arguments[1];this.init(i,o);}},El={PI:{configurable:!0},TWO_PI:{configurable:!0},PI_2:{configurable:!0},E:{configurable:!0},NaN:{configurable:!0},EPS:{configurable:!0},SPLIT:{configurable:!0},MAX_PRINT_DIGITS:{configurable:!0},TEN:{configurable:!0},ONE:{configurable:!0},SCI_NOT_EXPONENT_CHAR:{configurable:!0},SCI_NOT_ZERO:{configurable:!0}};xl.prototype.le=function(t){return(this._hi9?(c=!0,h="9"):h="0"+l,s.append(h),n=n.subtract(xl.valueOf(l)).multiply(xl.TEN),c&&n.selfAdd(xl.TEN);var p=!0,f=xl.magnitude(n._hi);if(f<0&&Math.abs(f)>=a-u&&(p=!1),!p)break;}return e[0]=r,s.toString();},xl.prototype.sqr=function(){return this.multiply(this);},xl.prototype.doubleValue=function(){return this._hi+this._lo;},xl.prototype.subtract=function(){if(arguments[0]instanceof xl){var t=arguments[0];return this.add(t.negate());}if("number"==typeof arguments[0]){var e=arguments[0];return this.add(-e);}},xl.prototype.equals=function(){if(1===arguments.length){var t=arguments[0];return this._hi===t._hi&&this._lo===t._lo;}},xl.prototype.isZero=function(){return 0===this._hi&&0===this._lo;},xl.prototype.selfSubtract=function(){if(arguments[0]instanceof xl){var t=arguments[0];return this.isNaN()?this:this.selfAdd(-t._hi,-t._lo);}if("number"==typeof arguments[0]){var e=arguments[0];return this.isNaN()?this:this.selfAdd(-e,0);}},xl.prototype.getSpecialNumberString=function(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null;},xl.prototype.min=function(t){return this.le(t)?this:t;},xl.prototype.selfDivide=function(){if(1===arguments.length){if(arguments[0]instanceof xl){var t=arguments[0];return this.selfDivide(t._hi,t._lo);}if("number"==typeof arguments[0]){var e=arguments[0];return this.selfDivide(e,0);}}else if(2===arguments.length){var n=arguments[0],r=arguments[1],i=null,o=null,s=null,a=null,u=null,l=null,c=null,h=null;return u=this._hi/n,h=(i=(l=xl.SPLIT*u)-(i=l-u))*(s=(h=xl.SPLIT*n)-(s=h-n))-(c=u*n)+i*(a=n-s)+(o=u-i)*s+o*a,h=u+(l=(this._hi-c-h+this._lo-u*r)/n),this._hi=h,this._lo=u-h+l,this;}},xl.prototype.dump=function(){return"DD<"+this._hi+", "+this._lo+">";},xl.prototype.divide=function(){if(arguments[0]instanceof xl){var t=arguments[0],e=null,n=null,r=null,i=null,o=null,s=null,a=null,u=null;n=(o=this._hi/t._hi)-(e=(s=xl.SPLIT*o)-(e=s-o)),u=e*(r=(u=xl.SPLIT*t._hi)-(r=u-t._hi))-(a=o*t._hi)+e*(i=t._hi-r)+n*r+n*i;var l=u=o+(s=(this._hi-a-u+this._lo-o*t._lo)/t._hi),c=o-u+s;return new xl(l,c);}if("number"==typeof arguments[0]){var h=arguments[0];return nl.isNaN(h)?xl.createNaN():xl.copy(this).selfDivide(h,0);}},xl.prototype.ge=function(t){return(this._hi>t._hi||this._hi===t._hi)&&this._lo>=t._lo;},xl.prototype.pow=function(t){if(0===t)return xl.valueOf(1);var e=new xl(this),n=xl.valueOf(1),r=Math.abs(t);if(r>1)for(;r>0;)r%2==1&&n.selfMultiply(e),(r/=2)>0&&(e=e.sqr());else n=e;return t<0?n.reciprocal():n;},xl.prototype.ceil=function(){if(this.isNaN())return xl.NaN;var t=Math.ceil(this._hi),e=0;return t===this._hi&&(e=Math.ceil(this._lo)),new xl(t,e);},xl.prototype.compareTo=function(t){var e=t;return this._hie._hi?1:this._loe._lo?1:0;},xl.prototype.rint=function(){return this.isNaN()?this:this.add(.5).floor();},xl.prototype.setValue=function(){if(arguments[0]instanceof xl){var t=arguments[0];return this.init(t),this;}if("number"==typeof arguments[0]){var e=arguments[0];return this.init(e),this;}},xl.prototype.max=function(t){return this.ge(t)?this:t;},xl.prototype.sqrt=function(){if(this.isZero())return xl.valueOf(0);if(this.isNegative())return xl.NaN;var t=1/Math.sqrt(this._hi),e=this._hi*t,n=xl.valueOf(e),r=this.subtract(n.sqr())._hi*(.5*t);return n.add(r);},xl.prototype.selfAdd=function(){if(1===arguments.length){if(arguments[0]instanceof xl){var t=arguments[0];return this.selfAdd(t._hi,t._lo);}if("number"==typeof arguments[0]){var e=arguments[0],n=null,r=null,i=null,o=null,s=null,a=null;return o=(i=this._hi+e)-(s=i-this._hi),r=(a=(o=e-s+(this._hi-o))+this._lo)+(i-(n=i+a)),this._hi=n+r,this._lo=r+(n-this._hi),this;}}else if(2===arguments.length){var u=arguments[0],l=arguments[1],c=null,h=null,p=null,f=null,g=null,d=null,y=null;f=this._hi+u,h=this._lo+l,g=f-(d=f-this._hi),p=h-(y=h-this._lo);var v=(c=f+(d=(g=u-d+(this._hi-g))+h))+(d=(p=l-y+(this._lo-p))+(d+(f-c))),_=d+(c-v);return this._hi=v,this._lo=_,this;}},xl.prototype.selfMultiply=function(){if(1===arguments.length){if(arguments[0]instanceof xl){var t=arguments[0];return this.selfMultiply(t._hi,t._lo);}if("number"==typeof arguments[0]){var e=arguments[0];return this.selfMultiply(e,0);}}else if(2===arguments.length){var n=arguments[0],r=arguments[1],i=null,o=null,s=null,a=null,u=null,l=null;i=(u=xl.SPLIT*this._hi)-this._hi,l=xl.SPLIT*n,i=u-i,o=this._hi-i,s=l-n;var c=(u=this._hi*n)+(l=i*(s=l-s)-u+i*(a=n-s)+o*s+o*a+(this._hi*r+this._lo*n)),h=l+(i=u-c);return this._hi=c,this._lo=h,this;}},xl.prototype.selfSqr=function(){return this.selfMultiply(this);},xl.prototype.floor=function(){if(this.isNaN())return xl.NaN;var t=Math.floor(this._hi),e=0;return t===this._hi&&(e=Math.floor(this._lo)),new xl(t,e);},xl.prototype.negate=function(){return this.isNaN()?this:new xl(-this._hi,-this._lo);},xl.prototype.clone=function(){},xl.prototype.multiply=function(){if(arguments[0]instanceof xl){var t=arguments[0];return t.isNaN()?xl.createNaN():xl.copy(this).selfMultiply(t);}if("number"==typeof arguments[0]){var e=arguments[0];return nl.isNaN(e)?xl.createNaN():xl.copy(this).selfMultiply(e,0);}},xl.prototype.isNaN=function(){return nl.isNaN(this._hi);},xl.prototype.intValue=function(){return Math.trunc(this._hi);},xl.prototype.toString=function(){var t=xl.magnitude(this._hi);return t>=-3&&t<=20?this.toStandardNotation():this.toSciNotation();},xl.prototype.toStandardNotation=function(){var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),n=this.extractSignificantDigits(!0,e),r=e[0]+1,i=n;if("."===n.charAt(0))i="0"+n;else if(r<0)i="0."+xl.stringOfChar("0",-r)+n;else if(-1===n.indexOf(".")){var o=r-n.length;i=n+xl.stringOfChar("0",o)+".0";}return this.isNegative()?"-"+i:i;},xl.prototype.reciprocal=function(){var t,e,n,r,i=null,o=null,s=null,a=null;t=(n=1/this._hi)-(i=(s=xl.SPLIT*n)-(i=s-n)),o=(a=xl.SPLIT*this._hi)-this._hi;var u=n+(s=(1-(r=n*this._hi)-(a=i*(o=a-o)-r+i*(e=this._hi-o)+t*o+t*e)-n*this._lo)/this._hi);return new xl(u,n-u+s);},xl.prototype.toSciNotation=function(){if(this.isZero())return xl.SCI_NOT_ZERO;var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),n=this.extractSignificantDigits(!1,e),r=xl.SCI_NOT_EXPONENT_CHAR+e[0];if("0"===n.charAt(0))throw new Error("Found leading zero: "+n);var i="";n.length>1&&(i=n.substring(1));var o=n.charAt(0)+"."+i;return this.isNegative()?"-"+o+r:o+r;},xl.prototype.abs=function(){return this.isNaN()?xl.NaN:this.isNegative()?this.negate():new xl(this);},xl.prototype.isPositive=function(){return(this._hi>0||0===this._hi)&&this._lo>0;},xl.prototype.lt=function(t){return(this._hit._hi||this._hi===t._hi)&&this._lo>t._lo;},xl.prototype.isNegative=function(){return(this._hi<0||0===this._hi)&&this._lo<0;},xl.prototype.trunc=function(){return this.isNaN()?xl.NaN:this.isPositive()?this.floor():this.ceil();},xl.prototype.signum=function(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0;},xl.prototype.interfaces_=function(){return[al,il,ol];},xl.prototype.getClass=function(){return xl;},xl.sqr=function(t){return xl.valueOf(t).selfMultiply(t);},xl.valueOf=function(){if("string"==typeof arguments[0]){var t=arguments[0];return xl.parse(t);}if("number"==typeof arguments[0]){var e=arguments[0];return new xl(e);}},xl.sqrt=function(t){return xl.valueOf(t).sqrt();},xl.parse=function(t){for(var e=0,n=t.length;ml.isWhitespace(t.charAt(e));)e++;var r=!1;if(e=n);){var l=t.charAt(e);if(e++,ml.isDigit(l)){var c=l-"0";o.selfMultiply(xl.TEN),o.selfAdd(c),s++;}else{if("."!==l){if("e"===l||"E"===l){var h=t.substring(e);try{u=_l.parseInt(h);}catch(e){throw e instanceof Error?new Error("Invalid exponent "+h+" in string "+t):e;}break;}throw new Error("Unexpected character '"+l+"' at position "+e+" in string "+t);}a=s;}}var p=o,f=s-a-u;if(0===f)p=o;else if(f>0){var g=xl.TEN.pow(f);p=o.divide(g);}else if(f<0){var d=xl.TEN.pow(-f);p=o.multiply(d);}return r?p.negate():p;},xl.createNaN=function(){return new xl(nl.NaN,nl.NaN);},xl.copy=function(t){return new xl(t);},xl.magnitude=function(t){var e=Math.abs(t),n=Math.log(e)/Math.log(10),r=Math.trunc(Math.floor(n));return 10*Math.pow(10,r)<=e&&(r+=1),r;},xl.stringOfChar=function(t,e){for(var n=new vl(),r=0;r0){if(o<=0)return bl.signum(s);r=i+o;}else{if(!(i<0))return bl.signum(s);if(o>=0)return bl.signum(s);r=-i-o;}var a=bl.DP_SAFE_EPSILON*r;return s>=a||-s>=a?bl.signum(s):2;},bl.signum=function(t){return t>0?1:t<0?-1:0;},wl.DP_SAFE_EPSILON.get=function(){return 1e-15;},Object.defineProperties(bl,wl);var Il=function Il(){},Nl={X:{configurable:!0},Y:{configurable:!0},Z:{configurable:!0},M:{configurable:!0}};Nl.X.get=function(){return 0;},Nl.Y.get=function(){return 1;},Nl.Z.get=function(){return 2;},Nl.M.get=function(){return 3;},Il.prototype.setOrdinate=function(t,e,n){},Il.prototype.size=function(){},Il.prototype.getOrdinate=function(t,e){},Il.prototype.getCoordinate=function(){},Il.prototype.getCoordinateCopy=function(t){},Il.prototype.getDimension=function(){},Il.prototype.getX=function(t){},Il.prototype.clone=function(){},Il.prototype.expandEnvelope=function(t){},Il.prototype.copy=function(){},Il.prototype.getY=function(t){},Il.prototype.toCoordinateArray=function(){},Il.prototype.interfaces_=function(){return[ol];},Il.prototype.getClass=function(){return Il;},Object.defineProperties(Il,Nl);var Sl=function Sl(){},Cl=function(t){function e(){t.call(this,"Projective point not representable on the Cartesian plane.");}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e;}(Sl),Pl=function Pl(){};Pl.arraycopy=function(t,e,n,r,i){for(var o=0,s=e;st._minx?this._minx:t._minx,n=this._miny>t._miny?this._miny:t._miny,r=this._maxx=this._minx&&e.getMaxX()<=this._maxx&&e.getMinY()>=this._miny&&e.getMaxY()<=this._maxy;}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];return!this.isNull()&&n>=this._minx&&n<=this._maxx&&r>=this._miny&&r<=this._maxy;}},Ll.prototype.intersects=function(){if(1===arguments.length){if(arguments[0]instanceof Ll){var t=arguments[0];return!this.isNull()&&!t.isNull()&&!(t._minx>this._maxx||t._maxxthis._maxy||t._maxythis._maxx||nthis._maxy||rthis._maxx&&(this._maxx=e._maxx),e._minythis._maxy&&(this._maxy=e._maxy));}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.isNull()?(this._minx=n,this._maxx=n,this._miny=r,this._maxy=r):(nthis._maxx&&(this._maxx=n),rthis._maxy&&(this._maxy=r));}},Ll.prototype.minExtent=function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return te._minx?1:this._minye._miny?1:this._maxxe._maxx?1:this._maxye._maxy?1:0;},Ll.prototype.translate=function(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e);},Ll.prototype.toString=function(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]";},Ll.prototype.setToNull=function(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1;},Ll.prototype.getHeight=function(){return this.isNull()?0:this._maxy-this._miny;},Ll.prototype.maxExtent=function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t>e?t:e;},Ll.prototype.expandBy=function(){if(1===arguments.length){var t=arguments[0];this.expandBy(t,t);}else if(2===arguments.length){var e=arguments[0],n=arguments[1];if(this.isNull())return null;this._minx-=e,this._maxx+=e,this._miny-=n,this._maxy+=n,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull();}},Ll.prototype.contains=function(){if(1===arguments.length){if(arguments[0]instanceof Ll){var t=arguments[0];return this.covers(t);}if(arguments[0]instanceof ul){var e=arguments[0];return this.covers(e);}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];return this.covers(n,r);}},Ll.prototype.centre=function(){return this.isNull()?null:new ul((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2);},Ll.prototype.init=function(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof ul){var t=arguments[0];this.init(t.x,t.x,t.y,t.y);}else if(arguments[0]instanceof Ll){var e=arguments[0];this._minx=e._minx,this._maxx=e._maxx,this._miny=e._miny,this._maxy=e._maxy;}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.init(n.x,r.x,n.y,r.y);}else if(4===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2],a=arguments[3];it._maxx&&(e=this._minx-t._maxx);var n=0;return this._maxyt._maxy&&(n=this._miny-t._maxy),0===e?n:0===n?e:Math.sqrt(e*e+n*n);},Ll.prototype.hashCode=function(){var t=17;return t=37*(t=37*(t=37*(t=37*t+ul.hashCode(this._minx))+ul.hashCode(this._maxx))+ul.hashCode(this._miny))+ul.hashCode(this._maxy);},Ll.prototype.interfaces_=function(){return[il,al];},Ll.prototype.getClass=function(){return Ll;},Ll.intersects=function(){if(3===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2];return n.x>=(t.xe.x?t.x:e.x)&&n.y>=(t.ye.y?t.y:e.y);}if(4===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2],s=arguments[3],a=Math.min(o.x,s.x),u=Math.max(o.x,s.x),l=Math.min(r.x,i.x),c=Math.max(r.x,i.x);return!(l>u)&&!(cu)&&!(cn?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0);}},Bl.prototype.isProper=function(){return this.hasIntersection()&&this._isProper;},Bl.prototype.setPrecisionModel=function(t){this._precisionModel=t;},Bl.prototype.isInteriorIntersection=function(){var t=this;if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){for(var e=arguments[0],n=0;ni?r:i;else{var s=Math.abs(t.x-e.x),a=Math.abs(t.y-e.y);0!==(o=r>i?s:a)||t.equals(e)||(o=Math.max(s,a));}return ql.isTrue(!(0===o&&!t.equals(e)),"Bad distance calculation"),o;},Bl.nonRobustComputeEdgeDistance=function(t,e,n){var r=t.x-e.x,i=t.y-e.y,o=Math.sqrt(r*r+i*i);return ql.isTrue(!(0===o&&!t.equals(e)),"Invalid distance calculation"),o;},zl.DONT_INTERSECT.get=function(){return 0;},zl.DO_INTERSECT.get=function(){return 1;},zl.COLLINEAR.get=function(){return 2;},zl.NO_INTERSECTION.get=function(){return 0;},zl.POINT_INTERSECTION.get=function(){return 1;},zl.COLLINEAR_INTERSECTION.get=function(){return 2;},Object.defineProperties(Bl,zl);var jl=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isInSegmentEnvelopes=function(t){var e=new Ll(this._inputLines[0][0],this._inputLines[0][1]),n=new Ll(this._inputLines[1][0],this._inputLines[1][1]);return e.contains(t)&&n.contains(t);},e.prototype.computeIntersection=function(){if(3!==arguments.length)return t.prototype.computeIntersection.apply(this,arguments);var e=arguments[0],n=arguments[1],r=arguments[2];if(this._isProper=!1,Ll.intersects(n,r,e)&&0===Xl.orientationIndex(n,r,e)&&0===Xl.orientationIndex(r,n,e))return this._isProper=!0,(e.equals(n)||e.equals(r))&&(this._isProper=!1),this._result=t.POINT_INTERSECTION,null;this._result=t.NO_INTERSECTION;},e.prototype.normalizeToMinimum=function(t,e,n,r,i){i.x=this.smallestInAbsValue(t.x,e.x,n.x,r.x),i.y=this.smallestInAbsValue(t.y,e.y,n.y,r.y),t.x-=i.x,t.y-=i.y,e.x-=i.x,e.y-=i.y,n.x-=i.x,n.y-=i.y,r.x-=i.x,r.y-=i.y;},e.prototype.safeHCoordinateIntersection=function(t,n,r,i){var o=null;try{o=Ml.intersection(t,n,r,i);}catch(s){if(!(s instanceof Cl))throw s;o=e.nearestEndpoint(t,n,r,i);}return o;},e.prototype.intersection=function(t,n,r,i){var o=this.intersectionWithNormalization(t,n,r,i);return this.isInSegmentEnvelopes(o)||(o=new ul(e.nearestEndpoint(t,n,r,i))),null!==this._precisionModel&&this._precisionModel.makePrecise(o),o;},e.prototype.smallestInAbsValue=function(t,e,n,r){var i=t,o=Math.abs(i);return Math.abs(e)1e-4&&Pl.out.println("Distance = "+i.distance(o));},e.prototype.intersectionWithNormalization=function(t,e,n,r){var i=new ul(t),o=new ul(e),s=new ul(n),a=new ul(r),u=new ul();this.normalizeToEnvCentre(i,o,s,a,u);var l=this.safeHCoordinateIntersection(i,o,s,a);return l.x+=u.x,l.y+=u.y,l;},e.prototype.computeCollinearIntersection=function(e,n,r,i){var o=Ll.intersects(e,n,r),s=Ll.intersects(e,n,i),a=Ll.intersects(r,i,e),u=Ll.intersects(r,i,n);return o&&s?(this._intPt[0]=r,this._intPt[1]=i,t.COLLINEAR_INTERSECTION):a&&u?(this._intPt[0]=e,this._intPt[1]=n,t.COLLINEAR_INTERSECTION):o&&a?(this._intPt[0]=r,this._intPt[1]=e,!r.equals(e)||s||u?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):o&&u?(this._intPt[0]=r,this._intPt[1]=n,!r.equals(n)||s||a?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):s&&a?(this._intPt[0]=i,this._intPt[1]=e,!i.equals(e)||o||u?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):s&&u?(this._intPt[0]=i,this._intPt[1]=n,!i.equals(n)||o||a?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):t.NO_INTERSECTION;},e.prototype.normalizeToEnvCentre=function(t,e,n,r,i){var o=t.xe.x?t.x:e.x,u=t.y>e.y?t.y:e.y,l=n.xr.x?n.x:r.x,p=n.y>r.y?n.y:r.y,f=((o>l?o:l)+(ac?s:c)+(u0&&s>0||o<0&&s<0)return t.NO_INTERSECTION;var a=Xl.orientationIndex(r,i,e),u=Xl.orientationIndex(r,i,n);return a>0&&u>0||a<0&&u<0?t.NO_INTERSECTION:0===o&&0===s&&0===a&&0===u?this.computeCollinearIntersection(e,n,r,i):(0===o||0===s||0===a||0===u?(this._isProper=!1,e.equals2D(r)||e.equals2D(i)?this._intPt[0]=e:n.equals2D(r)||n.equals2D(i)?this._intPt[0]=n:0===o?this._intPt[0]=new ul(r):0===s?this._intPt[0]=new ul(i):0===a?this._intPt[0]=new ul(e):0===u&&(this._intPt[0]=new ul(n))):(this._isProper=!0,this._intPt[0]=this.intersection(e,n,r,i)),t.POINT_INTERSECTION);},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e.nearestEndpoint=function(t,e,n,r){var i=t,o=Xl.distancePointLine(t,n,r),s=Xl.distancePointLine(e,n,r);return s0?n>0?-i:i:n>0?i:-i;if(0===e||0===n)return r>0?t>0?i:-i:t>0?-i:i;if(e>0?r>0?e<=r||(i=-i,o=t,t=n,n=o,o=e,e=r,r=o):e<=-r?(i=-i,n=-n,r=-r):(o=t,t=-n,n=o,o=e,e=-r,r=o):r>0?-e<=r?(i=-i,t=-t,e=-e):(o=-t,t=n,n=o,o=-e,e=r,r=o):e>=r?(t=-t,e=-e,n=-n,r=-r):(i=-i,o=-t,t=-n,n=o,o=-e,e=-r,r=o),t>0){if(!(n>0))return i;if(!(t<=n))return i;}else{if(n>0)return-i;if(!(t>=n))return-i;i=-i,t=-t,n=-n;}for(;;){if((r-=(s=Math.floor(n/t))*e)<0)return-i;if(r>e)return i;if(t>(n-=s*t)+n){if(er+r)return-i;n=t-n,r=e-r,i=-i;}if(0===r)return 0===n?0:-i;if(0===n)return i;if((e-=(s=Math.floor(t/n))*r)<0)return i;if(e>r)return-i;if(n>(t-=s*n)+t){if(re+e)return i;t=n-t,e=r-e,i=-i;}if(0===e)return 0===t?0:i;if(0===t)return-i;}};var Vl=function Vl(){this._p=null,this._crossingCount=0,this._isPointOnSegment=!1;var t=arguments[0];this._p=t;};Vl.prototype.countSegment=function(t,e){if(t.xr&&(n=e.x,r=t.x),this._p.x>=n&&this._p.x<=r&&(this._isPointOnSegment=!0),null;}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var i=t.x-this._p.x,o=t.y-this._p.y,s=e.x-this._p.x,a=e.y-this._p.y,u=Ul.signOfDet2x2(i,o,s,a);if(0===u)return this._isPointOnSegment=!0,null;a0&&this._crossingCount++;}},Vl.prototype.isPointInPolygon=function(){return this.getLocation()!==pl.EXTERIOR;},Vl.prototype.getLocation=function(){return this._isPointOnSegment?pl.BOUNDARY:this._crossingCount%2==1?pl.INTERIOR:pl.EXTERIOR;},Vl.prototype.isOnSegment=function(){return this._isPointOnSegment;},Vl.prototype.interfaces_=function(){return[];},Vl.prototype.getClass=function(){return Vl;},Vl.locatePointInRing=function(){if(arguments[0]instanceof ul&&gl(arguments[1],Il)){for(var t=arguments[0],e=arguments[1],n=new Vl(t),r=new ul(),i=new ul(),o=1;o1||a<0||a>1)&&(i=!0);}}else i=!0;return i?dl.min(Xl.distancePointLine(t,n,r),Xl.distancePointLine(e,n,r),Xl.distancePointLine(n,t,e),Xl.distancePointLine(r,t,e)):0;},Xl.isPointInRing=function(t,e){return Xl.locatePointInRing(t,e)!==pl.EXTERIOR;},Xl.computeLength=function(t){var e=t.size();if(e<=1)return 0;var n=0,r=new ul();t.getCoordinate(0,r);for(var i=r.x,o=r.y,s=1;sn.y&&(n=o,r=i);}var s=r;do{(s-=1)<0&&(s=e);}while(t[s].equals2D(n)&&s!==r);var a=r;do{a=(a+1)%e;}while(t[a].equals2D(n)&&a!==r);var u=t[s],l=t[a];if(u.equals2D(n)||l.equals2D(n)||u.equals2D(l))return!1;var c=Xl.computeOrientation(u,n,l),h=!1;return h=0===c?u.x>l.x:c>0,h;},Xl.locatePointInRing=function(t,e){return Vl.locatePointInRing(t,e);},Xl.distancePointLinePerpendicular=function(t,e,n){var r=(n.x-e.x)*(n.x-e.x)+(n.y-e.y)*(n.y-e.y),i=((e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y))/r;return Math.abs(i)*Math.sqrt(r);},Xl.computeOrientation=function(t,e,n){return Xl.orientationIndex(t,e,n);},Xl.distancePointLine=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];if(0===e.length)throw new el("Line array must contain at least one vertex");for(var n=t.distance(e[0]),r=0;r=1)return o.distance(a);var c=((s.y-o.y)*(a.x-s.x)-(s.x-o.x)*(a.y-s.y))/u;return Math.abs(c)*Math.sqrt(u);}},Xl.isOnLine=function(t,e){for(var n=new jl(),r=1;r0;},ec.prototype.interfaces_=function(){return[Ql];},ec.prototype.getClass=function(){return ec;};var nc=function nc(){};nc.prototype.isInBoundary=function(t){return t>1;},nc.prototype.interfaces_=function(){return[Ql];},nc.prototype.getClass=function(){return nc;};var rc=function rc(){};rc.prototype.isInBoundary=function(t){return 1===t;},rc.prototype.interfaces_=function(){return[Ql];},rc.prototype.getClass=function(){return rc;};var ic=function ic(){};function oc(t){this.message=t||"";}ic.prototype.add=function(){},ic.prototype.addAll=function(){},ic.prototype.isEmpty=function(){},ic.prototype.iterator=function(){},ic.prototype.size=function(){},ic.prototype.toArray=function(){},ic.prototype.remove=function(){},oc.prototype=new Error(),oc.prototype.name="IndexOutOfBoundsException";var sc=function sc(){};sc.prototype.hasNext=function(){},sc.prototype.next=function(){},sc.prototype.remove=function(){};var ac=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(){},e.prototype.set=function(){},e.prototype.isEmpty=function(){},e;}(ic);function uc(t){this.message=t||"";}uc.prototype=new Error(),uc.prototype.name="NoSuchElementException";var lc=function(t){function e(){t.call(this),this.array_=[],arguments[0]instanceof ic&&this.addAll(arguments[0]);}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.ensureCapacity=function(){},e.prototype.interfaces_=function(){return[t,ic];},e.prototype.add=function(t){return 1===arguments.length?this.array_.push(t):this.array_.splice(arguments[0],arguments[1]),!0;},e.prototype.clear=function(){this.array_=[];},e.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next());return!0;},e.prototype.set=function(t,e){var n=this.array_[t];return this.array_[t]=e,n;},e.prototype.iterator=function(){return new cc(this);},e.prototype.get=function(t){if(t<0||t>=this.size())throw new oc();return this.array_[t];},e.prototype.isEmpty=function(){return 0===this.array_.length;},e.prototype.size=function(){return this.array_.length;},e.prototype.toArray=function(){for(var t=[],e=0,n=this.array_.length;e=1){var a=this.get(this.size()-1);if(a.equals2D(o))return null;}t.prototype.add.call(this,o);}else if(arguments[0]instanceof Object&&"boolean"==typeof arguments[1]){var u=arguments[0],l=arguments[1];return this.add(u,l),!0;}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&arguments[0]instanceof Array&&"boolean"==typeof arguments[1]){var c=arguments[0],h=arguments[1],p=arguments[2];if(p)for(var f=0;f=0;g--)e.add(c[g],h);return!0;}if("boolean"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof ul){var d=arguments[0],y=arguments[1],v=arguments[2];if(!v){var _=this.size();if(_>0){if(d>0){var m=this.get(d-1);if(m.equals2D(y))return null;}if(d<_){var x=this.get(d);if(x.equals2D(y))return null;}}}t.prototype.add.call(this,d,y);}}else if(4===arguments.length){var E=arguments[0],b=arguments[1],w=arguments[2],I=arguments[3],N=1;w>I&&(N=-1);for(var S=w;S!==I;S+=N)e.add(E[S],b);return!0;}},e.prototype.closeRing=function(){this.size()>0&&this.add(new ul(this.get(0)),!1);},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},Object.defineProperties(e,n),e;}(lc),pc=function pc(){},fc={ForwardComparator:{configurable:!0},BidirectionalComparator:{configurable:!0},coordArrayType:{configurable:!0}};fc.ForwardComparator.get=function(){return gc;},fc.BidirectionalComparator.get=function(){return dc;},fc.coordArrayType.get=function(){return new Array(0).fill(null);},pc.prototype.interfaces_=function(){return[];},pc.prototype.getClass=function(){return pc;},pc.isRing=function(t){return!(t.length<4)&&!!t[0].equals2D(t[t.length-1]);},pc.ptNotInList=function(t,e){for(var n=0;n=t?e:[];},pc.indexOf=function(t,e){for(var n=0;n0)&&(e=t[n]);return e;},pc.extract=function(t,e,n){e=dl.clamp(e,0,t.length);var r=(n=dl.clamp(n,-1,t.length))-e+1;n<0&&(r=0),e>=t.length&&(r=0),nr.length)return 1;if(0===n.length)return 0;var i=pc.compare(n,r);return pc.isEqualReversed(n,r)?0:i;},dc.prototype.OLDcompare=function(t,e){var n=t,r=e;if(n.lengthr.length)return 1;if(0===n.length)return 0;for(var i=pc.increasingDirection(n),o=pc.increasingDirection(r),s=i>0?0:n.length-1,a=o>0?0:n.length-1,u=0;u0))return e.value;e=e.right;}}return null;},Cc.prototype.put=function(t,e){if(null===this.root_)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:0,getValue:function getValue(){return this.value;},getKey:function getKey(){return this.key;}},this.size_=1,null;var n,r,i=this.root_;do{if(n=i,(r=t.compareTo(i.key))<0)i=i.left;else{if(!(r>0)){var o=i.value;return i.value=e,o;}i=i.right;}}while(null!==i);var s={key:t,left:null,right:null,value:e,parent:n,color:0,getValue:function getValue(){return this.value;},getKey:function getKey(){return this.key;}};return r<0?n.left=s:n.right=s,this.fixAfterInsertion(s),this.size_++,null;},Cc.prototype.fixAfterInsertion=function(t){var e=this;for(t.color=1;null!=t&&t!==this.root_&&1===t.parent.color;)if(wc(t)===Nc(wc(wc(t)))){var n=Sc(wc(wc(t)));1===bc(n)?(Ic(wc(t),0),Ic(n,0),Ic(wc(wc(t)),1),t=wc(wc(t))):(t===Sc(wc(t))&&(t=wc(t),e.rotateLeft(t)),Ic(wc(t),0),Ic(wc(wc(t)),1),e.rotateRight(wc(wc(t))));}else{var r=Nc(wc(wc(t)));1===bc(r)?(Ic(wc(t),0),Ic(r,0),Ic(wc(wc(t)),1),t=wc(wc(t))):(t===Nc(wc(t))&&(t=wc(t),e.rotateRight(t)),Ic(wc(t),0),Ic(wc(wc(t)),1),e.rotateLeft(wc(wc(t))));}this.root_.color=0;},Cc.prototype.values=function(){var t=new lc(),e=this.getFirstEntry();if(null!==e)for(t.add(e.value);null!==(e=Cc.successor(e));)t.add(e.value);return t;},Cc.prototype.entrySet=function(){var t=new xc(),e=this.getFirstEntry();if(null!==e)for(t.add(e);null!==(e=Cc.successor(e));)t.add(e);return t;},Cc.prototype.rotateLeft=function(t){if(null!=t){var e=t.right;t.right=e.left,null!=e.left&&(e.left.parent=t),e.parent=t.parent,null===t.parent?this.root_=e:t.parent.left===t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e;}},Cc.prototype.rotateRight=function(t){if(null!=t){var e=t.left;t.left=e.right,null!=e.right&&(e.right.parent=t),e.parent=t.parent,null===t.parent?this.root_=e:t.parent.right===t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e;}},Cc.prototype.getFirstEntry=function(){var t=this.root_;if(null!=t)for(;null!=t.left;)t=t.left;return t;},Cc.successor=function(t){if(null===t)return null;if(null!==t.right){for(var e=t.right;null!==e.left;)e=e.left;return e;}for(var n=t.parent,r=t;null!==n&&r===n.right;)r=n,n=n.parent;return n;},Cc.prototype.size=function(){return this.size_;};var Pc=function Pc(){};function Mc(){}function Lc(){this.array_=[],arguments[0]instanceof ic&&this.addAll(arguments[0]);}Pc.prototype.interfaces_=function(){return[];},Pc.prototype.getClass=function(){return Pc;},Mc.prototype=new mc(),Lc.prototype=new Mc(),Lc.prototype.contains=function(t){for(var e=0,n=this.array_.length;e=0;){var s=i.substring(0,o);r.add(s),o=(i=i.substring(o+n)).indexOf(e);}i.length>0&&r.add(i);for(var a=new Array(r.size()).fill(null),u=0;u0)for(var o=i;o0&&r.append(" ");for(var o=0;o0&&r.append(","),r.append(Hc.toString(t.getOrdinate(i,o)));}return r.append(")"),r.toString();}},Jc.ensureValidRing=function(t,e){var n=e.size();return 0===n?e:n<=3?Jc.createClosedRing(t,e,4):e.getOrdinate(0,Il.X)===e.getOrdinate(n-1,Il.X)&&e.getOrdinate(0,Il.Y)===e.getOrdinate(n-1,Il.Y)?e:Jc.createClosedRing(t,e,n+1);},Jc.createClosedRing=function(t,e,n){var r=t.create(n,e.getDimension()),i=e.size();Jc.copy(e,0,r,0,i);for(var o=i;o0&&Jc.reverse(t._points),null;}},e.prototype.getCoordinate=function(){return this.isEmpty()?null:this._points.getCoordinate(0);},e.prototype.getBoundaryDimension=function(){return this.isClosed()?Tc.FALSE:0;},e.prototype.isClosed=function(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1));},e.prototype.getEndPoint=function(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1);},e.prototype.getDimension=function(){return 1;},e.prototype.getLength=function(){return Xl.computeLength(this._points);},e.prototype.getNumPoints=function(){return this._points.size();},e.prototype.reverse=function(){var t=this._points.copy();return Jc.reverse(t),this.getFactory().createLineString(t);},e.prototype.compareToSameClass=function(){var t=this;if(1===arguments.length){for(var e=arguments[0],n=e,r=0,i=0;r= 2)");this._points=t;},e.prototype.isCoordinate=function(t){for(var e=0;e=1&&this.getCoordinateSequence().size()= 4)");},e.prototype.getGeometryType=function(){return"LinearRing";},e.prototype.copy=function(){return new e(this._points.copy(),this._factory);},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},n.MINIMUM_VALID_SIZE.get=function(){return 4;},n.serialVersionUID.get=function(){return-0x3b229e262367a600;},Object.defineProperties(e,n),e;}(Zc),rh=function(t){function e(){t.apply(this,arguments);}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var n={serialVersionUID:{configurable:!0}};return e.prototype.getSortIndex=function(){return Wl.SORTINDEX_MULTIPOLYGON;},e.prototype.equalsExact=function(){if(2===arguments.length){var e=arguments[0],n=arguments[1];return!!this.isEquivalentClass(e)&&t.prototype.equalsExact.call(this,e,n);}return t.prototype.equalsExact.apply(this,arguments);},e.prototype.getBoundaryDimension=function(){return 1;},e.prototype.getDimension=function(){return 2;},e.prototype.reverse=function(){for(var t=this._geometries.length,e=new Array(t).fill(null),n=0;n0?e.createPoint(n[0]):e.createPoint():t;},ah.prototype.interfaces_=function(){return[ih.GeometryEditorOperation];},ah.prototype.getClass=function(){return ah;};var uh=function uh(){};uh.prototype.edit=function(t,e){return t instanceof nh?e.createLinearRing(this.edit(t.getCoordinateSequence(),t)):t instanceof Zc?e.createLineString(this.edit(t.getCoordinateSequence(),t)):t instanceof Qc?e.createPoint(this.edit(t.getCoordinateSequence(),t)):t;},uh.prototype.interfaces_=function(){return[ih.GeometryEditorOperation];},uh.prototype.getClass=function(){return uh;};var lh=function lh(){var t=this;if(this._dimension=3,this._coordinates=null,1===arguments.length){if(arguments[0]instanceof Array)this._coordinates=arguments[0],this._dimension=3;else if(Number.isInteger(arguments[0])){var e=arguments[0];this._coordinates=new Array(e).fill(null);for(var n=0;n0){var t=new vl(17*this._coordinates.length);t.append("("),t.append(this._coordinates[0]);for(var e=1;e3&&(r=3),r<2?new lh(n):new lh(n,r);}},hh.prototype.interfaces_=function(){return[hl,al];},hh.prototype.getClass=function(){return hh;},hh.instance=function(){return hh.instanceObject;},ph.serialVersionUID.get=function(){return-0x38e49fa6cf6f2e00;},ph.instanceObject.get=function(){return new hh();},Object.defineProperties(hh,ph);var fh=function(t){function e(){t.call(this),this.map_=new Map();}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return this.map_.get(t)||null;},e.prototype.put=function(t,e){return this.map_.set(t,e),e;},e.prototype.values=function(){for(var t=new lc(),e=this.map_.values(),n=e.next();!n.done;)t.add(n.value),n=e.next();return t;},e.prototype.entrySet=function(){var t=new xc();return this.map_.entries().forEach(function(e){return t.add(e);}),t;},e.prototype.size=function(){return this.map_.size();},e;}(yc),gh=function t(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=t.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof yh){var e=arguments[0];this._modelType=e,e===t.FIXED&&this.setScale(1);}else if("number"==typeof arguments[0]){var n=arguments[0];this._modelType=t.FIXED,this.setScale(n);}else if(arguments[0]instanceof t){var r=arguments[0];this._modelType=r._modelType,this._scale=r._scale;}},dh={serialVersionUID:{configurable:!0},maximumPreciseValue:{configurable:!0}};gh.prototype.equals=function(t){if(!(t instanceof gh))return!1;var e=t;return this._modelType===e._modelType&&this._scale===e._scale;},gh.prototype.compareTo=function(t){var e=t,n=this.getMaximumSignificantDigits(),r=e.getMaximumSignificantDigits();return new _l(n).compareTo(new _l(r));},gh.prototype.getScale=function(){return this._scale;},gh.prototype.isFloating=function(){return this._modelType===gh.FLOATING||this._modelType===gh.FLOATING_SINGLE;},gh.prototype.getType=function(){return this._modelType;},gh.prototype.toString=function(){var t="UNKNOWN";return this._modelType===gh.FLOATING?t="Floating":this._modelType===gh.FLOATING_SINGLE?t="Floating-Single":this._modelType===gh.FIXED&&(t="Fixed (Scale="+this.getScale()+")"),t;},gh.prototype.makePrecise=function(){if("number"==typeof arguments[0]){var t=arguments[0];if(nl.isNaN(t))return t;if(this._modelType===gh.FLOATING_SINGLE){return t;}return this._modelType===gh.FIXED?Math.round(t*this._scale)/this._scale:t;}if(arguments[0]instanceof ul){var e=arguments[0];if(this._modelType===gh.FLOATING)return null;e.x=this.makePrecise(e.x),e.y=this.makePrecise(e.y);}},gh.prototype.getMaximumSignificantDigits=function(){var t=16;return this._modelType===gh.FLOATING?t=16:this._modelType===gh.FLOATING_SINGLE?t=6:this._modelType===gh.FIXED&&(t=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),t;},gh.prototype.setScale=function(t){this._scale=Math.abs(t);},gh.prototype.interfaces_=function(){return[al,il];},gh.prototype.getClass=function(){return gh;},gh.mostPrecise=function(t,e){return t.compareTo(e)>=0?t:e;},dh.serialVersionUID.get=function(){return 0x6bee6404e9a25c00;},dh.maximumPreciseValue.get=function(){return 9007199254740992;},Object.defineProperties(gh,dh);var yh=function t(e){this._name=e||null,t.nameToTypeMap.put(e,this);},vh={serialVersionUID:{configurable:!0},nameToTypeMap:{configurable:!0}};yh.prototype.readResolve=function(){return yh.nameToTypeMap.get(this._name);},yh.prototype.toString=function(){return this._name;},yh.prototype.interfaces_=function(){return[al];},yh.prototype.getClass=function(){return yh;},vh.serialVersionUID.get=function(){return-552860263173159e4;},vh.nameToTypeMap.get=function(){return new fh();},Object.defineProperties(yh,vh),gh.Type=yh,gh.FIXED=new yh("FIXED"),gh.FLOATING=new yh("FLOATING"),gh.FLOATING_SINGLE=new yh("FLOATING SINGLE");var _h=function t(){this._precisionModel=new gh(),this._SRID=0,this._coordinateSequenceFactory=t.getDefaultCoordinateSequenceFactory(),0===arguments.length||(1===arguments.length?gl(arguments[0],hl)?this._coordinateSequenceFactory=arguments[0]:arguments[0]instanceof gh&&(this._precisionModel=arguments[0]):2===arguments.length?(this._precisionModel=arguments[0],this._SRID=arguments[1]):3===arguments.length&&(this._precisionModel=arguments[0],this._SRID=arguments[1],this._coordinateSequenceFactory=arguments[2]));},mh={serialVersionUID:{configurable:!0}};_h.prototype.toGeometry=function(t){return t.isNull()?this.createPoint(null):t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new ul(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new ul(t.getMinX(),t.getMinY()),new ul(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new ul(t.getMinX(),t.getMinY()),new ul(t.getMinX(),t.getMaxY()),new ul(t.getMaxX(),t.getMaxY()),new ul(t.getMaxX(),t.getMinY()),new ul(t.getMinX(),t.getMinY())]),null);},_h.prototype.createLineString=function(t){return t?t instanceof Array?new Zc(this.getCoordinateSequenceFactory().create(t),this):gl(t,Il)?new Zc(t,this):void 0:new Zc(this.getCoordinateSequenceFactory().create([]),this);},_h.prototype.createMultiLineString=function(){if(0===arguments.length)return new Gc(null,this);if(1===arguments.length){var t=arguments[0];return new Gc(t,this);}},_h.prototype.buildGeometry=function(t){for(var e=null,n=!1,r=!1,i=t.iterator();i.hasNext();){var o=i.next(),s=o.getClass();null===e&&(e=s),s!==e&&(n=!0),o.isGeometryCollectionOrDerived()&&(r=!0);}if(null===e)return this.createGeometryCollection();if(n||r)return this.createGeometryCollection(_h.toGeometryArray(t));var a=t.iterator().next();if(t.size()>1){if(a instanceof th)return this.createMultiPolygon(_h.toPolygonArray(t));if(a instanceof Zc)return this.createMultiLineString(_h.toLineStringArray(t));if(a instanceof Qc)return this.createMultiPoint(_h.toPointArray(t));ql.shouldNeverReachHere("Unhandled class: "+a.getClass().getName());}return a;},_h.prototype.createMultiPointFromCoords=function(t){return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null);},_h.prototype.createPoint=function(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof ul){var t=arguments[0];return this.createPoint(null!==t?this.getCoordinateSequenceFactory().create([t]):null);}if(gl(arguments[0],Il)){var e=arguments[0];return new Qc(e,this);}}},_h.prototype.getCoordinateSequenceFactory=function(){return this._coordinateSequenceFactory;},_h.prototype.createPolygon=function(){if(0===arguments.length)return new th(null,null,this);if(1===arguments.length){if(gl(arguments[0],Il)){var t=arguments[0];return this.createPolygon(this.createLinearRing(t));}if(arguments[0]instanceof Array){var e=arguments[0];return this.createPolygon(this.createLinearRing(e));}if(arguments[0]instanceof nh){var n=arguments[0];return this.createPolygon(n,null);}}else if(2===arguments.length){var r=arguments[0],i=arguments[1];return new th(r,i,this);}},_h.prototype.getSRID=function(){return this._SRID;},_h.prototype.createGeometryCollection=function(){if(0===arguments.length)return new kc(null,this);if(1===arguments.length){var t=arguments[0];return new kc(t,this);}},_h.prototype.createGeometry=function(t){return new ih(this).edit(t,{edit:function edit(){if(2===arguments.length){var t=arguments[0];return this._coordinateSequenceFactory.create(t);}}});},_h.prototype.getPrecisionModel=function(){return this._precisionModel;},_h.prototype.createLinearRing=function(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){var t=arguments[0];return this.createLinearRing(null!==t?this.getCoordinateSequenceFactory().create(t):null);}if(gl(arguments[0],Il)){var e=arguments[0];return new nh(e,this);}}},_h.prototype.createMultiPolygon=function(){if(0===arguments.length)return new rh(null,this);if(1===arguments.length){var t=arguments[0];return new rh(t,this);}},_h.prototype.createMultiPoint=function(){var t=this;if(0===arguments.length)return new eh(null,this);if(1===arguments.length){if(arguments[0]instanceof Array){var e=arguments[0];return new eh(e,this);}if(arguments[0]instanceof Array){var n=arguments[0];return this.createMultiPoint(null!==n?this.getCoordinateSequenceFactory().create(n):null);}if(gl(arguments[0],Il)){var r=arguments[0];if(null===r)return this.createMultiPoint(new Array(0).fill(null));for(var i=new Array(r.size()).fill(null),o=0;o=this.size())throw new Error();return this.array_[t];},Mh.prototype.push=function(t){return this.array_.push(t),t;},Mh.prototype.pop=function(t){if(0===this.array_.length)throw new Ph();return this.array_.pop();},Mh.prototype.peek=function(){if(0===this.array_.length)throw new Ph();return this.array_[this.array_.length-1];},Mh.prototype.empty=function(){return 0===this.array_.length;},Mh.prototype.isEmpty=function(){return this.empty();},Mh.prototype.search=function(t){return this.array_.indexOf(t);},Mh.prototype.size=function(){return this.array_.length;},Mh.prototype.toArray=function(){for(var t=[],e=0,n=this.array_.length;e0&&this._minIndexthis._minCoord.y&&n.y>this._minCoord.y&&r===Xl.CLOCKWISE)&&(i=!0),i&&(this._minIndex=this._minIndex-1);},Lh.prototype.getRightmostSideOfSegment=function(t,e){var n=t.getEdge().getCoordinates();if(e<0||e+1>=n.length)return-1;if(n[e].y===n[e+1].y)return-1;var r=Sh.LEFT;return n[e].ye._minCoord.x)&&(e._minDe=t,e._minIndex=r,e._minCoord=n[r]);},Lh.prototype.findRightmostEdgeAtNode=function(){var t=this._minDe.getNode().getEdges();this._minDe=t.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1);},Lh.prototype.findEdge=function(t){for(var e=t.iterator();e.hasNext();){var n=e.next();n.isForward()&&this.checkForRightmostCoordinate(n);}ql.isTrue(0!==this._minIndex||this._minCoord.equals(this._minDe.getCoordinate()),"inconsistency in rightmost processing"),0===this._minIndex?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe,this.getRightmostSide(this._minDe,this._minIndex)===Sh.LEFT&&(this._orientedDe=this._minDe.getSym());},Lh.prototype.interfaces_=function(){return[];},Lh.prototype.getClass=function(){return Lh;};var Oh=function(t){function e(n,r){t.call(this,e.msgWithCoord(n,r)),this.pt=r?new ul(r):null,this.name="TopologyException";}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCoordinate=function(){return this.pt;},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e.msgWithCoord=function(t,e){return e?t:t+" [ "+e+" ]";},e;}(kl),Rh=function Rh(){this.array_=[];};Rh.prototype.addLast=function(t){this.array_.push(t);},Rh.prototype.removeFirst=function(){return this.array_.shift();},Rh.prototype.isEmpty=function(){return 0===this.array_.length;};var Th=function Th(){this._finder=null,this._dirEdgeList=new lc(),this._nodes=new lc(),this._rightMostCoord=null,this._env=null,this._finder=new Lh();};Th.prototype.clearVisitedEdges=function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){t.next().setVisited(!1);}},Th.prototype.getRightmostCoordinate=function(){return this._rightMostCoord;},Th.prototype.computeNodeDepth=function(t){for(var e=null,n=t.getEdges().iterator();n.hasNext();){var r=n.next();if(r.isVisited()||r.getSym().isVisited()){e=r;break;}}if(null===e)throw new Oh("unable to find edge to compute depths at "+t.getCoordinate());t.getEdges().computeDepths(e);for(var i=t.getEdges().iterator();i.hasNext();){var o=i.next();o.setVisited(!0),this.copySymDepths(o);}},Th.prototype.computeDepth=function(t){this.clearVisitedEdges();var e=this._finder.getEdge();e.setEdgeDepths(Sh.RIGHT,t),this.copySymDepths(e),this.computeDepths(e);},Th.prototype.create=function(t){this.addReachable(t),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate();},Th.prototype.findResultEdges=function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){var e=t.next();e.getDepth(Sh.RIGHT)>=1&&e.getDepth(Sh.LEFT)<=0&&!e.isInteriorAreaEdge()&&e.setInResult(!0);}},Th.prototype.computeDepths=function(t){var e=new xc(),n=new Rh(),r=t.getNode();for(n.addLast(r),e.add(r),t.setVisited(!0);!n.isEmpty();){var i=n.removeFirst();e.add(i),this.computeNodeDepth(i);for(var o=i.getEdges().iterator();o.hasNext();){var s=o.next().getSym();if(!s.isVisited()){var a=s.getNode();e.contains(a)||(n.addLast(a),e.add(a));}}}},Th.prototype.compareTo=function(t){var e=t;return this._rightMostCoord.xe._rightMostCoord.x?1:0;},Th.prototype.getEnvelope=function(){if(null===this._env){for(var t=new Ll(),e=this._dirEdgeList.iterator();e.hasNext();)for(var n=e.next().getEdge().getCoordinates(),r=0;rthis.location.length){var e=new Array(3).fill(null);e[Sh.ON]=this.location[Sh.ON],e[Sh.LEFT]=pl.NONE,e[Sh.RIGHT]=pl.NONE,this.location=e;}for(var n=0;n1&&t.append(pl.toLocationSymbol(this.location[Sh.LEFT])),t.append(pl.toLocationSymbol(this.location[Sh.ON])),this.location.length>1&&t.append(pl.toLocationSymbol(this.location[Sh.RIGHT])),t.toString();},Ah.prototype.setLocations=function(t,e,n){this.location[Sh.ON]=t,this.location[Sh.LEFT]=e,this.location[Sh.RIGHT]=n;},Ah.prototype.get=function(t){return t1;},Ah.prototype.isAnyNull=function(){for(var t=0;tt._maxNodeDegree&&(t._maxNodeDegree=n),e=t.getNext(e);}while(e!==this._startDe);this._maxNodeDegree*=2;},Fh.prototype.addPoints=function(t,e,n){var r=t.getCoordinates();if(e){var i=1;n&&(i=0);for(var o=i;o=0;a--)this._pts.add(r[a]);}},Fh.prototype.isHole=function(){return this._isHole;},Fh.prototype.setInResult=function(){var t=this._startDe;do{t.getEdge().setInResult(!0),t=t.getNext();}while(t!==this._startDe);},Fh.prototype.containsPoint=function(t){var e=this.getLinearRing();if(!e.getEnvelopeInternal().contains(t))return!1;if(!Xl.isPointInRing(t,e.getCoordinates()))return!1;for(var n=this._holes.iterator();n.hasNext();){if(n.next().containsPoint(t))return!1;}return!0;},Fh.prototype.addHole=function(t){this._holes.add(t);},Fh.prototype.isShell=function(){return null===this._shell;},Fh.prototype.getLabel=function(){return this._label;},Fh.prototype.getEdges=function(){return this._edges;},Fh.prototype.getMaxNodeDegree=function(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree;},Fh.prototype.getShell=function(){return this._shell;},Fh.prototype.mergeLabel=function(){if(1===arguments.length){var t=arguments[0];this.mergeLabel(t,0),this.mergeLabel(t,1);}else if(2===arguments.length){var e=arguments[0],n=arguments[1],r=e.getLocation(n,Sh.RIGHT);if(r===pl.NONE)return null;if(this._label.getLocation(n)===pl.NONE)return this._label.setLocation(n,r),null;}},Fh.prototype.setShell=function(t){this._shell=t,null!==t&&t.addHole(this);},Fh.prototype.toPolygon=function(t){for(var e=new Array(this._holes.size()).fill(null),n=0;n=2,"found partial label"),this.computeIM(t);},qh.prototype.isInResult=function(){return this._isInResult;},qh.prototype.isVisited=function(){return this._isVisited;},qh.prototype.interfaces_=function(){return[];},qh.prototype.getClass=function(){return qh;};var Bh=function(t){function e(){t.call(this),this._coord=null,this._edges=null;var e=arguments[0],n=arguments[1];this._coord=e,this._edges=n,this._label=new Dh(0,pl.NONE);}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isIncidentEdgeInResult=function(){for(var t=this.getEdges().getEdges().iterator();t.hasNext();){if(t.next().getEdge().isInResult())return!0;}return!1;},e.prototype.isIsolated=function(){return 1===this._label.getGeometryCount();},e.prototype.getCoordinate=function(){return this._coord;},e.prototype.print=function(t){t.println("node "+this._coord+" lbl: "+this._label);},e.prototype.computeIM=function(t){},e.prototype.computeMergedLocation=function(t,e){var n=pl.NONE;if(n=this._label.getLocation(e),!t.isNull(e)){var r=t.getLocation(e);n!==pl.BOUNDARY&&(n=r);}return n;},e.prototype.setLabel=function(){if(2!==arguments.length)return t.prototype.setLabel.apply(this,arguments);var e=arguments[0],n=arguments[1];null===this._label?this._label=new Dh(e,n):this._label.setLocation(e,n);},e.prototype.getEdges=function(){return this._edges;},e.prototype.mergeLabel=function(){var t=this;if(arguments[0]instanceof e){var n=arguments[0];this.mergeLabel(n._label);}else if(arguments[0]instanceof Dh)for(var r=arguments[0],i=0;i<2;i++){var o=t.computeMergedLocation(r,i),s=t._label.getLocation(i);s===pl.NONE&&t._label.setLocation(i,o);}},e.prototype.add=function(t){this._edges.insert(t),t.setNode(this);},e.prototype.setLabelBoundary=function(t){if(null===this._label)return null;var e=pl.NONE;null!==this._label&&(e=this._label.getLocation(t));var n=null;switch(e){case pl.BOUNDARY:n=pl.INTERIOR;break;case pl.INTERIOR:default:n=pl.BOUNDARY;}this._label.setLocation(t,n);},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e;}(qh),zh=function zh(){this.nodeMap=new Cc(),this.nodeFact=null;var t=arguments[0];this.nodeFact=t;};zh.prototype.find=function(t){return this.nodeMap.get(t);},zh.prototype.addNode=function(){if(arguments[0]instanceof ul){var t=arguments[0],e=this.nodeMap.get(t);return null===e&&(e=this.nodeFact.createNode(t),this.nodeMap.put(t,e)),e;}if(arguments[0]instanceof Bh){var n=arguments[0],r=this.nodeMap.get(n.getCoordinate());return null===r?(this.nodeMap.put(n.getCoordinate(),n),n):(r.mergeLabel(n),r);}},zh.prototype.print=function(t){for(var e=this.iterator();e.hasNext();){e.next().print(t);}},zh.prototype.iterator=function(){return this.nodeMap.values().iterator();},zh.prototype.values=function(){return this.nodeMap.values();},zh.prototype.getBoundaryNodes=function(t){for(var e=new lc(),n=this.iterator();n.hasNext();){var r=n.next();r.getLabel().getLocation(t)===pl.BOUNDARY&&e.add(r);}return e;},zh.prototype.add=function(t){var e=t.getCoordinate();this.addNode(e).add(t);},zh.prototype.interfaces_=function(){return[];},zh.prototype.getClass=function(){return zh;};var jh=function jh(){},Uh={NE:{configurable:!0},NW:{configurable:!0},SW:{configurable:!0},SE:{configurable:!0}};jh.prototype.interfaces_=function(){return[];},jh.prototype.getClass=function(){return jh;},jh.isNorthern=function(t){return t===jh.NE||t===jh.NW;},jh.isOpposite=function(t,e){return t!==e&&2===(t-e+4)%4;},jh.commonHalfPlane=function(t,e){if(t===e)return t;if(2===(t-e+4)%4)return-1;var n=te?t:e)?3:n;},jh.isInHalfPlane=function(t,e){return e===jh.SE?t===jh.SE||t===jh.SW:t===e||t===e+1;},jh.quadrant=function(){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){var t=arguments[0],e=arguments[1];if(0===t&&0===e)throw new el("Cannot compute the quadrant for point ( "+t+", "+e+" )");return t>=0?e>=0?jh.NE:jh.SE:e>=0?jh.NW:jh.SW;}if(arguments[0]instanceof ul&&arguments[1]instanceof ul){var n=arguments[0],r=arguments[1];if(r.x===n.x&&r.y===n.y)throw new el("Cannot compute the quadrant for two identical points "+n);return r.x>=n.x?r.y>=n.y?jh.NE:jh.SE:r.y>=n.y?jh.NW:jh.SW;}},Uh.NE.get=function(){return 0;},Uh.NW.get=function(){return 1;},Uh.SW.get=function(){return 2;},Uh.SE.get=function(){return 3;},Object.defineProperties(jh,Uh);var Vh=function Vh(){if(this._edge=null,this._label=null,this._node=null,this._p0=null,this._p1=null,this._dx=null,this._dy=null,this._quadrant=null,1===arguments.length){var t=arguments[0];this._edge=t;}else if(3===arguments.length){var e=arguments[0],n=arguments[1],r=arguments[2],i=null;this._edge=e,this.init(n,r),this._label=i;}else if(4===arguments.length){var o=arguments[0],s=arguments[1],a=arguments[2],u=arguments[3];this._edge=o,this.init(s,a),this._label=u;}};Vh.prototype.compareDirection=function(t){return this._dx===t._dx&&this._dy===t._dy?0:this._quadrant>t._quadrant?1:this._quadrant2){o.linkDirectedEdgesForMinimalEdgeRings();var s=o.buildMinimalRings(),a=this.findShell(s);null!==a?(this.placePolygonHoles(a,s),e.add(a)):n.addAll(s);}else r.add(o);}return r;},Wh.prototype.containsPoint=function(t){for(var e=this._shellList.iterator();e.hasNext();){if(e.next().containsPoint(t))return!0;}return!1;},Wh.prototype.buildMaximalEdgeRings=function(t){for(var e=new lc(),n=t.iterator();n.hasNext();){var r=n.next();if(r.isInResult()&&r.getLabel().isArea()&&null===r.getEdgeRing()){var i=new Gh(r,this._geometryFactory);e.add(i),i.setInResult();}}return e;},Wh.prototype.placePolygonHoles=function(t,e){for(var n=e.iterator();n.hasNext();){var r=n.next();r.isHole()&&r.setShell(t);}},Wh.prototype.getPolygons=function(){return this.computePolygons(this._shellList);},Wh.prototype.findEdgeRingContaining=function(t,e){for(var n=t.getLinearRing(),r=n.getEnvelopeInternal(),i=n.getCoordinateN(0),o=null,s=null,a=e.iterator();a.hasNext();){var u=a.next(),l=u.getLinearRing(),c=l.getEnvelopeInternal();null!==o&&(s=o.getLinearRing().getEnvelopeInternal());var h=!1;c.contains(r)&&Xl.isPointInRing(i,l.getCoordinates())&&(h=!0),h&&(null===o||s.contains(c))&&(o=u);}return o;},Wh.prototype.findShell=function(t){for(var e=0,n=null,r=t.iterator();r.hasNext();){var i=r.next();i.isHole()||(n=i,e++);}return ql.isTrue(e<=1,"found two shells in MinimalEdgeRing list"),n;},Wh.prototype.add=function(){if(1===arguments.length){var t=arguments[0];this.add(t.getEdgeEnds(),t.getNodes());}else if(2===arguments.length){var e=arguments[0],n=arguments[1];Hh.linkResultDirectedEdges(n);var r=this.buildMaximalEdgeRings(e),i=new lc(),o=this.buildMinimalEdgeRings(r,this._shellList,i);this.sortShellsAndHoles(o,this._shellList,i),this.placeFreeHoles(this._shellList,i);}},Wh.prototype.interfaces_=function(){return[];},Wh.prototype.getClass=function(){return Wh;};var Jh=function Jh(){};Jh.prototype.getBounds=function(){},Jh.prototype.interfaces_=function(){return[];},Jh.prototype.getClass=function(){return Jh;};var Zh=function Zh(){this._bounds=null,this._item=null;var t=arguments[0],e=arguments[1];this._bounds=t,this._item=e;};Zh.prototype.getItem=function(){return this._item;},Zh.prototype.getBounds=function(){return this._bounds;},Zh.prototype.interfaces_=function(){return[Jh,al];},Zh.prototype.getClass=function(){return Zh;};var Kh=function Kh(){this._size=null,this._items=null,this._size=0,this._items=new lc(),this._items.add(null);};Kh.prototype.poll=function(){if(this.isEmpty())return null;var t=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),t;},Kh.prototype.size=function(){return this._size;},Kh.prototype.reorder=function(t){for(var e=this,n=null,r=this._items.get(t);2*t<=this._size&&((n=2*t)!==e._size&&e._items.get(n+1).compareTo(e._items.get(n))<0&&n++,e._items.get(n).compareTo(r)<0);t=n)e._items.set(t,e._items.get(n));this._items.set(t,r);},Kh.prototype.clear=function(){this._size=0,this._items.clear();},Kh.prototype.isEmpty=function(){return 0===this._size;},Kh.prototype.add=function(t){this._items.add(null),this._size+=1;var e=this._size;for(this._items.set(0,t);t.compareTo(this._items.get(Math.trunc(e/2)))<0;e/=2)this._items.set(e,this._items.get(Math.trunc(e/2)));this._items.set(e,t);},Kh.prototype.interfaces_=function(){return[];},Kh.prototype.getClass=function(){return Kh;};var Qh=function Qh(){};Qh.prototype.visitItem=function(t){},Qh.prototype.interfaces_=function(){return[];},Qh.prototype.getClass=function(){return Qh;};var $h=function $h(){};$h.prototype.insert=function(t,e){},$h.prototype.remove=function(t,e){},$h.prototype.query=function(){},$h.prototype.interfaces_=function(){return[];},$h.prototype.getClass=function(){return $h;};var tp=function tp(){if(this._childBoundables=new lc(),this._bounds=null,this._level=null,0===arguments.length);else if(1===arguments.length){var t=arguments[0];this._level=t;}},ep={serialVersionUID:{configurable:!0}};tp.prototype.getLevel=function(){return this._level;},tp.prototype.size=function(){return this._childBoundables.size();},tp.prototype.getChildBoundables=function(){return this._childBoundables;},tp.prototype.addChildBoundable=function(t){ql.isTrue(null===this._bounds),this._childBoundables.add(t);},tp.prototype.isEmpty=function(){return this._childBoundables.isEmpty();},tp.prototype.getBounds=function(){return null===this._bounds&&(this._bounds=this.computeBounds()),this._bounds;},tp.prototype.interfaces_=function(){return[Jh,al];},tp.prototype.getClass=function(){return tp;},ep.serialVersionUID.get=function(){return 0x5a1e55ec41369800;},Object.defineProperties(tp,ep);var np=function np(){};np.reverseOrder=function(){return{compare:function compare(t,e){return e.compareTo(t);}};},np.min=function(t){return np.sort(t),t.get(0);},np.sort=function(t,e){var n=t.toArray();e?Rc.sort(n,e):Rc.sort(n);for(var r=t.iterator(),i=0,o=n.length;irp.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,t,e),null):(this.expand(this._boundable2,this._boundable1,t,e),null);if(n)return this.expand(this._boundable1,this._boundable2,t,e),null;if(r)return this.expand(this._boundable2,this._boundable1,t,e),null;throw new el("neither boundable is composite");},rp.prototype.isLeaves=function(){return!(rp.isComposite(this._boundable1)||rp.isComposite(this._boundable2));},rp.prototype.compareTo=function(t){var e=t;return this._distancee._distance?1:0;},rp.prototype.expand=function(t,e,n,r){for(var i=t.getChildBoundables().iterator();i.hasNext();){var o=i.next(),s=new rp(o,e,this._itemDistance);s.getDistance()1,"Node capacity must be greater than 1"),this._nodeCapacity=n;}},op={IntersectsOp:{configurable:!0},serialVersionUID:{configurable:!0},DEFAULT_NODE_CAPACITY:{configurable:!0}};ip.prototype.getNodeCapacity=function(){return this._nodeCapacity;},ip.prototype.lastNode=function(t){return t.get(t.size()-1);},ip.prototype.size=function(){var t=this;if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.size(this._root));if(1===arguments.length){for(var e=arguments[0],n=0,r=e.getChildBoundables().iterator();r.hasNext();){var i=r.next();i instanceof tp?n+=t.size(i):i instanceof Zh&&(n+=1);}return n;}},ip.prototype.removeItem=function(t,e){for(var n=null,r=t.getChildBoundables().iterator();r.hasNext();){var i=r.next();i instanceof Zh&&i.getItem()===e&&(n=i);}return null!==n&&(t.getChildBoundables().remove(n),!0);},ip.prototype.itemsTree=function(){var t=this;if(0===arguments.length){this.build();var e=this.itemsTree(this._root);return null===e?new lc():e;}if(1===arguments.length){for(var n=arguments[0],r=new lc(),i=n.getChildBoundables().iterator();i.hasNext();){var o=i.next();if(o instanceof tp){var s=t.itemsTree(o);null!==s&&r.add(s);}else o instanceof Zh?r.add(o.getItem()):ql.shouldNeverReachHere();}return r.size()<=0?null:r;}},ip.prototype.insert=function(t,e){ql.isTrue(!this._built,"Cannot insert items into an STR packed R-tree after it has been built."),this._itemBoundables.add(new Zh(t,e));},ip.prototype.boundablesAtLevel=function(){var t=this;if(1===arguments.length){var e=arguments[0],n=new lc();return this.boundablesAtLevel(e,this._root,n),n;}if(3===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2];if(ql.isTrue(r>-2),i.getLevel()===r)return o.add(i),null;for(var s=i.getChildBoundables().iterator();s.hasNext();){var a=s.next();a instanceof tp?t.boundablesAtLevel(r,a,o):(ql.isTrue(a instanceof Zh),-1===r&&o.add(a));}return null;}},ip.prototype.query=function(){var t=this;if(1===arguments.length){var e=arguments[0];this.build();var n=new lc();return this.isEmpty()||this.getIntersectsOp().intersects(this._root.getBounds(),e)&&this.query(e,this._root,n),n;}if(2===arguments.length){var r=arguments[0],i=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),r)&&this.query(r,this._root,i);}else if(3===arguments.length)if(gl(arguments[2],Qh)&&arguments[0]instanceof Object&&arguments[1]instanceof tp)for(var o=arguments[0],s=arguments[1],a=arguments[2],u=s.getChildBoundables(),l=0;ln&&(n=o);}}return n+1;}},ip.prototype.createParentBoundables=function(t,e){var n=this;ql.isTrue(!t.isEmpty());var r=new lc();r.add(this.createNode(e));var i=new lc(t);np.sort(i,this.getComparator());for(var o=i.iterator();o.hasNext();){var s=o.next();n.lastNode(r).getChildBoundables().size()===n.getNodeCapacity()&&r.add(n.createNode(e)),n.lastNode(r).addChildBoundable(s);}return r;},ip.prototype.isEmpty=function(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty();},ip.prototype.interfaces_=function(){return[al];},ip.prototype.getClass=function(){return ip;},ip.compareDoubles=function(t,e){return t>e?1:t0);for(var n=new lc(),r=0;r0;){var p=h.poll(),f=p.getDistance();if(f>=l)break;p.isLeaves()?(l=f,c=p):p.expandToQueue(h,l);}return[c.getBoundable(0).getItem(),c.getBoundable(1).getItem()];}}else if(3===arguments.length){var g=arguments[0],d=arguments[1],y=arguments[2],v=new Zh(g,d),_=new rp(this.getRoot(),v,y);return this.nearestNeighbour(_)[0];}},e.prototype.interfaces_=function(){return[$h,al];},e.prototype.getClass=function(){return e;},e.centreX=function(t){return e.avg(t.getMinX(),t.getMaxX());},e.avg=function(t,e){return(t+e)/2;},e.centreY=function(t){return e.avg(t.getMinY(),t.getMaxY());},n.STRtreeNode.get=function(){return lp;},n.serialVersionUID.get=function(){return 0x39920f7d5f261e0;},n.xComparator.get=function(){return{interfaces_:function interfaces_(){return[sl];},compare:function compare(n,r){return t.compareDoubles(e.centreX(n.getBounds()),e.centreX(r.getBounds()));}};},n.yComparator.get=function(){return{interfaces_:function interfaces_(){return[sl];},compare:function compare(n,r){return t.compareDoubles(e.centreY(n.getBounds()),e.centreY(r.getBounds()));}};},n.intersectsOp.get=function(){return{interfaces_:function interfaces_(){return[t.IntersectsOp];},intersects:function intersects(t,e){return t.intersects(e);}};},n.DEFAULT_NODE_CAPACITY.get=function(){return 10;},Object.defineProperties(e,n),e;}(ip),lp=function(t){function e(){var e=arguments[0];t.call(this,e);}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.computeBounds=function(){for(var t=null,e=this.getChildBoundables().iterator();e.hasNext();){var n=e.next();null===t?t=new Ll(n.getBounds()):t.expandToInclude(n.getBounds());}return t;},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e;}(tp),cp=function cp(){};cp.prototype.interfaces_=function(){return[];},cp.prototype.getClass=function(){return cp;},cp.relativeSign=function(t,e){return te?1:0;},cp.compare=function(t,e,n){if(e.equals2D(n))return 0;var r=cp.relativeSign(e.x,n.x),i=cp.relativeSign(e.y,n.y);switch(t){case 0:return cp.compareValue(r,i);case 1:return cp.compareValue(i,r);case 2:return cp.compareValue(i,-r);case 3:return cp.compareValue(-r,i);case 4:return cp.compareValue(-r,-i);case 5:return cp.compareValue(-i,-r);case 6:return cp.compareValue(-i,r);case 7:return cp.compareValue(r,-i);}return ql.shouldNeverReachHere("invalid octant value"),0;},cp.compareValue=function(t,e){return t<0?-1:t>0?1:e<0?-1:e>0?1:0;};var hp=function hp(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];this._segString=t,this.coord=new ul(e),this.segmentIndex=n,this._segmentOctant=r,this._isInterior=!e.equals2D(t.getCoordinate(n));};hp.prototype.getCoordinate=function(){return this.coord;},hp.prototype.print=function(t){t.print(this.coord),t.print(" seg # = "+this.segmentIndex);},hp.prototype.compareTo=function(t){var e=t;return this.segmentIndexe.segmentIndex?1:this.coord.equals2D(e.coord)?0:cp.compare(this._segmentOctant,this.coord,e.coord);},hp.prototype.isEndPoint=function(t){return 0===this.segmentIndex&&!this._isInterior||this.segmentIndex===t;},hp.prototype.isInterior=function(){return this._isInterior;},hp.prototype.interfaces_=function(){return[il];},hp.prototype.getClass=function(){return hp;};var pp=function pp(){this._nodeMap=new Cc(),this._edge=null;var t=arguments[0];this._edge=t;};pp.prototype.getSplitCoordinates=function(){var t=new hc();this.addEndpoints();for(var e=this.iterator(),n=e.next();e.hasNext();){var r=e.next();this.addEdgeCoordinates(n,r,t),n=r;}return t.toCoordinateArray();},pp.prototype.addCollapsedNodes=function(){var t=new lc();this.findCollapsesFromInsertedNodes(t),this.findCollapsesFromExistingVertices(t);for(var e=t.iterator();e.hasNext();){var n=e.next().intValue();this.add(this._edge.getCoordinate(n),n);}},pp.prototype.print=function(t){t.println("Intersections:");for(var e=this.iterator();e.hasNext();){e.next().print(t);}},pp.prototype.findCollapsesFromExistingVertices=function(t){for(var e=0;e=0?e>=0?n>=r?0:1:n>=r?7:6:e>=0?n>=r?3:2:n>=r?4:5;}if(arguments[0]instanceof ul&&arguments[1]instanceof ul){var i=arguments[0],o=arguments[1],s=o.x-i.x,a=o.y-i.y;if(0===s&&0===a)throw new el("Cannot compute the octant for two identical points "+i);return fp.octant(s,a);}};var gp=function gp(){};gp.prototype.getCoordinates=function(){},gp.prototype.size=function(){},gp.prototype.getCoordinate=function(t){},gp.prototype.isClosed=function(){},gp.prototype.setData=function(t){},gp.prototype.getData=function(){},gp.prototype.interfaces_=function(){return[];},gp.prototype.getClass=function(){return gp;};var dp=function dp(){};dp.prototype.addIntersection=function(t,e){},dp.prototype.interfaces_=function(){return[gp];},dp.prototype.getClass=function(){return dp;};var yp=function yp(){this._nodeList=new pp(this),this._pts=null,this._data=null;var t=arguments[0],e=arguments[1];this._pts=t,this._data=e;};yp.prototype.getCoordinates=function(){return this._pts;},yp.prototype.size=function(){return this._pts.length;},yp.prototype.getCoordinate=function(t){return this._pts[t];},yp.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1]);},yp.prototype.getSegmentOctant=function(t){return t===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(t),this.getCoordinate(t+1));},yp.prototype.setData=function(t){this._data=t;},yp.prototype.safeOctant=function(t,e){return t.equals2D(e)?0:fp.octant(t,e);},yp.prototype.getData=function(){return this._data;},yp.prototype.addIntersection=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];this.addIntersectionNode(t,e);}else if(4===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[3],o=new ul(n.getIntersection(i));this.addIntersection(o,r);}},yp.prototype.toString=function(){return Fl.toLineString(new lh(this._pts));},yp.prototype.getNodeList=function(){return this._nodeList;},yp.prototype.addIntersectionNode=function(t,e){var n=e,r=n+1;if(r=0&&n>=0||e<=0&&n<=0?Math.max(e,n):0;}if(arguments[0]instanceof ul){var r=arguments[0];return Xl.orientationIndex(this.p0,this.p1,r);}},vp.prototype.toGeometry=function(t){return t.createLineString([this.p0,this.p1]);},vp.prototype.isVertical=function(){return this.p0.x===this.p1.x;},vp.prototype.equals=function(t){if(!(t instanceof vp))return!1;var e=t;return this.p0.equals(e.p0)&&this.p1.equals(e.p1);},vp.prototype.intersection=function(t){var e=new jl();return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null;},vp.prototype.project=function(){if(arguments[0]instanceof ul){var t=arguments[0];if(t.equals(this.p0)||t.equals(this.p1))return new ul(t);var e=this.projectionFactor(t),n=new ul();return n.x=this.p0.x+e*(this.p1.x-this.p0.x),n.y=this.p0.y+e*(this.p1.y-this.p0.y),n;}if(arguments[0]instanceof vp){var r=arguments[0],i=this.projectionFactor(r.p0),o=this.projectionFactor(r.p1);if(i>=1&&o>=1)return null;if(i<=0&&o<=0)return null;var s=this.project(r.p0);i<0&&(s=this.p0),i>1&&(s=this.p1);var a=this.project(r.p1);return o<0&&(a=this.p0),o>1&&(a=this.p1),new vp(s,a);}},vp.prototype.normalize=function(){this.p1.compareTo(this.p0)<0&&this.reverse();},vp.prototype.angle=function(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x);},vp.prototype.getCoordinate=function(t){return 0===t?this.p0:this.p1;},vp.prototype.distancePerpendicular=function(t){return Xl.distancePointLinePerpendicular(t,this.p0,this.p1);},vp.prototype.minY=function(){return Math.min(this.p0.y,this.p1.y);},vp.prototype.midPoint=function(){return vp.midPoint(this.p0,this.p1);},vp.prototype.projectionFactor=function(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,n=this.p1.y-this.p0.y,r=e*e+n*n;return r<=0?nl.NaN:((t.x-this.p0.x)*e+(t.y-this.p0.y)*n)/r;},vp.prototype.closestPoints=function(t){var e=this.intersection(t);if(null!==e)return[e,e];var n=new Array(2).fill(null),r=nl.MAX_VALUE,i=null,o=this.closestPoint(t.p0);r=o.distance(t.p0),n[0]=o,n[1]=t.p0;var s=this.closestPoint(t.p1);(i=s.distance(t.p1))0&&e<1?this.project(t):this.p0.distance(t)1||nl.isNaN(e))&&(e=1),e;},vp.prototype.toString=function(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")";},vp.prototype.isHorizontal=function(){return this.p0.y===this.p1.y;},vp.prototype.distance=function(){if(arguments[0]instanceof vp){var t=arguments[0];return Xl.distanceLineLine(this.p0,this.p1,t.p0,t.p1);}if(arguments[0]instanceof ul){var e=arguments[0];return Xl.distancePointLine(e,this.p0,this.p1);}},vp.prototype.pointAlong=function(t){var e=new ul();return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e;},vp.prototype.hashCode=function(){var t=nl.doubleToLongBits(this.p0.x);t^=31*nl.doubleToLongBits(this.p0.y);var e=Math.trunc(t)^Math.trunc(t>>32),n=nl.doubleToLongBits(this.p1.x);return n^=31*nl.doubleToLongBits(this.p1.y),e^(Math.trunc(n)^Math.trunc(n>>32));},vp.prototype.interfaces_=function(){return[il,al];},vp.prototype.getClass=function(){return vp;},vp.midPoint=function(t,e){return new ul((t.x+e.x)/2,(t.y+e.y)/2);},_p.serialVersionUID.get=function(){return 0x2d2172135f411c00;},Object.defineProperties(vp,_p);var mp=function mp(){this.tempEnv1=new Ll(),this.tempEnv2=new Ll(),this._overlapSeg1=new vp(),this._overlapSeg2=new vp();};mp.prototype.overlap=function(){if(2===arguments.length);else if(4===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];t.getLineSegment(e,this._overlapSeg1),n.getLineSegment(r,this._overlapSeg2),this.overlap(this._overlapSeg1,this._overlapSeg2);}},mp.prototype.interfaces_=function(){return[];},mp.prototype.getClass=function(){return mp;};var xp=function xp(){this._pts=null,this._start=null,this._end=null,this._env=null,this._context=null,this._id=null;var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];this._pts=t,this._start=e,this._end=n,this._context=r;};xp.prototype.getLineSegment=function(t,e){e.p0=this._pts[t],e.p1=this._pts[t+1];},xp.prototype.computeSelect=function(t,e,n,r){var i=this._pts[e],o=this._pts[n];if(r.tempEnv1.init(i,o),n-e==1)return r.select(this,e),null;if(!t.intersects(r.tempEnv1))return null;var s=Math.trunc((e+n)/2);e=t.length-1)return t.length-1;for(var r=jh.quadrant(t[n],t[n+1]),i=e+1;ir.getId()&&(r.computeOverlaps(o,e),t._nOverlaps++),t._segInt.isDone())return null;}},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},n.SegmentOverlapAction.get=function(){return Np;},Object.defineProperties(e,n),e;}(wp),Np=function(t){function e(){t.call(this),this._si=null;var e=arguments[0];this._si=e;}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.overlap=function(){if(4!==arguments.length)return t.prototype.overlap.apply(this,arguments);var e=arguments[0],n=arguments[1],r=arguments[2],i=arguments[3],o=e.getContext(),s=r.getContext();this._si.processIntersections(o,n,s,i);},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e;}(mp),Sp=function t(){if(this._quadrantSegments=t.DEFAULT_QUADRANT_SEGMENTS,this._endCapStyle=t.CAP_ROUND,this._joinStyle=t.JOIN_ROUND,this._mitreLimit=t.DEFAULT_MITRE_LIMIT,this._isSingleSided=!1,this._simplifyFactor=t.DEFAULT_SIMPLIFY_FACTOR,0===arguments.length);else if(1===arguments.length){var e=arguments[0];this.setQuadrantSegments(e);}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.setQuadrantSegments(n),this.setEndCapStyle(r);}else if(4===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2],a=arguments[3];this.setQuadrantSegments(i),this.setEndCapStyle(o),this.setJoinStyle(s),this.setMitreLimit(a);}},Cp={CAP_ROUND:{configurable:!0},CAP_FLAT:{configurable:!0},CAP_SQUARE:{configurable:!0},JOIN_ROUND:{configurable:!0},JOIN_MITRE:{configurable:!0},JOIN_BEVEL:{configurable:!0},DEFAULT_QUADRANT_SEGMENTS:{configurable:!0},DEFAULT_MITRE_LIMIT:{configurable:!0},DEFAULT_SIMPLIFY_FACTOR:{configurable:!0}};Sp.prototype.getEndCapStyle=function(){return this._endCapStyle;},Sp.prototype.isSingleSided=function(){return this._isSingleSided;},Sp.prototype.setQuadrantSegments=function(t){this._quadrantSegments=t,0===this._quadrantSegments&&(this._joinStyle=Sp.JOIN_BEVEL),this._quadrantSegments<0&&(this._joinStyle=Sp.JOIN_MITRE,this._mitreLimit=Math.abs(this._quadrantSegments)),t<=0&&(this._quadrantSegments=1),this._joinStyle!==Sp.JOIN_ROUND&&(this._quadrantSegments=Sp.DEFAULT_QUADRANT_SEGMENTS);},Sp.prototype.getJoinStyle=function(){return this._joinStyle;},Sp.prototype.setJoinStyle=function(t){this._joinStyle=t;},Sp.prototype.setSimplifyFactor=function(t){this._simplifyFactor=t<0?0:t;},Sp.prototype.getSimplifyFactor=function(){return this._simplifyFactor;},Sp.prototype.getQuadrantSegments=function(){return this._quadrantSegments;},Sp.prototype.setEndCapStyle=function(t){this._endCapStyle=t;},Sp.prototype.getMitreLimit=function(){return this._mitreLimit;},Sp.prototype.setMitreLimit=function(t){this._mitreLimit=t;},Sp.prototype.setSingleSided=function(t){this._isSingleSided=t;},Sp.prototype.interfaces_=function(){return[];},Sp.prototype.getClass=function(){return Sp;},Sp.bufferDistanceError=function(t){var e=Math.PI/2/t;return 1-Math.cos(e/2);},Cp.CAP_ROUND.get=function(){return 1;},Cp.CAP_FLAT.get=function(){return 2;},Cp.CAP_SQUARE.get=function(){return 3;},Cp.JOIN_ROUND.get=function(){return 1;},Cp.JOIN_MITRE.get=function(){return 2;},Cp.JOIN_BEVEL.get=function(){return 3;},Cp.DEFAULT_QUADRANT_SEGMENTS.get=function(){return 8;},Cp.DEFAULT_MITRE_LIMIT.get=function(){return 5;},Cp.DEFAULT_SIMPLIFY_FACTOR.get=function(){return .01;},Object.defineProperties(Sp,Cp);var Pp=function Pp(t){this._distanceTol=null,this._isDeleted=null,this._angleOrientation=Xl.COUNTERCLOCKWISE,this._inputLine=t||null;},Mp={INIT:{configurable:!0},DELETE:{configurable:!0},KEEP:{configurable:!0},NUM_PTS_TO_CHECK:{configurable:!0}};Pp.prototype.isDeletable=function(t,e,n,r){var i=this._inputLine[t],o=this._inputLine[e],s=this._inputLine[n];return!!this.isConcave(i,o,s)&&!!this.isShallow(i,o,s,r)&&this.isShallowSampled(i,o,t,n,r);},Pp.prototype.deleteShallowConcavities=function(){for(var t=this,e=1,n=this.findNextNonDeletedIndex(e),r=this.findNextNonDeletedIndex(n),i=!1;r=0;r--)this.addPt(t[r]);},Lp.prototype.isRedundant=function(t){if(this._ptList.size()<1)return!1;var e=this._ptList.get(this._ptList.size()-1);return t.distance(e)Math.PI;)t-=Rp.PI_TIMES_2;for(;t<=-Math.PI;)t+=Rp.PI_TIMES_2;return t;},Rp.angle=function(){if(1===arguments.length){var t=arguments[0];return Math.atan2(t.y,t.x);}if(2===arguments.length){var e=arguments[0],n=arguments[1],r=n.x-e.x,i=n.y-e.y;return Math.atan2(i,r);}},Rp.isAcute=function(t,e,n){var r=t.x-e.x,i=t.y-e.y;return r*(n.x-e.x)+i*(n.y-e.y)>0;},Rp.isObtuse=function(t,e,n){var r=t.x-e.x,i=t.y-e.y;return r*(n.x-e.x)+i*(n.y-e.y)<0;},Rp.interiorAngle=function(t,e,n){var r=Rp.angle(e,t),i=Rp.angle(e,n);return Math.abs(i-r);},Rp.normalizePositive=function(t){if(t<0){for(;t<0;)t+=Rp.PI_TIMES_2;t>=Rp.PI_TIMES_2&&(t=0);}else{for(;t>=Rp.PI_TIMES_2;)t-=Rp.PI_TIMES_2;t<0&&(t=0);}return t;},Rp.angleBetween=function(t,e,n){var r=Rp.angle(e,t),i=Rp.angle(e,n);return Rp.diff(r,i);},Rp.diff=function(t,e){var n=null;return(n=tMath.PI&&(n=2*Math.PI-n),n;},Rp.toRadians=function(t){return t*Math.PI/180;},Rp.getTurn=function(t,e){var n=Math.sin(e-t);return n>0?Rp.COUNTERCLOCKWISE:n<0?Rp.CLOCKWISE:Rp.NONE;},Rp.angleBetweenOriented=function(t,e,n){var r=Rp.angle(e,t),i=Rp.angle(e,n)-r;return i<=-Math.PI?i+Rp.PI_TIMES_2:i>Math.PI?i-Rp.PI_TIMES_2:i;},Tp.PI_TIMES_2.get=function(){return 2*Math.PI;},Tp.PI_OVER_2.get=function(){return Math.PI/2;},Tp.PI_OVER_4.get=function(){return Math.PI/4;},Tp.COUNTERCLOCKWISE.get=function(){return Xl.COUNTERCLOCKWISE;},Tp.CLOCKWISE.get=function(){return Xl.CLOCKWISE;},Tp.NONE.get=function(){return Xl.COLLINEAR;},Object.defineProperties(Rp,Tp);var Ap=function t(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new vp(),this._seg1=new vp(),this._offset0=new vp(),this._offset1=new vp(),this._side=0,this._hasNarrowConcaveAngle=!1;var e=arguments[0],n=arguments[1],r=arguments[2];this._precisionModel=e,this._bufParams=n,this._li=new jl(),this._filletAngleQuantum=Math.PI/2/n.getQuadrantSegments(),n.getQuadrantSegments()>=8&&n.getJoinStyle()===Sp.JOIN_ROUND&&(this._closingSegLengthFactor=t.MAX_CLOSING_SEG_LEN_FACTOR),this.init(r);},Dp={OFFSET_SEGMENT_SEPARATION_FACTOR:{configurable:!0},INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},CURVE_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},MAX_CLOSING_SEG_LEN_FACTOR:{configurable:!0}};Ap.prototype.addNextSegment=function(t,e){if(this._s0=this._s1,this._s1=this._s2,this._s2=t,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var n=Xl.computeOrientation(this._s0,this._s1,this._s2),r=n===Xl.CLOCKWISE&&this._side===Sh.LEFT||n===Xl.COUNTERCLOCKWISE&&this._side===Sh.RIGHT;0===n?this.addCollinear(e):r?this.addOutsideTurn(n,e):this.addInsideTurn(n,e);},Ap.prototype.addLineEndCap=function(t,e){var n=new vp(t,e),r=new vp();this.computeOffsetSegment(n,Sh.LEFT,this._distance,r);var i=new vp();this.computeOffsetSegment(n,Sh.RIGHT,this._distance,i);var o=e.x-t.x,s=e.y-t.y,a=Math.atan2(s,o);switch(this._bufParams.getEndCapStyle()){case Sp.CAP_ROUND:this._segList.addPt(r.p1),this.addFilletArc(e,a+Math.PI/2,a-Math.PI/2,Xl.CLOCKWISE,this._distance),this._segList.addPt(i.p1);break;case Sp.CAP_FLAT:this._segList.addPt(r.p1),this._segList.addPt(i.p1);break;case Sp.CAP_SQUARE:var u=new ul();u.x=Math.abs(this._distance)*Math.cos(a),u.y=Math.abs(this._distance)*Math.sin(a);var l=new ul(r.p1.x+u.x,r.p1.y+u.y),c=new ul(i.p1.x+u.x,i.p1.y+u.y);this._segList.addPt(l),this._segList.addPt(c);}},Ap.prototype.getCoordinates=function(){return this._segList.getCoordinates();},Ap.prototype.addMitreJoin=function(t,e,n,r){var i=!0,o=null;try{o=Ml.intersection(e.p0,e.p1,n.p0,n.p1),(r<=0?1:o.distance(t)/Math.abs(r))>this._bufParams.getMitreLimit()&&(i=!1);}catch(t){if(!(t instanceof Cl))throw t;o=new ul(0,0),i=!1;}i?this._segList.addPt(o):this.addLimitedMitreJoin(e,n,r,this._bufParams.getMitreLimit());},Ap.prototype.addFilletCorner=function(t,e,n,r,i){var o=e.x-t.x,s=e.y-t.y,a=Math.atan2(s,o),u=n.x-t.x,l=n.y-t.y,c=Math.atan2(l,u);r===Xl.CLOCKWISE?a<=c&&(a+=2*Math.PI):a>=c&&(a-=2*Math.PI),this._segList.addPt(e),this.addFilletArc(t,a,c,r,i),this._segList.addPt(n);},Ap.prototype.addOutsideTurn=function(t,e){if(this._offset0.p1.distance(this._offset1.p0)0){var n=new ul((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(n);var r=new ul((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(r);}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0);}},Ap.prototype.createCircle=function(t){var e=new ul(t.x+this._distance,t.y);this._segList.addPt(e),this.addFilletArc(t,0,2*Math.PI,-1,this._distance),this._segList.closeRing();},Ap.prototype.addBevelJoin=function(t,e){this._segList.addPt(t.p1),this._segList.addPt(e.p0);},Ap.prototype.init=function(t){this._distance=t,this._maxCurveSegmentError=t*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new Lp(),this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(t*Ap.CURVE_VERTEX_SNAP_DISTANCE_FACTOR);},Ap.prototype.addCollinear=function(t){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2),this._li.getIntersectionNum()>=2&&(this._bufParams.getJoinStyle()===Sp.JOIN_BEVEL||this._bufParams.getJoinStyle()===Sp.JOIN_MITRE?(t&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addFilletCorner(this._s1,this._offset0.p1,this._offset1.p0,Xl.CLOCKWISE,this._distance));},Ap.prototype.closeRing=function(){this._segList.closeRing();},Ap.prototype.hasNarrowConcaveAngle=function(){return this._hasNarrowConcaveAngle;},Ap.prototype.interfaces_=function(){return[];},Ap.prototype.getClass=function(){return Ap;},Dp.OFFSET_SEGMENT_SEPARATION_FACTOR.get=function(){return .001;},Dp.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return .001;},Dp.CURVE_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return 1e-6;},Dp.MAX_CLOSING_SEG_LEN_FACTOR.get=function(){return 80;},Object.defineProperties(Ap,Dp);var Fp=function Fp(){this._distance=0,this._precisionModel=null,this._bufParams=null;var t=arguments[0],e=arguments[1];this._precisionModel=t,this._bufParams=e;};Fp.prototype.getOffsetCurve=function(t,e){if(this._distance=e,0===e)return null;var n=e<0,r=Math.abs(e),i=this.getSegGen(r);t.length<=1?this.computePointCurve(t[0],i):this.computeOffsetCurve(t,n,i);var o=i.getCoordinates();return n&&pc.reverse(o),o;},Fp.prototype.computeSingleSidedBufferCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);if(e){n.addSegments(t,!0);var i=Pp.simplify(t,-r),o=i.length-1;n.initSideSegments(i[o],i[o-1],Sh.LEFT),n.addFirstSegment();for(var s=o-2;s>=0;s--)n.addNextSegment(i[s],!0);}else{n.addSegments(t,!1);var a=Pp.simplify(t,r),u=a.length-1;n.initSideSegments(a[0],a[1],Sh.LEFT),n.addFirstSegment();for(var l=2;l<=u;l++)n.addNextSegment(a[l],!0);}n.addLastSegment(),n.closeRing();},Fp.prototype.computeRingBufferCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);e===Sh.RIGHT&&(r=-r);var i=Pp.simplify(t,r),o=i.length-1;n.initSideSegments(i[o-1],i[0],e);for(var s=1;s<=o;s++){var a=1!==s;n.addNextSegment(i[s],a);}n.closeRing();},Fp.prototype.computeLineBufferCurve=function(t,e){var n=this.simplifyTolerance(this._distance),r=Pp.simplify(t,n),i=r.length-1;e.initSideSegments(r[0],r[1],Sh.LEFT);for(var o=2;o<=i;o++)e.addNextSegment(r[o],!0);e.addLastSegment(),e.addLineEndCap(r[i-1],r[i]);var s=Pp.simplify(t,-n),a=s.length-1;e.initSideSegments(s[a],s[a-1],Sh.LEFT);for(var u=a-2;u>=0;u--)e.addNextSegment(s[u],!0);e.addLastSegment(),e.addLineEndCap(s[1],s[0]),e.closeRing();},Fp.prototype.computePointCurve=function(t,e){switch(this._bufParams.getEndCapStyle()){case Sp.CAP_ROUND:e.createCircle(t);break;case Sp.CAP_SQUARE:e.createSquare(t);}},Fp.prototype.getLineCurve=function(t,e){if(this._distance=e,e<0&&!this._bufParams.isSingleSided())return null;if(0===e)return null;var n=Math.abs(e),r=this.getSegGen(n);if(t.length<=1)this.computePointCurve(t[0],r);else if(this._bufParams.isSingleSided()){var i=e<0;this.computeSingleSidedBufferCurve(t,i,r);}else this.computeLineBufferCurve(t,r);return r.getCoordinates();},Fp.prototype.getBufferParameters=function(){return this._bufParams;},Fp.prototype.simplifyTolerance=function(t){return t*this._bufParams.getSimplifyFactor();},Fp.prototype.getRingCurve=function(t,e,n){if(this._distance=n,t.length<=2)return this.getLineCurve(t,n);if(0===n)return Fp.copyCoordinates(t);var r=this.getSegGen(n);return this.computeRingBufferCurve(t,e,r),r.getCoordinates();},Fp.prototype.computeOffsetCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);if(e){var i=Pp.simplify(t,-r),o=i.length-1;n.initSideSegments(i[o],i[o-1],Sh.LEFT),n.addFirstSegment();for(var s=o-2;s>=0;s--)n.addNextSegment(i[s],!0);}else{var a=Pp.simplify(t,r),u=a.length-1;n.initSideSegments(a[0],a[1],Sh.LEFT),n.addFirstSegment();for(var l=2;l<=u;l++)n.addNextSegment(a[l],!0);}n.addLastSegment();},Fp.prototype.getSegGen=function(t){return new Ap(this._precisionModel,this._bufParams,t);},Fp.prototype.interfaces_=function(){return[];},Fp.prototype.getClass=function(){return Fp;},Fp.copyCoordinates=function(t){for(var e=new Array(t.length).fill(null),n=0;no.getMaxY()||t.findStabbedSegments(e,i.getDirectedEdges(),n);}return n;}if(3===arguments.length)if(gl(arguments[2],ac)&&arguments[0]instanceof ul&&arguments[1]instanceof Xh)for(var s=arguments[0],a=arguments[1],u=arguments[2],l=a.getEdge().getCoordinates(),c=0;ct._seg.p1.y&&t._seg.reverse();var h=Math.max(t._seg.p0.x,t._seg.p1.x);if(!(ht._seg.p1.y||Xl.computeOrientation(t._seg.p0,t._seg.p1,s)===Xl.RIGHT)){var p=a.getDepth(Sh.LEFT);t._seg.p0.equals(l[c])||(p=a.getDepth(Sh.RIGHT));var f=new qp(t._seg,p);u.add(f);}}else if(gl(arguments[2],ac)&&arguments[0]instanceof ul&&gl(arguments[1],ac))for(var g=arguments[0],d=arguments[1],y=arguments[2],v=d.iterator();v.hasNext();){var _=v.next();_.isForward()&&t.findStabbedSegments(g,_,y);}},kp.prototype.getDepth=function(t){var e=this.findStabbedSegments(t);return 0===e.size()?0:np.min(e)._leftDepth;},kp.prototype.interfaces_=function(){return[];},kp.prototype.getClass=function(){return kp;},Gp.DepthSegment.get=function(){return qp;},Object.defineProperties(kp,Gp);var qp=function qp(){this._upwardSeg=null,this._leftDepth=null;var t=arguments[0],e=arguments[1];this._upwardSeg=new vp(t),this._leftDepth=e;};qp.prototype.compareTo=function(t){var e=t;if(this._upwardSeg.minX()>=e._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=e._upwardSeg.minX())return-1;var n=this._upwardSeg.orientationIndex(e._upwardSeg);return 0!==n||0!==(n=-1*e._upwardSeg.orientationIndex(this._upwardSeg))?n:this._upwardSeg.compareTo(e._upwardSeg);},qp.prototype.compareX=function(t,e){var n=t.p0.compareTo(e.p0);return 0!==n?n:t.p1.compareTo(e.p1);},qp.prototype.toString=function(){return this._upwardSeg.toString();},qp.prototype.interfaces_=function(){return[il];},qp.prototype.getClass=function(){return qp;};var Bp=function Bp(t,e,n){this.p0=t||null,this.p1=e||null,this.p2=n||null;};Bp.prototype.area=function(){return Bp.area(this.p0,this.p1,this.p2);},Bp.prototype.signedArea=function(){return Bp.signedArea(this.p0,this.p1,this.p2);},Bp.prototype.interpolateZ=function(t){if(null===t)throw new el("Supplied point is null.");return Bp.interpolateZ(t,this.p0,this.p1,this.p2);},Bp.prototype.longestSideLength=function(){return Bp.longestSideLength(this.p0,this.p1,this.p2);},Bp.prototype.isAcute=function(){return Bp.isAcute(this.p0,this.p1,this.p2);},Bp.prototype.circumcentre=function(){return Bp.circumcentre(this.p0,this.p1,this.p2);},Bp.prototype.area3D=function(){return Bp.area3D(this.p0,this.p1,this.p2);},Bp.prototype.centroid=function(){return Bp.centroid(this.p0,this.p1,this.p2);},Bp.prototype.inCentre=function(){return Bp.inCentre(this.p0,this.p1,this.p2);},Bp.prototype.interfaces_=function(){return[];},Bp.prototype.getClass=function(){return Bp;},Bp.area=function(t,e,n){return Math.abs(((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2);},Bp.signedArea=function(t,e,n){return((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2;},Bp.det=function(t,e,n,r){return t*r-e*n;},Bp.interpolateZ=function(t,e,n,r){var i=e.x,o=e.y,s=n.x-i,a=r.x-i,u=n.y-o,l=r.y-o,c=s*l-a*u,h=t.x-i,p=t.y-o,f=(l*h-a*p)/c,g=(-u*h+s*p)/c;return e.z+f*(n.z-e.z)+g*(r.z-e.z);},Bp.longestSideLength=function(t,e,n){var r=t.distance(e),i=e.distance(n),o=n.distance(t),s=r;return i>s&&(s=i),o>s&&(s=o),s;},Bp.isAcute=function(t,e,n){return!!Rp.isAcute(t,e,n)&&!!Rp.isAcute(e,n,t)&&!!Rp.isAcute(n,t,e);},Bp.circumcentre=function(t,e,n){var r=n.x,i=n.y,o=t.x-r,s=t.y-i,a=e.x-r,u=e.y-i,l=2*Bp.det(o,s,a,u),c=Bp.det(s,o*o+s*s,u,a*a+u*u),h=Bp.det(o,o*o+s*s,a,a*a+u*u);return new ul(r-c/l,i+h/l);},Bp.perpendicularBisector=function(t,e){var n=e.x-t.x,r=e.y-t.y,i=new Ml(t.x+n/2,t.y+r/2,1),o=new Ml(t.x-r+n/2,t.y+n+r/2,1);return new Ml(i,o);},Bp.angleBisector=function(t,e,n){var r=e.distance(t),i=r/(r+e.distance(n)),o=n.x-t.x,s=n.y-t.y;return new ul(t.x+i*o,t.y+i*s);},Bp.area3D=function(t,e,n){var r=e.x-t.x,i=e.y-t.y,o=e.z-t.z,s=n.x-t.x,a=n.y-t.y,u=n.z-t.z,l=i*u-o*a,c=o*s-r*u,h=r*a-i*s,p=l*l+c*c+h*h,f=Math.sqrt(p)/2;return f;},Bp.centroid=function(t,e,n){var r=(t.x+e.x+n.x)/3,i=(t.y+e.y+n.y)/3;return new ul(r,i);},Bp.inCentre=function(t,e,n){var r=e.distance(n),i=t.distance(n),o=t.distance(e),s=r+i+o,a=(r*t.x+i*e.x+o*n.x)/s,u=(r*t.y+i*e.y+o*n.y)/s;return new ul(a,u);};var zp=function zp(){this._inputGeom=null,this._distance=null,this._curveBuilder=null,this._curveList=new lc();var t=arguments[0],e=arguments[1],n=arguments[2];this._inputGeom=t,this._distance=e,this._curveBuilder=n;};zp.prototype.addPoint=function(t){if(this._distance<=0)return null;var e=t.getCoordinates(),n=this._curveBuilder.getLineCurve(e,this._distance);this.addCurve(n,pl.EXTERIOR,pl.INTERIOR);},zp.prototype.addPolygon=function(t){var e=this,n=this._distance,r=Sh.LEFT;this._distance<0&&(n=-this._distance,r=Sh.RIGHT);var i=t.getExteriorRing(),o=pc.removeRepeatedPoints(i.getCoordinates());if(this._distance<0&&this.isErodedCompletely(i,this._distance))return null;if(this._distance<=0&&o.length<3)return null;this.addPolygonRing(o,n,r,pl.EXTERIOR,pl.INTERIOR);for(var s=0;s0&&e.isErodedCompletely(a,-e._distance)||e.addPolygonRing(u,n,Sh.opposite(r),pl.INTERIOR,pl.EXTERIOR);}},zp.prototype.isTriangleErodedCompletely=function(t,e){var n=new Bp(t[0],t[1],t[2]),r=n.inCentre();return Xl.distancePointLine(r,n.p0,n.p1)=nh.MINIMUM_VALID_SIZE&&Xl.isCCW(t)&&(o=i,s=r,n=Sh.opposite(n));var a=this._curveBuilder.getRingCurve(t,n,e);this.addCurve(a,o,s);},zp.prototype.add=function(t){if(t.isEmpty())return null;t instanceof th?this.addPolygon(t):t instanceof Zc?this.addLineString(t):t instanceof Qc?this.addPoint(t):(t instanceof eh||t instanceof Gc||t instanceof rh||t instanceof kc)&&this.addCollection(t);},zp.prototype.isErodedCompletely=function(t,e){var n=t.getCoordinates();if(n.length<4)return e<0;if(4===n.length)return this.isTriangleErodedCompletely(n,e);var r=t.getEnvelopeInternal(),i=Math.min(r.getHeight(),r.getWidth());return e<0&&2*Math.abs(e)>i;},zp.prototype.addCollection=function(t){for(var e=0;e=this._max)throw new uc();var t=this._parent.getGeometryN(this._index++);return t instanceof kc?(this._subcollectionIterator=new Up(t),this._subcollectionIterator.next()):t;},Up.prototype.remove=function(){throw new Error(this.getClass().getName());},Up.prototype.hasNext=function(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null;}return!(this._index>=this._max);},Up.prototype.interfaces_=function(){return[sc];},Up.prototype.getClass=function(){return Up;},Up.isAtomic=function(t){return!(t instanceof kc);};var Vp=function Vp(){this._geom=null;var t=arguments[0];this._geom=t;};Vp.prototype.locate=function(t){return Vp.locate(t,this._geom);},Vp.prototype.interfaces_=function(){return[jp];},Vp.prototype.getClass=function(){return Vp;},Vp.isPointInRing=function(t,e){return!!e.getEnvelopeInternal().intersects(t)&&Xl.isPointInRing(t,e.getCoordinates());},Vp.containsPointInPolygon=function(t,e){if(e.isEmpty())return!1;var n=e.getExteriorRing();if(!Vp.isPointInRing(t,n))return!1;for(var r=0;r=0;n--){var r=this._edgeList.get(n),i=r.getSym();null===e&&(e=i),null!==t&&i.setNext(t),t=r;}e.setNext(t);},e.prototype.computeDepths=function(){var t=this;if(1===arguments.length){var e=arguments[0],n=this.findIndex(e),r=e.getDepth(Sh.LEFT),i=e.getDepth(Sh.RIGHT),o=this.computeDepths(n+1,this._edgeList.size(),r),s=this.computeDepths(0,n,o);if(s!==i)throw new Oh("depth mismatch at "+e.getCoordinate());}else if(3===arguments.length){for(var a=arguments[0],u=arguments[1],l=arguments[2],c=l,h=a;h=0;o--){var s=e._resultAreaEdgeList.get(o),a=s.getSym();switch(null===n&&s.getEdgeRing()===t&&(n=s),i){case e._SCANNING_FOR_INCOMING:if(a.getEdgeRing()!==t)continue;r=a,i=e._LINKING_TO_OUTGOING;break;case e._LINKING_TO_OUTGOING:if(s.getEdgeRing()!==t)continue;r.setNextMin(s),i=e._SCANNING_FOR_INCOMING;}}i===this._LINKING_TO_OUTGOING&&(ql.isTrue(null!==n,"found null for first outgoing dirEdge"),ql.isTrue(n.getEdgeRing()===t,"unable to link last incoming dirEdge"),r.setNextMin(n));},e.prototype.getOutgoingDegree=function(){if(0===arguments.length){for(var t=0,e=this.iterator();e.hasNext();){var n=e.next();n.isInResult()&&t++;}return t;}if(1===arguments.length){for(var r=arguments[0],i=0,o=this.iterator();o.hasNext();){var s=o.next();s.getEdgeRing()===r&&i++;}return i;}},e.prototype.getLabel=function(){return this._label;},e.prototype.findCoveredLineEdges=function(){for(var t=pl.NONE,e=this.iterator();e.hasNext();){var n=e.next(),r=n.getSym();if(!n.isLineEdge()){if(n.isInResult()){t=pl.INTERIOR;break;}if(r.isInResult()){t=pl.EXTERIOR;break;}}}if(t===pl.NONE)return null;for(var i=t,o=this.iterator();o.hasNext();){var s=o.next(),a=s.getSym();s.isLineEdge()?s.getEdge().setCovered(i===pl.INTERIOR):(s.isInResult()&&(i=pl.EXTERIOR),a.isInResult()&&(i=pl.INTERIOR));}},e.prototype.computeLabelling=function(e){t.prototype.computeLabelling.call(this,e),this._label=new Dh(pl.NONE);for(var n=this.iterator();n.hasNext();)for(var r=n.next().getEdge().getLabel(),i=0;i<2;i++){var o=r.getLocation(i);o!==pl.INTERIOR&&o!==pl.BOUNDARY||this._label.setLocation(i,pl.INTERIOR);}},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e;}(Xp),Hp=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createNode=function(t){return new Bh(t,new Yp());},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e;}(Yh),Wp=function t(){this._pts=null,this._orientation=null;var e=arguments[0];this._pts=e,this._orientation=t.orientation(e);};Wp.prototype.compareTo=function(t){var e=t;return Wp.compareOriented(this._pts,this._orientation,e._pts,e._orientation);},Wp.prototype.interfaces_=function(){return[il];},Wp.prototype.getClass=function(){return Wp;},Wp.orientation=function(t){return 1===pc.increasingDirection(t);},Wp.compareOriented=function(t,e,n,r){for(var i=e?1:-1,o=r?1:-1,s=e?t.length:-1,a=r?n.length:-1,u=e?0:t.length-1,l=r?0:n.length-1;;){var c=t[u].compareTo(n[l]);if(0!==c)return c;var h=(u+=i)===s,p=(l+=o)===a;if(h&&!p)return-1;if(!h&&p)return 1;if(h&&p)return 0;}};var Jp=function Jp(){this._edges=new lc(),this._ocaMap=new Cc();};Jp.prototype.print=function(t){t.print("MULTILINESTRING ( ");for(var e=0;e0&&t.print(","),t.print("(");for(var r=n.getCoordinates(),i=0;i0&&t.print(","),t.print(r[i].x+" "+r[i].y);t.println(")");}t.print(") ");},Jp.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next());},Jp.prototype.findEdgeIndex=function(t){for(var e=0;e0||!e.coord.equals2D(r);i||n--;var o=new Array(n).fill(null),s=0;o[s++]=new ul(t.coord);for(var a=t.segmentIndex+1;a<=e.segmentIndex;a++)o[s++]=this.edge.pts[a];return i&&(o[s]=e.coord),new of(o,new Dh(this.edge._label));},$p.prototype.add=function(t,e,n){var r=new Qp(t,e,n),i=this._nodeMap.get(r);return null!==i?i:(this._nodeMap.put(r,r),r);},$p.prototype.isIntersection=function(t){for(var e=this.iterator();e.hasNext();){if(e.next().coord.equals(t))return!0;}return!1;},$p.prototype.interfaces_=function(){return[];},$p.prototype.getClass=function(){return $p;};var tf=function tf(){};tf.prototype.getChainStartIndices=function(t){var e=0,n=new lc();n.add(new _l(e));do{var r=this.findChainEnd(t,e);n.add(new _l(r)),e=r;}while(en?e:n;},ef.prototype.getMinX=function(t){var e=this.pts[this.startIndex[t]].x,n=this.pts[this.startIndex[t+1]].x;return en&&(i=1),t._depth[e][r]=i;}}},nf.prototype.getDelta=function(t){return this._depth[t][Sh.RIGHT]-this._depth[t][Sh.LEFT];},nf.prototype.getLocation=function(t,e){return this._depth[t][e]<=0?pl.EXTERIOR:pl.INTERIOR;},nf.prototype.toString=function(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2];},nf.prototype.add=function(){var t=this;if(1===arguments.length)for(var e=arguments[0],n=0;n<2;n++)for(var r=1;r<3;r++){var i=e.getLocation(n,r);i!==pl.EXTERIOR&&i!==pl.INTERIOR||(t.isNull(n,r)?t._depth[n][r]=nf.depthAtLocation(i):t._depth[n][r]+=nf.depthAtLocation(i));}else if(3===arguments.length){var o=arguments[0],s=arguments[1],a=arguments[2];a===pl.INTERIOR&&this._depth[o][s]++;}},nf.prototype.interfaces_=function(){return[];},nf.prototype.getClass=function(){return nf;},nf.depthAtLocation=function(t){return t===pl.EXTERIOR?0:t===pl.INTERIOR?1:nf.NULL_VALUE;},rf.NULL_VALUE.get=function(){return-1;},Object.defineProperties(nf,rf);var of=function(t){function e(){if(t.call(this),this.pts=null,this._env=null,this.eiList=new $p(this),this._name=null,this._mce=null,this._isIsolated=!0,this._depth=new nf(),this._depthDelta=0,1===arguments.length){var n=arguments[0];e.call(this,n,null);}else if(2===arguments.length){var r=arguments[0],i=arguments[1];this.pts=r,this._label=i;}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDepth=function(){return this._depth;},e.prototype.getCollapsedEdge=function(){var t=new Array(2).fill(null);return t[0]=this.pts[0],t[1]=this.pts[1],new e(t,Dh.toLineLabel(this._label));},e.prototype.isIsolated=function(){return this._isIsolated;},e.prototype.getCoordinates=function(){return this.pts;},e.prototype.setIsolated=function(t){this._isIsolated=t;},e.prototype.setName=function(t){this._name=t;},e.prototype.equals=function(t){if(!(t instanceof e))return!1;var n=t;if(this.pts.length!==n.pts.length)return!1;for(var r=!0,i=!0,o=this.pts.length,s=0;s0?this.pts[0]:null;if(1===arguments.length){var t=arguments[0];return this.pts[t];}},e.prototype.print=function(t){t.print("edge "+this._name+": "),t.print("LINESTRING (");for(var e=0;e0&&t.print(","),t.print(this.pts[e].x+" "+this.pts[e].y);t.print(") "+this._label+" "+this._depthDelta);},e.prototype.computeIM=function(t){e.updateIM(this._label,t);},e.prototype.isCollapsed=function(){return!!this._label.isArea()&&3===this.pts.length&&!!this.pts[0].equals(this.pts[2]);},e.prototype.isClosed=function(){return this.pts[0].equals(this.pts[this.pts.length-1]);},e.prototype.getMaximumSegmentIndex=function(){return this.pts.length-1;},e.prototype.getDepthDelta=function(){return this._depthDelta;},e.prototype.getNumPoints=function(){return this.pts.length;},e.prototype.printReverse=function(t){t.print("edge "+this._name+": ");for(var e=this.pts.length-1;e>=0;e--)t.print(this.pts[e]+" ");t.println("");},e.prototype.getMonotoneChainEdge=function(){return null===this._mce&&(this._mce=new ef(this)),this._mce;},e.prototype.getEnvelope=function(){if(null===this._env){this._env=new Ll();for(var t=0;t0&&t.append(","),t.append(this.pts[e].x+" "+this.pts[e].y);return t.append(") "+this._label+" "+this._depthDelta),t.toString();},e.prototype.isPointwiseEqual=function(t){if(this.pts.length!==t.pts.length)return!1;for(var e=0;er||this._maxyo;if(s)return!1;var a=this.intersectsToleranceSquare(t,e);return ql.isTrue(!(s&&a),"Found bad envelope test"),a;},cf.prototype.initCorners=function(t){var e=.5;this._minx=t.x-e,this._maxx=t.x+e,this._miny=t.y-e,this._maxy=t.y+e,this._corner[0]=new ul(this._maxx,this._maxy),this._corner[1]=new ul(this._minx,this._maxy),this._corner[2]=new ul(this._minx,this._miny),this._corner[3]=new ul(this._maxx,this._miny);},cf.prototype.intersects=function(t,e){return 1===this._scaleFactor?this.intersectsScaled(t,e):(this.copyScaled(t,this._p0Scaled),this.copyScaled(e,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled));},cf.prototype.scale=function(t){return Math.round(t*this._scaleFactor);},cf.prototype.getCoordinate=function(){return this._originalPt;},cf.prototype.copyScaled=function(t,e){e.x=this.scale(t.x),e.y=this.scale(t.y);},cf.prototype.getSafeEnvelope=function(){if(null===this._safeEnv){var t=cf.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new Ll(this._originalPt.x-t,this._originalPt.x+t,this._originalPt.y-t,this._originalPt.y+t);}return this._safeEnv;},cf.prototype.intersectsPixelClosure=function(t,e){return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),!!this._li.hasIntersection())));},cf.prototype.intersectsToleranceSquare=function(t,e){var n=!1,r=!1;return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!this._li.isProper()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),!!this._li.isProper()||(this._li.hasIntersection()&&(n=!0),this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),!!this._li.isProper()||(this._li.hasIntersection()&&(r=!0),this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),!!this._li.isProper()||!(!n||!r)||!!t.equals(this._pt)||!!e.equals(this._pt))));},cf.prototype.addSnappedNode=function(t,e){var n=t.getCoordinate(e),r=t.getCoordinate(e+1);return!!this.intersects(n,r)&&(t.addIntersection(this.getCoordinate(),e),!0);},cf.prototype.interfaces_=function(){return[];},cf.prototype.getClass=function(){return cf;},hf.SAFE_ENV_EXPANSION_FACTOR.get=function(){return .75;},Object.defineProperties(cf,hf);var pf=function pf(){this.tempEnv1=new Ll(),this.selectedSegment=new vp();};pf.prototype.select=function(){if(1===arguments.length);else if(2===arguments.length){var t=arguments[0],e=arguments[1];t.getLineSegment(e,this.selectedSegment),this.select(this.selectedSegment);}},pf.prototype.interfaces_=function(){return[];},pf.prototype.getClass=function(){return pf;};var ff=function ff(){this._index=null;var t=arguments[0];this._index=t;},gf={HotPixelSnapAction:{configurable:!0}};ff.prototype.snap=function(){if(1===arguments.length){var t=arguments[0];return this.snap(t,null,-1);}if(3===arguments.length){var e=arguments[0],n=arguments[1],r=arguments[2],i=e.getSafeEnvelope(),o=new df(e,n,r);return this._index.query(i,{interfaces_:function interfaces_(){return[Qh];},visitItem:function visitItem(t){t.select(i,o);}}),o.isNodeAdded();}},ff.prototype.interfaces_=function(){return[];},ff.prototype.getClass=function(){return ff;},gf.HotPixelSnapAction.get=function(){return df;},Object.defineProperties(ff,gf);var df=function(t){function e(){t.call(this),this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;var e=arguments[0],n=arguments[1],r=arguments[2];this._hotPixel=e,this._parentEdge=n,this._hotPixelVertexIndex=r;}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isNodeAdded=function(){return this._isNodeAdded;},e.prototype.select=function(){if(2!==arguments.length)return t.prototype.select.apply(this,arguments);var e=arguments[0],n=arguments[1],r=e.getContext();if(null!==this._parentEdge&&r===this._parentEdge&&n===this._hotPixelVertexIndex)return null;this._isNodeAdded=this._hotPixel.addSnappedNode(r,n);},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e;}(pf),yf=function yf(){this._li=null,this._interiorIntersections=null;var t=arguments[0];this._li=t,this._interiorIntersections=new lc();};yf.prototype.processIntersections=function(t,e,n,r){if(t===n&&e===r)return null;var i=t.getCoordinates()[e],o=t.getCoordinates()[e+1],s=n.getCoordinates()[r],a=n.getCoordinates()[r+1];if(this._li.computeIntersection(i,o,s,a),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var u=0;u=0;e--){try{t.bufferReducedPrecision(e);}catch(e){if(!(e instanceof Oh))throw e;t._saveException=e;}if(null!==t._resultGeometry)return null;}throw this._saveException;}if(1===arguments.length){var n=arguments[0],r=_f.precisionScaleFactor(this._argGeom,this._distance,n),i=new gh(r);this.bufferFixedPrecision(i);}},_f.prototype.computeGeometry=function(){if(this.bufferOriginalPrecision(),null!==this._resultGeometry)return null;var t=this._argGeom.getFactory().getPrecisionModel();t.getType()===gh.FIXED?this.bufferFixedPrecision(t):this.bufferReducedPrecision();},_f.prototype.setQuadrantSegments=function(t){this._bufParams.setQuadrantSegments(t);},_f.prototype.bufferOriginalPrecision=function(){try{var t=new sf(this._bufParams);this._resultGeometry=t.buffer(this._argGeom,this._distance);}catch(t){if(!(t instanceof kl))throw t;this._saveException=t;}},_f.prototype.getResultGeometry=function(t){return this._distance=t,this.computeGeometry(),this._resultGeometry;},_f.prototype.setEndCapStyle=function(t){this._bufParams.setEndCapStyle(t);},_f.prototype.interfaces_=function(){return[];},_f.prototype.getClass=function(){return _f;},_f.bufferOp=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1],n=new _f(t),r=n.getResultGeometry(e);return r;}if(3===arguments.length){if(Number.isInteger(arguments[2])&&arguments[0]instanceof Wl&&"number"==typeof arguments[1]){var i=arguments[0],o=arguments[1],s=arguments[2],a=new _f(i);a.setQuadrantSegments(s);var u=a.getResultGeometry(o);return u;}if(arguments[2]instanceof Sp&&arguments[0]instanceof Wl&&"number"==typeof arguments[1]){var l=arguments[0],c=arguments[1],h=arguments[2],p=new _f(l,h),f=p.getResultGeometry(c);return f;}}else if(4===arguments.length){var g=arguments[0],d=arguments[1],y=arguments[2],v=arguments[3],_=new _f(g);_.setQuadrantSegments(y),_.setEndCapStyle(v);var m=_.getResultGeometry(d);return m;}},_f.precisionScaleFactor=function(t,e,n){var r=t.getEnvelopeInternal(),i=dl.max(Math.abs(r.getMaxX()),Math.abs(r.getMaxY()),Math.abs(r.getMinX()),Math.abs(r.getMinY()))+2*(e>0?e:0),o=n-Math.trunc(Math.log(i)/Math.log(10)+1);return Math.pow(10,o);},mf.CAP_ROUND.get=function(){return Sp.CAP_ROUND;},mf.CAP_BUTT.get=function(){return Sp.CAP_FLAT;},mf.CAP_FLAT.get=function(){return Sp.CAP_FLAT;},mf.CAP_SQUARE.get=function(){return Sp.CAP_SQUARE;},mf.MAX_PRECISION_DIGITS.get=function(){return 12;},Object.defineProperties(_f,mf);var xf=function xf(){this._pt=[new ul(),new ul()],this._distance=nl.NaN,this._isNull=!0;};xf.prototype.getCoordinates=function(){return this._pt;},xf.prototype.getCoordinate=function(t){return this._pt[t];},xf.prototype.setMinimum=function(){if(1===arguments.length){var t=arguments[0];this.setMinimum(t._pt[0],t._pt[1]);}else if(2===arguments.length){var e=arguments[0],n=arguments[1];if(this._isNull)return this.initialize(e,n),null;var r=e.distance(n);rthis._distance&&this.initialize(e,n,r);}},xf.prototype.interfaces_=function(){return[];},xf.prototype.getClass=function(){return xf;};var Ef=function Ef(){};Ef.prototype.interfaces_=function(){return[];},Ef.prototype.getClass=function(){return Ef;},Ef.computeDistance=function(){if(arguments[2]instanceof xf&&arguments[0]instanceof Zc&&arguments[1]instanceof ul)for(var t=arguments[0],e=arguments[1],n=arguments[2],r=t.getCoordinates(),i=new vp(),o=0;o0||this._isIn?pl.INTERIOR:pl.EXTERIOR);},Pf.prototype.interfaces_=function(){return[];},Pf.prototype.getClass=function(){return Pf;};var Mf=function t(){if(this._component=null,this._segIndex=null,this._pt=null,2===arguments.length){var e=arguments[0],n=arguments[1];t.call(this,e,t.INSIDE_AREA,n);}else if(3===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2];this._component=r,this._segIndex=i,this._pt=o;}},Lf={INSIDE_AREA:{configurable:!0}};Mf.prototype.isInsideArea=function(){return this._segIndex===Mf.INSIDE_AREA;},Mf.prototype.getCoordinate=function(){return this._pt;},Mf.prototype.getGeometryComponent=function(){return this._component;},Mf.prototype.getSegmentIndex=function(){return this._segIndex;},Mf.prototype.interfaces_=function(){return[];},Mf.prototype.getClass=function(){return Mf;},Lf.INSIDE_AREA.get=function(){return-1;},Object.defineProperties(Mf,Lf);var Of=function Of(t){this._pts=t||null;};Of.prototype.filter=function(t){t instanceof Qc&&this._pts.add(t);},Of.prototype.interfaces_=function(){return[Dc];},Of.prototype.getClass=function(){return Of;},Of.getPoints=function(){if(1===arguments.length){var t=arguments[0];return t instanceof Qc?np.singletonList(t):Of.getPoints(t,new lc());}if(2===arguments.length){var e=arguments[0],n=arguments[1];return e instanceof Qc?n.add(e):e instanceof kc&&e.apply(new Of(n)),n;}};var Rf=function Rf(){this._locations=null;var t=arguments[0];this._locations=t;};Rf.prototype.filter=function(t){(t instanceof Qc||t instanceof Zc||t instanceof th)&&this._locations.add(new Mf(t,0,t.getCoordinate()));},Rf.prototype.interfaces_=function(){return[Dc];},Rf.prototype.getClass=function(){return Rf;},Rf.getLocations=function(t){var e=new lc();return t.apply(new Rf(e)),e;};var Tf=function Tf(){if(this._geom=null,this._terminateDistance=0,this._ptLocator=new Pf(),this._minDistanceLocation=null,this._minDistance=nl.MAX_VALUE,2===arguments.length){var t=arguments[0],e=arguments[1];this._geom=[t,e],this._terminateDistance=0;}else if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2];this._geom=new Array(2).fill(null),this._geom[0]=n,this._geom[1]=r,this._terminateDistance=i;}};Tf.prototype.computeContainmentDistance=function(){var t=this;if(0===arguments.length){var e=new Array(2).fill(null);if(this.computeContainmentDistance(0,e),this._minDistance<=this._terminateDistance)return null;this.computeContainmentDistance(1,e);}else if(2===arguments.length){var n=arguments[0],r=arguments[1],i=1-n,o=Sf.getPolygons(this._geom[n]);if(o.size()>0){var s=Rf.getLocations(this._geom[i]);if(this.computeContainmentDistance(s,o,r),this._minDistance<=this._terminateDistance)return this._minDistanceLocation[i]=r[0],this._minDistanceLocation[n]=r[1],null;}}else if(3===arguments.length)if(arguments[2]instanceof Array&&gl(arguments[0],ac)&&gl(arguments[1],ac)){for(var a=arguments[0],u=arguments[1],l=arguments[2],c=0;cthis._minDistance)return null;for(var i=e.getCoordinates(),o=n.getCoordinate(),s=0;sthis._minDistance)return null;for(var f=c.getCoordinates(),g=h.getCoordinates(),d=0;dthis._distance&&this.initialize(e,n,r);}},Af.prototype.interfaces_=function(){return[];},Af.prototype.getClass=function(){return Af;};var Df=function Df(){};Df.prototype.interfaces_=function(){return[];},Df.prototype.getClass=function(){return Df;},Df.computeDistance=function(){if(arguments[2]instanceof Af&&arguments[0]instanceof Zc&&arguments[1]instanceof ul)for(var t=arguments[0],e=arguments[1],n=arguments[2],r=new vp(),i=t.getCoordinates(),o=0;o1||t<=0)throw new el("Fraction is not in range (0.0 - 1.0]");this._densifyFrac=t;},Ff.prototype.compute=function(t,e){this.computeOrientedDistance(t,e,this._ptDist),this.computeOrientedDistance(e,t,this._ptDist);},Ff.prototype.distance=function(){return this.compute(this._g0,this._g1),this._ptDist.getDistance();},Ff.prototype.computeOrientedDistance=function(t,e,n){var r=new Gf(e);if(t.apply(r),n.setMaximum(r.getMaxPointDistance()),this._densifyFrac>0){var i=new qf(e,this._densifyFrac);t.apply(i),n.setMaximum(i.getMaxPointDistance());}},Ff.prototype.orientedDistance=function(){return this.computeOrientedDistance(this._g0,this._g1,this._ptDist),this._ptDist.getDistance();},Ff.prototype.interfaces_=function(){return[];},Ff.prototype.getClass=function(){return Ff;},Ff.distance=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1],n=new Ff(t,e);return n.distance();}if(3===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2],s=new Ff(r,i);return s.setDensifyFraction(o),s.distance();}},kf.MaxPointDistanceFilter.get=function(){return Gf;},kf.MaxDensifiedByFractionDistanceFilter.get=function(){return qf;},Object.defineProperties(Ff,kf);var Gf=function Gf(){this._maxPtDist=new Af(),this._minPtDist=new Af(),this._euclideanDist=new Df(),this._geom=null;var t=arguments[0];this._geom=t;};Gf.prototype.filter=function(t){this._minPtDist.initialize(),Df.computeDistance(this._geom,t,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist);},Gf.prototype.getMaxPointDistance=function(){return this._maxPtDist;},Gf.prototype.interfaces_=function(){return[Kl];},Gf.prototype.getClass=function(){return Gf;};var qf=function qf(){this._maxPtDist=new Af(),this._minPtDist=new Af(),this._geom=null,this._numSubSegs=0;var t=arguments[0],e=arguments[1];this._geom=t,this._numSubSegs=Math.trunc(Math.round(1/e));};qf.prototype.filter=function(t,e){var n=this;if(0===e)return null;for(var r=t.getCoordinate(e-1),i=t.getCoordinate(e),o=(i.x-r.x)/this._numSubSegs,s=(i.y-r.y)/this._numSubSegs,a=0;an){this._isValid=!1;var i=r.getCoordinates();this._errorLocation=i[1],this._errorIndicator=t.getFactory().createLineString(i),this._errMsg="Distance between buffer curve and input is too large ("+this._maxDistanceFound+" at "+Fl.toLineString(i[0],i[1])+")";}},Bf.prototype.isValid=function(){var t=Math.abs(this._bufDistance),e=Bf.MAX_DISTANCE_DIFF_FRAC*t;return this._minValidDistance=t-e,this._maxValidDistance=t+e,!(!this._input.isEmpty()&&!this._result.isEmpty())||(this._bufDistance>0?this.checkPositiveValid():this.checkNegativeValid(),Bf.VERBOSE&&Pl.out.println("Min Dist= "+this._minDistanceFound+" err= "+(1-this._minDistanceFound/this._bufDistance)+" Max Dist= "+this._maxDistanceFound+" err= "+(this._maxDistanceFound/this._bufDistance-1)),this._isValid);},Bf.prototype.checkNegativeValid=function(){if(!(this._input instanceof th||this._input instanceof rh||this._input instanceof kc))return null;var t=this.getPolygonLines(this._input);if(this.checkMinimumDistance(t,this._result,this._minValidDistance),!this._isValid)return null;this.checkMaximumDistance(t,this._result,this._maxValidDistance);},Bf.prototype.getErrorIndicator=function(){return this._errorIndicator;},Bf.prototype.checkMinimumDistance=function(t,e,n){var r=new Tf(t,e,n);if(this._minDistanceFound=r.distance(),this._minDistanceFound0&&t>e&&(this._isValid=!1,this._errorMsg="Area of positive buffer is smaller than input",this._errorIndicator=this._result),this._distance<0&&t=2||this._distance>0?null:(this._result.isEmpty()||(this._isValid=!1,this._errorMsg="Result is non-empty",this._errorIndicator=this._result),void this.report("ExpectedEmpty"));},jf.prototype.report=function(t){if(!jf.VERBOSE)return null;Pl.out.println("Check "+t+": "+(this._isValid?"passed":"FAILED"));},jf.prototype.getErrorMessage=function(){return this._errorMsg;},jf.prototype.interfaces_=function(){return[];},jf.prototype.getClass=function(){return jf;},jf.isValidMsg=function(t,e,n){var r=new jf(t,e,n);return r.isValid()?null:r.getErrorMessage();},jf.isValid=function(t,e,n){return!!new jf(t,e,n).isValid();},Uf.VERBOSE.get=function(){return!1;},Uf.MAX_ENV_DIFF_FRAC.get=function(){return .012;},Object.defineProperties(jf,Uf);var Vf=function Vf(){this._pts=null,this._data=null;var t=arguments[0],e=arguments[1];this._pts=t,this._data=e;};Vf.prototype.getCoordinates=function(){return this._pts;},Vf.prototype.size=function(){return this._pts.length;},Vf.prototype.getCoordinate=function(t){return this._pts[t];},Vf.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1]);},Vf.prototype.getSegmentOctant=function(t){return t===this._pts.length-1?-1:fp.octant(this.getCoordinate(t),this.getCoordinate(t+1));},Vf.prototype.setData=function(t){this._data=t;},Vf.prototype.getData=function(){return this._data;},Vf.prototype.toString=function(){return Fl.toLineString(new lh(this._pts));},Vf.prototype.interfaces_=function(){return[gp];},Vf.prototype.getClass=function(){return Vf;};var Xf=function Xf(){this._findAllIntersections=!1,this._isCheckEndSegmentsOnly=!1,this._li=null,this._interiorIntersection=null,this._intSegments=null,this._intersections=new lc(),this._intersectionCount=0,this._keepIntersections=!0;var t=arguments[0];this._li=t,this._interiorIntersection=null;};Xf.prototype.getInteriorIntersection=function(){return this._interiorIntersection;},Xf.prototype.setCheckEndSegmentsOnly=function(t){this._isCheckEndSegmentsOnly=t;},Xf.prototype.getIntersectionSegments=function(){return this._intSegments;},Xf.prototype.count=function(){return this._intersectionCount;},Xf.prototype.getIntersections=function(){return this._intersections;},Xf.prototype.setFindAllIntersections=function(t){this._findAllIntersections=t;},Xf.prototype.setKeepIntersections=function(t){this._keepIntersections=t;},Xf.prototype.processIntersections=function(t,e,n,r){if(!this._findAllIntersections&&this.hasIntersection())return null;if(t===n&&e===r)return null;if(this._isCheckEndSegmentsOnly&&!(this.isEndSegment(t,e)||this.isEndSegment(n,r)))return null;var i=t.getCoordinates()[e],o=t.getCoordinates()[e+1],s=n.getCoordinates()[r],a=n.getCoordinates()[r+1];this._li.computeIntersection(i,o,s,a),this._li.hasIntersection()&&this._li.isInteriorIntersection()&&(this._intSegments=new Array(4).fill(null),this._intSegments[0]=i,this._intSegments[1]=o,this._intSegments[2]=s,this._intSegments[3]=a,this._interiorIntersection=this._li.getIntersection(0),this._keepIntersections&&this._intersections.add(this._interiorIntersection),this._intersectionCount++);},Xf.prototype.isEndSegment=function(t,e){return 0===e||e>=t.size()-2;},Xf.prototype.hasIntersection=function(){return null!==this._interiorIntersection;},Xf.prototype.isDone=function(){return!this._findAllIntersections&&null!==this._interiorIntersection;},Xf.prototype.interfaces_=function(){return[Zp];},Xf.prototype.getClass=function(){return Xf;},Xf.createAllIntersectionsFinder=function(t){var e=new Xf(t);return e.setFindAllIntersections(!0),e;},Xf.createAnyIntersectionFinder=function(t){return new Xf(t);},Xf.createIntersectionCounter=function(t){var e=new Xf(t);return e.setFindAllIntersections(!0),e.setKeepIntersections(!1),e;};var Yf=function Yf(){this._li=new jl(),this._segStrings=null,this._findAllIntersections=!1,this._segInt=null,this._isValid=!0;var t=arguments[0];this._segStrings=t;};Yf.prototype.execute=function(){if(null!==this._segInt)return null;this.checkInteriorIntersections();},Yf.prototype.getIntersections=function(){return this._segInt.getIntersections();},Yf.prototype.isValid=function(){return this.execute(),this._isValid;},Yf.prototype.setFindAllIntersections=function(t){this._findAllIntersections=t;},Yf.prototype.checkInteriorIntersections=function(){this._isValid=!0,this._segInt=new Xf(this._li),this._segInt.setFindAllIntersections(this._findAllIntersections);var t=new Ip();if(t.setSegmentIntersector(this._segInt),t.computeNodes(this._segStrings),this._segInt.hasIntersection())return this._isValid=!1,null;},Yf.prototype.checkValid=function(){if(this.execute(),!this._isValid)throw new Oh(this.getErrorMessage(),this._segInt.getInteriorIntersection());},Yf.prototype.getErrorMessage=function(){if(this._isValid)return"no intersections found";var t=this._segInt.getIntersectionSegments();return"found non-noded intersection between "+Fl.toLineString(t[0],t[1])+" and "+Fl.toLineString(t[2],t[3]);},Yf.prototype.interfaces_=function(){return[];},Yf.prototype.getClass=function(){return Yf;},Yf.computeIntersections=function(t){var e=new Yf(t);return e.setFindAllIntersections(!0),e.isValid(),e.getIntersections();};var Hf=function t(){this._nv=null;var e=arguments[0];this._nv=new Yf(t.toSegmentStrings(e));};Hf.prototype.checkValid=function(){this._nv.checkValid();},Hf.prototype.interfaces_=function(){return[];},Hf.prototype.getClass=function(){return Hf;},Hf.toSegmentStrings=function(t){for(var e=new lc(),n=t.iterator();n.hasNext();){var r=n.next();e.add(new Vf(r.getCoordinates(),r));}return e;},Hf.checkValid=function(t){new Hf(t).checkValid();};var Wf=function Wf(t){this._mapOp=t;};Wf.prototype.map=function(t){for(var e=new lc(),n=0;n0&&r<4&&!this._preserveType?this._factory.createLineString(n):this._factory.createLinearRing(n);},Kf.prototype.interfaces_=function(){return[];},Kf.prototype.getClass=function(){return Kf;};var Qf=function t(){if(this._snapTolerance=0,this._srcPts=null,this._seg=new vp(),this._allowSnappingToSourceVertices=!1,this._isClosed=!1,arguments[0]instanceof Zc&&"number"==typeof arguments[1]){var e=arguments[0],n=arguments[1];t.call(this,e.getCoordinates(),n);}else if(arguments[0]instanceof Array&&"number"==typeof arguments[1]){var r=arguments[0],i=arguments[1];this._srcPts=r,this._isClosed=t.isClosed(r),this._snapTolerance=i;}};Qf.prototype.snapVertices=function(t,e){for(var n=this._isClosed?t.size()-1:t.size(),r=0;r=0&&t.add(o+1,new ul(i),!1);}},Qf.prototype.findSegmentIndexToSnap=function(t,e){for(var n=this,r=nl.MAX_VALUE,i=-1,o=0;oe&&(e=r);}return e;}if(2===arguments.length){var i=arguments[0],o=arguments[1];return Math.min($f.computeOverlaySnapTolerance(i),$f.computeOverlaySnapTolerance(o));}},$f.computeSizeBasedSnapTolerance=function(t){var e=t.getEnvelopeInternal();return Math.min(e.getHeight(),e.getWidth())*$f.SNAP_PRECISION_FACTOR;},$f.snapToSelf=function(t,e,n){return new $f(t).snapToSelf(e,n);},tg.SNAP_PRECISION_FACTOR.get=function(){return 1e-9;},Object.defineProperties($f,tg);var eg=function(t){function e(e,n,r){t.call(this),this._snapTolerance=e||null,this._snapPts=n||null,this._isSelfSnap=void 0!==r&&r;}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.snapLine=function(t,e){var n=new Qf(t,this._snapTolerance);return n.setAllowSnappingToSourceVertices(this._isSelfSnap),n.snapTo(e);},e.prototype.transformCoordinates=function(t,e){var n=t.toCoordinateArray(),r=this.snapLine(n,this._snapPts);return this._factory.getCoordinateSequenceFactory().create(r);},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e;}(Kf),ng=function ng(){this._isFirst=!0,this._commonMantissaBitsCount=53,this._commonBits=0,this._commonSignExp=null;};ng.prototype.getCommon=function(){return nl.longBitsToDouble(this._commonBits);},ng.prototype.add=function(t){var e=nl.doubleToLongBits(t);return this._isFirst?(this._commonBits=e,this._commonSignExp=ng.signExpBits(this._commonBits),this._isFirst=!1,null):ng.signExpBits(e)!==this._commonSignExp?(this._commonBits=0,null):(this._commonMantissaBitsCount=ng.numCommonMostSigMantissaBits(this._commonBits,e),void(this._commonBits=ng.zeroLowerBits(this._commonBits,64-(12+this._commonMantissaBitsCount))));},ng.prototype.toString=function(){if(1===arguments.length){var t=arguments[0],e=nl.longBitsToDouble(t),n=nl.toBinaryString(t),r="0000000000000000000000000000000000000000000000000000000000000000"+n,i=r.substring(r.length-64),o=i.substring(0,1)+" "+i.substring(1,12)+"(exp) "+i.substring(12)+" [ "+e+" ]";return o;}},ng.prototype.interfaces_=function(){return[];},ng.prototype.getClass=function(){return ng;},ng.getBit=function(t,e){return 0!=(t&1<>52;},ng.zeroLowerBits=function(t,e){return t&~((1<=0;r--){if(ng.getBit(t,r)!==ng.getBit(e,r))return n;n++;}return 52;};var rg=function rg(){this._commonCoord=null,this._ccFilter=new og();},ig={CommonCoordinateFilter:{configurable:!0},Translater:{configurable:!0}};rg.prototype.addCommonBits=function(t){var e=new sg(this._commonCoord);t.apply(e),t.geometryChanged();},rg.prototype.removeCommonBits=function(t){if(0===this._commonCoord.x&&0===this._commonCoord.y)return t;var e=new ul(this._commonCoord);e.x=-e.x,e.y=-e.y;var n=new sg(e);return t.apply(n),t.geometryChanged(),t;},rg.prototype.getCommonCoordinate=function(){return this._commonCoord;},rg.prototype.add=function(t){t.apply(this._ccFilter),this._commonCoord=this._ccFilter.getCommonCoordinate();},rg.prototype.interfaces_=function(){return[];},rg.prototype.getClass=function(){return rg;},ig.CommonCoordinateFilter.get=function(){return og;},ig.Translater.get=function(){return sg;},Object.defineProperties(rg,ig);var og=function og(){this._commonBitsX=new ng(),this._commonBitsY=new ng();};og.prototype.filter=function(t){this._commonBitsX.add(t.x),this._commonBitsY.add(t.y);},og.prototype.getCommonCoordinate=function(){return new ul(this._commonBitsX.getCommon(),this._commonBitsY.getCommon());},og.prototype.interfaces_=function(){return[Kl];},og.prototype.getClass=function(){return og;};var sg=function sg(){this.trans=null;var t=arguments[0];this.trans=t;};sg.prototype.filter=function(t,e){var n=t.getOrdinate(e,0)+this.trans.x,r=t.getOrdinate(e,1)+this.trans.y;t.setOrdinate(e,0,n),t.setOrdinate(e,1,r);},sg.prototype.isDone=function(){return!1;},sg.prototype.isGeometryChanged=function(){return!0;},sg.prototype.interfaces_=function(){return[Fc];},sg.prototype.getClass=function(){return sg;};var ag=function ag(t,e){this._geom=new Array(2).fill(null),this._snapTolerance=null,this._cbr=null,this._geom[0]=t,this._geom[1]=e,this.computeSnapTolerance();};ag.prototype.selfSnap=function(t){return new $f(t).snapTo(t,this._snapTolerance);},ag.prototype.removeCommonBits=function(t){this._cbr=new rg(),this._cbr.add(t[0]),this._cbr.add(t[1]);var e=new Array(2).fill(null);return e[0]=this._cbr.removeCommonBits(t[0].copy()),e[1]=this._cbr.removeCommonBits(t[1].copy()),e;},ag.prototype.prepareResult=function(t){return this._cbr.addCommonBits(t),t;},ag.prototype.getResultGeometry=function(t){var e=this.snap(this._geom),n=Mg.overlayOp(e[0],e[1],t);return this.prepareResult(n);},ag.prototype.checkValid=function(t){t.isValid()||Pl.out.println("Snapped geometry is invalid");},ag.prototype.computeSnapTolerance=function(){this._snapTolerance=$f.computeOverlaySnapTolerance(this._geom[0],this._geom[1]);},ag.prototype.snap=function(t){var e=this.removeCommonBits(t);return $f.snap(e[0],e[1],this._snapTolerance);},ag.prototype.interfaces_=function(){return[];},ag.prototype.getClass=function(){return ag;},ag.overlayOp=function(t,e,n){return new ag(t,e).getResultGeometry(n);},ag.union=function(t,e){return ag.overlayOp(t,e,Mg.UNION);},ag.intersection=function(t,e){return ag.overlayOp(t,e,Mg.INTERSECTION);},ag.symDifference=function(t,e){return ag.overlayOp(t,e,Mg.SYMDIFFERENCE);},ag.difference=function(t,e){return ag.overlayOp(t,e,Mg.DIFFERENCE);};var ug=function ug(t,e){this._geom=new Array(2).fill(null),this._geom[0]=t,this._geom[1]=e;};ug.prototype.getResultGeometry=function(t){var e=null,n=!1,r=null;try{e=Mg.overlayOp(this._geom[0],this._geom[1],t);n=!0;}catch(t){if(!(t instanceof kl))throw t;r=t;}if(!n)try{e=ag.overlayOp(this._geom[0],this._geom[1],t);}catch(t){throw t instanceof kl?r:t;}return e;},ug.prototype.interfaces_=function(){return[];},ug.prototype.getClass=function(){return ug;},ug.overlayOp=function(t,e,n){return new ug(t,e).getResultGeometry(n);},ug.union=function(t,e){return ug.overlayOp(t,e,Mg.UNION);},ug.intersection=function(t,e){return ug.overlayOp(t,e,Mg.INTERSECTION);},ug.symDifference=function(t,e){return ug.overlayOp(t,e,Mg.SYMDIFFERENCE);},ug.difference=function(t,e){return ug.overlayOp(t,e,Mg.DIFFERENCE);};var lg=function lg(){this.mce=null,this.chainIndex=null;var t=arguments[0],e=arguments[1];this.mce=t,this.chainIndex=e;};lg.prototype.computeIntersections=function(t,e){this.mce.computeIntersectsForChain(this.chainIndex,t.mce,t.chainIndex,e);},lg.prototype.interfaces_=function(){return[];},lg.prototype.getClass=function(){return lg;};var cg=function t(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,2===arguments.length){var e=arguments[0],n=arguments[1];this._eventType=t.DELETE,this._xValue=e,this._insertEvent=n;}else if(3===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2];this._eventType=t.INSERT,this._label=r,this._xValue=i,this._obj=o;}},hg={INSERT:{configurable:!0},DELETE:{configurable:!0}};cg.prototype.isDelete=function(){return this._eventType===cg.DELETE;},cg.prototype.setDeleteEventIndex=function(t){this._deleteEventIndex=t;},cg.prototype.getObject=function(){return this._obj;},cg.prototype.compareTo=function(t){var e=t;return this._xValuee._xValue?1:this._eventTypee._eventType?1:0;},cg.prototype.getInsertEvent=function(){return this._insertEvent;},cg.prototype.isInsert=function(){return this._eventType===cg.INSERT;},cg.prototype.isSameLabel=function(t){return null!==this._label&&this._label===t._label;},cg.prototype.getDeleteEventIndex=function(){return this._deleteEventIndex;},cg.prototype.interfaces_=function(){return[il];},cg.prototype.getClass=function(){return cg;},hg.INSERT.get=function(){return 1;},hg.DELETE.get=function(){return 2;},Object.defineProperties(cg,hg);var pg=function pg(){};pg.prototype.interfaces_=function(){return[];},pg.prototype.getClass=function(){return pg;};var fg=function fg(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._properIntersectionPoint=null,this._li=null,this._includeProper=null,this._recordIsolated=null,this._isSelfIntersection=null,this._numIntersections=0,this.numTests=0,this._bdyNodes=null,this._isDone=!1,this._isDoneWhenProperInt=!1;var t=arguments[0],e=arguments[1],n=arguments[2];this._li=t,this._includeProper=e,this._recordIsolated=n;};fg.prototype.isTrivialIntersection=function(t,e,n,r){if(t===n&&1===this._li.getIntersectionNum()){if(fg.isAdjacentSegments(e,r))return!0;if(t.isClosed()){var i=t.getNumPoints()-1;if(0===e&&r===i||0===r&&e===i)return!0;}}return!1;},fg.prototype.getProperIntersectionPoint=function(){return this._properIntersectionPoint;},fg.prototype.setIsDoneIfProperInt=function(t){this._isDoneWhenProperInt=t;},fg.prototype.hasProperInteriorIntersection=function(){return this._hasProperInterior;},fg.prototype.isBoundaryPointInternal=function(t,e){for(var n=e.iterator();n.hasNext();){var r=n.next().getCoordinate();if(t.isIntersection(r))return!0;}return!1;},fg.prototype.hasProperIntersection=function(){return this._hasProper;},fg.prototype.hasIntersection=function(){return this._hasIntersection;},fg.prototype.isDone=function(){return this._isDone;},fg.prototype.isBoundaryPoint=function(t,e){return null!==e&&(!!this.isBoundaryPointInternal(t,e[0])||!!this.isBoundaryPointInternal(t,e[1]));},fg.prototype.setBoundaryNodes=function(t,e){this._bdyNodes=new Array(2).fill(null),this._bdyNodes[0]=t,this._bdyNodes[1]=e;},fg.prototype.addIntersections=function(t,e,n,r){if(t===n&&e===r)return null;this.numTests++;var i=t.getCoordinates()[e],o=t.getCoordinates()[e+1],s=n.getCoordinates()[r],a=n.getCoordinates()[r+1];this._li.computeIntersection(i,o,s,a),this._li.hasIntersection()&&(this._recordIsolated&&(t.setIsolated(!1),n.setIsolated(!1)),this._numIntersections++,this.isTrivialIntersection(t,e,n,r)||(this._hasIntersection=!0,!this._includeProper&&this._li.isProper()||(t.addIntersections(this._li,e,0),n.addIntersections(this._li,r,1)),this._li.isProper()&&(this._properIntersectionPoint=this._li.getIntersection(0).copy(),this._hasProper=!0,this._isDoneWhenProperInt&&(this._isDone=!0),this.isBoundaryPoint(this._li,this._bdyNodes)||(this._hasProperInterior=!0))));},fg.prototype.interfaces_=function(){return[];},fg.prototype.getClass=function(){return fg;},fg.isAdjacentSegments=function(t,e){return 1===Math.abs(t-e);};var gg=function(t){function e(){t.call(this),this.events=new lc(),this.nOverlaps=null;}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.prepareEvents=function(){np.sort(this.events);for(var t=0;te||this._maxo?1:0;},vg.prototype.interfaces_=function(){return[sl];},vg.prototype.getClass=function(){return vg;};var _g=function(t){function e(){t.call(this),this._item=null;var e=arguments[0],n=arguments[1],r=arguments[2];this._min=e,this._max=n,this._item=r;}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.query=function(t,e,n){if(!this.intersects(t,e))return null;n.visitItem(this._item);},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e;}(dg),mg=function(t){function e(){t.call(this),this._node1=null,this._node2=null;var e=arguments[0],n=arguments[1];this._node1=e,this._node2=n,this.buildExtent(this._node1,this._node2);}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.buildExtent=function(t,e){this._min=Math.min(t._min,e._min),this._max=Math.max(t._max,e._max);},e.prototype.query=function(t,e,n){if(!this.intersects(t,e))return null;null!==this._node1&&this._node1.query(t,e,n),null!==this._node2&&this._node2.query(t,e,n);},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e;}(dg),xg=function xg(){this._leaves=new lc(),this._root=null,this._level=0;};xg.prototype.buildTree=function(){np.sort(this._leaves,new dg.NodeComparator());for(var t=this._leaves,e=null,n=new lc();;){if(this.buildLevel(t,n),1===n.size())return n.get(0);e=t,t=n,n=e;}},xg.prototype.insert=function(t,e,n){if(null!==this._root)throw new Error("Index cannot be added to once it has been queried");this._leaves.add(new _g(t,e,n));},xg.prototype.query=function(t,e,n){this.init(),this._root.query(t,e,n);},xg.prototype.buildRoot=function(){if(null!==this._root)return null;this._root=this.buildTree();},xg.prototype.printNode=function(t){Pl.out.println(Fl.toLineString(new ul(t._min,this._level),new ul(t._max,this._level)));},xg.prototype.init=function(){if(null!==this._root)return null;this.buildRoot();},xg.prototype.buildLevel=function(t,e){this._level++,e.clear();for(var n=0;n=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,e[0]),this.insertBoundaryPoint(this._argIndex,e[e.length-1]);},e.prototype.getInvalidPoint=function(){return this._invalidPoint;},e.prototype.getBoundaryPoints=function(){for(var t=this.getBoundaryNodes(),e=new Array(t.size()).fill(null),n=0,r=t.iterator();r.hasNext();){var i=r.next();e[n++]=i.getCoordinate().copy();}return e;},e.prototype.getBoundaryNodes=function(){return null===this._boundaryNodes&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes;},e.prototype.addSelfIntersectionNode=function(t,e,n){if(this.isBoundaryNode(t,e))return null;n===pl.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(t,e):this.insertPoint(t,e,n);},e.prototype.addPolygonRing=function(t,e,n){if(t.isEmpty())return null;var r=pc.removeRepeatedPoints(t.getCoordinates());if(r.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=r[0],null;var i=e,o=n;Xl.isCCW(r)&&(i=n,o=e);var s=new of(r,new Dh(this._argIndex,pl.BOUNDARY,i,o));this._lineEdgeMap.put(t,s),this.insertEdge(s),this.insertPoint(this._argIndex,r[0],pl.BOUNDARY);},e.prototype.insertPoint=function(t,e,n){var r=this._nodes.addNode(e),i=r.getLabel();null===i?r._label=new Dh(t,n):i.setLocation(t,n);},e.prototype.createEdgeSetIntersector=function(){return new gg();},e.prototype.addSelfIntersectionNodes=function(t){for(var e=this._edges.iterator();e.hasNext();)for(var n=e.next(),r=n.getLabel().getLocation(t),i=n.eiList.iterator();i.hasNext();){var o=i.next();this.addSelfIntersectionNode(t,o.coord,r);}},e.prototype.add=function(){if(1!==arguments.length)return t.prototype.add.apply(this,arguments);var e=arguments[0];if(e.isEmpty())return null;if(e instanceof rh&&(this._useBoundaryDeterminationRule=!1),e instanceof th)this.addPolygon(e);else if(e instanceof Zc)this.addLineString(e);else if(e instanceof Qc)this.addPoint(e);else if(e instanceof eh)this.addCollection(e);else if(e instanceof Gc)this.addCollection(e);else if(e instanceof rh)this.addCollection(e);else{if(!(e instanceof kc))throw new Error(e.getClass().getName());this.addCollection(e);}},e.prototype.addCollection=function(t){for(var e=0;e50?(null===this._areaPtLocator&&(this._areaPtLocator=new bg(this._parentGeom)),this._areaPtLocator.locate(t)):this._ptLocator.locate(t,this._parentGeom);},e.prototype.findEdge=function(){if(1===arguments.length){var e=arguments[0];return this._lineEdgeMap.get(e);}return t.prototype.findEdge.apply(this,arguments);},e.prototype.interfaces_=function(){return[];},e.prototype.getClass=function(){return e;},e.determineBoundary=function(t,e){return t.isInBoundary(e)?pl.BOUNDARY:pl.INTERIOR;},e;}(Hh),Cg=function Cg(){if(this._li=new jl(),this._resultPrecisionModel=null,this._arg=null,1===arguments.length){var t=arguments[0];this.setComputationPrecision(t.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new Sg(0,t);}else if(2===arguments.length){var e=arguments[0],n=arguments[1],r=Ql.OGC_SFS_BOUNDARY_RULE;e.getPrecisionModel().compareTo(n.getPrecisionModel())>=0?this.setComputationPrecision(e.getPrecisionModel()):this.setComputationPrecision(n.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new Sg(0,e,r),this._arg[1]=new Sg(1,n,r);}else if(3===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2];i.getPrecisionModel().compareTo(o.getPrecisionModel())>=0?this.setComputationPrecision(i.getPrecisionModel()):this.setComputationPrecision(o.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new Sg(0,i,s),this._arg[1]=new Sg(1,o,s);}};Cg.prototype.getArgGeometry=function(t){return this._arg[t].getGeometry();},Cg.prototype.setComputationPrecision=function(t){this._resultPrecisionModel=t,this._li.setPrecisionModel(this._resultPrecisionModel);},Cg.prototype.interfaces_=function(){return[];},Cg.prototype.getClass=function(){return Cg;};var Pg=function Pg(){};Pg.prototype.interfaces_=function(){return[];},Pg.prototype.getClass=function(){return Pg;},Pg.map=function(){if(arguments[0]instanceof Wl&&gl(arguments[1],Pg.MapOp)){for(var t=arguments[0],e=arguments[1],n=new lc(),r=0;r=t.size()?null:t.get(e);},Fg.union=function(t){return new Fg(t).union();},kg.STRTREE_NODE_CAPACITY.get=function(){return 4;},Object.defineProperties(Fg,kg);var Gg=function Gg(){};function qg(){return new Bg();}function Bg(){this.reset();}Gg.prototype.interfaces_=function(){return[];},Gg.prototype.getClass=function(){return Gg;},Gg.union=function(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return Mg.createEmptyResult(Mg.UNION,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy();}return t.checkNotGeometryCollection(t),t.checkNotGeometryCollection(e),ug.overlayOp(t,e,Mg.UNION);},Bg.prototype={constructor:Bg,reset:function reset(){this.s=this.t=0;},add:function add(t){jg(zg,t,this.t),jg(this,zg.s,this.s),this.s?this.t+=zg.t:this.s=zg.t;},valueOf:function valueOf(){return this.s;}};var zg=new Bg();function jg(t,e,n){var r=t.s=e+n,i=r-e,o=r-i;t.t=e-o+(n-i);}var Ug=1e-6,Vg=Math.PI,Xg=Vg/2,Yg=Vg/4,Hg=2*Vg,Wg=180/Vg,Jg=Vg/180,Zg=Math.abs,Kg=Math.atan,Qg=Math.atan2,$g=Math.cos,td=Math.sin,ed=Math.sqrt;function nd(t){return t>1?0:t<-1?Vg:Math.acos(t);}function rd(t){return t>1?Xg:t<-1?-Xg:Math.asin(t);}function id(){}function od(t,e){t&&ad.hasOwnProperty(t.type)&&ad[t.type](t,e);}var sd={Feature:function Feature(t,e){od(t.geometry,e);},FeatureCollection:function FeatureCollection(t,e){for(var n=t.features,r=-1,i=n.length;++rVg?t-Hg:t<-Vg?t+Hg:t,e];}function md(t){return function(e,n){return[(e+=t)>Vg?e-Hg:e<-Vg?e+Hg:e,n];};}function xd(t){var e=md(t);return e.invert=md(-t),e;}function Ed(t,e){var n=$g(t),r=td(t),i=$g(e),o=td(e);function s(t,e){var s=$g(e),a=$g(t)*s,u=td(t)*s,l=td(e),c=l*n+a*r;return[Qg(u*i-c*o,a*n-l*r),rd(c*i+u*o)];}return s.invert=function(t,e){var s=$g(e),a=$g(t)*s,u=td(t)*s,l=td(e),c=l*i-u*o;return[Qg(u*i+l*o,a*n+c*r),rd(c*n-a*r)];},s;}function bd(t,e){(e=hd(e))[0]-=t,yd(e);var n=nd(-e[1]);return((-e[2]<0?-n:n)+Hg-Ug)%Hg;}function wd(){var t,e=[];return{point:function point(e,n){t.push([e,n]);},lineStart:function lineStart(){e.push(t=[]);},lineEnd:id,rejoin:function rejoin(){e.length>1&&e.push(e.pop().concat(e.shift()));},result:function result(){var n=e;return e=[],t=null,n;}};}function Id(t,e){return Zg(t[0]-e[0])=0;--o)i.point((c=l[o])[0],c[1]);else r(p.x,p.p.x,-1,i);p=p.p;}l=(p=p.o).z,f=!f;}while(!p.v);i.lineEnd();}}}function Cd(t){if(e=t.length){for(var e,n,r=0,i=t[0];++re?1:t>=e?0:NaN;}_d.invert=_d;var Md,Ld;1===(Md=Pd).length&&(Ld=Md,Md=function Md(t,e){return Pd(Ld(t),e);});function Od(t){for(var e,n,r,i=t.length,o=-1,s=0;++o=0;)for(e=(r=t[i]).length;--e>=0;)n[--s]=r[e];return n;}var Rd=1e9,Td=-Rd;function Ad(t,e,n,r){function i(i,o){return t<=i&&i<=n&&e<=o&&o<=r;}function o(i,o,a,l){var c=0,h=0;if(null==i||(c=s(i,a))!==(h=s(o,a))||u(i,o)<0^a>0)do{l.point(0===c||3===c?t:n,c>1?r:e);}while((c=(c+a+4)%4)!==h);else l.point(o[0],o[1]);}function s(r,i){return Zg(r[0]-t)0?0:3:Zg(r[0]-n)0?2:1:Zg(r[1]-e)0?1:0:i>0?3:2;}function a(t,e){return u(t.x,e.x);}function u(t,e){var n=s(t,1),r=s(e,1);return n!==r?n-r:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0];}return function(s){var u,l,c,h,p,f,g,d,y,v,_,m=s,x=wd(),E={point:b,lineStart:function lineStart(){E.point=w,l&&l.push(c=[]);v=!0,y=!1,g=d=NaN;},lineEnd:function lineEnd(){u&&(w(h,p),f&&y&&x.rejoin(),u.push(x.result()));E.point=b,y&&m.lineEnd();},polygonStart:function polygonStart(){m=x,u=[],l=[],_=!0;},polygonEnd:function polygonEnd(){var e=function(){for(var e=0,n=0,i=l.length;nr&&(p-o)*(r-s)>(f-s)*(t-o)&&++e:f<=r&&(p-o)*(r-s)<(f-s)*(t-o)&&--e;return e;}(),n=_&&e,i=(u=Od(u)).length;(n||i)&&(s.polygonStart(),n&&(s.lineStart(),o(null,null,1,s),s.lineEnd()),i&&Sd(u,a,e,o,s),s.polygonEnd());m=s,u=l=c=null;}};function b(t,e){i(t,e)&&m.point(t,e);}function w(o,s){var a=i(o,s);if(l&&c.push([o,s]),v)h=o,p=s,f=a,v=!1,a&&(m.lineStart(),m.point(o,s));else if(a&&y)m.point(o,s);else{var u=[g=Math.max(Td,Math.min(Rd,g)),d=Math.max(Td,Math.min(Rd,d))],x=[o=Math.max(Td,Math.min(Rd,o)),s=Math.max(Td,Math.min(Rd,s))];!function(t,e,n,r,i,o){var s,a=t[0],u=t[1],l=0,c=1,h=e[0]-a,p=e[1]-u;if(s=n-a,h||!(s>0)){if(s/=h,h<0){if(s0){if(s>c)return;s>l&&(l=s);}if(s=i-a,h||!(s<0)){if(s/=h,h<0){if(s>c)return;s>l&&(l=s);}else if(h>0){if(s0)){if(s/=p,p<0){if(s0){if(s>c)return;s>l&&(l=s);}if(s=o-u,p||!(s<0)){if(s/=p,p<0){if(s>c)return;s>l&&(l=s);}else if(p>0){if(s0&&(t[0]=a+l*h,t[1]=u+l*p),c<1&&(e[0]=a+c*h,e[1]=u+c*p),!0;}}}}}(u,x,t,e,n,r)?a&&(m.lineStart(),m.point(o,s),_=!1):(y||(m.lineStart(),m.point(u[0],u[1])),m.point(x[0],x[1]),a||m.lineEnd(),_=!1);}g=o,d=s,y=a;}return E;};}var Dd=qg();qg();function Fd(t){return t;}qg(),qg();var kd=1/0,Gd=kd,qd=-kd,Bd=qd,zd={point:function point(t,e){tqd&&(qd=t);eBd&&(Bd=e);},lineStart:id,lineEnd:id,polygonStart:id,polygonEnd:id,result:function result(){var t=[[kd,Gd],[qd,Bd]];return qd=Bd=-(Gd=kd=1/0),t;}};qg();function jd(t,e,n,r){return function(i,o){var s,a,u,l=e(o),c=i.invert(r[0],r[1]),h=wd(),p=e(h),f=!1,g={point:d,lineStart:v,lineEnd:_,polygonStart:function polygonStart(){g.point=m,g.lineStart=x,g.lineEnd=E,a=[],s=[];},polygonEnd:function polygonEnd(){g.point=d,g.lineStart=v,g.lineEnd=_,a=Od(a);var t=function(t,e){var n=e[0],r=e[1],i=[td(n),-$g(n),0],o=0,s=0;Dd.reset();for(var a=0,u=t.length;a=0?1:-1,I=w*b,N=I>Vg,S=g*x;if(Dd.add(Qg(S*w*td(I),d*E+S*$g(I))),o+=N?b+w*Hg:b,N^p>=n^_>=n){var C=fd(hd(h),hd(v));yd(C);var P=fd(i,C);yd(P);var M=(N^b>=0?-1:1)*rd(P[2]);(r>M||r===M&&(C[0]||C[1]))&&(s+=N^b>=0?1:-1);}}return(o<-1e-6||o0){for(f||(o.polygonStart(),f=!0),o.lineStart(),t=0;t1&&2&i&&l.push(l.pop().concat(l.shift())),a.push(l.filter(Ud));}return g;};}function Ud(t){return t.length>1;}function Vd(t,e){return((t=t.x)[0]<0?t[1]-Xg-Ug:Xg-t[1])-((e=e.x)[0]<0?e[1]-Xg-Ug:Xg-e[1]);}var Xd=jd(function(){return!0;},function(t){var e,n=NaN,r=NaN,i=NaN;return{lineStart:function lineStart(){t.lineStart(),e=1;},point:function point(o,s){var a=o>0?Vg:-Vg,u=Zg(o-n);Zg(u-Vg)0?Xg:-Xg),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),t.point(o,r),e=0):i!==a&&u>=Vg&&(Zg(n-i)Ug?Kg((td(e)*(o=$g(r))*td(n)-td(r)*(i=$g(e))*td(t))/(i*o*s)):(e+r)/2;}(n,r,o,s),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),e=0),t.point(n=o,r=s),i=a;},lineEnd:function lineEnd(){t.lineEnd(),n=r=NaN;},clean:function clean(){return 2-e;}};},function(t,e,n,r){var i;if(null==t)i=n*Xg,r.point(-Vg,i),r.point(0,i),r.point(Vg,i),r.point(Vg,0),r.point(Vg,-i),r.point(0,-i),r.point(-Vg,-i),r.point(-Vg,0),r.point(-Vg,i);else if(Zg(t[0]-e[0])>Ug){var o=t[0]0,i=Zg(n)>Ug;function o(t,e){return $g(t)*$g(e)>n;}function s(t,e,r){var i=[1,0,0],o=fd(hd(t),hd(e)),s=pd(o,o),a=o[0],u=s-a*a;if(!u)return!r&&t;var l=n*s/u,c=-n*a/u,h=fd(i,o),p=dd(i,l);gd(p,dd(o,c));var f=h,g=pd(p,f),d=pd(f,f),y=g*g-d*(pd(p,p)-1);if(!(y<0)){var v=ed(y),_=dd(f,(-g-v)/d);if(gd(_,p),_=cd(_),!r)return _;var m,x=t[0],E=e[0],b=t[1],w=e[1];E0^_[1]<(Zg(_[0]-x)Vg^(x<=_[0]&&_[0]<=E)){var S=dd(f,(-g+v)/d);return gd(S,p),[_,cd(S)];}}}function a(e,n){var i=r?t:Vg-t,o=0;return e<-i?o|=1:e>i&&(o|=2),n<-i?o|=4:n>i&&(o|=8),o;}return jd(o,function(t){var e,n,u,l,c;return{lineStart:function lineStart(){l=u=!1,c=1;},point:function point(h,p){var f,g=[h,p],d=o(h,p),y=r?d?0:a(h,p):d?a(h+(h<0?Vg:-Vg),p):0;if(!e&&(l=u=d)&&t.lineStart(),d!==u&&(!(f=s(e,g))||Id(e,f)||Id(g,f))&&(g[0]+=Ug,g[1]+=Ug,d=o(g[0],g[1])),d!==u)c=0,d?(t.lineStart(),f=s(g,e),t.point(f[0],f[1])):(f=s(e,g),t.point(f[0],f[1]),t.lineEnd()),e=f;else if(i&&e&&r^d){var v;y&n||!(v=s(g,e,!0))||(c=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1])));}!d||e&&Id(e,g)||t.point(g[0],g[1]),e=g,u=d,n=y;},lineEnd:function lineEnd(){u&&t.lineEnd(),e=null;},clean:function clean(){return c|(l&&u)<<1;}};},function(n,r,i,o){!function(t,e,n,r,i,o){if(n){var s=$g(e),a=td(e),u=r*n;null==i?(i=e+r*Hg,o=e-u/2):(i=bd(s,i),o=bd(s,o),(r>0?io)&&(i+=r*Hg));for(var l,c=i;r>0?c>o:c4*e&&d--){var x=s+p,E=a+f,b=u+g,w=ed(x*x+E*E+b*b),I=rd(b/=w),N=Zg(Zg(b)-1)e||Zg((v*M+_*L)/m-.5)>.3||s*p+a*f+u*g2?t[2]%360*Jg:0,P()):[y*Wg,v*Wg,_*Wg];},N.precision=function(t){return arguments.length?(I=Kd(C,w=t*t),M()):ed(w);},N.fitExtent=function(t,e){return Jd(N,t,e);},N.fitSize=function(t,e){return function(t,e,n){return Jd(t,[[0,0],e],n);}(N,t,e);},function(){return e=t.apply(this,arguments),N.invert=e.invert&&S,P();};}(function(){return t;})();}var ty=function(t){return function(e,n){var r=$g(e),i=$g(n),o=t(r*i);return[o*i*td(e),o*td(n)];};}(function(t){return(t=nd(t))&&t/td(t);});function ey(){return $d(ty).scale(79.4188).clipAngle(179.999);}function ny(t,n,r,i){var s=t.properties||{},a="Feature"===t.type?t.geometry:t;if("GeometryCollection"===a.type){var u=[];return q(t,function(t){var e=ny(t,n,r,i);e&&u.push(e);}),f(u);}var l=function(t){var n=xn(t).geometry.coordinates,r=[-n[0],-n[1]];return ey().rotate(r).scale(e);}(a),c={type:a.type,coordinates:iy(a.coordinates,l)},h=new Ih().read(c),p=m(x(n,r),"meters"),g=_f.bufferOp(h,p,i);if(!ry((g=new Nh().write(g)).coordinates))return o({type:g.type,coordinates:oy(g.coordinates,l)},s);}function ry(t){return Array.isArray(t[0])?ry(t[0]):isNaN(t[0]);}function iy(t,e){return"object"!=_typeof(t[0])?e(t):t.map(function(t){return iy(t,e);});}function oy(t,e){return"object"!=_typeof(t[0])?e.invert(t):t.map(function(t){return oy(t,e);});}function sy(t,e,n){void 0===n&&(n={});var r=rt(t),i=rt(e),o=$u.intersection(r.coordinates,i.coordinates);return 0===o.length?null:1===o.length?l(o[0],n.properties):y(o,n.properties);}function ay(t,e,n){void 0===n&&(n={});var r=JSON.stringify(n.properties||{}),i=t[0],o=t[1],s=t[2],a=t[3],u=(o+a)/2,l=(i+s)/2,c=2*e/me([i,u],[s,u],n)*(s-i),h=2*e/me([l,o],[l,a],n)*(a-o),p=c/2,g=2*p,d=Math.sqrt(3)/2*h,y=s-i,v=a-o,_=3/4*g,m=d,x=(y-g)/(g-p/2),E=Math.floor(x),b=(E*_-p/2-y)/2-p/2+_/2,w=Math.floor((v-d)/d),I=(v-w*d)/2,N=w*d-v>d/2;N&&(I-=d/4);for(var S=[],C=[],P=0;P<6;P++){var M=2*Math.PI/6*P;S.push(Math.cos(M)),C.push(Math.sin(M));}for(var L=[],O=0;O<=E;O++)for(var R=0;R<=w;R++){var T=O%2==1;if((0!==R||!T)&&(0!==R||!N)){var A=O*_+i-b,D=R*m+o+I;if(T&&(D-=d/2),!0===n.triangles)ly([A,D],c/2,h/2,JSON.parse(r),S,C).forEach(function(t){n.mask?sy(n.mask,t)&&L.push(t):L.push(t);});else{var F=uy([A,D],c/2,h/2,JSON.parse(r),S,C);n.mask?sy(n.mask,F)&&L.push(F):L.push(F);}}}return f(L);}function uy(t,e,n,r,i,o){for(var s=[],a=0;a<6;a++){var u=t[0]+e*i[a],c=t[1]+n*o[a];s.push([u,c]);}return s.push(s[0].slice()),l([s],r);}function ly(t,e,n,r,i,o){for(var s=[],a=0;a<6;a++){var u=[];u.push(t),u.push([t[0]+e*i[a],t[1]+n*o[a]]),u.push([t[0]+e*i[(a+1)%6],t[1]+n*o[(a+1)%6]]),u.push(t),s.push(l([u],r));}return s;}function cy(t){return y(t);}function hy(t){return l(t&&t.geometry.coordinates||[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]]);}function py(t,e,n){return void 0===n&&(n={}),function(t,e,n,r){void 0===r&&(r={});for(var i=[],o=t[0],s=t[1],a=t[2],u=t[3],c=e/me([o,s],[a,s],r)*(a-o),h=n/me([o,s],[o,u],r)*(u-s),p=a-o,g=u-s,d=Math.floor(p/c),y=Math.floor(g/h),v=(g-y*h)/2,_=o+(p-d*c)/2,m=0;m=i&&o===r.length-1);o++){if(i>=e){var s=e-i;if(s){var u=mn(r[o],r[o-1])-180;return vn(r[o],s,u,n);}return a(r[o]);}i+=me(r[o],r[o+1],n);}return a(r[r.length-1]);},t.angle=function(t,e,n,r){if(void 0===r&&(r={}),!P(r))throw new Error("options is invalid");if(!t)throw new Error("startPoint is required");if(!e)throw new Error("midPoint is required");if(!n)throw new Error("endPoint is required");var i=t,o=e,s=n,a=b(!0!==r.mercator?mn(i,o):Bi(i,o)),u=b(!0!==r.mercator?mn(s,o):Bi(s,o)),l=Math.abs(a-u);return!0===r.explementary?360-l:l;},t.applyFilter=uu,t.area=jr,t.areaFactors=i,t.bbox=Z,t.bboxClip=function(t,e){var n=rt(t),r=n.type,i="Feature"===t.type?t.properties:{},o=n.coordinates;switch(r){case"LineString":case"MultiLineString":var s=[];return"LineString"===r&&(o=[o]),o.forEach(function(t){!function(t,e,n){var r,i,o,s,a,u=t.length,l=Ri(t[0],e),c=[];for(n||(n=[]),r=1;r0)for(var n=0;n0;},t.booleanParallel=function(t,e){if(!t)throw new Error("line1 is required");if(!e)throw new Error("line2 is required");if("LineString"!==Us(t,"line1"))throw new Error("line1 must be a LineString");if("LineString"!==Us(e,"line2"))throw new Error("line2 must be a LineString");for(var n=Zn(tn(t)).features,r=Zn(tn(e)).features,i=0;in&&(e.numberOfClusters=n),!0!==e.mutate&&(t=Ie(t));var r=G(t),i=r.slice(0,e.numberOfClusters),o=zs(r,e.numberOfClusters,i),s={};return o.centroids.forEach(function(t,e){s[e]=t;}),F(t,function(t,e){var n=o.idxs[e];t.properties.cluster=n,t.properties.centroid=s[n];}),t;},t.collect=function(t,e,n,r){var i=Nt(6),o=e.features.map(function(t){var e;return{minX:t.geometry.coordinates[0],minY:t.geometry.coordinates[1],maxX:t.geometry.coordinates[0],maxY:t.geometry.coordinates[1],property:null===(e=t.properties)||void 0===e?void 0:e[n]};});return i.load(o),t.features.forEach(function(t){t.properties||(t.properties={});var e=Z(t),n=i.search({minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]}),o=[];n.forEach(function(e){ye([e.minX,e.minY],t)&&o.push(e.property);}),t.properties[r]=o;}),t;},t.collectionOf=nt,t.combine=function(t){var e={MultiPoint:{coordinates:[],properties:[]},MultiLineString:{coordinates:[],properties:[]},MultiPolygon:{coordinates:[],properties:[]}};return F(t,function(t){var n,r,i,o;switch(null===(o=t.geometry)||void 0===o?void 0:o.type){case"Point":e.MultiPoint.coordinates.push(t.geometry.coordinates),e.MultiPoint.properties.push(t.properties);break;case"MultiPoint":(n=e.MultiPoint.coordinates).push.apply(n,t.geometry.coordinates),e.MultiPoint.properties.push(t.properties);break;case"LineString":e.MultiLineString.coordinates.push(t.geometry.coordinates),e.MultiLineString.properties.push(t.properties);break;case"MultiLineString":(r=e.MultiLineString.coordinates).push.apply(r,t.geometry.coordinates),e.MultiLineString.properties.push(t.properties);break;case"Polygon":e.MultiPolygon.coordinates.push(t.geometry.coordinates),e.MultiPolygon.properties.push(t.properties);break;case"MultiPolygon":(i=e.MultiPolygon.coordinates).push.apply(i,t.geometry.coordinates),e.MultiPolygon.properties.push(t.properties);}}),f(Object.keys(e).filter(function(t){return e[t].coordinates.length;}).sort().map(function(t){return o({type:t,coordinates:e[t].coordinates},{collectedProperties:e[t].properties});}));},t.concave=function(t,e){void 0===e&&(e={});var n=e.maxEdge||1/0,r=xe(function(t){var e=[],n={};return F(t,function(t){if(t.geometry){var r=t.geometry.coordinates.join("-");Object.prototype.hasOwnProperty.call(n,r)||(e.push(t),n[r]=!0);}}),f(e);}(t));if(r.features=r.features.filter(function(t){var r=t.geometry.coordinates[0][0],i=t.geometry.coordinates[0][1],o=t.geometry.coordinates[0][2],s=me(r,i,e),a=me(i,o,e),u=me(r,o,e);return s<=n&&a<=n&&u<=n;}),r.features.length<1)return null;var i=$e(r);return 1===i.coordinates.length&&(i.coordinates=i.coordinates[0],i.type="Polygon"),o(i);},t.containsNumber=$,t.convertArea=S,t.convertDistance=N,t.convertLength=N,t.convex=de,t.coordAll=G,t.coordEach=R,t.coordReduce=T,t.createBins=au,t.degrees2radians=I,t.degreesToRadians=I,t.destination=vn,t.difference=function(t,e){var n=rt(t),r=rt(e),i=t.properties||{},o=$u.difference(n.coordinates,r.coordinates);return 0===o.length?null:1===o.length?l(o[0],i):y(o,i);},t.dissolve=function(t,e){if(!P(e=e||{}))throw new Error("options is invalid");var n=e.propertyName;nt(t,"Polygon","dissolve");var r=[];if(!e.propertyName)return ni(y($u.union.apply(null,t.features.map(function(t){return t.geometry.coordinates;}))));var i={};F(t,function(t){Object.prototype.hasOwnProperty.call(i,t.properties[n])||(i[t.properties[n]]=[]),i[t.properties[n]].push(t);});for(var o=Object.keys(i),s=0;s0&&(s=l(o).geometry),qa(s,a),o=a.slice(0);n.push(l(o,i));break;case"MultiPolygon":o=[[[]]];for(var c=0;c0&&(s=y(o).geometry),Ba(s,a),o=a.slice(0);n.push(y(o,i));break;default:throw new Error("geometry is invalid, must be Polygon or MultiPolygon");}}),f(n);},t.polygonTangents=function(t,e){var n,r,i,o,s=Q(t),u=Q(e),l=Z(e),c=0,h=null;switch(s[0]>l[0]&&s[0]l[1]&&s[1] is required");if("boolean"!=typeof n)throw new Error(" must be a boolean");if("boolean"!=typeof r)throw new Error(" must be a boolean");!1===r&&(t=Ie(t));var i=[];switch(t.type){case"GeometryCollection":return q(t,function(t){Hi(t,n);}),t;case"FeatureCollection":return F(t,function(t){F(Hi(t,n),function(t){i.push(t);});}),f(i);}return Hi(t,n);},t.rhumbBearing=Bi,t.rhumbDestination=ji,t.rhumbDistance=Ar,t.round=_,t.sample=function(t,e){if(!t)throw new Error("featurecollection is required");if(null==e)throw new Error("num is required");if("number"!=typeof e)throw new Error("num must be a number");return f(function(t,e){var n,r,i=t.slice(0),o=t.length,s=o-e;for(;o-->s;)n=i[r=Math.floor((o+1)*Math.random())],i[r]=i[o],i[o]=n;return i.slice(s);}(t.features,e));},t.sector=function(t,e,n,r,i){if(!P(i=i||{}))throw new Error("options is invalid");var o=i.properties;if(!t)throw new Error("center is required");if(null==n)throw new Error("bearing1 is required");if(null==r)throw new Error("bearing2 is required");if(!e)throw new Error("radius is required");if("object"!=_typeof(i))throw new Error("options must be an object");if(qi(n)===qi(r))return _n(t,e,i);var s=Q(t),a=bi(t,e,n,r,i),u=[[s]];return R(a,function(t){u[0].push(t);}),u[0].push(s),l(u,o);},t.segmentEach=U,t.segmentReduce=V,t.shortestPath=function(t,e,n){if(!P(n=n||{}))throw new Error("options is invalid");var r=n.resolution,i=n.minDistance,s=n.obstacles||f([]);if(!t)throw new Error("start is required");if(!e)throw new Error("end is required");if(r&&!C(r)||r<=0)throw new Error("options.resolution must be a number, greater than 0");if(i)throw new Error("options.minDistance is not yet implemented");var u=K(t),l=K(e);switch(t=a(u),e=a(l),it(s)){case"FeatureCollection":if(0===s.features.length)return h([u,l]);break;case"Polygon":s=f([o(rt(s))]);break;default:throw new Error("invalid obstacles");}var c=s;c.features.push(t),c.features.push(e);var p=Z(ts(gn(Z(c)),1.15));r||(r=me([p[0],p[1]],[p[2],p[1]],n)/100),c.features.pop(),c.features.pop();for(var g=p[0],d=p[1],y=p[2],v=p[3],_=r/me([g,d],[y,d],n)*(y-g),m=r/me([g,d],[g,v],n)*(v-d),x=y-g,E=v-d,b=Math.floor(x/_),w=Math.floor(E/m),I=(x-b*_)/2,N=[],S=[],M=[],L=[],O=1/0,R=1/0,T=v-(E-w*m)/2,A=0;T>=d;){for(var D=[],F=[],k=g+I,G=0;k<=y;){var q=a([k,T]),B=Js(q,s);D.push(B?0:1),F.push(k+"|"+T);var z=me(q,t);!B&&z arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0; +var _CodeOrName = /*#__PURE__*/_createClass(function _CodeOrName() { + _classCallCheck(this, _CodeOrName); +}); +exports._CodeOrName = _CodeOrName; +exports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i; +var Name = /*#__PURE__*/function (_CodeOrName2) { + _inherits(Name, _CodeOrName2); + var _super = _createSuper(Name); + function Name(s) { + var _this; + _classCallCheck(this, Name); + _this = _super.call(this); + if (!exports.IDENTIFIER.test(s)) throw new Error("CodeGen: name must be a valid identifier"); + _this.str = s; + return _this; + } + _createClass(Name, [{ + key: "toString", + value: function toString() { + return this.str; + } + }, { + key: "emptyStr", + value: function emptyStr() { + return false; + } + }, { + key: "names", + get: function get() { + return _defineProperty({}, this.str, 1); + } + }]); + return Name; +}(_CodeOrName); +exports.Name = Name; +var _Code = /*#__PURE__*/function (_CodeOrName3) { + _inherits(_Code, _CodeOrName3); + var _super2 = _createSuper(_Code); + function _Code(code) { + var _this2; + _classCallCheck(this, _Code); + _this2 = _super2.call(this); + _this2._items = typeof code === "string" ? [code] : code; + return _this2; + } + _createClass(_Code, [{ + key: "toString", + value: function toString() { + return this.str; + } + }, { + key: "emptyStr", + value: function emptyStr() { + if (this._items.length > 1) return false; + var item = this._items[0]; + return item === "" || item === '""'; + } + }, { + key: "str", + get: function get() { + var _a; + return (_a = this._str) !== null && _a !== void 0 ? _a : this._str = this._items.reduce(function (s, c) { + return "".concat(s).concat(c); + }, ""); + } + }, { + key: "names", + get: function get() { + var _a; + return (_a = this._names) !== null && _a !== void 0 ? _a : this._names = this._items.reduce(function (names, c) { + if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1; + return names; + }, {}); + } + }]); + return _Code; +}(_CodeOrName); +exports._Code = _Code; +exports.nil = new _Code(""); +function _(strs) { + var code = [strs[0]]; + var i = 0; + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + while (i < args.length) { + addCodeArg(code, args[i]); + code.push(strs[++i]); + } + return new _Code(code); +} +exports._ = _; +var plus = new _Code("+"); +function str(strs) { + var expr = [safeStringify(strs[0])]; + var i = 0; + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + while (i < args.length) { + expr.push(plus); + addCodeArg(expr, args[i]); + expr.push(plus, safeStringify(strs[++i])); + } + optimize(expr); + return new _Code(expr); +} +exports.str = str; +function addCodeArg(code, arg) { + if (arg instanceof _Code) code.push.apply(code, _toConsumableArray(arg._items));else if (arg instanceof Name) code.push(arg);else code.push(interpolate(arg)); +} +exports.addCodeArg = addCodeArg; +function optimize(expr) { + var i = 1; + while (i < expr.length - 1) { + if (expr[i] === plus) { + var res = mergeExprItems(expr[i - 1], expr[i + 1]); + if (res !== undefined) { + expr.splice(i - 1, 3, res); + continue; + } + expr[i++] = "+"; + } + i++; + } +} +function mergeExprItems(a, b) { + if (b === '""') return a; + if (a === '""') return b; + if (typeof a == "string") { + if (b instanceof Name || a[a.length - 1] !== '"') return; + if (typeof b != "string") return "".concat(a.slice(0, -1)).concat(b, "\""); + if (b[0] === '"') return a.slice(0, -1) + b.slice(1); + return; + } + if (typeof b == "string" && b[0] === '"' && !(a instanceof Name)) return "\"".concat(a).concat(b.slice(1)); + return; +} +function strConcat(c1, c2) { + return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str(_templateObject || (_templateObject = _taggedTemplateLiteral(["", "", ""])), c1, c2); +} +exports.strConcat = strConcat; +// TODO do not allow arrays here +function interpolate(x) { + return typeof x == "number" || typeof x == "boolean" || x === null ? x : safeStringify(Array.isArray(x) ? x.join(",") : x); +} +function stringify(x) { + return new _Code(safeStringify(x)); +} +exports.stringify = stringify; +function safeStringify(x) { + return JSON.stringify(x).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029"); +} +exports.safeStringify = safeStringify; +function getProperty(key) { + return typeof key == "string" && exports.IDENTIFIER.test(key) ? new _Code(".".concat(key)) : _(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["[", "]"])), key); +} +exports.getProperty = getProperty; +//Does best effort to format the name properly +function getEsmExportName(key) { + if (typeof key == "string" && exports.IDENTIFIER.test(key)) { + return new _Code("".concat(key)); + } + throw new Error("CodeGen: invalid export name: ".concat(key, ", use explicit $id name mapping")); +} +exports.getEsmExportName = getEsmExportName; +function regexpCode(rx) { + return new _Code(rx.toString()); +} +exports.regexpCode = regexpCode; + +},{}],13:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0; +var code_1 = require("./code"); +var scope_1 = require("./scope"); +var code_2 = require("./code"); +Object.defineProperty(exports, "_", { + enumerable: true, + get: function get() { + return code_2._; + } +}); +Object.defineProperty(exports, "str", { + enumerable: true, + get: function get() { + return code_2.str; + } +}); +Object.defineProperty(exports, "strConcat", { + enumerable: true, + get: function get() { + return code_2.strConcat; + } +}); +Object.defineProperty(exports, "nil", { + enumerable: true, + get: function get() { + return code_2.nil; + } +}); +Object.defineProperty(exports, "getProperty", { + enumerable: true, + get: function get() { + return code_2.getProperty; + } +}); +Object.defineProperty(exports, "stringify", { + enumerable: true, + get: function get() { + return code_2.stringify; + } +}); +Object.defineProperty(exports, "regexpCode", { + enumerable: true, + get: function get() { + return code_2.regexpCode; + } +}); +Object.defineProperty(exports, "Name", { + enumerable: true, + get: function get() { + return code_2.Name; + } +}); +var scope_2 = require("./scope"); +Object.defineProperty(exports, "Scope", { + enumerable: true, + get: function get() { + return scope_2.Scope; + } +}); +Object.defineProperty(exports, "ValueScope", { + enumerable: true, + get: function get() { + return scope_2.ValueScope; + } +}); +Object.defineProperty(exports, "ValueScopeName", { + enumerable: true, + get: function get() { + return scope_2.ValueScopeName; + } +}); +Object.defineProperty(exports, "varKinds", { + enumerable: true, + get: function get() { + return scope_2.varKinds; + } +}); +exports.operators = { + GT: new code_1._Code(">"), + GTE: new code_1._Code(">="), + LT: new code_1._Code("<"), + LTE: new code_1._Code("<="), + EQ: new code_1._Code("==="), + NEQ: new code_1._Code("!=="), + NOT: new code_1._Code("!"), + OR: new code_1._Code("||"), + AND: new code_1._Code("&&"), + ADD: new code_1._Code("+") +}; +var Node = /*#__PURE__*/function () { + function Node() { + _classCallCheck(this, Node); + } + _createClass(Node, [{ + key: "optimizeNodes", + value: function optimizeNodes() { + return this; + } + }, { + key: "optimizeNames", + value: function optimizeNames(_names, _constants) { + return this; + } + }]); + return Node; +}(); +var Def = /*#__PURE__*/function (_Node) { + _inherits(Def, _Node); + var _super = _createSuper(Def); + function Def(varKind, name, rhs) { + var _this; + _classCallCheck(this, Def); + _this = _super.call(this); + _this.varKind = varKind; + _this.name = name; + _this.rhs = rhs; + return _this; + } + _createClass(Def, [{ + key: "render", + value: function render(_ref) { + var es5 = _ref.es5, + _n = _ref._n; + var varKind = es5 ? scope_1.varKinds["var"] : this.varKind; + var rhs = this.rhs === undefined ? "" : " = ".concat(this.rhs); + return "".concat(varKind, " ").concat(this.name).concat(rhs, ";") + _n; + } + }, { + key: "optimizeNames", + value: function optimizeNames(names, constants) { + if (!names[this.name.str]) return; + if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants); + return this; + } + }, { + key: "names", + get: function get() { + return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {}; + } + }]); + return Def; +}(Node); +var Assign = /*#__PURE__*/function (_Node2) { + _inherits(Assign, _Node2); + var _super2 = _createSuper(Assign); + function Assign(lhs, rhs, sideEffects) { + var _this2; + _classCallCheck(this, Assign); + _this2 = _super2.call(this); + _this2.lhs = lhs; + _this2.rhs = rhs; + _this2.sideEffects = sideEffects; + return _this2; + } + _createClass(Assign, [{ + key: "render", + value: function render(_ref2) { + var _n = _ref2._n; + return "".concat(this.lhs, " = ").concat(this.rhs, ";") + _n; + } + }, { + key: "optimizeNames", + value: function optimizeNames(names, constants) { + if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects) return; + this.rhs = optimizeExpr(this.rhs, names, constants); + return this; + } + }, { + key: "names", + get: function get() { + var names = this.lhs instanceof code_1.Name ? {} : _objectSpread({}, this.lhs.names); + return addExprNames(names, this.rhs); + } + }]); + return Assign; +}(Node); +var AssignOp = /*#__PURE__*/function (_Assign) { + _inherits(AssignOp, _Assign); + var _super3 = _createSuper(AssignOp); + function AssignOp(lhs, op, rhs, sideEffects) { + var _this3; + _classCallCheck(this, AssignOp); + _this3 = _super3.call(this, lhs, rhs, sideEffects); + _this3.op = op; + return _this3; + } + _createClass(AssignOp, [{ + key: "render", + value: function render(_ref3) { + var _n = _ref3._n; + return "".concat(this.lhs, " ").concat(this.op, "= ").concat(this.rhs, ";") + _n; + } + }]); + return AssignOp; +}(Assign); +var Label = /*#__PURE__*/function (_Node3) { + _inherits(Label, _Node3); + var _super4 = _createSuper(Label); + function Label(label) { + var _this4; + _classCallCheck(this, Label); + _this4 = _super4.call(this); + _this4.label = label; + _this4.names = {}; + return _this4; + } + _createClass(Label, [{ + key: "render", + value: function render(_ref4) { + var _n = _ref4._n; + return "".concat(this.label, ":") + _n; + } + }]); + return Label; +}(Node); +var Break = /*#__PURE__*/function (_Node4) { + _inherits(Break, _Node4); + var _super5 = _createSuper(Break); + function Break(label) { + var _this5; + _classCallCheck(this, Break); + _this5 = _super5.call(this); + _this5.label = label; + _this5.names = {}; + return _this5; + } + _createClass(Break, [{ + key: "render", + value: function render(_ref5) { + var _n = _ref5._n; + var label = this.label ? " ".concat(this.label) : ""; + return "break".concat(label, ";") + _n; + } + }]); + return Break; +}(Node); +var Throw = /*#__PURE__*/function (_Node5) { + _inherits(Throw, _Node5); + var _super6 = _createSuper(Throw); + function Throw(error) { + var _this6; + _classCallCheck(this, Throw); + _this6 = _super6.call(this); + _this6.error = error; + return _this6; + } + _createClass(Throw, [{ + key: "render", + value: function render(_ref6) { + var _n = _ref6._n; + return "throw ".concat(this.error, ";") + _n; + } + }, { + key: "names", + get: function get() { + return this.error.names; + } + }]); + return Throw; +}(Node); +var AnyCode = /*#__PURE__*/function (_Node6) { + _inherits(AnyCode, _Node6); + var _super7 = _createSuper(AnyCode); + function AnyCode(code) { + var _this7; + _classCallCheck(this, AnyCode); + _this7 = _super7.call(this); + _this7.code = code; + return _this7; + } + _createClass(AnyCode, [{ + key: "render", + value: function render(_ref7) { + var _n = _ref7._n; + return "".concat(this.code, ";") + _n; + } + }, { + key: "optimizeNodes", + value: function optimizeNodes() { + return "".concat(this.code) ? this : undefined; + } + }, { + key: "optimizeNames", + value: function optimizeNames(names, constants) { + this.code = optimizeExpr(this.code, names, constants); + return this; + } + }, { + key: "names", + get: function get() { + return this.code instanceof code_1._CodeOrName ? this.code.names : {}; + } + }]); + return AnyCode; +}(Node); +var ParentNode = /*#__PURE__*/function (_Node7) { + _inherits(ParentNode, _Node7); + var _super8 = _createSuper(ParentNode); + function ParentNode() { + var _this8; + var nodes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + _classCallCheck(this, ParentNode); + _this8 = _super8.call(this); + _this8.nodes = nodes; + return _this8; + } + _createClass(ParentNode, [{ + key: "render", + value: function render(opts) { + return this.nodes.reduce(function (code, n) { + return code + n.render(opts); + }, ""); + } + }, { + key: "optimizeNodes", + value: function optimizeNodes() { + var nodes = this.nodes; + var i = nodes.length; + while (i--) { + var n = nodes[i].optimizeNodes(); + if (Array.isArray(n)) nodes.splice.apply(nodes, [i, 1].concat(_toConsumableArray(n)));else if (n) nodes[i] = n;else nodes.splice(i, 1); + } + return nodes.length > 0 ? this : undefined; + } + }, { + key: "optimizeNames", + value: function optimizeNames(names, constants) { + var nodes = this.nodes; + var i = nodes.length; + while (i--) { + // iterating backwards improves 1-pass optimization + var n = nodes[i]; + if (n.optimizeNames(names, constants)) continue; + subtractNames(names, n.names); + nodes.splice(i, 1); + } + return nodes.length > 0 ? this : undefined; + } + }, { + key: "names", + get: function get() { + return this.nodes.reduce(function (names, n) { + return addNames(names, n.names); + }, {}); + } + }]); + return ParentNode; +}(Node); +var BlockNode = /*#__PURE__*/function (_ParentNode) { + _inherits(BlockNode, _ParentNode); + var _super9 = _createSuper(BlockNode); + function BlockNode() { + _classCallCheck(this, BlockNode); + return _super9.apply(this, arguments); + } + _createClass(BlockNode, [{ + key: "render", + value: function render(opts) { + return "{" + opts._n + _get(_getPrototypeOf(BlockNode.prototype), "render", this).call(this, opts) + "}" + opts._n; + } + }]); + return BlockNode; +}(ParentNode); +var Root = /*#__PURE__*/function (_ParentNode2) { + _inherits(Root, _ParentNode2); + var _super10 = _createSuper(Root); + function Root() { + _classCallCheck(this, Root); + return _super10.apply(this, arguments); + } + return _createClass(Root); +}(ParentNode); +var Else = /*#__PURE__*/function (_BlockNode) { + _inherits(Else, _BlockNode); + var _super11 = _createSuper(Else); + function Else() { + _classCallCheck(this, Else); + return _super11.apply(this, arguments); + } + return _createClass(Else); +}(BlockNode); +Else.kind = "else"; +var If = /*#__PURE__*/function (_BlockNode2) { + _inherits(If, _BlockNode2); + var _super12 = _createSuper(If); + function If(condition, nodes) { + var _this9; + _classCallCheck(this, If); + _this9 = _super12.call(this, nodes); + _this9.condition = condition; + return _this9; + } + _createClass(If, [{ + key: "render", + value: function render(opts) { + var code = "if(".concat(this.condition, ")") + _get(_getPrototypeOf(If.prototype), "render", this).call(this, opts); + if (this["else"]) code += "else " + this["else"].render(opts); + return code; + } + }, { + key: "optimizeNodes", + value: function optimizeNodes() { + _get(_getPrototypeOf(If.prototype), "optimizeNodes", this).call(this); + var cond = this.condition; + if (cond === true) return this.nodes; // else is ignored here + var e = this["else"]; + if (e) { + var ns = e.optimizeNodes(); + e = this["else"] = Array.isArray(ns) ? new Else(ns) : ns; + } + if (e) { + if (cond === false) return e instanceof If ? e : e.nodes; + if (this.nodes.length) return this; + return new If(not(cond), e instanceof If ? [e] : e.nodes); + } + if (cond === false || !this.nodes.length) return undefined; + return this; + } + }, { + key: "optimizeNames", + value: function optimizeNames(names, constants) { + var _a; + this["else"] = (_a = this["else"]) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants); + if (!(_get(_getPrototypeOf(If.prototype), "optimizeNames", this).call(this, names, constants) || this["else"])) return; + this.condition = optimizeExpr(this.condition, names, constants); + return this; + } + }, { + key: "names", + get: function get() { + var names = _get(_getPrototypeOf(If.prototype), "names", this); + addExprNames(names, this.condition); + if (this["else"]) addNames(names, this["else"].names); + return names; + } + }]); + return If; +}(BlockNode); +If.kind = "if"; +var For = /*#__PURE__*/function (_BlockNode3) { + _inherits(For, _BlockNode3); + var _super13 = _createSuper(For); + function For() { + _classCallCheck(this, For); + return _super13.apply(this, arguments); + } + return _createClass(For); +}(BlockNode); +For.kind = "for"; +var ForLoop = /*#__PURE__*/function (_For) { + _inherits(ForLoop, _For); + var _super14 = _createSuper(ForLoop); + function ForLoop(iteration) { + var _this10; + _classCallCheck(this, ForLoop); + _this10 = _super14.call(this); + _this10.iteration = iteration; + return _this10; + } + _createClass(ForLoop, [{ + key: "render", + value: function render(opts) { + return "for(".concat(this.iteration, ")") + _get(_getPrototypeOf(ForLoop.prototype), "render", this).call(this, opts); + } + }, { + key: "optimizeNames", + value: function optimizeNames(names, constants) { + if (!_get(_getPrototypeOf(ForLoop.prototype), "optimizeNames", this).call(this, names, constants)) return; + this.iteration = optimizeExpr(this.iteration, names, constants); + return this; + } + }, { + key: "names", + get: function get() { + return addNames(_get(_getPrototypeOf(ForLoop.prototype), "names", this), this.iteration.names); + } + }]); + return ForLoop; +}(For); +var ForRange = /*#__PURE__*/function (_For2) { + _inherits(ForRange, _For2); + var _super15 = _createSuper(ForRange); + function ForRange(varKind, name, from, to) { + var _this11; + _classCallCheck(this, ForRange); + _this11 = _super15.call(this); + _this11.varKind = varKind; + _this11.name = name; + _this11.from = from; + _this11.to = to; + return _this11; + } + _createClass(ForRange, [{ + key: "render", + value: function render(opts) { + var varKind = opts.es5 ? scope_1.varKinds["var"] : this.varKind; + var name = this.name, + from = this.from, + to = this.to; + return "for(".concat(varKind, " ").concat(name, "=").concat(from, "; ").concat(name, "<").concat(to, "; ").concat(name, "++)") + _get(_getPrototypeOf(ForRange.prototype), "render", this).call(this, opts); + } + }, { + key: "names", + get: function get() { + var names = addExprNames(_get(_getPrototypeOf(ForRange.prototype), "names", this), this.from); + return addExprNames(names, this.to); + } + }]); + return ForRange; +}(For); +var ForIter = /*#__PURE__*/function (_For3) { + _inherits(ForIter, _For3); + var _super16 = _createSuper(ForIter); + function ForIter(loop, varKind, name, iterable) { + var _this12; + _classCallCheck(this, ForIter); + _this12 = _super16.call(this); + _this12.loop = loop; + _this12.varKind = varKind; + _this12.name = name; + _this12.iterable = iterable; + return _this12; + } + _createClass(ForIter, [{ + key: "render", + value: function render(opts) { + return "for(".concat(this.varKind, " ").concat(this.name, " ").concat(this.loop, " ").concat(this.iterable, ")") + _get(_getPrototypeOf(ForIter.prototype), "render", this).call(this, opts); + } + }, { + key: "optimizeNames", + value: function optimizeNames(names, constants) { + if (!_get(_getPrototypeOf(ForIter.prototype), "optimizeNames", this).call(this, names, constants)) return; + this.iterable = optimizeExpr(this.iterable, names, constants); + return this; + } + }, { + key: "names", + get: function get() { + return addNames(_get(_getPrototypeOf(ForIter.prototype), "names", this), this.iterable.names); + } + }]); + return ForIter; +}(For); +var Func = /*#__PURE__*/function (_BlockNode4) { + _inherits(Func, _BlockNode4); + var _super17 = _createSuper(Func); + function Func(name, args, async) { + var _this13; + _classCallCheck(this, Func); + _this13 = _super17.call(this); + _this13.name = name; + _this13.args = args; + _this13.async = async; + return _this13; + } + _createClass(Func, [{ + key: "render", + value: function render(opts) { + var _async = this.async ? "async " : ""; + return "".concat(_async, "function ").concat(this.name, "(").concat(this.args, ")") + _get(_getPrototypeOf(Func.prototype), "render", this).call(this, opts); + } + }]); + return Func; +}(BlockNode); +Func.kind = "func"; +var Return = /*#__PURE__*/function (_ParentNode3) { + _inherits(Return, _ParentNode3); + var _super18 = _createSuper(Return); + function Return() { + _classCallCheck(this, Return); + return _super18.apply(this, arguments); + } + _createClass(Return, [{ + key: "render", + value: function render(opts) { + return "return " + _get(_getPrototypeOf(Return.prototype), "render", this).call(this, opts); + } + }]); + return Return; +}(ParentNode); +Return.kind = "return"; +var Try = /*#__PURE__*/function (_BlockNode5) { + _inherits(Try, _BlockNode5); + var _super19 = _createSuper(Try); + function Try() { + _classCallCheck(this, Try); + return _super19.apply(this, arguments); + } + _createClass(Try, [{ + key: "render", + value: function render(opts) { + var code = "try" + _get(_getPrototypeOf(Try.prototype), "render", this).call(this, opts); + if (this["catch"]) code += this["catch"].render(opts); + if (this["finally"]) code += this["finally"].render(opts); + return code; + } + }, { + key: "optimizeNodes", + value: function optimizeNodes() { + var _a, _b; + _get(_getPrototypeOf(Try.prototype), "optimizeNodes", this).call(this); + (_a = this["catch"]) === null || _a === void 0 ? void 0 : _a.optimizeNodes(); + (_b = this["finally"]) === null || _b === void 0 ? void 0 : _b.optimizeNodes(); + return this; + } + }, { + key: "optimizeNames", + value: function optimizeNames(names, constants) { + var _a, _b; + _get(_getPrototypeOf(Try.prototype), "optimizeNames", this).call(this, names, constants); + (_a = this["catch"]) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants); + (_b = this["finally"]) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants); + return this; + } + }, { + key: "names", + get: function get() { + var names = _get(_getPrototypeOf(Try.prototype), "names", this); + if (this["catch"]) addNames(names, this["catch"].names); + if (this["finally"]) addNames(names, this["finally"].names); + return names; + } + }]); + return Try; +}(BlockNode); +var Catch = /*#__PURE__*/function (_BlockNode6) { + _inherits(Catch, _BlockNode6); + var _super20 = _createSuper(Catch); + function Catch(error) { + var _this14; + _classCallCheck(this, Catch); + _this14 = _super20.call(this); + _this14.error = error; + return _this14; + } + _createClass(Catch, [{ + key: "render", + value: function render(opts) { + return "catch(".concat(this.error, ")") + _get(_getPrototypeOf(Catch.prototype), "render", this).call(this, opts); + } + }]); + return Catch; +}(BlockNode); +Catch.kind = "catch"; +var Finally = /*#__PURE__*/function (_BlockNode7) { + _inherits(Finally, _BlockNode7); + var _super21 = _createSuper(Finally); + function Finally() { + _classCallCheck(this, Finally); + return _super21.apply(this, arguments); + } + _createClass(Finally, [{ + key: "render", + value: function render(opts) { + return "finally" + _get(_getPrototypeOf(Finally.prototype), "render", this).call(this, opts); + } + }]); + return Finally; +}(BlockNode); +Finally.kind = "finally"; +var CodeGen = /*#__PURE__*/function () { + function CodeGen(extScope) { + var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + _classCallCheck(this, CodeGen); + this._values = {}; + this._blockStarts = []; + this._constants = {}; + this.opts = _objectSpread(_objectSpread({}, opts), {}, { + _n: opts.lines ? "\n" : "" + }); + this._extScope = extScope; + this._scope = new scope_1.Scope({ + parent: extScope + }); + this._nodes = [new Root()]; + } + _createClass(CodeGen, [{ + key: "toString", + value: function toString() { + return this._root.render(this.opts); + } + // returns unique name in the internal scope + }, { + key: "name", + value: function name(prefix) { + return this._scope.name(prefix); + } + // reserves unique name in the external scope + }, { + key: "scopeName", + value: function scopeName(prefix) { + return this._extScope.name(prefix); + } + // reserves unique name in the external scope and assigns value to it + }, { + key: "scopeValue", + value: function scopeValue(prefixOrName, value) { + var name = this._extScope.value(prefixOrName, value); + var vs = this._values[name.prefix] || (this._values[name.prefix] = new Set()); + vs.add(name); + return name; + } + }, { + key: "getScopeValue", + value: function getScopeValue(prefix, keyOrRef) { + return this._extScope.getValue(prefix, keyOrRef); + } + // return code that assigns values in the external scope to the names that are used internally + // (same names that were returned by gen.scopeName or gen.scopeValue) + }, { + key: "scopeRefs", + value: function scopeRefs(scopeName) { + return this._extScope.scopeRefs(scopeName, this._values); + } + }, { + key: "scopeCode", + value: function scopeCode() { + return this._extScope.scopeCode(this._values); + } + }, { + key: "_def", + value: function _def(varKind, nameOrPrefix, rhs, constant) { + var name = this._scope.toName(nameOrPrefix); + if (rhs !== undefined && constant) this._constants[name.str] = rhs; + this._leafNode(new Def(varKind, name, rhs)); + return name; + } + // `const` declaration (`var` in es5 mode) + }, { + key: "const", + value: function _const(nameOrPrefix, rhs, _constant) { + return this._def(scope_1.varKinds["const"], nameOrPrefix, rhs, _constant); + } + // `let` declaration with optional assignment (`var` in es5 mode) + }, { + key: "let", + value: function _let(nameOrPrefix, rhs, _constant) { + return this._def(scope_1.varKinds["let"], nameOrPrefix, rhs, _constant); + } + // `var` declaration with optional assignment + }, { + key: "var", + value: function _var(nameOrPrefix, rhs, _constant) { + return this._def(scope_1.varKinds["var"], nameOrPrefix, rhs, _constant); + } + // assignment code + }, { + key: "assign", + value: function assign(lhs, rhs, sideEffects) { + return this._leafNode(new Assign(lhs, rhs, sideEffects)); + } + // `+=` code + }, { + key: "add", + value: function add(lhs, rhs) { + return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs)); + } + // appends passed SafeExpr to code or executes Block + }, { + key: "code", + value: function code(c) { + if (typeof c == "function") c();else if (c !== code_1.nil) this._leafNode(new AnyCode(c)); + return this; + } + // returns code for object literal for the passed argument list of key-value pairs + }, { + key: "object", + value: function object() { + var code = ["{"]; + for (var _len = arguments.length, keyValues = new Array(_len), _key = 0; _key < _len; _key++) { + keyValues[_key] = arguments[_key]; + } + for (var _i = 0, _keyValues = keyValues; _i < _keyValues.length; _i++) { + var _keyValues$_i = _slicedToArray(_keyValues[_i], 2), + key = _keyValues$_i[0], + value = _keyValues$_i[1]; + if (code.length > 1) code.push(","); + code.push(key); + if (key !== value || this.opts.es5) { + code.push(":"); + (0, code_1.addCodeArg)(code, value); + } + } + code.push("}"); + return new code_1._Code(code); + } + // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed) + }, { + key: "if", + value: function _if(condition, thenBody, elseBody) { + this._blockNode(new If(condition)); + if (thenBody && elseBody) { + this.code(thenBody)["else"]().code(elseBody).endIf(); + } else if (thenBody) { + this.code(thenBody).endIf(); + } else if (elseBody) { + throw new Error('CodeGen: "else" body without "then" body'); + } + return this; + } + // `else if` clause - invalid without `if` or after `else` clauses + }, { + key: "elseIf", + value: function elseIf(condition) { + return this._elseNode(new If(condition)); + } + // `else` clause - only valid after `if` or `else if` clauses + }, { + key: "else", + value: function _else() { + return this._elseNode(new Else()); + } + // end `if` statement (needed if gen.if was used only with condition) + }, { + key: "endIf", + value: function endIf() { + return this._endBlockNode(If, Else); + } + }, { + key: "_for", + value: function _for(node, forBody) { + this._blockNode(node); + if (forBody) this.code(forBody).endFor(); + return this; + } + // a generic `for` clause (or statement if `forBody` is passed) + }, { + key: "for", + value: function _for(iteration, forBody) { + return this._for(new ForLoop(iteration), forBody); + } + // `for` statement for a range of values + }, { + key: "forRange", + value: function forRange(nameOrPrefix, from, to, forBody) { + var varKind = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.opts.es5 ? scope_1.varKinds["var"] : scope_1.varKinds["let"]; + var name = this._scope.toName(nameOrPrefix); + return this._for(new ForRange(varKind, name, from, to), function () { + return forBody(name); + }); + } + // `for-of` statement (in es5 mode replace with a normal for loop) + }, { + key: "forOf", + value: function forOf(nameOrPrefix, iterable, forBody) { + var _this15 = this; + var varKind = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : scope_1.varKinds["const"]; + var name = this._scope.toName(nameOrPrefix); + if (this.opts.es5) { + var arr = iterable instanceof code_1.Name ? iterable : this["var"]("_arr", iterable); + return this.forRange("_i", 0, (0, code_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["", ".length"])), arr), function (i) { + _this15["var"](name, (0, code_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", "[", "]"])), arr, i)); + forBody(name); + }); + } + return this._for(new ForIter("of", varKind, name, iterable), function () { + return forBody(name); + }); + } + // `for-in` statement. + // With option `ownProperties` replaced with a `for-of` loop for object keys + }, { + key: "forIn", + value: function forIn(nameOrPrefix, obj, forBody) { + var varKind = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.opts.es5 ? scope_1.varKinds["var"] : scope_1.varKinds["const"]; + if (this.opts.ownProperties) { + return this.forOf(nameOrPrefix, (0, code_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Object.keys(", ")"])), obj), forBody); + } + var name = this._scope.toName(nameOrPrefix); + return this._for(new ForIter("in", varKind, name, obj), function () { + return forBody(name); + }); + } + // end `for` loop + }, { + key: "endFor", + value: function endFor() { + return this._endBlockNode(For); + } + // `label` statement + }, { + key: "label", + value: function label(_label) { + return this._leafNode(new Label(_label)); + } + // `break` statement + }, { + key: "break", + value: function _break(label) { + return this._leafNode(new Break(label)); + } + // `return` statement + }, { + key: "return", + value: function _return(value) { + var node = new Return(); + this._blockNode(node); + this.code(value); + if (node.nodes.length !== 1) throw new Error('CodeGen: "return" should have one node'); + return this._endBlockNode(Return); + } + // `try` statement + }, { + key: "try", + value: function _try(tryBody, catchCode, finallyCode) { + if (!catchCode && !finallyCode) throw new Error('CodeGen: "try" without "catch" and "finally"'); + var node = new Try(); + this._blockNode(node); + this.code(tryBody); + if (catchCode) { + var error = this.name("e"); + this._currNode = node["catch"] = new Catch(error); + catchCode(error); + } + if (finallyCode) { + this._currNode = node["finally"] = new Finally(); + this.code(finallyCode); + } + return this._endBlockNode(Catch, Finally); + } + // `throw` statement + }, { + key: "throw", + value: function _throw(error) { + return this._leafNode(new Throw(error)); + } + // start self-balancing block + }, { + key: "block", + value: function block(body, nodeCount) { + this._blockStarts.push(this._nodes.length); + if (body) this.code(body).endBlock(nodeCount); + return this; + } + // end the current self-balancing block + }, { + key: "endBlock", + value: function endBlock(nodeCount) { + var len = this._blockStarts.pop(); + if (len === undefined) throw new Error("CodeGen: not in self-balancing block"); + var toClose = this._nodes.length - len; + if (toClose < 0 || nodeCount !== undefined && toClose !== nodeCount) { + throw new Error("CodeGen: wrong number of nodes: ".concat(toClose, " vs ").concat(nodeCount, " expected")); + } + this._nodes.length = len; + return this; + } + // `function` heading (or definition if funcBody is passed) + }, { + key: "func", + value: function func(name) { + var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : code_1.nil; + var async = arguments.length > 2 ? arguments[2] : undefined; + var funcBody = arguments.length > 3 ? arguments[3] : undefined; + this._blockNode(new Func(name, args, async)); + if (funcBody) this.code(funcBody).endFunc(); + return this; + } + // end function definition + }, { + key: "endFunc", + value: function endFunc() { + return this._endBlockNode(Func); + } + }, { + key: "optimize", + value: function optimize() { + var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + while (n-- > 0) { + this._root.optimizeNodes(); + this._root.optimizeNames(this._root.names, this._constants); + } + } + }, { + key: "_leafNode", + value: function _leafNode(node) { + this._currNode.nodes.push(node); + return this; + } + }, { + key: "_blockNode", + value: function _blockNode(node) { + this._currNode.nodes.push(node); + this._nodes.push(node); + } + }, { + key: "_endBlockNode", + value: function _endBlockNode(N1, N2) { + var n = this._currNode; + if (n instanceof N1 || N2 && n instanceof N2) { + this._nodes.pop(); + return this; + } + throw new Error("CodeGen: not in block \"".concat(N2 ? "".concat(N1.kind, "/").concat(N2.kind) : N1.kind, "\"")); + } + }, { + key: "_elseNode", + value: function _elseNode(node) { + var n = this._currNode; + if (!(n instanceof If)) { + throw new Error('CodeGen: "else" without "if"'); + } + this._currNode = n["else"] = node; + return this; + } + }, { + key: "_root", + get: function get() { + return this._nodes[0]; + } + }, { + key: "_currNode", + get: function get() { + var ns = this._nodes; + return ns[ns.length - 1]; + }, + set: function set(node) { + var ns = this._nodes; + ns[ns.length - 1] = node; + } + }]); + return CodeGen; +}(); +exports.CodeGen = CodeGen; +function addNames(names, from) { + for (var n in from) names[n] = (names[n] || 0) + (from[n] || 0); + return names; +} +function addExprNames(names, from) { + return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names; +} +function optimizeExpr(expr, names, constants) { + if (expr instanceof code_1.Name) return replaceName(expr); + if (!canOptimize(expr)) return expr; + return new code_1._Code(expr._items.reduce(function (items, c) { + if (c instanceof code_1.Name) c = replaceName(c); + if (c instanceof code_1._Code) items.push.apply(items, _toConsumableArray(c._items));else items.push(c); + return items; + }, [])); + function replaceName(n) { + var c = constants[n.str]; + if (c === undefined || names[n.str] !== 1) return n; + delete names[n.str]; + return c; + } + function canOptimize(e) { + return e instanceof code_1._Code && e._items.some(function (c) { + return c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined; + }); + } +} +function subtractNames(names, from) { + for (var n in from) names[n] = (names[n] || 0) - (from[n] || 0); +} +function not(x) { + return typeof x == "boolean" || typeof x == "number" || x === null ? !x : (0, code_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["!", ""])), par(x)); +} +exports.not = not; +var andCode = mappend(exports.operators.AND); +// boolean AND (&&) expression with the passed arguments +function and() { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + return args.reduce(andCode); +} +exports.and = and; +var orCode = mappend(exports.operators.OR); +// boolean OR (||) expression with the passed arguments +function or() { + for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + args[_key3] = arguments[_key3]; + } + return args.reduce(orCode); +} +exports.or = or; +function mappend(op) { + return function (x, y) { + return x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", " ", " ", ""])), par(x), op, par(y)); + }; +} +function par(x) { + return x instanceof code_1.Name ? x : (0, code_1._)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["(", ")"])), x); +} + +},{"./code":12,"./scope":14}],14:[function(require,module,exports){ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5; +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } +function _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf("[native code]") !== -1; } catch (e) { return typeof fn === "function"; } } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0; +var code_1 = require("./code"); +var ValueError = /*#__PURE__*/function (_Error) { + _inherits(ValueError, _Error); + var _super = _createSuper(ValueError); + function ValueError(name) { + var _this; + _classCallCheck(this, ValueError); + _this = _super.call(this, "CodeGen: \"code\" for ".concat(name, " not defined")); + _this.value = name.value; + return _this; + } + return _createClass(ValueError); +}( /*#__PURE__*/_wrapNativeSuper(Error)); +var UsedValueState; +(function (UsedValueState) { + UsedValueState[UsedValueState["Started"] = 0] = "Started"; + UsedValueState[UsedValueState["Completed"] = 1] = "Completed"; +})(UsedValueState = exports.UsedValueState || (exports.UsedValueState = {})); +exports.varKinds = { + "const": new code_1.Name("const"), + "let": new code_1.Name("let"), + "var": new code_1.Name("var") +}; +var Scope = /*#__PURE__*/function () { + function Scope() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + prefixes = _ref.prefixes, + parent = _ref.parent; + _classCallCheck(this, Scope); + this._names = {}; + this._prefixes = prefixes; + this._parent = parent; + } + _createClass(Scope, [{ + key: "toName", + value: function toName(nameOrPrefix) { + return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix); + } + }, { + key: "name", + value: function name(prefix) { + return new code_1.Name(this._newName(prefix)); + } + }, { + key: "_newName", + value: function _newName(prefix) { + var ng = this._names[prefix] || this._nameGroup(prefix); + return "".concat(prefix).concat(ng.index++); + } + }, { + key: "_nameGroup", + value: function _nameGroup(prefix) { + var _a, _b; + if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || this._prefixes && !this._prefixes.has(prefix)) { + throw new Error("CodeGen: prefix \"".concat(prefix, "\" is not allowed in this scope")); + } + return this._names[prefix] = { + prefix: prefix, + index: 0 + }; + } + }]); + return Scope; +}(); +exports.Scope = Scope; +var ValueScopeName = /*#__PURE__*/function (_code_1$Name) { + _inherits(ValueScopeName, _code_1$Name); + var _super2 = _createSuper(ValueScopeName); + function ValueScopeName(prefix, nameStr) { + var _this2; + _classCallCheck(this, ValueScopeName); + _this2 = _super2.call(this, nameStr); + _this2.prefix = prefix; + return _this2; + } + _createClass(ValueScopeName, [{ + key: "setValue", + value: function setValue(value, _ref2) { + var property = _ref2.property, + itemIndex = _ref2.itemIndex; + this.value = value; + this.scopePath = (0, code_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral([".", "[", "]"])), new code_1.Name(property), itemIndex); + } + }]); + return ValueScopeName; +}(code_1.Name); +exports.ValueScopeName = ValueScopeName; +var line = (0, code_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n"], ["\\n"]))); +var ValueScope = /*#__PURE__*/function (_Scope) { + _inherits(ValueScope, _Scope); + var _super3 = _createSuper(ValueScope); + function ValueScope(opts) { + var _this3; + _classCallCheck(this, ValueScope); + _this3 = _super3.call(this, opts); + _this3._values = {}; + _this3._scope = opts.scope; + _this3.opts = _objectSpread(_objectSpread({}, opts), {}, { + _n: opts.lines ? line : code_1.nil + }); + return _this3; + } + _createClass(ValueScope, [{ + key: "get", + value: function get() { + return this._scope; + } + }, { + key: "name", + value: function name(prefix) { + return new ValueScopeName(prefix, this._newName(prefix)); + } + }, { + key: "value", + value: function value(nameOrPrefix, _value) { + var _a; + if (_value.ref === undefined) throw new Error("CodeGen: ref must be passed in value"); + var name = this.toName(nameOrPrefix); + var prefix = name.prefix; + var valueKey = (_a = _value.key) !== null && _a !== void 0 ? _a : _value.ref; + var vs = this._values[prefix]; + if (vs) { + var _name = vs.get(valueKey); + if (_name) return _name; + } else { + vs = this._values[prefix] = new Map(); + } + vs.set(valueKey, name); + var s = this._scope[prefix] || (this._scope[prefix] = []); + var itemIndex = s.length; + s[itemIndex] = _value.ref; + name.setValue(_value, { + property: prefix, + itemIndex: itemIndex + }); + return name; + } + }, { + key: "getValue", + value: function getValue(prefix, keyOrRef) { + var vs = this._values[prefix]; + if (!vs) return; + return vs.get(keyOrRef); + } + }, { + key: "scopeRefs", + value: function scopeRefs(scopeName) { + var values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._values; + return this._reduceValues(values, function (name) { + if (name.scopePath === undefined) throw new Error("CodeGen: name \"".concat(name, "\" has no value")); + return (0, code_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", "", ""])), scopeName, name.scopePath); + }); + } + }, { + key: "scopeCode", + value: function scopeCode() { + var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._values; + var usedValues = arguments.length > 1 ? arguments[1] : undefined; + var getCode = arguments.length > 2 ? arguments[2] : undefined; + return this._reduceValues(values, function (name) { + if (name.value === undefined) throw new Error("CodeGen: name \"".concat(name, "\" has no value")); + return name.value.code; + }, usedValues, getCode); + } + }, { + key: "_reduceValues", + value: function _reduceValues(values, valueCode) { + var _this4 = this; + var usedValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var getCode = arguments.length > 3 ? arguments[3] : undefined; + var code = code_1.nil; + var _loop = function _loop() { + var vs = values[prefix]; + if (!vs) return 1; // continue + var nameSet = usedValues[prefix] = usedValues[prefix] || new Map(); + vs.forEach(function (name) { + if (nameSet.has(name)) return; + nameSet.set(name, UsedValueState.Started); + var c = valueCode(name); + if (c) { + var def = _this4.opts.es5 ? exports.varKinds["var"] : exports.varKinds["const"]; + code = (0, code_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", "", " ", " = ", ";", ""])), code, def, name, c, _this4.opts._n); + } else if (c = getCode === null || getCode === void 0 ? void 0 : getCode(name)) { + code = (0, code_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", "", "", ""])), code, c, _this4.opts._n); + } else { + throw new ValueError(name); + } + nameSet.set(name, UsedValueState.Completed); + }); + }; + for (var prefix in values) { + if (_loop()) continue; + } + return code; + } + }]); + return ValueScope; +}(Scope); +exports.ValueScope = ValueScope; + +},{"./code":12}],15:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0; +var codegen_1 = require("./codegen"); +var util_1 = require("./util"); +var names_1 = require("./names"); +exports.keywordError = { + message: function message(_ref) { + var keyword = _ref.keyword; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must pass \"", "\" keyword validation"])), keyword); + } +}; +exports.keyword$DataError = { + message: function message(_ref2) { + var keyword = _ref2.keyword, + schemaType = _ref2.schemaType; + return schemaType ? (0, codegen_1.str)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\"", "\" keyword must be ", " ($data)"])), keyword, schemaType) : (0, codegen_1.str)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\"", "\" keyword is invalid ($data)"])), keyword); + } +}; +function reportError(cxt) { + var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : exports.keywordError; + var errorPaths = arguments.length > 2 ? arguments[2] : undefined; + var overrideAllErrors = arguments.length > 3 ? arguments[3] : undefined; + var it = cxt.it; + var gen = it.gen, + compositeRule = it.compositeRule, + allErrors = it.allErrors; + var errObj = errorObjectCode(cxt, error, errorPaths); + if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : compositeRule || allErrors) { + addError(gen, errObj); + } else { + returnErrors(it, (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["[", "]"])), errObj)); + } +} +exports.reportError = reportError; +function reportExtraError(cxt) { + var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : exports.keywordError; + var errorPaths = arguments.length > 2 ? arguments[2] : undefined; + var it = cxt.it; + var gen = it.gen, + compositeRule = it.compositeRule, + allErrors = it.allErrors; + var errObj = errorObjectCode(cxt, error, errorPaths); + addError(gen, errObj); + if (!(compositeRule || allErrors)) { + returnErrors(it, names_1["default"].vErrors); + } +} +exports.reportExtraError = reportExtraError; +function resetErrorsCount(gen, errsCount) { + gen.assign(names_1["default"].errors, errsCount); + gen["if"]((0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", " !== null"])), names_1["default"].vErrors), function () { + return gen["if"](errsCount, function () { + return gen.assign((0, codegen_1._)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["", ".length"])), names_1["default"].vErrors), errsCount); + }, function () { + return gen.assign(names_1["default"].vErrors, null); + }); + }); +} +exports.resetErrorsCount = resetErrorsCount; +function extendErrors(_ref3) { + var gen = _ref3.gen, + keyword = _ref3.keyword, + schemaValue = _ref3.schemaValue, + data = _ref3.data, + errsCount = _ref3.errsCount, + it = _ref3.it; + /* istanbul ignore if */ + if (errsCount === undefined) throw new Error("ajv implementation error"); + var err = gen.name("err"); + gen.forRange("i", errsCount, names_1["default"].errors, function (i) { + gen["const"](err, (0, codegen_1._)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["", "[", "]"])), names_1["default"].vErrors, i)); + gen["if"]((0, codegen_1._)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["", ".instancePath === undefined"])), err), function () { + return gen.assign((0, codegen_1._)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["", ".instancePath"])), err), (0, codegen_1.strConcat)(names_1["default"].instancePath, it.errorPath)); + }); + gen.assign((0, codegen_1._)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["", ".schemaPath"])), err), (0, codegen_1.str)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["", "/", ""])), it.errSchemaPath, keyword)); + if (it.opts.verbose) { + gen.assign((0, codegen_1._)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["", ".schema"])), err), schemaValue); + gen.assign((0, codegen_1._)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["", ".data"])), err), data); + } + }); +} +exports.extendErrors = extendErrors; +function addError(gen, errObj) { + var err = gen["const"]("err", errObj); + gen["if"]((0, codegen_1._)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["", " === null"])), names_1["default"].vErrors), function () { + return gen.assign(names_1["default"].vErrors, (0, codegen_1._)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["[", "]"])), err)); + }, (0, codegen_1._)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["", ".push(", ")"])), names_1["default"].vErrors, err)); + gen.code((0, codegen_1._)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["", "++"])), names_1["default"].errors)); +} +function returnErrors(it, errs) { + var gen = it.gen, + validateName = it.validateName, + schemaEnv = it.schemaEnv; + if (schemaEnv.$async) { + gen["throw"]((0, codegen_1._)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["new ", "(", ")"])), it.ValidationError, errs)); + } else { + gen.assign((0, codegen_1._)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["", ".errors"])), validateName), errs); + gen["return"](false); + } +} +var E = { + keyword: new codegen_1.Name("keyword"), + schemaPath: new codegen_1.Name("schemaPath"), + params: new codegen_1.Name("params"), + propertyName: new codegen_1.Name("propertyName"), + message: new codegen_1.Name("message"), + schema: new codegen_1.Name("schema"), + parentSchema: new codegen_1.Name("parentSchema") +}; +function errorObjectCode(cxt, error, errorPaths) { + var createErrors = cxt.it.createErrors; + if (createErrors === false) return (0, codegen_1._)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["{}"]))); + return errorObject(cxt, error, errorPaths); +} +function errorObject(cxt, error) { + var errorPaths = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var gen = cxt.gen, + it = cxt.it; + var keyValues = [errorInstancePath(it, errorPaths), errorSchemaPath(cxt, errorPaths)]; + extraErrorProps(cxt, error, keyValues); + return gen.object.apply(gen, keyValues); +} +function errorInstancePath(_ref4, _ref5) { + var errorPath = _ref4.errorPath; + var instancePath = _ref5.instancePath; + var instPath = instancePath ? (0, codegen_1.str)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["", "", ""])), errorPath, (0, util_1.getErrorPath)(instancePath, util_1.Type.Str)) : errorPath; + return [names_1["default"].instancePath, (0, codegen_1.strConcat)(names_1["default"].instancePath, instPath)]; +} +function errorSchemaPath(_ref6, _ref7) { + var keyword = _ref6.keyword, + errSchemaPath = _ref6.it.errSchemaPath; + var schemaPath = _ref7.schemaPath, + parentSchema = _ref7.parentSchema; + var schPath = parentSchema ? errSchemaPath : (0, codegen_1.str)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["", "/", ""])), errSchemaPath, keyword); + if (schemaPath) { + schPath = (0, codegen_1.str)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["", "", ""])), schPath, (0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)); + } + return [E.schemaPath, schPath]; +} +function extraErrorProps(cxt, _ref8, keyValues) { + var params = _ref8.params, + message = _ref8.message; + var keyword = cxt.keyword, + data = cxt.data, + schemaValue = cxt.schemaValue, + it = cxt.it; + var opts = it.opts, + propertyName = it.propertyName, + topSchemaRef = it.topSchemaRef, + schemaPath = it.schemaPath; + keyValues.push([E.keyword, keyword], [E.params, typeof params == "function" ? params(cxt) : params || (0, codegen_1._)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["{}"])))]); + if (opts.messages) { + keyValues.push([E.message, typeof message == "function" ? message(cxt) : message]); + } + if (opts.verbose) { + keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["", "", ""])), topSchemaRef, schemaPath)], [names_1["default"].data, data]); + } + if (propertyName) keyValues.push([E.propertyName, propertyName]); +} + +},{"./codegen":13,"./names":17,"./util":21}],16:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2; +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0; +var codegen_1 = require("./codegen"); +var validation_error_1 = require("../runtime/validation_error"); +var names_1 = require("./names"); +var resolve_1 = require("./resolve"); +var util_1 = require("./util"); +var validate_1 = require("./validate"); +var SchemaEnv = /*#__PURE__*/_createClass(function SchemaEnv(env) { + _classCallCheck(this, SchemaEnv); + var _a; + this.refs = {}; + this.dynamicAnchors = {}; + var schema; + if (_typeof(env.schema) == "object") schema = env.schema; + this.schema = env.schema; + this.schemaId = env.schemaId; + this.root = env.root || this; + this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || "$id"]); + this.schemaPath = env.schemaPath; + this.localRefs = env.localRefs; + this.meta = env.meta; + this.$async = schema === null || schema === void 0 ? void 0 : schema.$async; + this.refs = {}; +}); +exports.SchemaEnv = SchemaEnv; +// let codeSize = 0 +// let nodeCount = 0 +// Compiles schema in SchemaEnv +function compileSchema(sch) { + // TODO refactor - remove compilations + var _sch = getCompilingSchema.call(this, sch); + if (_sch) return _sch; + var rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails + var _this$opts$code = this.opts.code, + es5 = _this$opts$code.es5, + lines = _this$opts$code.lines; + var ownProperties = this.opts.ownProperties; + var gen = new codegen_1.CodeGen(this.scope, { + es5: es5, + lines: lines, + ownProperties: ownProperties + }); + var _ValidationError; + if (sch.$async) { + _ValidationError = gen.scopeValue("Error", { + ref: validation_error_1["default"], + code: (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["require(\"ajv/dist/runtime/validation_error\").default"]))) + }); + } + var validateName = gen.scopeName("validate"); + sch.validateName = validateName; + var schemaCxt = { + gen: gen, + allErrors: this.opts.allErrors, + data: names_1["default"].data, + parentData: names_1["default"].parentData, + parentDataProperty: names_1["default"].parentDataProperty, + dataNames: [names_1["default"].data], + dataPathArr: [codegen_1.nil], + dataLevel: 0, + dataTypes: [], + definedProperties: new Set(), + topSchemaRef: gen.scopeValue("schema", this.opts.code.source === true ? { + ref: sch.schema, + code: (0, codegen_1.stringify)(sch.schema) + } : { + ref: sch.schema + }), + validateName: validateName, + ValidationError: _ValidationError, + schema: sch.schema, + schemaEnv: sch, + rootId: rootId, + baseId: sch.baseId || rootId, + schemaPath: codegen_1.nil, + errSchemaPath: sch.schemaPath || (this.opts.jtd ? "" : "#"), + errorPath: (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\"\""]))), + opts: this.opts, + self: this + }; + var sourceCode; + try { + this._compilations.add(sch); + (0, validate_1.validateFunctionCode)(schemaCxt); + gen.optimize(this.opts.code.optimize); + // gen.optimize(1) + var validateCode = gen.toString(); + sourceCode = "".concat(gen.scopeRefs(names_1["default"].scope), "return ").concat(validateCode); + // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount)) + if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch); + // console.log("\n\n\n *** \n", sourceCode) + var makeValidate = new Function("".concat(names_1["default"].self), "".concat(names_1["default"].scope), sourceCode); + var validate = makeValidate(this, this.scope.get()); + this.scope.value(validateName, { + ref: validate + }); + validate.errors = null; + validate.schema = sch.schema; + validate.schemaEnv = sch; + if (sch.$async) validate.$async = true; + if (this.opts.code.source === true) { + validate.source = { + validateName: validateName, + validateCode: validateCode, + scopeValues: gen._values + }; + } + if (this.opts.unevaluated) { + var props = schemaCxt.props, + items = schemaCxt.items; + validate.evaluated = { + props: props instanceof codegen_1.Name ? undefined : props, + items: items instanceof codegen_1.Name ? undefined : items, + dynamicProps: props instanceof codegen_1.Name, + dynamicItems: items instanceof codegen_1.Name + }; + if (validate.source) validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated); + } + sch.validate = validate; + return sch; + } catch (e) { + delete sch.validate; + delete sch.validateName; + if (sourceCode) this.logger.error("Error compiling schema, function code:", sourceCode); + // console.log("\n\n\n *** \n", sourceCode, this.opts) + throw e; + } finally { + this._compilations["delete"](sch); + } +} +exports.compileSchema = compileSchema; +function resolveRef(root, baseId, ref) { + var _a; + ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref); + var schOrFunc = root.refs[ref]; + if (schOrFunc) return schOrFunc; + var _sch = resolve.call(this, root, ref); + if (_sch === undefined) { + var schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv + var schemaId = this.opts.schemaId; + if (schema) _sch = new SchemaEnv({ + schema: schema, + schemaId: schemaId, + root: root, + baseId: baseId + }); + } + if (_sch === undefined) return; + return root.refs[ref] = inlineOrCompile.call(this, _sch); +} +exports.resolveRef = resolveRef; +function inlineOrCompile(sch) { + if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs)) return sch.schema; + return sch.validate ? sch : compileSchema.call(this, sch); +} +// Index of schema compilation in the currently compiled list +function getCompilingSchema(schEnv) { + var _iterator = _createForOfIteratorHelper(this._compilations), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var sch = _step.value; + if (sameSchemaEnv(sch, schEnv)) return sch; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } +} +exports.getCompilingSchema = getCompilingSchema; +function sameSchemaEnv(s1, s2) { + return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId; +} +// resolve and compile the references ($ref) +// TODO returns AnySchemaObject (if the schema can be inlined) or validation function +function resolve(root, +// information about the root schema for the current schema +ref // reference to resolve +) { + var sch; + while (typeof (sch = this.refs[ref]) == "string") ref = sch; + return sch || this.schemas[ref] || resolveSchema.call(this, root, ref); +} +// Resolve schema, its root and baseId +function resolveSchema(root, +// root object with properties schema, refs TODO below SchemaEnv is assigned to it +ref // reference to resolve +) { + var p = this.opts.uriResolver.parse(ref); + var refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p); + var baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined); + // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests + if (Object.keys(root.schema).length > 0 && refPath === baseId) { + return getJsonPointer.call(this, p, root); + } + var id = (0, resolve_1.normalizeId)(refPath); + var schOrRef = this.refs[id] || this.schemas[id]; + if (typeof schOrRef == "string") { + var sch = resolveSchema.call(this, root, schOrRef); + if (_typeof(sch === null || sch === void 0 ? void 0 : sch.schema) !== "object") return; + return getJsonPointer.call(this, p, sch); + } + if (_typeof(schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== "object") return; + if (!schOrRef.validate) compileSchema.call(this, schOrRef); + if (id === (0, resolve_1.normalizeId)(ref)) { + var schema = schOrRef.schema; + var schemaId = this.opts.schemaId; + var schId = schema[schemaId]; + if (schId) baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId); + return new SchemaEnv({ + schema: schema, + schemaId: schemaId, + root: root, + baseId: baseId + }); + } + return getJsonPointer.call(this, p, schOrRef); +} +exports.resolveSchema = resolveSchema; +var PREVENT_SCOPE_CHANGE = new Set(["properties", "patternProperties", "enum", "dependencies", "definitions"]); +function getJsonPointer(parsedRef, _ref) { + var baseId = _ref.baseId, + schema = _ref.schema, + root = _ref.root; + var _a; + if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== "/") return; + var _iterator2 = _createForOfIteratorHelper(parsedRef.fragment.slice(1).split("/")), + _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var part = _step2.value; + if (typeof schema === "boolean") return; + var partSchema = schema[(0, util_1.unescapeFragment)(part)]; + if (partSchema === undefined) return; + schema = partSchema; + // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def? + var schId = _typeof(schema) === "object" && schema[this.opts.schemaId]; + if (!PREVENT_SCOPE_CHANGE.has(part) && schId) { + baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId); + } + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + var env; + if (typeof schema != "boolean" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) { + var $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref); + env = resolveSchema.call(this, root, $ref); + } + // even though resolution failed we need to return SchemaEnv to throw exception + // so that compileAsync loads missing schema. + var schemaId = this.opts.schemaId; + env = env || new SchemaEnv({ + schema: schema, + schemaId: schemaId, + root: root, + baseId: baseId + }); + if (env.schema !== env.root.schema) return env; + return undefined; +} + +},{"../runtime/validation_error":35,"./codegen":13,"./names":17,"./resolve":19,"./util":21,"./validate":26}],17:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("./codegen"); +var names = { + // validation function arguments + data: new codegen_1.Name("data"), + // args passed from referencing schema + valCxt: new codegen_1.Name("valCxt"), + instancePath: new codegen_1.Name("instancePath"), + parentData: new codegen_1.Name("parentData"), + parentDataProperty: new codegen_1.Name("parentDataProperty"), + rootData: new codegen_1.Name("rootData"), + dynamicAnchors: new codegen_1.Name("dynamicAnchors"), + // function scoped variables + vErrors: new codegen_1.Name("vErrors"), + errors: new codegen_1.Name("errors"), + "this": new codegen_1.Name("this"), + // "globals" + self: new codegen_1.Name("self"), + scope: new codegen_1.Name("scope"), + // JTD serialize/parse name for JSON string and position + json: new codegen_1.Name("json"), + jsonPos: new codegen_1.Name("jsonPos"), + jsonLen: new codegen_1.Name("jsonLen"), + jsonPart: new codegen_1.Name("jsonPart") +}; +exports["default"] = names; + +},{"./codegen":13}],18:[function(require,module,exports){ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } +function _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf("[native code]") !== -1; } catch (e) { return typeof fn === "function"; } } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var resolve_1 = require("./resolve"); +var MissingRefError = /*#__PURE__*/function (_Error) { + _inherits(MissingRefError, _Error); + var _super = _createSuper(MissingRefError); + function MissingRefError(resolver, baseId, ref, msg) { + var _this; + _classCallCheck(this, MissingRefError); + _this = _super.call(this, msg || "can't resolve reference ".concat(ref, " from id ").concat(baseId)); + _this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref); + _this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, _this.missingRef)); + return _this; + } + return _createClass(MissingRefError); +}( /*#__PURE__*/_wrapNativeSuper(Error)); +exports["default"] = MissingRefError; + +},{"./resolve":19}],19:[function(require,module,exports){ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0; +var util_1 = require("./util"); +var equal = require("fast-deep-equal"); +var traverse = require("json-schema-traverse"); +// TODO refactor to use keyword definitions +var SIMPLE_INLINED = new Set(["type", "format", "pattern", "maxLength", "minLength", "maxProperties", "minProperties", "maxItems", "minItems", "maximum", "minimum", "uniqueItems", "multipleOf", "required", "enum", "const"]); +function inlineRef(schema) { + var limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + if (typeof schema == "boolean") return true; + if (limit === true) return !hasRef(schema); + if (!limit) return false; + return countKeys(schema) <= limit; +} +exports.inlineRef = inlineRef; +var REF_KEYWORDS = new Set(["$ref", "$recursiveRef", "$recursiveAnchor", "$dynamicRef", "$dynamicAnchor"]); +function hasRef(schema) { + for (var key in schema) { + if (REF_KEYWORDS.has(key)) return true; + var sch = schema[key]; + if (Array.isArray(sch) && sch.some(hasRef)) return true; + if (_typeof(sch) == "object" && hasRef(sch)) return true; + } + return false; +} +function countKeys(schema) { + var count = 0; + for (var key in schema) { + if (key === "$ref") return Infinity; + count++; + if (SIMPLE_INLINED.has(key)) continue; + if (_typeof(schema[key]) == "object") { + (0, util_1.eachItem)(schema[key], function (sch) { + return count += countKeys(sch); + }); + } + if (count === Infinity) return Infinity; + } + return count; +} +function getFullPath(resolver) { + var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; + var normalize = arguments.length > 2 ? arguments[2] : undefined; + if (normalize !== false) id = normalizeId(id); + var p = resolver.parse(id); + return _getFullPath(resolver, p); +} +exports.getFullPath = getFullPath; +function _getFullPath(resolver, p) { + var serialized = resolver.serialize(p); + return serialized.split("#")[0] + "#"; +} +exports._getFullPath = _getFullPath; +var TRAILING_SLASH_HASH = /#\/?$/; +function normalizeId(id) { + return id ? id.replace(TRAILING_SLASH_HASH, "") : ""; +} +exports.normalizeId = normalizeId; +function resolveUrl(resolver, baseId, id) { + id = normalizeId(id); + return resolver.resolve(baseId, id); +} +exports.resolveUrl = resolveUrl; +var ANCHOR = /^[a-z_][-a-z0-9._]*$/i; +function getSchemaRefs(schema, baseId) { + var _this = this; + if (typeof schema == "boolean") return {}; + var _this$opts = this.opts, + schemaId = _this$opts.schemaId, + uriResolver = _this$opts.uriResolver; + var schId = normalizeId(schema[schemaId] || baseId); + var baseIds = { + "": schId + }; + var pathPrefix = getFullPath(uriResolver, schId, false); + var localRefs = {}; + var schemaRefs = new Set(); + traverse(schema, { + allKeys: true + }, function (sch, jsonPtr, _, parentJsonPtr) { + if (parentJsonPtr === undefined) return; + var fullPath = pathPrefix + jsonPtr; + var baseId = baseIds[parentJsonPtr]; + if (typeof sch[schemaId] == "string") baseId = addRef.call(_this, sch[schemaId]); + addAnchor.call(_this, sch.$anchor); + addAnchor.call(_this, sch.$dynamicAnchor); + baseIds[jsonPtr] = baseId; + function addRef(ref) { + // eslint-disable-next-line @typescript-eslint/unbound-method + var _resolve = this.opts.uriResolver.resolve; + ref = normalizeId(baseId ? _resolve(baseId, ref) : ref); + if (schemaRefs.has(ref)) throw ambiguos(ref); + schemaRefs.add(ref); + var schOrRef = this.refs[ref]; + if (typeof schOrRef == "string") schOrRef = this.refs[schOrRef]; + if (_typeof(schOrRef) == "object") { + checkAmbiguosRef(sch, schOrRef.schema, ref); + } else if (ref !== normalizeId(fullPath)) { + if (ref[0] === "#") { + checkAmbiguosRef(sch, localRefs[ref], ref); + localRefs[ref] = sch; + } else { + this.refs[ref] = fullPath; + } + } + return ref; + } + function addAnchor(anchor) { + if (typeof anchor == "string") { + if (!ANCHOR.test(anchor)) throw new Error("invalid anchor \"".concat(anchor, "\"")); + addRef.call(this, "#".concat(anchor)); + } + } + }); + return localRefs; + function checkAmbiguosRef(sch1, sch2, ref) { + if (sch2 !== undefined && !equal(sch1, sch2)) throw ambiguos(ref); + } + function ambiguos(ref) { + return new Error("reference \"".concat(ref, "\" resolves to more than one schema")); + } +} +exports.getSchemaRefs = getSchemaRefs; + +},{"./util":21,"fast-deep-equal":75,"json-schema-traverse":78}],20:[function(require,module,exports){ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getRules = exports.isJSONType = void 0; +var _jsonTypes = ["string", "number", "integer", "boolean", "null", "object", "array"]; +var jsonTypes = new Set(_jsonTypes); +function isJSONType(x) { + return typeof x == "string" && jsonTypes.has(x); +} +exports.isJSONType = isJSONType; +function getRules() { + var groups = { + number: { + type: "number", + rules: [] + }, + string: { + type: "string", + rules: [] + }, + array: { + type: "array", + rules: [] + }, + object: { + type: "object", + rules: [] + } + }; + return { + types: _objectSpread(_objectSpread({}, groups), {}, { + integer: true, + "boolean": true, + "null": true + }), + rules: [{ + rules: [] + }, groups.number, groups.string, groups.array, groups.object], + post: { + rules: [] + }, + all: {}, + keywords: {} + }; +} +exports.getRules = getRules; + +},{}],21:[function(require,module,exports){ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18; +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0; +var codegen_1 = require("./codegen"); +var code_1 = require("./codegen/code"); +// TODO refactor to use Set +function toHash(arr) { + var hash = {}; + var _iterator = _createForOfIteratorHelper(arr), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var item = _step.value; + hash[item] = true; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + return hash; +} +exports.toHash = toHash; +function alwaysValidSchema(it, schema) { + if (typeof schema == "boolean") return schema; + if (Object.keys(schema).length === 0) return true; + checkUnknownRules(it, schema); + return !schemaHasRules(schema, it.self.RULES.all); +} +exports.alwaysValidSchema = alwaysValidSchema; +function checkUnknownRules(it) { + var schema = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : it.schema; + var opts = it.opts, + self = it.self; + if (!opts.strictSchema) return; + if (typeof schema === "boolean") return; + var rules = self.RULES.keywords; + for (var key in schema) { + if (!rules[key]) checkStrictMode(it, "unknown keyword: \"".concat(key, "\"")); + } +} +exports.checkUnknownRules = checkUnknownRules; +function schemaHasRules(schema, rules) { + if (typeof schema == "boolean") return !schema; + for (var key in schema) if (rules[key]) return true; + return false; +} +exports.schemaHasRules = schemaHasRules; +function schemaHasRulesButRef(schema, RULES) { + if (typeof schema == "boolean") return !schema; + for (var key in schema) if (key !== "$ref" && RULES.all[key]) return true; + return false; +} +exports.schemaHasRulesButRef = schemaHasRulesButRef; +function schemaRefOrVal(_ref, schema, keyword, $data) { + var topSchemaRef = _ref.topSchemaRef, + schemaPath = _ref.schemaPath; + if (!$data) { + if (typeof schema == "number" || typeof schema == "boolean") return schema; + if (typeof schema == "string") return (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["", ""])), schema); + } + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", "", "", ""])), topSchemaRef, schemaPath, (0, codegen_1.getProperty)(keyword)); +} +exports.schemaRefOrVal = schemaRefOrVal; +function unescapeFragment(str) { + return unescapeJsonPointer(decodeURIComponent(str)); +} +exports.unescapeFragment = unescapeFragment; +function escapeFragment(str) { + return encodeURIComponent(escapeJsonPointer(str)); +} +exports.escapeFragment = escapeFragment; +function escapeJsonPointer(str) { + if (typeof str == "number") return "".concat(str); + return str.replace(/~/g, "~0").replace(/\//g, "~1"); +} +exports.escapeJsonPointer = escapeJsonPointer; +function unescapeJsonPointer(str) { + return str.replace(/~1/g, "/").replace(/~0/g, "~"); +} +exports.unescapeJsonPointer = unescapeJsonPointer; +function eachItem(xs, f) { + if (Array.isArray(xs)) { + var _iterator2 = _createForOfIteratorHelper(xs), + _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var x = _step2.value; + f(x); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + } else { + f(xs); + } +} +exports.eachItem = eachItem; +function makeMergeEvaluated(_ref2) { + var mergeNames = _ref2.mergeNames, + mergeToName = _ref2.mergeToName, + mergeValues = _ref2.mergeValues, + resultToName = _ref2.resultToName; + return function (gen, from, to, toName) { + var res = to === undefined ? from : to instanceof codegen_1.Name ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to) : from instanceof codegen_1.Name ? (mergeToName(gen, to, from), from) : mergeValues(from, to); + return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res; + }; +} +exports.mergeEvaluated = { + props: makeMergeEvaluated({ + mergeNames: function mergeNames(gen, from, to) { + return gen["if"]((0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", " !== true && ", " !== undefined"])), to, from), function () { + gen["if"]((0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", " === true"])), from), function () { + return gen.assign(to, true); + }, function () { + return gen.assign(to, (0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", " || {}"])), to)).code((0, codegen_1._)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Object.assign(", ", ", ")"])), to, from)); + }); + }); + }, + mergeToName: function mergeToName(gen, from, to) { + return gen["if"]((0, codegen_1._)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["", " !== true"])), to), function () { + if (from === true) { + gen.assign(to, true); + } else { + gen.assign(to, (0, codegen_1._)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["", " || {}"])), to)); + setEvaluated(gen, to, from); + } + }); + }, + mergeValues: function mergeValues(from, to) { + return from === true ? true : _objectSpread(_objectSpread({}, from), to); + }, + resultToName: evaluatedPropsToName + }), + items: makeMergeEvaluated({ + mergeNames: function mergeNames(gen, from, to) { + return gen["if"]((0, codegen_1._)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["", " !== true && ", " !== undefined"])), to, from), function () { + return gen.assign(to, (0, codegen_1._)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["", " === true ? true : ", " > ", " ? ", " : ", ""])), from, to, from, to, from)); + }); + }, + mergeToName: function mergeToName(gen, from, to) { + return gen["if"]((0, codegen_1._)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["", " !== true"])), to), function () { + return gen.assign(to, from === true ? true : (0, codegen_1._)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["", " > ", " ? ", " : ", ""])), to, from, to, from)); + }); + }, + mergeValues: function mergeValues(from, to) { + return from === true ? true : Math.max(from, to); + }, + resultToName: function resultToName(gen, items) { + return gen["var"]("items", items); + } + }) +}; +function evaluatedPropsToName(gen, ps) { + if (ps === true) return gen["var"]("props", true); + var props = gen["var"]("props", (0, codegen_1._)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["{}"])))); + if (ps !== undefined) setEvaluated(gen, props, ps); + return props; +} +exports.evaluatedPropsToName = evaluatedPropsToName; +function setEvaluated(gen, props, ps) { + Object.keys(ps).forEach(function (p) { + return gen.assign((0, codegen_1._)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["", "", ""])), props, (0, codegen_1.getProperty)(p)), true); + }); +} +exports.setEvaluated = setEvaluated; +var snippets = {}; +function useFunc(gen, f) { + return gen.scopeValue("func", { + ref: f, + code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)) + }); +} +exports.useFunc = useFunc; +var Type; +(function (Type) { + Type[Type["Num"] = 0] = "Num"; + Type[Type["Str"] = 1] = "Str"; +})(Type = exports.Type || (exports.Type = {})); +function getErrorPath(dataProp, dataPropType, jsPropertySyntax) { + // let path + if (dataProp instanceof codegen_1.Name) { + var isNumber = dataPropType === Type.Num; + return jsPropertySyntax ? isNumber ? (0, codegen_1._)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\"[\" + ", " + \"]\""])), dataProp) : (0, codegen_1._)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\"['\" + ", " + \"']\""])), dataProp) : isNumber ? (0, codegen_1._)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\"/\" + ", ""])), dataProp) : (0, codegen_1._)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\"/\" + ", ".replace(/~/g, \"~0\").replace(/\\//g, \"~1\")"], ["\"/\" + ", ".replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")"])), dataProp); // TODO maybe use global escapePointer + } + return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : "/" + escapeJsonPointer(dataProp); +} +exports.getErrorPath = getErrorPath; +function checkStrictMode(it, msg) { + var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : it.opts.strictSchema; + if (!mode) return; + msg = "strict mode: ".concat(msg); + if (mode === true) throw new Error(msg); + it.self.logger.warn(msg); +} +exports.checkStrictMode = checkStrictMode; + +},{"./codegen":13,"./codegen/code":12}],22:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0; +function schemaHasRulesForType(_ref, type) { + var schema = _ref.schema, + self = _ref.self; + var group = self.RULES.types[type]; + return group && group !== true && shouldUseGroup(schema, group); +} +exports.schemaHasRulesForType = schemaHasRulesForType; +function shouldUseGroup(schema, group) { + return group.rules.some(function (rule) { + return shouldUseRule(schema, rule); + }); +} +exports.shouldUseGroup = shouldUseGroup; +function shouldUseRule(schema, rule) { + var _a; + return schema[rule.keyword] !== undefined || ((_a = rule.definition["implements"]) === null || _a === void 0 ? void 0 : _a.some(function (kwd) { + return schema[kwd] !== undefined; + })); +} +exports.shouldUseRule = shouldUseRule; + +},{}],23:[function(require,module,exports){ +"use strict"; + +var _templateObject; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0; +var errors_1 = require("../errors"); +var codegen_1 = require("../codegen"); +var names_1 = require("../names"); +var boolError = { + message: "boolean schema is false" +}; +function topBoolOrEmptySchema(it) { + var gen = it.gen, + schema = it.schema, + validateName = it.validateName; + if (schema === false) { + falseSchemaError(it, false); + } else if (_typeof(schema) == "object" && schema.$async === true) { + gen["return"](names_1["default"].data); + } else { + gen.assign((0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["", ".errors"])), validateName), null); + gen["return"](true); + } +} +exports.topBoolOrEmptySchema = topBoolOrEmptySchema; +function boolOrEmptySchema(it, valid) { + var gen = it.gen, + schema = it.schema; + if (schema === false) { + gen["var"](valid, false); // TODO var + falseSchemaError(it); + } else { + gen["var"](valid, true); // TODO var + } +} +exports.boolOrEmptySchema = boolOrEmptySchema; +function falseSchemaError(it, overrideAllErrors) { + var gen = it.gen, + data = it.data; + // TODO maybe some other interface should be used for non-keyword validation errors... + var cxt = { + gen: gen, + keyword: "false schema", + data: data, + schema: false, + schemaCode: false, + schemaValue: false, + params: {}, + it: it + }; + (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors); +} + +},{"../codegen":13,"../errors":15,"../names":17}],24:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33; +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0; +var rules_1 = require("../rules"); +var applicability_1 = require("./applicability"); +var errors_1 = require("../errors"); +var codegen_1 = require("../codegen"); +var util_1 = require("../util"); +var DataType; +(function (DataType) { + DataType[DataType["Correct"] = 0] = "Correct"; + DataType[DataType["Wrong"] = 1] = "Wrong"; +})(DataType = exports.DataType || (exports.DataType = {})); +function getSchemaTypes(schema) { + var types = getJSONTypes(schema.type); + var hasNull = types.includes("null"); + if (hasNull) { + if (schema.nullable === false) throw new Error("type: null contradicts nullable: false"); + } else { + if (!types.length && schema.nullable !== undefined) { + throw new Error('"nullable" cannot be used without "type"'); + } + if (schema.nullable === true) types.push("null"); + } + return types; +} +exports.getSchemaTypes = getSchemaTypes; +function getJSONTypes(ts) { + var types = Array.isArray(ts) ? ts : ts ? [ts] : []; + if (types.every(rules_1.isJSONType)) return types; + throw new Error("type must be JSONType or JSONType[]: " + types.join(",")); +} +exports.getJSONTypes = getJSONTypes; +function coerceAndCheckDataType(it, types) { + var gen = it.gen, + data = it.data, + opts = it.opts; + var coerceTo = coerceToTypes(types, opts.coerceTypes); + var checkTypes = types.length > 0 && !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0])); + if (checkTypes) { + var wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong); + gen["if"](wrongType, function () { + if (coerceTo.length) coerceData(it, types, coerceTo);else reportTypeError(it); + }); + } + return checkTypes; +} +exports.coerceAndCheckDataType = coerceAndCheckDataType; +var COERCIBLE = new Set(["string", "number", "integer", "boolean", "null"]); +function coerceToTypes(types, coerceTypes) { + return coerceTypes ? types.filter(function (t) { + return COERCIBLE.has(t) || coerceTypes === "array" && t === "array"; + }) : []; +} +function coerceData(it, types, coerceTo) { + var gen = it.gen, + data = it.data, + opts = it.opts; + var dataType = gen["let"]("dataType", (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["typeof ", ""])), data)); + var coerced = gen["let"]("coerced", (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["undefined"])))); + if (opts.coerceTypes === "array") { + gen["if"]((0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", " == 'object' && Array.isArray(", ") && ", ".length == 1"])), dataType, data, data), function () { + return gen.assign(data, (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", "[0]"])), data)).assign(dataType, (0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["typeof ", ""])), data))["if"](checkDataTypes(types, data, opts.strictNumbers), function () { + return gen.assign(coerced, data); + }); + }); + } + gen["if"]((0, codegen_1._)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["", " !== undefined"])), coerced)); + var _iterator = _createForOfIteratorHelper(coerceTo), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var t = _step.value; + if (COERCIBLE.has(t) || t === "array" && opts.coerceTypes === "array") { + coerceSpecificType(t); + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + gen["else"](); + reportTypeError(it); + gen.endIf(); + gen["if"]((0, codegen_1._)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["", " !== undefined"])), coerced), function () { + gen.assign(data, coerced); + assignParentData(it, coerced); + }); + function coerceSpecificType(t) { + switch (t) { + case "string": + gen.elseIf((0, codegen_1._)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["", " == \"number\" || ", " == \"boolean\""])), dataType, dataType)).assign(coerced, (0, codegen_1._)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\"\" + ", ""])), data)).elseIf((0, codegen_1._)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["", " === null"])), data)).assign(coerced, (0, codegen_1._)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\"\""])))); + return; + case "number": + gen.elseIf((0, codegen_1._)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["", " == \"boolean\" || ", " === null\n || (", " == \"string\" && ", " && ", " == +", ")"])), dataType, data, dataType, data, data, data)).assign(coerced, (0, codegen_1._)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["+", ""])), data)); + return; + case "integer": + gen.elseIf((0, codegen_1._)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["", " === \"boolean\" || ", " === null\n || (", " === \"string\" && ", " && ", " == +", " && !(", " % 1))"])), dataType, data, dataType, data, data, data, data)).assign(coerced, (0, codegen_1._)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["+", ""])), data)); + return; + case "boolean": + gen.elseIf((0, codegen_1._)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["", " === \"false\" || ", " === 0 || ", " === null"])), data, data, data)).assign(coerced, false).elseIf((0, codegen_1._)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["", " === \"true\" || ", " === 1"])), data, data)).assign(coerced, true); + return; + case "null": + gen.elseIf((0, codegen_1._)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["", " === \"\" || ", " === 0 || ", " === false"])), data, data, data)); + gen.assign(coerced, null); + return; + case "array": + gen.elseIf((0, codegen_1._)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["", " === \"string\" || ", " === \"number\"\n || ", " === \"boolean\" || ", " === null"])), dataType, dataType, dataType, data)).assign(coerced, (0, codegen_1._)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["[", "]"])), data)); + } + } +} +function assignParentData(_ref, expr) { + var gen = _ref.gen, + parentData = _ref.parentData, + parentDataProperty = _ref.parentDataProperty; + // TODO use gen.property + gen["if"]((0, codegen_1._)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["", " !== undefined"])), parentData), function () { + return gen.assign((0, codegen_1._)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["", "[", "]"])), parentData, parentDataProperty), expr); + }); +} +function checkDataType(dataType, data, strictNums) { + var correct = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DataType.Correct; + var EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ; + var cond; + switch (dataType) { + case "null": + return (0, codegen_1._)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["", " ", " null"])), data, EQ); + case "array": + cond = (0, codegen_1._)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["Array.isArray(", ")"])), data); + break; + case "object": + cond = (0, codegen_1._)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["", " && typeof ", " == \"object\" && !Array.isArray(", ")"])), data, data, data); + break; + case "integer": + cond = numCond((0, codegen_1._)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["!(", " % 1) && !isNaN(", ")"])), data, data)); + break; + case "number": + cond = numCond(); + break; + default: + return (0, codegen_1._)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["typeof ", " ", " ", ""])), data, EQ, dataType); + } + return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond); + function numCond() { + var _cond = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : codegen_1.nil; + return (0, codegen_1.and)((0, codegen_1._)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["typeof ", " == \"number\""])), data), _cond, strictNums ? (0, codegen_1._)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["isFinite(", ")"])), data) : codegen_1.nil); + } +} +exports.checkDataType = checkDataType; +function checkDataTypes(dataTypes, data, strictNums, correct) { + if (dataTypes.length === 1) { + return checkDataType(dataTypes[0], data, strictNums, correct); + } + var cond; + var types = (0, util_1.toHash)(dataTypes); + if (types.array && types.object) { + var notObj = (0, codegen_1._)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["typeof ", " != \"object\""])), data); + cond = types["null"] ? notObj : (0, codegen_1._)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["!", " || ", ""])), data, notObj); + delete types["null"]; + delete types.array; + delete types.object; + } else { + cond = codegen_1.nil; + } + if (types.number) delete types.integer; + for (var t in types) cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct)); + return cond; +} +exports.checkDataTypes = checkDataTypes; +var typeError = { + message: function message(_ref2) { + var schema = _ref2.schema; + return "must be ".concat(schema); + }, + params: function params(_ref3) { + var schema = _ref3.schema, + schemaValue = _ref3.schemaValue; + return typeof schema == "string" ? (0, codegen_1._)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["{type: ", "}"])), schema) : (0, codegen_1._)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["{type: ", "}"])), schemaValue); + } +}; +function reportTypeError(it) { + var cxt = getTypeErrorContext(it); + (0, errors_1.reportError)(cxt, typeError); +} +exports.reportTypeError = reportTypeError; +function getTypeErrorContext(it) { + var gen = it.gen, + data = it.data, + schema = it.schema; + var schemaCode = (0, util_1.schemaRefOrVal)(it, schema, "type"); + return { + gen: gen, + keyword: "type", + data: data, + schema: schema.type, + schemaCode: schemaCode, + schemaValue: schemaCode, + parentSchema: schema, + params: {}, + it: it + }; +} + +},{"../codegen":13,"../errors":15,"../rules":20,"../util":21,"./applicability":22}],25:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.assignDefaults = void 0; +var codegen_1 = require("../codegen"); +var util_1 = require("../util"); +function assignDefaults(it, ty) { + var _it$schema = it.schema, + properties = _it$schema.properties, + items = _it$schema.items; + if (ty === "object" && properties) { + for (var key in properties) { + assignDefault(it, key, properties[key]["default"]); + } + } else if (ty === "array" && Array.isArray(items)) { + items.forEach(function (sch, i) { + return assignDefault(it, i, sch["default"]); + }); + } +} +exports.assignDefaults = assignDefaults; +function assignDefault(it, prop, defaultValue) { + var gen = it.gen, + compositeRule = it.compositeRule, + data = it.data, + opts = it.opts; + if (defaultValue === undefined) return; + var childData = (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["", "", ""])), data, (0, codegen_1.getProperty)(prop)); + if (compositeRule) { + (0, util_1.checkStrictMode)(it, "default is ignored for: ".concat(childData)); + return; + } + var condition = (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", " === undefined"])), childData); + if (opts.useDefaults === "empty") { + condition = (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", " || ", " === null || ", " === \"\""])), condition, childData, childData); + } + // `${childData} === undefined` + + // (opts.useDefaults === "empty" ? ` || ${childData} === null || ${childData} === ""` : "") + gen["if"](condition, (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", " = ", ""])), childData, (0, codegen_1.stringify)(defaultValue))); +} + +},{"../codegen":13,"../util":21}],26:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39; +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0; +var boolSchema_1 = require("./boolSchema"); +var dataType_1 = require("./dataType"); +var applicability_1 = require("./applicability"); +var dataType_2 = require("./dataType"); +var defaults_1 = require("./defaults"); +var keyword_1 = require("./keyword"); +var subschema_1 = require("./subschema"); +var codegen_1 = require("../codegen"); +var names_1 = require("../names"); +var resolve_1 = require("../resolve"); +var util_1 = require("../util"); +var errors_1 = require("../errors"); +// schema compilation - generates validation function, subschemaCode (below) is used for subschemas +function validateFunctionCode(it) { + if (isSchemaObj(it)) { + checkKeywords(it); + if (schemaCxtHasRules(it)) { + topSchemaObjCode(it); + return; + } + } + validateFunction(it, function () { + return (0, boolSchema_1.topBoolOrEmptySchema)(it); + }); +} +exports.validateFunctionCode = validateFunctionCode; +function validateFunction(_ref, body) { + var gen = _ref.gen, + validateName = _ref.validateName, + schema = _ref.schema, + schemaEnv = _ref.schemaEnv, + opts = _ref.opts; + if (opts.code.es5) { + gen.func(validateName, (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["", ", ", ""])), names_1["default"].data, names_1["default"].valCxt), schemaEnv.$async, function () { + gen.code((0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\"use strict\"; ", ""])), funcSourceUrl(schema, opts))); + destructureValCxtES5(gen, opts); + gen.code(body); + }); + } else { + gen.func(validateName, (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", ", ", ""])), names_1["default"].data, destructureValCxt(opts)), schemaEnv.$async, function () { + return gen.code(funcSourceUrl(schema, opts)).code(body); + }); + } +} +function destructureValCxt(opts) { + return (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["{", "=\"\", ", ", ", ", ", "=", "", "}={}"])), names_1["default"].instancePath, names_1["default"].parentData, names_1["default"].parentDataProperty, names_1["default"].rootData, names_1["default"].data, opts.dynamicRef ? (0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([", ", "={}"])), names_1["default"].dynamicAnchors) : codegen_1.nil); +} +function destructureValCxtES5(gen, opts) { + gen["if"](names_1["default"].valCxt, function () { + gen["var"](names_1["default"].instancePath, (0, codegen_1._)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["", ".", ""])), names_1["default"].valCxt, names_1["default"].instancePath)); + gen["var"](names_1["default"].parentData, (0, codegen_1._)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["", ".", ""])), names_1["default"].valCxt, names_1["default"].parentData)); + gen["var"](names_1["default"].parentDataProperty, (0, codegen_1._)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["", ".", ""])), names_1["default"].valCxt, names_1["default"].parentDataProperty)); + gen["var"](names_1["default"].rootData, (0, codegen_1._)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["", ".", ""])), names_1["default"].valCxt, names_1["default"].rootData)); + if (opts.dynamicRef) gen["var"](names_1["default"].dynamicAnchors, (0, codegen_1._)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["", ".", ""])), names_1["default"].valCxt, names_1["default"].dynamicAnchors)); + }, function () { + gen["var"](names_1["default"].instancePath, (0, codegen_1._)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\"\""])))); + gen["var"](names_1["default"].parentData, (0, codegen_1._)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["undefined"])))); + gen["var"](names_1["default"].parentDataProperty, (0, codegen_1._)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["undefined"])))); + gen["var"](names_1["default"].rootData, names_1["default"].data); + if (opts.dynamicRef) gen["var"](names_1["default"].dynamicAnchors, (0, codegen_1._)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["{}"])))); + }); +} +function topSchemaObjCode(it) { + var schema = it.schema, + opts = it.opts, + gen = it.gen; + validateFunction(it, function () { + if (opts.$comment && schema.$comment) commentKeyword(it); + checkNoDefault(it); + gen["let"](names_1["default"].vErrors, null); + gen["let"](names_1["default"].errors, 0); + if (opts.unevaluated) resetEvaluated(it); + typeAndKeywords(it); + returnResults(it); + }); + return; +} +function resetEvaluated(it) { + // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated + var gen = it.gen, + validateName = it.validateName; + it.evaluated = gen["const"]("evaluated", (0, codegen_1._)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["", ".evaluated"])), validateName)); + gen["if"]((0, codegen_1._)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["", ".dynamicProps"])), it.evaluated), function () { + return gen.assign((0, codegen_1._)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["", ".props"])), it.evaluated), (0, codegen_1._)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["undefined"])))); + }); + gen["if"]((0, codegen_1._)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["", ".dynamicItems"])), it.evaluated), function () { + return gen.assign((0, codegen_1._)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["", ".items"])), it.evaluated), (0, codegen_1._)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["undefined"])))); + }); +} +function funcSourceUrl(schema, opts) { + var schId = _typeof(schema) == "object" && schema[opts.schemaId]; + return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["/*# sourceURL=", " */"])), schId) : codegen_1.nil; +} +// schema compilation - this function is used recursively to generate code for sub-schemas +function subschemaCode(it, valid) { + if (isSchemaObj(it)) { + checkKeywords(it); + if (schemaCxtHasRules(it)) { + subSchemaObjCode(it, valid); + return; + } + } + (0, boolSchema_1.boolOrEmptySchema)(it, valid); +} +function schemaCxtHasRules(_ref2) { + var schema = _ref2.schema, + self = _ref2.self; + if (typeof schema == "boolean") return !schema; + for (var key in schema) if (self.RULES.all[key]) return true; + return false; +} +function isSchemaObj(it) { + return typeof it.schema != "boolean"; +} +function subSchemaObjCode(it, valid) { + var schema = it.schema, + gen = it.gen, + opts = it.opts; + if (opts.$comment && schema.$comment) commentKeyword(it); + updateContext(it); + checkAsyncSchema(it); + var errsCount = gen["const"]("_errs", names_1["default"].errors); + typeAndKeywords(it, errsCount); + // TODO var + gen["var"](valid, (0, codegen_1._)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["", " === ", ""])), errsCount, names_1["default"].errors)); +} +function checkKeywords(it) { + (0, util_1.checkUnknownRules)(it); + checkRefsAndKeywords(it); +} +function typeAndKeywords(it, errsCount) { + if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount); + var types = (0, dataType_1.getSchemaTypes)(it.schema); + var checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types); + schemaKeywords(it, types, !checkedTypes, errsCount); +} +function checkRefsAndKeywords(it) { + var schema = it.schema, + errSchemaPath = it.errSchemaPath, + opts = it.opts, + self = it.self; + if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) { + self.logger.warn("$ref: keywords ignored in schema at path \"".concat(errSchemaPath, "\"")); + } +} +function checkNoDefault(it) { + var schema = it.schema, + opts = it.opts; + if (schema["default"] !== undefined && opts.useDefaults && opts.strictSchema) { + (0, util_1.checkStrictMode)(it, "default is ignored in the schema root"); + } +} +function updateContext(it) { + var schId = it.schema[it.opts.schemaId]; + if (schId) it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId); +} +function checkAsyncSchema(it) { + if (it.schema.$async && !it.schemaEnv.$async) throw new Error("async schema in sync schema"); +} +function commentKeyword(_ref3) { + var gen = _ref3.gen, + schemaEnv = _ref3.schemaEnv, + schema = _ref3.schema, + errSchemaPath = _ref3.errSchemaPath, + opts = _ref3.opts; + var msg = schema.$comment; + if (opts.$comment === true) { + gen.code((0, codegen_1._)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["", ".logger.log(", ")"])), names_1["default"].self, msg)); + } else if (typeof opts.$comment == "function") { + var schemaPath = (0, codegen_1.str)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["", "/$comment"])), errSchemaPath); + var rootName = gen.scopeValue("root", { + ref: schemaEnv.root + }); + gen.code((0, codegen_1._)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["", ".opts.$comment(", ", ", ", ", ".schema)"])), names_1["default"].self, msg, schemaPath, rootName)); + } +} +function returnResults(it) { + var gen = it.gen, + schemaEnv = it.schemaEnv, + validateName = it.validateName, + ValidationError = it.ValidationError, + opts = it.opts; + if (schemaEnv.$async) { + // TODO assign unevaluated + gen["if"]((0, codegen_1._)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["", " === 0"])), names_1["default"].errors), function () { + return gen["return"](names_1["default"].data); + }, function () { + return gen["throw"]((0, codegen_1._)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["new ", "(", ")"])), ValidationError, names_1["default"].vErrors)); + }); + } else { + gen.assign((0, codegen_1._)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["", ".errors"])), validateName), names_1["default"].vErrors); + if (opts.unevaluated) assignEvaluated(it); + gen["return"]((0, codegen_1._)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["", " === 0"])), names_1["default"].errors)); + } +} +function assignEvaluated(_ref4) { + var gen = _ref4.gen, + evaluated = _ref4.evaluated, + props = _ref4.props, + items = _ref4.items; + if (props instanceof codegen_1.Name) gen.assign((0, codegen_1._)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["", ".props"])), evaluated), props); + if (items instanceof codegen_1.Name) gen.assign((0, codegen_1._)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["", ".items"])), evaluated), items); +} +function schemaKeywords(it, types, typeErrors, errsCount) { + var gen = it.gen, + schema = it.schema, + data = it.data, + allErrors = it.allErrors, + opts = it.opts, + self = it.self; + var RULES = self.RULES; + if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) { + gen.block(function () { + return keywordCode(it, "$ref", RULES.all.$ref.definition); + }); // TODO typecast + return; + } + if (!opts.jtd) checkStrictTypes(it, types); + gen.block(function () { + var _iterator = _createForOfIteratorHelper(RULES.rules), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var group = _step.value; + groupKeywords(group); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + groupKeywords(RULES.post); + }); + function groupKeywords(group) { + if (!(0, applicability_1.shouldUseGroup)(schema, group)) return; + if (group.type) { + gen["if"]((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers)); + iterateKeywords(it, group); + if (types.length === 1 && types[0] === group.type && typeErrors) { + gen["else"](); + (0, dataType_2.reportTypeError)(it); + } + gen.endIf(); + } else { + iterateKeywords(it, group); + } + // TODO make it "ok" call? + if (!allErrors) gen["if"]((0, codegen_1._)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["", " === ", ""])), names_1["default"].errors, errsCount || 0)); + } +} +function iterateKeywords(it, group) { + var gen = it.gen, + schema = it.schema, + useDefaults = it.opts.useDefaults; + if (useDefaults) (0, defaults_1.assignDefaults)(it, group.type); + gen.block(function () { + var _iterator2 = _createForOfIteratorHelper(group.rules), + _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var rule = _step2.value; + if ((0, applicability_1.shouldUseRule)(schema, rule)) { + keywordCode(it, rule.keyword, rule.definition, group.type); + } + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + }); +} +function checkStrictTypes(it, types) { + if (it.schemaEnv.meta || !it.opts.strictTypes) return; + checkContextTypes(it, types); + if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types); + checkKeywordTypes(it, it.dataTypes); +} +function checkContextTypes(it, types) { + if (!types.length) return; + if (!it.dataTypes.length) { + it.dataTypes = types; + return; + } + types.forEach(function (t) { + if (!includesType(it.dataTypes, t)) { + strictTypesError(it, "type \"".concat(t, "\" not allowed by context \"").concat(it.dataTypes.join(","), "\"")); + } + }); + narrowSchemaTypes(it, types); +} +function checkMultipleTypes(it, ts) { + if (ts.length > 1 && !(ts.length === 2 && ts.includes("null"))) { + strictTypesError(it, "use allowUnionTypes to allow union type keyword"); + } +} +function checkKeywordTypes(it, ts) { + var rules = it.self.RULES.all; + for (var keyword in rules) { + var rule = rules[keyword]; + if (_typeof(rule) == "object" && (0, applicability_1.shouldUseRule)(it.schema, rule)) { + var type = rule.definition.type; + if (type.length && !type.some(function (t) { + return hasApplicableType(ts, t); + })) { + strictTypesError(it, "missing type \"".concat(type.join(","), "\" for keyword \"").concat(keyword, "\"")); + } + } + } +} +function hasApplicableType(schTs, kwdT) { + return schTs.includes(kwdT) || kwdT === "number" && schTs.includes("integer"); +} +function includesType(ts, t) { + return ts.includes(t) || t === "integer" && ts.includes("number"); +} +function narrowSchemaTypes(it, withTypes) { + var ts = []; + var _iterator3 = _createForOfIteratorHelper(it.dataTypes), + _step3; + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var t = _step3.value; + if (includesType(withTypes, t)) ts.push(t);else if (withTypes.includes("integer") && t === "number") ts.push("integer"); + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + it.dataTypes = ts; +} +function strictTypesError(it, msg) { + var schemaPath = it.schemaEnv.baseId + it.errSchemaPath; + msg += " at \"".concat(schemaPath, "\" (strictTypes)"); + (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes); +} +var KeywordCxt = /*#__PURE__*/function () { + function KeywordCxt(it, def, keyword) { + _classCallCheck(this, KeywordCxt); + (0, keyword_1.validateKeywordUsage)(it, def, keyword); + this.gen = it.gen; + this.allErrors = it.allErrors; + this.keyword = keyword; + this.data = it.data; + this.schema = it.schema[keyword]; + this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data; + this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data); + this.schemaType = def.schemaType; + this.parentSchema = it.schema; + this.params = {}; + this.it = it; + this.def = def; + if (this.$data) { + this.schemaCode = it.gen["const"]("vSchema", getData(this.$data, it)); + } else { + this.schemaCode = this.schemaValue; + if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) { + throw new Error("".concat(keyword, " value must be ").concat(JSON.stringify(def.schemaType))); + } + } + if ("code" in def ? def.trackErrors : def.errors !== false) { + this.errsCount = it.gen["const"]("_errs", names_1["default"].errors); + } + } + _createClass(KeywordCxt, [{ + key: "result", + value: function result(condition, successAction, failAction) { + this.failResult((0, codegen_1.not)(condition), successAction, failAction); + } + }, { + key: "failResult", + value: function failResult(condition, successAction, failAction) { + this.gen["if"](condition); + if (failAction) failAction();else this.error(); + if (successAction) { + this.gen["else"](); + successAction(); + if (this.allErrors) this.gen.endIf(); + } else { + if (this.allErrors) this.gen.endIf();else this.gen["else"](); + } + } + }, { + key: "pass", + value: function pass(condition, failAction) { + this.failResult((0, codegen_1.not)(condition), undefined, failAction); + } + }, { + key: "fail", + value: function fail(condition) { + if (condition === undefined) { + this.error(); + if (!this.allErrors) this.gen["if"](false); // this branch will be removed by gen.optimize + return; + } + this.gen["if"](condition); + this.error(); + if (this.allErrors) this.gen.endIf();else this.gen["else"](); + } + }, { + key: "fail$data", + value: function fail$data(condition) { + if (!this.$data) return this.fail(condition); + var schemaCode = this.schemaCode; + this.fail((0, codegen_1._)(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["", " !== undefined && (", ")"])), schemaCode, (0, codegen_1.or)(this.invalid$data(), condition))); + } + }, { + key: "error", + value: function error(append, errorParams, errorPaths) { + if (errorParams) { + this.setParams(errorParams); + this._error(append, errorPaths); + this.setParams({}); + return; + } + this._error(append, errorPaths); + } + }, { + key: "_error", + value: function _error(append, errorPaths) { + ; + (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths); + } + }, { + key: "$dataError", + value: function $dataError() { + (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError); + } + }, { + key: "reset", + value: function reset() { + if (this.errsCount === undefined) throw new Error('add "trackErrors" to keyword definition'); + (0, errors_1.resetErrorsCount)(this.gen, this.errsCount); + } + }, { + key: "ok", + value: function ok(cond) { + if (!this.allErrors) this.gen["if"](cond); + } + }, { + key: "setParams", + value: function setParams(obj, assign) { + if (assign) Object.assign(this.params, obj);else this.params = obj; + } + }, { + key: "block$data", + value: function block$data(valid, codeBlock) { + var _this = this; + var $dataValid = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : codegen_1.nil; + this.gen.block(function () { + _this.check$data(valid, $dataValid); + codeBlock(); + }); + } + }, { + key: "check$data", + value: function check$data() { + var valid = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : codegen_1.nil; + var $dataValid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : codegen_1.nil; + if (!this.$data) return; + var gen = this.gen, + schemaCode = this.schemaCode, + schemaType = this.schemaType, + def = this.def; + gen["if"]((0, codegen_1.or)((0, codegen_1._)(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["", " === undefined"])), schemaCode), $dataValid)); + if (valid !== codegen_1.nil) gen.assign(valid, true); + if (schemaType.length || def.validateSchema) { + gen.elseIf(this.invalid$data()); + this.$dataError(); + if (valid !== codegen_1.nil) gen.assign(valid, false); + } + gen["else"](); + } + }, { + key: "invalid$data", + value: function invalid$data() { + var gen = this.gen, + schemaCode = this.schemaCode, + schemaType = this.schemaType, + def = this.def, + it = this.it; + return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema()); + function wrong$DataType() { + if (schemaType.length) { + /* istanbul ignore if */ + if (!(schemaCode instanceof codegen_1.Name)) throw new Error("ajv implementation error"); + var st = Array.isArray(schemaType) ? schemaType : [schemaType]; + return (0, codegen_1._)(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["", ""])), (0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)); + } + return codegen_1.nil; + } + function invalid$DataSchema() { + if (def.validateSchema) { + var validateSchemaRef = gen.scopeValue("validate$data", { + ref: def.validateSchema + }); // TODO value.code for standalone + return (0, codegen_1._)(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["!", "(", ")"])), validateSchemaRef, schemaCode); + } + return codegen_1.nil; + } + } + }, { + key: "subschema", + value: function subschema(appl, valid) { + var subschema = (0, subschema_1.getSubschema)(this.it, appl); + (0, subschema_1.extendSubschemaData)(subschema, this.it, appl); + (0, subschema_1.extendSubschemaMode)(subschema, appl); + var nextContext = _objectSpread(_objectSpread(_objectSpread({}, this.it), subschema), {}, { + items: undefined, + props: undefined + }); + subschemaCode(nextContext, valid); + return nextContext; + } + }, { + key: "mergeEvaluated", + value: function mergeEvaluated(schemaCxt, toName) { + var it = this.it, + gen = this.gen; + if (!it.opts.unevaluated) return; + if (it.props !== true && schemaCxt.props !== undefined) { + it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName); + } + if (it.items !== true && schemaCxt.items !== undefined) { + it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName); + } + } + }, { + key: "mergeValidEvaluated", + value: function mergeValidEvaluated(schemaCxt, valid) { + var _this2 = this; + var it = this.it, + gen = this.gen; + if (it.opts.unevaluated && (it.props !== true || it.items !== true)) { + gen["if"](valid, function () { + return _this2.mergeEvaluated(schemaCxt, codegen_1.Name); + }); + return true; + } + } + }]); + return KeywordCxt; +}(); +exports.KeywordCxt = KeywordCxt; +function keywordCode(it, keyword, def, ruleType) { + var cxt = new KeywordCxt(it, def, keyword); + if ("code" in def) { + def.code(cxt, ruleType); + } else if (cxt.$data && def.validate) { + (0, keyword_1.funcKeywordCode)(cxt, def); + } else if ("macro" in def) { + (0, keyword_1.macroKeywordCode)(cxt, def); + } else if (def.compile || def.validate) { + (0, keyword_1.funcKeywordCode)(cxt, def); + } +} +var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/; +var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/; +function getData($data, _ref5) { + var dataLevel = _ref5.dataLevel, + dataNames = _ref5.dataNames, + dataPathArr = _ref5.dataPathArr; + var jsonPointer; + var data; + if ($data === "") return names_1["default"].rootData; + if ($data[0] === "/") { + if (!JSON_POINTER.test($data)) throw new Error("Invalid JSON-pointer: ".concat($data)); + jsonPointer = $data; + data = names_1["default"].rootData; + } else { + var matches = RELATIVE_JSON_POINTER.exec($data); + if (!matches) throw new Error("Invalid JSON-pointer: ".concat($data)); + var up = +matches[1]; + jsonPointer = matches[2]; + if (jsonPointer === "#") { + if (up >= dataLevel) throw new Error(errorMsg("property/index", up)); + return dataPathArr[dataLevel - up]; + } + if (up > dataLevel) throw new Error(errorMsg("data", up)); + data = dataNames[dataLevel - up]; + if (!jsonPointer) return data; + } + var expr = data; + var segments = jsonPointer.split("/"); + var _iterator4 = _createForOfIteratorHelper(segments), + _step4; + try { + for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { + var segment = _step4.value; + if (segment) { + data = (0, codegen_1._)(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral(["", "", ""])), data, (0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))); + expr = (0, codegen_1._)(_templateObject39 || (_templateObject39 = _taggedTemplateLiteral(["", " && ", ""])), expr, data); + } + } + } catch (err) { + _iterator4.e(err); + } finally { + _iterator4.f(); + } + return expr; + function errorMsg(pointerType, up) { + return "Cannot access ".concat(pointerType, " ").concat(up, " levels up, current level is ").concat(dataLevel); + } +} +exports.getData = getData; + +},{"../codegen":13,"../errors":15,"../names":17,"../resolve":19,"../util":21,"./applicability":22,"./boolSchema":23,"./dataType":24,"./defaults":25,"./keyword":27,"./subschema":28}],27:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10; +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0; +var codegen_1 = require("../codegen"); +var names_1 = require("../names"); +var code_1 = require("../../vocabularies/code"); +var errors_1 = require("../errors"); +function macroKeywordCode(cxt, def) { + var gen = cxt.gen, + keyword = cxt.keyword, + schema = cxt.schema, + parentSchema = cxt.parentSchema, + it = cxt.it; + var macroSchema = def.macro.call(it.self, schema, parentSchema, it); + var schemaRef = useKeyword(gen, keyword, macroSchema); + if (it.opts.validateSchema !== false) it.self.validateSchema(macroSchema, true); + var valid = gen.name("valid"); + cxt.subschema({ + schema: macroSchema, + schemaPath: codegen_1.nil, + errSchemaPath: "".concat(it.errSchemaPath, "/").concat(keyword), + topSchemaRef: schemaRef, + compositeRule: true + }, valid); + cxt.pass(valid, function () { + return cxt.error(true); + }); +} +exports.macroKeywordCode = macroKeywordCode; +function funcKeywordCode(cxt, def) { + var _a; + var gen = cxt.gen, + keyword = cxt.keyword, + schema = cxt.schema, + parentSchema = cxt.parentSchema, + $data = cxt.$data, + it = cxt.it; + checkAsyncKeyword(it, def); + var validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate; + var validateRef = useKeyword(gen, keyword, validate); + var valid = gen["let"]("valid"); + cxt.block$data(valid, validateKeyword); + cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid); + function validateKeyword() { + if (def.errors === false) { + assignValid(); + if (def.modifying) modifyData(cxt); + reportErrs(function () { + return cxt.error(); + }); + } else { + var ruleErrs = def.async ? validateAsync() : validateSync(); + if (def.modifying) modifyData(cxt); + reportErrs(function () { + return addErrs(cxt, ruleErrs); + }); + } + } + function validateAsync() { + var ruleErrs = gen["let"]("ruleErrs", null); + gen["try"](function () { + return assignValid((0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["await "])))); + }, function (e) { + return gen.assign(valid, false)["if"]((0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", " instanceof ", ""])), e, it.ValidationError), function () { + return gen.assign(ruleErrs, (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", ".errors"])), e)); + }, function () { + return gen["throw"](e); + }); + }); + return ruleErrs; + } + function validateSync() { + var validateErrs = (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", ".errors"])), validateRef); + gen.assign(validateErrs, null); + assignValid(codegen_1.nil); + return validateErrs; + } + function assignValid() { + var _await = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : def.async ? (0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["await "]))) : codegen_1.nil; + var passCxt = it.opts.passContext ? names_1["default"]["this"] : names_1["default"].self; + var passSchema = !("compile" in def && !$data || def.schema === false); + gen.assign(valid, (0, codegen_1._)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["", "", ""])), _await, (0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)), def.modifying); + } + function reportErrs(errors) { + var _a; + gen["if"]((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors); + } +} +exports.funcKeywordCode = funcKeywordCode; +function modifyData(cxt) { + var gen = cxt.gen, + data = cxt.data, + it = cxt.it; + gen["if"](it.parentData, function () { + return gen.assign(data, (0, codegen_1._)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["", "[", "]"])), it.parentData, it.parentDataProperty)); + }); +} +function addErrs(cxt, errs) { + var gen = cxt.gen; + gen["if"]((0, codegen_1._)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["Array.isArray(", ")"])), errs), function () { + gen.assign(names_1["default"].vErrors, (0, codegen_1._)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["", " === null ? ", " : ", ".concat(", ")"])), names_1["default"].vErrors, errs, names_1["default"].vErrors, errs)).assign(names_1["default"].errors, (0, codegen_1._)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["", ".length"])), names_1["default"].vErrors)); + (0, errors_1.extendErrors)(cxt); + }, function () { + return cxt.error(); + }); +} +function checkAsyncKeyword(_ref, def) { + var schemaEnv = _ref.schemaEnv; + if (def.async && !schemaEnv.$async) throw new Error("async keyword in sync schema"); +} +function useKeyword(gen, keyword, result) { + if (result === undefined) throw new Error("keyword \"".concat(keyword, "\" failed to compile")); + return gen.scopeValue("keyword", typeof result == "function" ? { + ref: result + } : { + ref: result, + code: (0, codegen_1.stringify)(result) + }); +} +function validSchemaType(schema, schemaType) { + var allowUndefined = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + // TODO add tests + return !schemaType.length || schemaType.some(function (st) { + return st === "array" ? Array.isArray(schema) : st === "object" ? schema && _typeof(schema) == "object" && !Array.isArray(schema) : _typeof(schema) == st || allowUndefined && typeof schema == "undefined"; + }); +} +exports.validSchemaType = validSchemaType; +function validateKeywordUsage(_ref2, def, keyword) { + var schema = _ref2.schema, + opts = _ref2.opts, + self = _ref2.self, + errSchemaPath = _ref2.errSchemaPath; + /* istanbul ignore if */ + if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) { + throw new Error("ajv implementation error"); + } + var deps = def.dependencies; + if (deps === null || deps === void 0 ? void 0 : deps.some(function (kwd) { + return !Object.prototype.hasOwnProperty.call(schema, kwd); + })) { + throw new Error("parent schema must have dependencies of ".concat(keyword, ": ").concat(deps.join(","))); + } + if (def.validateSchema) { + var valid = def.validateSchema(schema[keyword]); + if (!valid) { + var msg = "keyword \"".concat(keyword, "\" value is invalid at path \"").concat(errSchemaPath, "\": ") + self.errorsText(def.validateSchema.errors); + if (opts.validateSchema === "log") self.logger.error(msg);else throw new Error(msg); + } + } +} +exports.validateKeywordUsage = validateKeywordUsage; + +},{"../../vocabularies/code":53,"../codegen":13,"../errors":15,"../names":17}],28:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5; +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0; +var codegen_1 = require("../codegen"); +var util_1 = require("../util"); +function getSubschema(it, _ref) { + var keyword = _ref.keyword, + schemaProp = _ref.schemaProp, + schema = _ref.schema, + schemaPath = _ref.schemaPath, + errSchemaPath = _ref.errSchemaPath, + topSchemaRef = _ref.topSchemaRef; + if (keyword !== undefined && schema !== undefined) { + throw new Error('both "keyword" and "schema" passed, only one allowed'); + } + if (keyword !== undefined) { + var sch = it.schema[keyword]; + return schemaProp === undefined ? { + schema: sch, + schemaPath: (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["", "", ""])), it.schemaPath, (0, codegen_1.getProperty)(keyword)), + errSchemaPath: "".concat(it.errSchemaPath, "/").concat(keyword) + } : { + schema: sch[schemaProp], + schemaPath: (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", "", "", ""])), it.schemaPath, (0, codegen_1.getProperty)(keyword), (0, codegen_1.getProperty)(schemaProp)), + errSchemaPath: "".concat(it.errSchemaPath, "/").concat(keyword, "/").concat((0, util_1.escapeFragment)(schemaProp)) + }; + } + if (schema !== undefined) { + if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) { + throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"'); + } + return { + schema: schema, + schemaPath: schemaPath, + topSchemaRef: topSchemaRef, + errSchemaPath: errSchemaPath + }; + } + throw new Error('either "keyword" or "schema" must be passed'); +} +exports.getSubschema = getSubschema; +function extendSubschemaData(subschema, it, _ref2) { + var dataProp = _ref2.dataProp, + dpType = _ref2.dataPropType, + data = _ref2.data, + dataTypes = _ref2.dataTypes, + propertyName = _ref2.propertyName; + if (data !== undefined && dataProp !== undefined) { + throw new Error('both "data" and "dataProp" passed, only one allowed'); + } + var gen = it.gen; + if (dataProp !== undefined) { + var errorPath = it.errorPath, + dataPathArr = it.dataPathArr, + opts = it.opts; + var nextData = gen["let"]("data", (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", "", ""])), it.data, (0, codegen_1.getProperty)(dataProp)), true); + dataContextProps(nextData); + subschema.errorPath = (0, codegen_1.str)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", "", ""])), errorPath, (0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)); + subschema.parentDataProperty = (0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", ""])), dataProp); + subschema.dataPathArr = [].concat(_toConsumableArray(dataPathArr), [subschema.parentDataProperty]); + } + if (data !== undefined) { + var _nextData2 = data instanceof codegen_1.Name ? data : gen["let"]("data", data, true); // replaceable if used once? + dataContextProps(_nextData2); + if (propertyName !== undefined) subschema.propertyName = propertyName; + // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr + } + if (dataTypes) subschema.dataTypes = dataTypes; + function dataContextProps(_nextData) { + subschema.data = _nextData; + subschema.dataLevel = it.dataLevel + 1; + subschema.dataTypes = []; + it.definedProperties = new Set(); + subschema.parentData = it.data; + subschema.dataNames = [].concat(_toConsumableArray(it.dataNames), [_nextData]); + } +} +exports.extendSubschemaData = extendSubschemaData; +function extendSubschemaMode(subschema, _ref3) { + var jtdDiscriminator = _ref3.jtdDiscriminator, + jtdMetadata = _ref3.jtdMetadata, + compositeRule = _ref3.compositeRule, + createErrors = _ref3.createErrors, + allErrors = _ref3.allErrors; + if (compositeRule !== undefined) subschema.compositeRule = compositeRule; + if (createErrors !== undefined) subschema.createErrors = createErrors; + if (allErrors !== undefined) subschema.allErrors = allErrors; + subschema.jtdDiscriminator = jtdDiscriminator; // not inherited + subschema.jtdMetadata = jtdMetadata; // not inherited +} +exports.extendSubschemaMode = extendSubschemaMode; + +},{"../codegen":13,"../util":21}],29:[function(require,module,exports){ +"use strict"; + +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0; +var validate_1 = require("./compile/validate"); +Object.defineProperty(exports, "KeywordCxt", { + enumerable: true, + get: function get() { + return validate_1.KeywordCxt; + } +}); +var codegen_1 = require("./compile/codegen"); +Object.defineProperty(exports, "_", { + enumerable: true, + get: function get() { + return codegen_1._; + } +}); +Object.defineProperty(exports, "str", { + enumerable: true, + get: function get() { + return codegen_1.str; + } +}); +Object.defineProperty(exports, "stringify", { + enumerable: true, + get: function get() { + return codegen_1.stringify; + } +}); +Object.defineProperty(exports, "nil", { + enumerable: true, + get: function get() { + return codegen_1.nil; + } +}); +Object.defineProperty(exports, "Name", { + enumerable: true, + get: function get() { + return codegen_1.Name; + } +}); +Object.defineProperty(exports, "CodeGen", { + enumerable: true, + get: function get() { + return codegen_1.CodeGen; + } +}); +var validation_error_1 = require("./runtime/validation_error"); +var ref_error_1 = require("./compile/ref_error"); +var rules_1 = require("./compile/rules"); +var compile_1 = require("./compile"); +var codegen_2 = require("./compile/codegen"); +var resolve_1 = require("./compile/resolve"); +var dataType_1 = require("./compile/validate/dataType"); +var util_1 = require("./compile/util"); +var $dataRefSchema = require("./refs/data.json"); +var uri_1 = require("./runtime/uri"); +var defaultRegExp = function defaultRegExp(str, flags) { + return new RegExp(str, flags); +}; +defaultRegExp.code = "new RegExp"; +var META_IGNORE_OPTIONS = ["removeAdditional", "useDefaults", "coerceTypes"]; +var EXT_SCOPE_NAMES = new Set(["validate", "serialize", "parse", "wrapper", "root", "schema", "keyword", "pattern", "formats", "validate$data", "func", "obj", "Error"]); +var removedOptions = { + errorDataPath: "", + format: "`validateFormats: false` can be used instead.", + nullable: '"nullable" keyword is supported by default.', + jsonPointers: "Deprecated jsPropertySyntax can be used instead.", + extendRefs: "Deprecated ignoreKeywordsWithRef can be used instead.", + missingRefs: "Pass empty schema with $id that should be ignored to ajv.addSchema.", + processCode: "Use option `code: {process: (code, schemaEnv: object) => string}`", + sourceCode: "Use option `code: {source: true}`", + strictDefaults: "It is default now, see option `strict`.", + strictKeywords: "It is default now, see option `strict`.", + uniqueItems: '"uniqueItems" keyword is always validated.', + unknownFormats: "Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).", + cache: "Map is used as cache, schema object as key.", + serialize: "Map is used as cache, schema object as key.", + ajvErrors: "It is default now." +}; +var deprecatedOptions = { + ignoreKeywordsWithRef: "", + jsPropertySyntax: "", + unicode: '"minLength"/"maxLength" account for unicode characters by default.' +}; +var MAX_EXPRESSION = 200; +// eslint-disable-next-line complexity +function requiredOptions(o) { + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0; + var s = o.strict; + var _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize; + var optimize = _optz === true || _optz === undefined ? 1 : _optz || 0; + var regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp; + var uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1["default"]; + return { + strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true, + strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true, + strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : "log", + strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : "log", + strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false, + code: o.code ? _objectSpread(_objectSpread({}, o.code), {}, { + optimize: optimize, + regExp: regExp + }) : { + optimize: optimize, + regExp: regExp + }, + loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION, + loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION, + meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true, + messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true, + inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true, + schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : "$id", + addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true, + validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true, + validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true, + unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true, + int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true, + uriResolver: uriResolver + }; +} +var Ajv = /*#__PURE__*/function () { + function Ajv() { + var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + _classCallCheck(this, Ajv); + this.schemas = {}; + this.refs = {}; + this.formats = {}; + this._compilations = new Set(); + this._loading = {}; + this._cache = new Map(); + opts = this.opts = _objectSpread(_objectSpread({}, opts), requiredOptions(opts)); + var _this$opts$code = this.opts.code, + es5 = _this$opts$code.es5, + lines = _this$opts$code.lines; + this.scope = new codegen_2.ValueScope({ + scope: {}, + prefixes: EXT_SCOPE_NAMES, + es5: es5, + lines: lines + }); + this.logger = getLogger(opts.logger); + var formatOpt = opts.validateFormats; + opts.validateFormats = false; + this.RULES = (0, rules_1.getRules)(); + checkOptions.call(this, removedOptions, opts, "NOT SUPPORTED"); + checkOptions.call(this, deprecatedOptions, opts, "DEPRECATED", "warn"); + this._metaOpts = getMetaSchemaOptions.call(this); + if (opts.formats) addInitialFormats.call(this); + this._addVocabularies(); + this._addDefaultMetaSchema(); + if (opts.keywords) addInitialKeywords.call(this, opts.keywords); + if (_typeof(opts.meta) == "object") this.addMetaSchema(opts.meta); + addInitialSchemas.call(this); + opts.validateFormats = formatOpt; + } + _createClass(Ajv, [{ + key: "_addVocabularies", + value: function _addVocabularies() { + this.addKeyword("$async"); + } + }, { + key: "_addDefaultMetaSchema", + value: function _addDefaultMetaSchema() { + var _this$opts = this.opts, + $data = _this$opts.$data, + meta = _this$opts.meta, + schemaId = _this$opts.schemaId; + var _dataRefSchema = $dataRefSchema; + if (schemaId === "id") { + _dataRefSchema = _objectSpread({}, $dataRefSchema); + _dataRefSchema.id = _dataRefSchema.$id; + delete _dataRefSchema.$id; + } + if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false); + } + }, { + key: "defaultMeta", + value: function defaultMeta() { + var _this$opts2 = this.opts, + meta = _this$opts2.meta, + schemaId = _this$opts2.schemaId; + return this.opts.defaultMeta = _typeof(meta) == "object" ? meta[schemaId] || meta : undefined; + } + }, { + key: "validate", + value: function validate(schemaKeyRef, + // key, ref or schema object + data // to be validated + ) { + var v; + if (typeof schemaKeyRef == "string") { + v = this.getSchema(schemaKeyRef); + if (!v) throw new Error("no schema with key or ref \"".concat(schemaKeyRef, "\"")); + } else { + v = this.compile(schemaKeyRef); + } + var valid = v(data); + if (!("$async" in v)) this.errors = v.errors; + return valid; + } + }, { + key: "compile", + value: function compile(schema, _meta) { + var sch = this._addSchema(schema, _meta); + return sch.validate || this._compileSchemaEnv(sch); + } + }, { + key: "compileAsync", + value: function compileAsync(schema, meta) { + if (typeof this.opts.loadSchema != "function") { + throw new Error("options.loadSchema should be a function"); + } + var loadSchema = this.opts.loadSchema; + return runCompileAsync.call(this, schema, meta); + function runCompileAsync(_x2, _x3) { + return _runCompileAsync.apply(this, arguments); + } + function _runCompileAsync() { + _runCompileAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_schema, _meta) { + var sch; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return loadMetaSchema.call(this, _schema.$schema); + case 2: + sch = this._addSchema(_schema, _meta); + return _context.abrupt("return", sch.validate || _compileAsync.call(this, sch)); + case 4: + case "end": + return _context.stop(); + } + }, _callee, this); + })); + return _runCompileAsync.apply(this, arguments); + } + function loadMetaSchema(_x4) { + return _loadMetaSchema.apply(this, arguments); + } + function _loadMetaSchema() { + _loadMetaSchema = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2($ref) { + return _regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + if (!($ref && !this.getSchema($ref))) { + _context2.next = 3; + break; + } + _context2.next = 3; + return runCompileAsync.call(this, { + $ref: $ref + }, true); + case 3: + case "end": + return _context2.stop(); + } + }, _callee2, this); + })); + return _loadMetaSchema.apply(this, arguments); + } + function _compileAsync(_x5) { + return _compileAsync2.apply(this, arguments); + } + function _compileAsync2() { + _compileAsync2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(sch) { + return _regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + _context3.prev = 0; + return _context3.abrupt("return", this._compileSchemaEnv(sch)); + case 4: + _context3.prev = 4; + _context3.t0 = _context3["catch"](0); + if (_context3.t0 instanceof ref_error_1["default"]) { + _context3.next = 8; + break; + } + throw _context3.t0; + case 8: + checkLoaded.call(this, _context3.t0); + _context3.next = 11; + return loadMissingSchema.call(this, _context3.t0.missingSchema); + case 11: + return _context3.abrupt("return", _compileAsync.call(this, sch)); + case 12: + case "end": + return _context3.stop(); + } + }, _callee3, this, [[0, 4]]); + })); + return _compileAsync2.apply(this, arguments); + } + function checkLoaded(_ref) { + var ref = _ref.missingSchema, + missingRef = _ref.missingRef; + if (this.refs[ref]) { + throw new Error("AnySchema ".concat(ref, " is loaded but ").concat(missingRef, " cannot be resolved")); + } + } + function loadMissingSchema(_x6) { + return _loadMissingSchema.apply(this, arguments); + } + function _loadMissingSchema() { + _loadMissingSchema = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(ref) { + var _schema; + return _regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return _loadSchema.call(this, ref); + case 2: + _schema = _context4.sent; + if (this.refs[ref]) { + _context4.next = 6; + break; + } + _context4.next = 6; + return loadMetaSchema.call(this, _schema.$schema); + case 6: + if (!this.refs[ref]) this.addSchema(_schema, ref, meta); + case 7: + case "end": + return _context4.stop(); + } + }, _callee4, this); + })); + return _loadMissingSchema.apply(this, arguments); + } + function _loadSchema(_x7) { + return _loadSchema2.apply(this, arguments); + } + function _loadSchema2() { + _loadSchema2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(ref) { + var p; + return _regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + p = this._loading[ref]; + if (!p) { + _context5.next = 3; + break; + } + return _context5.abrupt("return", p); + case 3: + _context5.prev = 3; + _context5.next = 6; + return this._loading[ref] = loadSchema(ref); + case 6: + return _context5.abrupt("return", _context5.sent); + case 7: + _context5.prev = 7; + delete this._loading[ref]; + return _context5.finish(7); + case 10: + case "end": + return _context5.stop(); + } + }, _callee5, this, [[3,, 7, 10]]); + })); + return _loadSchema2.apply(this, arguments); + } + } + // Adds schema to the instance + }, { + key: "addSchema", + value: function addSchema(schema, + // If array is passed, `key` will be ignored + key, + // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`. + _meta) { + var _validateSchema = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.opts.validateSchema; + if (Array.isArray(schema)) { + var _iterator = _createForOfIteratorHelper(schema), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var sch = _step.value; + this.addSchema(sch, undefined, _meta, _validateSchema); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + return this; + } + var id; + if (_typeof(schema) === "object") { + var schemaId = this.opts.schemaId; + id = schema[schemaId]; + if (id !== undefined && typeof id != "string") { + throw new Error("schema ".concat(schemaId, " must be string")); + } + } + key = (0, resolve_1.normalizeId)(key || id); + this._checkUnique(key); + this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true); + return this; + } + // Add schema that will be used to validate other schemas + // options in META_IGNORE_OPTIONS are alway set to false + }, { + key: "addMetaSchema", + value: function addMetaSchema(schema, key) { + var _validateSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.opts.validateSchema; + this.addSchema(schema, key, true, _validateSchema); + return this; + } + // Validate schema against its meta-schema + }, { + key: "validateSchema", + value: function validateSchema(schema, throwOrLogError) { + if (typeof schema == "boolean") return true; + var $schema; + $schema = schema.$schema; + if ($schema !== undefined && typeof $schema != "string") { + throw new Error("$schema must be a string"); + } + $schema = $schema || this.opts.defaultMeta || this.defaultMeta(); + if (!$schema) { + this.logger.warn("meta-schema not available"); + this.errors = null; + return true; + } + var valid = this.validate($schema, schema); + if (!valid && throwOrLogError) { + var message = "schema is invalid: " + this.errorsText(); + if (this.opts.validateSchema === "log") this.logger.error(message);else throw new Error(message); + } + return valid; + } + // Get compiled schema by `key` or `ref`. + // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id) + }, { + key: "getSchema", + value: function getSchema(keyRef) { + var sch; + while (typeof (sch = getSchEnv.call(this, keyRef)) == "string") keyRef = sch; + if (sch === undefined) { + var schemaId = this.opts.schemaId; + var root = new compile_1.SchemaEnv({ + schema: {}, + schemaId: schemaId + }); + sch = compile_1.resolveSchema.call(this, root, keyRef); + if (!sch) return; + this.refs[keyRef] = sch; + } + return sch.validate || this._compileSchemaEnv(sch); + } + // Remove cached schema(s). + // If no parameter is passed all schemas but meta-schemas are removed. + // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed. + // Even if schema is referenced by other schemas it still can be removed as other schemas have local references. + }, { + key: "removeSchema", + value: function removeSchema(schemaKeyRef) { + if (schemaKeyRef instanceof RegExp) { + this._removeAllSchemas(this.schemas, schemaKeyRef); + this._removeAllSchemas(this.refs, schemaKeyRef); + return this; + } + switch (_typeof(schemaKeyRef)) { + case "undefined": + this._removeAllSchemas(this.schemas); + this._removeAllSchemas(this.refs); + this._cache.clear(); + return this; + case "string": + { + var sch = getSchEnv.call(this, schemaKeyRef); + if (_typeof(sch) == "object") this._cache["delete"](sch.schema); + delete this.schemas[schemaKeyRef]; + delete this.refs[schemaKeyRef]; + return this; + } + case "object": + { + var cacheKey = schemaKeyRef; + this._cache["delete"](cacheKey); + var id = schemaKeyRef[this.opts.schemaId]; + if (id) { + id = (0, resolve_1.normalizeId)(id); + delete this.schemas[id]; + delete this.refs[id]; + } + return this; + } + default: + throw new Error("ajv.removeSchema: invalid parameter"); + } + } + // add "vocabulary" - a collection of keywords + }, { + key: "addVocabulary", + value: function addVocabulary(definitions) { + var _iterator2 = _createForOfIteratorHelper(definitions), + _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var def = _step2.value; + this.addKeyword(def); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + return this; + } + }, { + key: "addKeyword", + value: function addKeyword(kwdOrDef, def // deprecated + ) { + var _this = this; + var keyword; + if (typeof kwdOrDef == "string") { + keyword = kwdOrDef; + if (_typeof(def) == "object") { + this.logger.warn("these parameters are deprecated, see docs for addKeyword"); + def.keyword = keyword; + } + } else if (_typeof(kwdOrDef) == "object" && def === undefined) { + def = kwdOrDef; + keyword = def.keyword; + if (Array.isArray(keyword) && !keyword.length) { + throw new Error("addKeywords: keyword must be string or non-empty array"); + } + } else { + throw new Error("invalid addKeywords parameters"); + } + checkKeyword.call(this, keyword, def); + if (!def) { + (0, util_1.eachItem)(keyword, function (kwd) { + return addRule.call(_this, kwd); + }); + return this; + } + keywordMetaschema.call(this, def); + var definition = _objectSpread(_objectSpread({}, def), {}, { + type: (0, dataType_1.getJSONTypes)(def.type), + schemaType: (0, dataType_1.getJSONTypes)(def.schemaType) + }); + (0, util_1.eachItem)(keyword, definition.type.length === 0 ? function (k) { + return addRule.call(_this, k, definition); + } : function (k) { + return definition.type.forEach(function (t) { + return addRule.call(_this, k, definition, t); + }); + }); + return this; + } + }, { + key: "getKeyword", + value: function getKeyword(keyword) { + var rule = this.RULES.all[keyword]; + return _typeof(rule) == "object" ? rule.definition : !!rule; + } + // Remove keyword + }, { + key: "removeKeyword", + value: function removeKeyword(keyword) { + // TODO return type should be Ajv + var RULES = this.RULES; + delete RULES.keywords[keyword]; + delete RULES.all[keyword]; + var _iterator3 = _createForOfIteratorHelper(RULES.rules), + _step3; + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var group = _step3.value; + var i = group.rules.findIndex(function (rule) { + return rule.keyword === keyword; + }); + if (i >= 0) group.rules.splice(i, 1); + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + return this; + } + // Add format + }, { + key: "addFormat", + value: function addFormat(name, format) { + if (typeof format == "string") format = new RegExp(format); + this.formats[name] = format; + return this; + } + }, { + key: "errorsText", + value: function errorsText() { + var errors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.errors; + var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref2$separator = _ref2.separator, + separator = _ref2$separator === void 0 ? ", " : _ref2$separator, + _ref2$dataVar = _ref2.dataVar, + dataVar = _ref2$dataVar === void 0 ? "data" : _ref2$dataVar; + if (!errors || errors.length === 0) return "No errors"; + return errors.map(function (e) { + return "".concat(dataVar).concat(e.instancePath, " ").concat(e.message); + }).reduce(function (text, msg) { + return text + separator + msg; + }); + } + }, { + key: "$dataMetaSchema", + value: function $dataMetaSchema(metaSchema, keywordsJsonPointers) { + var rules = this.RULES.all; + metaSchema = JSON.parse(JSON.stringify(metaSchema)); + var _iterator4 = _createForOfIteratorHelper(keywordsJsonPointers), + _step4; + try { + for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { + var jsonPointer = _step4.value; + var segments = jsonPointer.split("/").slice(1); // first segment is an empty string + var keywords = metaSchema; + var _iterator5 = _createForOfIteratorHelper(segments), + _step5; + try { + for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { + var seg = _step5.value; + keywords = keywords[seg]; + } + } catch (err) { + _iterator5.e(err); + } finally { + _iterator5.f(); + } + for (var key in rules) { + var rule = rules[key]; + if (_typeof(rule) != "object") continue; + var $data = rule.definition.$data; + var schema = keywords[key]; + if ($data && schema) keywords[key] = schemaOrData(schema); + } + } + } catch (err) { + _iterator4.e(err); + } finally { + _iterator4.f(); + } + return metaSchema; + } + }, { + key: "_removeAllSchemas", + value: function _removeAllSchemas(schemas, regex) { + for (var keyRef in schemas) { + var sch = schemas[keyRef]; + if (!regex || regex.test(keyRef)) { + if (typeof sch == "string") { + delete schemas[keyRef]; + } else if (sch && !sch.meta) { + this._cache["delete"](sch.schema); + delete schemas[keyRef]; + } + } + } + } + }, { + key: "_addSchema", + value: function _addSchema(schema, meta, baseId) { + var validateSchema = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.opts.validateSchema; + var addSchema = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.opts.addUsedSchema; + var id; + var schemaId = this.opts.schemaId; + if (_typeof(schema) == "object") { + id = schema[schemaId]; + } else { + if (this.opts.jtd) throw new Error("schema must be object");else if (typeof schema != "boolean") throw new Error("schema must be object or boolean"); + } + var sch = this._cache.get(schema); + if (sch !== undefined) return sch; + baseId = (0, resolve_1.normalizeId)(id || baseId); + var localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId); + sch = new compile_1.SchemaEnv({ + schema: schema, + schemaId: schemaId, + meta: meta, + baseId: baseId, + localRefs: localRefs + }); + this._cache.set(sch.schema, sch); + if (addSchema && !baseId.startsWith("#")) { + // TODO atm it is allowed to overwrite schemas without id (instead of not adding them) + if (baseId) this._checkUnique(baseId); + this.refs[baseId] = sch; + } + if (validateSchema) this.validateSchema(schema, true); + return sch; + } + }, { + key: "_checkUnique", + value: function _checkUnique(id) { + if (this.schemas[id] || this.refs[id]) { + throw new Error("schema with key or id \"".concat(id, "\" already exists")); + } + } + }, { + key: "_compileSchemaEnv", + value: function _compileSchemaEnv(sch) { + if (sch.meta) this._compileMetaSchema(sch);else compile_1.compileSchema.call(this, sch); + /* istanbul ignore if */ + if (!sch.validate) throw new Error("ajv implementation error"); + return sch.validate; + } + }, { + key: "_compileMetaSchema", + value: function _compileMetaSchema(sch) { + var currentOpts = this.opts; + this.opts = this._metaOpts; + try { + compile_1.compileSchema.call(this, sch); + } finally { + this.opts = currentOpts; + } + } + }]); + return Ajv; +}(); +exports["default"] = Ajv; +Ajv.ValidationError = validation_error_1["default"]; +Ajv.MissingRefError = ref_error_1["default"]; +function checkOptions(checkOpts, options, msg) { + var log = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "error"; + for (var key in checkOpts) { + var opt = key; + if (opt in options) this.logger[log]("".concat(msg, ": option ").concat(key, ". ").concat(checkOpts[opt])); + } +} +function getSchEnv(keyRef) { + keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line + return this.schemas[keyRef] || this.refs[keyRef]; +} +function addInitialSchemas() { + var optsSchemas = this.opts.schemas; + if (!optsSchemas) return; + if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas);else for (var key in optsSchemas) this.addSchema(optsSchemas[key], key); +} +function addInitialFormats() { + for (var name in this.opts.formats) { + var format = this.opts.formats[name]; + if (format) this.addFormat(name, format); + } +} +function addInitialKeywords(defs) { + if (Array.isArray(defs)) { + this.addVocabulary(defs); + return; + } + this.logger.warn("keywords option as map is deprecated, pass array"); + for (var keyword in defs) { + var def = defs[keyword]; + if (!def.keyword) def.keyword = keyword; + this.addKeyword(def); + } +} +function getMetaSchemaOptions() { + var metaOpts = _objectSpread({}, this.opts); + var _iterator6 = _createForOfIteratorHelper(META_IGNORE_OPTIONS), + _step6; + try { + for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { + var opt = _step6.value; + delete metaOpts[opt]; + } + } catch (err) { + _iterator6.e(err); + } finally { + _iterator6.f(); + } + return metaOpts; +} +var noLogs = { + log: function log() {}, + warn: function warn() {}, + error: function error() {} +}; +function getLogger(logger) { + if (logger === false) return noLogs; + if (logger === undefined) return console; + if (logger.log && logger.warn && logger.error) return logger; + throw new Error("logger must implement log, warn and error methods"); +} +var KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i; +function checkKeyword(keyword, def) { + var RULES = this.RULES; + (0, util_1.eachItem)(keyword, function (kwd) { + if (RULES.keywords[kwd]) throw new Error("Keyword ".concat(kwd, " is already defined")); + if (!KEYWORD_NAME.test(kwd)) throw new Error("Keyword ".concat(kwd, " has invalid name")); + }); + if (!def) return; + if (def.$data && !("code" in def || "validate" in def)) { + throw new Error('$data keyword must have "code" or "validate" function'); + } +} +function addRule(keyword, definition, dataType) { + var _this2 = this; + var _a; + var post = definition === null || definition === void 0 ? void 0 : definition.post; + if (dataType && post) throw new Error('keyword with "post" flag cannot have "type"'); + var RULES = this.RULES; + var ruleGroup = post ? RULES.post : RULES.rules.find(function (_ref3) { + var t = _ref3.type; + return t === dataType; + }); + if (!ruleGroup) { + ruleGroup = { + type: dataType, + rules: [] + }; + RULES.rules.push(ruleGroup); + } + RULES.keywords[keyword] = true; + if (!definition) return; + var rule = { + keyword: keyword, + definition: _objectSpread(_objectSpread({}, definition), {}, { + type: (0, dataType_1.getJSONTypes)(definition.type), + schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType) + }) + }; + if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before);else ruleGroup.rules.push(rule); + RULES.all[keyword] = rule; + (_a = definition["implements"]) === null || _a === void 0 ? void 0 : _a.forEach(function (kwd) { + return _this2.addKeyword(kwd); + }); +} +function addBeforeRule(ruleGroup, rule, before) { + var i = ruleGroup.rules.findIndex(function (_rule) { + return _rule.keyword === before; + }); + if (i >= 0) { + ruleGroup.rules.splice(i, 0, rule); + } else { + ruleGroup.rules.push(rule); + this.logger.warn("rule ".concat(before, " is not defined")); + } +} +function keywordMetaschema(def) { + var metaSchema = def.metaSchema; + if (metaSchema === undefined) return; + if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema); + def.validateSchema = this.compile(metaSchema, true); +} +var $dataRef = { + $ref: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#" +}; +function schemaOrData(schema) { + return { + anyOf: [schema, $dataRef] + }; +} + +},{"./compile":16,"./compile/codegen":13,"./compile/ref_error":18,"./compile/resolve":19,"./compile/rules":20,"./compile/util":21,"./compile/validate":26,"./compile/validate/dataType":24,"./refs/data.json":30,"./runtime/uri":34,"./runtime/validation_error":35}],30:[function(require,module,exports){ +module.exports={ + "$id": "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#", + "description": "Meta-schema for $data reference (JSON AnySchema extension proposal)", + "type": "object", + "required": ["$data"], + "properties": { + "$data": { + "type": "string", + "anyOf": [{"format": "relative-json-pointer"}, {"format": "json-pointer"}] + } + }, + "additionalProperties": false +} + +},{}],31:[function(require,module,exports){ +module.exports={ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://json-schema.org/draft-07/schema#", + "title": "Core schema meta-schema", + "definitions": { + "schemaArray": { + "type": "array", + "minItems": 1, + "items": {"$ref": "#"} + }, + "nonNegativeInteger": { + "type": "integer", + "minimum": 0 + }, + "nonNegativeIntegerDefault0": { + "allOf": [{"$ref": "#/definitions/nonNegativeInteger"}, {"default": 0}] + }, + "simpleTypes": { + "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] + }, + "stringArray": { + "type": "array", + "items": {"type": "string"}, + "uniqueItems": true, + "default": [] + } + }, + "type": ["object", "boolean"], + "properties": { + "$id": { + "type": "string", + "format": "uri-reference" + }, + "$schema": { + "type": "string", + "format": "uri" + }, + "$ref": { + "type": "string", + "format": "uri-reference" + }, + "$comment": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "default": true, + "readOnly": { + "type": "boolean", + "default": false + }, + "examples": { + "type": "array", + "items": true + }, + "multipleOf": { + "type": "number", + "exclusiveMinimum": 0 + }, + "maximum": { + "type": "number" + }, + "exclusiveMaximum": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "maxLength": {"$ref": "#/definitions/nonNegativeInteger"}, + "minLength": {"$ref": "#/definitions/nonNegativeIntegerDefault0"}, + "pattern": { + "type": "string", + "format": "regex" + }, + "additionalItems": {"$ref": "#"}, + "items": { + "anyOf": [{"$ref": "#"}, {"$ref": "#/definitions/schemaArray"}], + "default": true + }, + "maxItems": {"$ref": "#/definitions/nonNegativeInteger"}, + "minItems": {"$ref": "#/definitions/nonNegativeIntegerDefault0"}, + "uniqueItems": { + "type": "boolean", + "default": false + }, + "contains": {"$ref": "#"}, + "maxProperties": {"$ref": "#/definitions/nonNegativeInteger"}, + "minProperties": {"$ref": "#/definitions/nonNegativeIntegerDefault0"}, + "required": {"$ref": "#/definitions/stringArray"}, + "additionalProperties": {"$ref": "#"}, + "definitions": { + "type": "object", + "additionalProperties": {"$ref": "#"}, + "default": {} + }, + "properties": { + "type": "object", + "additionalProperties": {"$ref": "#"}, + "default": {} + }, + "patternProperties": { + "type": "object", + "additionalProperties": {"$ref": "#"}, + "propertyNames": {"format": "regex"}, + "default": {} + }, + "dependencies": { + "type": "object", + "additionalProperties": { + "anyOf": [{"$ref": "#"}, {"$ref": "#/definitions/stringArray"}] + } + }, + "propertyNames": {"$ref": "#"}, + "const": true, + "enum": { + "type": "array", + "items": true, + "minItems": 1, + "uniqueItems": true + }, + "type": { + "anyOf": [ + {"$ref": "#/definitions/simpleTypes"}, + { + "type": "array", + "items": {"$ref": "#/definitions/simpleTypes"}, + "minItems": 1, + "uniqueItems": true + } + ] + }, + "format": {"type": "string"}, + "contentMediaType": {"type": "string"}, + "contentEncoding": {"type": "string"}, + "if": {"$ref": "#"}, + "then": {"$ref": "#"}, + "else": {"$ref": "#"}, + "allOf": {"$ref": "#/definitions/schemaArray"}, + "anyOf": {"$ref": "#/definitions/schemaArray"}, + "oneOf": {"$ref": "#/definitions/schemaArray"}, + "not": {"$ref": "#"} + }, + "default": true +} + +},{}],32:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +// https://github.com/ajv-validator/ajv/issues/889 +var equal = require("fast-deep-equal"); +equal.code = 'require("ajv/dist/runtime/equal").default'; +exports["default"] = equal; + +},{"fast-deep-equal":75}],33:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +// https://mathiasbynens.be/notes/javascript-encoding +// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode +function ucs2length(str) { + var len = str.length; + var length = 0; + var pos = 0; + var value; + while (pos < len) { + length++; + value = str.charCodeAt(pos++); + if (value >= 0xd800 && value <= 0xdbff && pos < len) { + // high surrogate, and there is a next character + value = str.charCodeAt(pos); + if ((value & 0xfc00) === 0xdc00) pos++; // low surrogate + } + } + return length; +} +exports["default"] = ucs2length; +ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default'; + +},{}],34:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var uri = require("uri-js"); +uri.code = 'require("ajv/dist/runtime/uri").default'; +exports["default"] = uri; + +},{"uri-js":85}],35:[function(require,module,exports){ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } +function _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf("[native code]") !== -1; } catch (e) { return typeof fn === "function"; } } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ValidationError = /*#__PURE__*/function (_Error) { + _inherits(ValidationError, _Error); + var _super = _createSuper(ValidationError); + function ValidationError(errors) { + var _this; + _classCallCheck(this, ValidationError); + _this = _super.call(this, "validation failed"); + _this.errors = errors; + _this.ajv = _this.validation = true; + return _this; + } + return _createClass(ValidationError); +}( /*#__PURE__*/_wrapNativeSuper(Error)); +exports["default"] = ValidationError; + +},{}],36:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5; +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.validateAdditionalItems = void 0; +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var error = { + message: function message(_ref) { + var len = _ref.params.len; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must NOT have more than ", " items"])), len); + }, + params: function params(_ref2) { + var len = _ref2.params.len; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{limit: ", "}"])), len); + } +}; +var def = { + keyword: "additionalItems", + type: "array", + schemaType: ["boolean", "object"], + before: "uniqueItems", + error: error, + code: function code(cxt) { + var parentSchema = cxt.parentSchema, + it = cxt.it; + var items = parentSchema.items; + if (!Array.isArray(items)) { + (0, util_1.checkStrictMode)(it, '"additionalItems" is ignored when "items" is not an array of schemas'); + return; + } + validateAdditionalItems(cxt, items); + } +}; +function validateAdditionalItems(cxt, items) { + var gen = cxt.gen, + schema = cxt.schema, + data = cxt.data, + keyword = cxt.keyword, + it = cxt.it; + it.items = true; + var len = gen["const"]("len", (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", ".length"])), data)); + if (schema === false) { + cxt.setParams({ + len: items.length + }); + cxt.pass((0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", " <= ", ""])), len, items.length)); + } else if (_typeof(schema) == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) { + var valid = gen["var"]("valid", (0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", " <= ", ""])), len, items.length)); // TODO var + gen["if"]((0, codegen_1.not)(valid), function () { + return validateItems(valid); + }); + cxt.ok(valid); + } + function validateItems(valid) { + gen.forRange("i", items.length, len, function (i) { + cxt.subschema({ + keyword: keyword, + dataProp: i, + dataPropType: util_1.Type.Num + }, valid); + if (!it.allErrors) gen["if"]((0, codegen_1.not)(valid), function () { + return gen["break"](); + }); + }); + } +} +exports.validateAdditionalItems = validateAdditionalItems; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21}],37:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5; +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var code_1 = require("../code"); +var codegen_1 = require("../../compile/codegen"); +var names_1 = require("../../compile/names"); +var util_1 = require("../../compile/util"); +var error = { + message: "must NOT have additional properties", + params: function params(_ref) { + var _params = _ref.params; + return (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["{additionalProperty: ", "}"])), _params.additionalProperty); + } +}; +var def = { + keyword: "additionalProperties", + type: ["object"], + schemaType: ["boolean", "object"], + allowUndefined: true, + trackErrors: true, + error: error, + code: function code(cxt) { + var gen = cxt.gen, + schema = cxt.schema, + parentSchema = cxt.parentSchema, + data = cxt.data, + errsCount = cxt.errsCount, + it = cxt.it; + /* istanbul ignore if */ + if (!errsCount) throw new Error("ajv implementation error"); + var allErrors = it.allErrors, + opts = it.opts; + it.props = true; + if (opts.removeAdditional !== "all" && (0, util_1.alwaysValidSchema)(it, schema)) return; + var props = (0, code_1.allSchemaProperties)(parentSchema.properties); + var patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties); + checkAdditionalProperties(); + cxt.ok((0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", " === ", ""])), errsCount, names_1["default"].errors)); + function checkAdditionalProperties() { + gen.forIn("key", data, function (key) { + if (!props.length && !patProps.length) additionalPropertyCode(key);else gen["if"](isAdditional(key), function () { + return additionalPropertyCode(key); + }); + }); + } + function isAdditional(key) { + var definedProp; + if (props.length > 8) { + // TODO maybe an option instead of hard-coded 8? + var propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, "properties"); + definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key); + } else if (props.length) { + definedProp = (0, codegen_1.or).apply(void 0, _toConsumableArray(props.map(function (p) { + return (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", " === ", ""])), key, p); + }))); + } else { + definedProp = codegen_1.nil; + } + if (patProps.length) { + definedProp = (0, codegen_1.or).apply(void 0, [definedProp].concat(_toConsumableArray(patProps.map(function (p) { + return (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", ".test(", ")"])), (0, code_1.usePattern)(cxt, p), key); + })))); + } + return (0, codegen_1.not)(definedProp); + } + function deleteAdditional(key) { + gen.code((0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["delete ", "[", "]"])), data, key)); + } + function additionalPropertyCode(key) { + if (opts.removeAdditional === "all" || opts.removeAdditional && schema === false) { + deleteAdditional(key); + return; + } + if (schema === false) { + cxt.setParams({ + additionalProperty: key + }); + cxt.error(); + if (!allErrors) gen["break"](); + return; + } + if (_typeof(schema) == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) { + var valid = gen.name("valid"); + if (opts.removeAdditional === "failing") { + applyAdditionalSchema(key, valid, false); + gen["if"]((0, codegen_1.not)(valid), function () { + cxt.reset(); + deleteAdditional(key); + }); + } else { + applyAdditionalSchema(key, valid); + if (!allErrors) gen["if"]((0, codegen_1.not)(valid), function () { + return gen["break"](); + }); + } + } + } + function applyAdditionalSchema(key, valid, errors) { + var subschema = { + keyword: "additionalProperties", + dataProp: key, + dataPropType: util_1.Type.Str + }; + if (errors === false) { + Object.assign(subschema, { + compositeRule: true, + createErrors: false, + allErrors: false + }); + } + cxt.subschema(subschema, valid); + } + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/names":17,"../../compile/util":21,"../code":53}],38:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var util_1 = require("../../compile/util"); +var def = { + keyword: "allOf", + schemaType: "array", + code: function code(cxt) { + var gen = cxt.gen, + schema = cxt.schema, + it = cxt.it; + /* istanbul ignore if */ + if (!Array.isArray(schema)) throw new Error("ajv implementation error"); + var valid = gen.name("valid"); + schema.forEach(function (sch, i) { + if ((0, util_1.alwaysValidSchema)(it, sch)) return; + var schCxt = cxt.subschema({ + keyword: "allOf", + schemaProp: i + }, valid); + cxt.ok(valid); + cxt.mergeEvaluated(schCxt); + }); + } +}; +exports["default"] = def; + +},{"../../compile/util":21}],39:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var code_1 = require("../code"); +var def = { + keyword: "anyOf", + schemaType: "array", + trackErrors: true, + code: code_1.validateUnion, + error: { + message: "must match a schema in anyOf" + } +}; +exports["default"] = def; + +},{"../code":53}],40:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var error = { + message: function message(_ref) { + var _ref$params = _ref.params, + min = _ref$params.min, + max = _ref$params.max; + return max === undefined ? (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must contain at least ", " valid item(s)"])), min) : (0, codegen_1.str)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["must contain at least ", " and no more than ", " valid item(s)"])), min, max); + }, + params: function params(_ref2) { + var _ref2$params = _ref2.params, + min = _ref2$params.min, + max = _ref2$params.max; + return max === undefined ? (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["{minContains: ", "}"])), min) : (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["{minContains: ", ", maxContains: ", "}"])), min, max); + } +}; +var def = { + keyword: "contains", + type: "array", + schemaType: ["object", "boolean"], + before: "uniqueItems", + trackErrors: true, + error: error, + code: function code(cxt) { + var gen = cxt.gen, + schema = cxt.schema, + parentSchema = cxt.parentSchema, + data = cxt.data, + it = cxt.it; + var min; + var max; + var minContains = parentSchema.minContains, + maxContains = parentSchema.maxContains; + if (it.opts.next) { + min = minContains === undefined ? 1 : minContains; + max = maxContains; + } else { + min = 1; + } + var len = gen["const"]("len", (0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", ".length"])), data)); + cxt.setParams({ + min: min, + max: max + }); + if (max === undefined && min === 0) { + (0, util_1.checkStrictMode)(it, "\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored"); + return; + } + if (max !== undefined && min > max) { + (0, util_1.checkStrictMode)(it, "\"minContains\" > \"maxContains\" is always invalid"); + cxt.fail(); + return; + } + if ((0, util_1.alwaysValidSchema)(it, schema)) { + var cond = (0, codegen_1._)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["", " >= ", ""])), len, min); + if (max !== undefined) cond = (0, codegen_1._)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["", " && ", " <= ", ""])), cond, len, max); + cxt.pass(cond); + return; + } + it.items = true; + var valid = gen.name("valid"); + if (max === undefined && min === 1) { + validateItems(valid, function () { + return gen["if"](valid, function () { + return gen["break"](); + }); + }); + } else if (min === 0) { + gen["let"](valid, true); + if (max !== undefined) gen["if"]((0, codegen_1._)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["", ".length > 0"])), data), validateItemsWithCount); + } else { + gen["let"](valid, false); + validateItemsWithCount(); + } + cxt.result(valid, function () { + return cxt.reset(); + }); + function validateItemsWithCount() { + var schValid = gen.name("_valid"); + var count = gen["let"]("count", 0); + validateItems(schValid, function () { + return gen["if"](schValid, function () { + return checkLimits(count); + }); + }); + } + function validateItems(_valid, block) { + gen.forRange("i", 0, len, function (i) { + cxt.subschema({ + keyword: "contains", + dataProp: i, + dataPropType: util_1.Type.Num, + compositeRule: true + }, _valid); + block(); + }); + } + function checkLimits(count) { + gen.code((0, codegen_1._)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["", "++"])), count)); + if (max === undefined) { + gen["if"]((0, codegen_1._)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["", " >= ", ""])), count, min), function () { + return gen.assign(valid, true)["break"](); + }); + } else { + gen["if"]((0, codegen_1._)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["", " > ", ""])), count, max), function () { + return gen.assign(valid, false)["break"](); + }); + if (min === 1) gen.assign(valid, true);else gen["if"]((0, codegen_1._)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["", " >= ", ""])), count, min), function () { + return gen.assign(valid, true); + }); + } + } + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21}],41:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3; +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0; +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var code_1 = require("../code"); +exports.error = { + message: function message(_ref) { + var _ref$params = _ref.params, + property = _ref$params.property, + depsCount = _ref$params.depsCount, + deps = _ref$params.deps; + var property_ies = depsCount === 1 ? "property" : "properties"; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must have ", " ", " when property ", " is present"])), property_ies, deps, property); + }, + params: function params(_ref2) { + var _ref2$params = _ref2.params, + property = _ref2$params.property, + depsCount = _ref2$params.depsCount, + deps = _ref2$params.deps, + missingProperty = _ref2$params.missingProperty; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{property: ", ",\n missingProperty: ", ",\n depsCount: ", ",\n deps: ", "}"])), property, missingProperty, depsCount, deps); + } // TODO change to reference +}; +var def = { + keyword: "dependencies", + type: "object", + schemaType: "object", + error: exports.error, + code: function code(cxt) { + var _splitDependencies = splitDependencies(cxt), + _splitDependencies2 = _slicedToArray(_splitDependencies, 2), + propDeps = _splitDependencies2[0], + schDeps = _splitDependencies2[1]; + validatePropertyDeps(cxt, propDeps); + validateSchemaDeps(cxt, schDeps); + } +}; +function splitDependencies(_ref3) { + var schema = _ref3.schema; + var propertyDeps = {}; + var schemaDeps = {}; + for (var key in schema) { + if (key === "__proto__") continue; + var deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps; + deps[key] = schema[key]; + } + return [propertyDeps, schemaDeps]; +} +function validatePropertyDeps(cxt) { + var propertyDeps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : cxt.schema; + var gen = cxt.gen, + data = cxt.data, + it = cxt.it; + if (Object.keys(propertyDeps).length === 0) return; + var missing = gen["let"]("missing"); + var _loop = function _loop() { + var deps = propertyDeps[prop]; + if (deps.length === 0) return 1; // continue + var hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties); + cxt.setParams({ + property: prop, + depsCount: deps.length, + deps: deps.join(", ") + }); + if (it.allErrors) { + gen["if"](hasProperty, function () { + var _iterator = _createForOfIteratorHelper(deps), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var depProp = _step.value; + (0, code_1.checkReportMissingProp)(cxt, depProp); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + }); + } else { + gen["if"]((0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", " && (", ")"])), hasProperty, (0, code_1.checkMissingProp)(cxt, deps, missing))); + (0, code_1.reportMissingProp)(cxt, missing); + gen["else"](); + } + }; + for (var prop in propertyDeps) { + if (_loop()) continue; + } +} +exports.validatePropertyDeps = validatePropertyDeps; +function validateSchemaDeps(cxt) { + var schemaDeps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : cxt.schema; + var gen = cxt.gen, + data = cxt.data, + keyword = cxt.keyword, + it = cxt.it; + var valid = gen.name("valid"); + var _loop2 = function _loop2(prop) { + if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop])) return 1; // continue + gen["if"]((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), function () { + var schCxt = cxt.subschema({ + keyword: keyword, + schemaProp: prop + }, valid); + cxt.mergeValidEvaluated(schCxt, valid); + }, function () { + return gen["var"](valid, true); + } // TODO var + ); + cxt.ok(valid); + }; + for (var prop in schemaDeps) { + if (_loop2(prop)) continue; + } +} +exports.validateSchemaDeps = validateSchemaDeps; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21,"../code":53}],42:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var error = { + message: function message(_ref) { + var params = _ref.params; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must match \"", "\" schema"])), params.ifClause); + }, + params: function params(_ref2) { + var _params = _ref2.params; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{failingKeyword: ", "}"])), _params.ifClause); + } +}; +var def = { + keyword: "if", + schemaType: ["object", "boolean"], + trackErrors: true, + error: error, + code: function code(cxt) { + var gen = cxt.gen, + parentSchema = cxt.parentSchema, + it = cxt.it; + if (parentSchema.then === undefined && parentSchema["else"] === undefined) { + (0, util_1.checkStrictMode)(it, '"if" without "then" and "else" is ignored'); + } + var hasThen = hasSchema(it, "then"); + var hasElse = hasSchema(it, "else"); + if (!hasThen && !hasElse) return; + var valid = gen["let"]("valid", true); + var schValid = gen.name("_valid"); + validateIf(); + cxt.reset(); + if (hasThen && hasElse) { + var ifClause = gen["let"]("ifClause"); + cxt.setParams({ + ifClause: ifClause + }); + gen["if"](schValid, validateClause("then", ifClause), validateClause("else", ifClause)); + } else if (hasThen) { + gen["if"](schValid, validateClause("then")); + } else { + gen["if"]((0, codegen_1.not)(schValid), validateClause("else")); + } + cxt.pass(valid, function () { + return cxt.error(true); + }); + function validateIf() { + var schCxt = cxt.subschema({ + keyword: "if", + compositeRule: true, + createErrors: false, + allErrors: false + }, schValid); + cxt.mergeEvaluated(schCxt); + } + function validateClause(keyword, ifClause) { + return function () { + var schCxt = cxt.subschema({ + keyword: keyword + }, schValid); + gen.assign(valid, schValid); + cxt.mergeValidEvaluated(schCxt, valid); + if (ifClause) gen.assign(ifClause, (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", ""])), keyword));else cxt.setParams({ + ifClause: keyword + }); + }; + } + } +}; +function hasSchema(it, keyword) { + var schema = it.schema[keyword]; + return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema); +} +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21}],43:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var additionalItems_1 = require("./additionalItems"); +var prefixItems_1 = require("./prefixItems"); +var items_1 = require("./items"); +var items2020_1 = require("./items2020"); +var contains_1 = require("./contains"); +var dependencies_1 = require("./dependencies"); +var propertyNames_1 = require("./propertyNames"); +var additionalProperties_1 = require("./additionalProperties"); +var properties_1 = require("./properties"); +var patternProperties_1 = require("./patternProperties"); +var not_1 = require("./not"); +var anyOf_1 = require("./anyOf"); +var oneOf_1 = require("./oneOf"); +var allOf_1 = require("./allOf"); +var if_1 = require("./if"); +var thenElse_1 = require("./thenElse"); +function getApplicator() { + var draft2020 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var applicator = [ + // any + not_1["default"], anyOf_1["default"], oneOf_1["default"], allOf_1["default"], if_1["default"], thenElse_1["default"], + // object + propertyNames_1["default"], additionalProperties_1["default"], dependencies_1["default"], properties_1["default"], patternProperties_1["default"]]; + // array + if (draft2020) applicator.push(prefixItems_1["default"], items2020_1["default"]);else applicator.push(additionalItems_1["default"], items_1["default"]); + applicator.push(contains_1["default"]); + return applicator; +} +exports["default"] = getApplicator; + +},{"./additionalItems":36,"./additionalProperties":37,"./allOf":38,"./anyOf":39,"./contains":40,"./dependencies":41,"./if":42,"./items":44,"./items2020":45,"./not":46,"./oneOf":47,"./patternProperties":48,"./prefixItems":49,"./properties":50,"./propertyNames":51,"./thenElse":52}],44:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.validateTuple = void 0; +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var code_1 = require("../code"); +var def = { + keyword: "items", + type: "array", + schemaType: ["object", "array", "boolean"], + before: "uniqueItems", + code: function code(cxt) { + var schema = cxt.schema, + it = cxt.it; + if (Array.isArray(schema)) return validateTuple(cxt, "additionalItems", schema); + it.items = true; + if ((0, util_1.alwaysValidSchema)(it, schema)) return; + cxt.ok((0, code_1.validateArray)(cxt)); + } +}; +function validateTuple(cxt, extraItems) { + var schArr = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : cxt.schema; + var gen = cxt.gen, + parentSchema = cxt.parentSchema, + data = cxt.data, + keyword = cxt.keyword, + it = cxt.it; + checkStrictTuple(parentSchema); + if (it.opts.unevaluated && schArr.length && it.items !== true) { + it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items); + } + var valid = gen.name("valid"); + var len = gen["const"]("len", (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["", ".length"])), data)); + schArr.forEach(function (sch, i) { + if ((0, util_1.alwaysValidSchema)(it, sch)) return; + gen["if"]((0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", " > ", ""])), len, i), function () { + return cxt.subschema({ + keyword: keyword, + schemaProp: i, + dataProp: i + }, valid); + }); + cxt.ok(valid); + }); + function checkStrictTuple(sch) { + var opts = it.opts, + errSchemaPath = it.errSchemaPath; + var l = schArr.length; + var fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false); + if (opts.strictTuples && !fullTuple) { + var msg = "\"".concat(keyword, "\" is ").concat(l, "-tuple, but minItems or maxItems/").concat(extraItems, " are not specified or different at path \"").concat(errSchemaPath, "\""); + (0, util_1.checkStrictMode)(it, msg, opts.strictTuples); + } + } +} +exports.validateTuple = validateTuple; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21,"../code":53}],45:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var code_1 = require("../code"); +var additionalItems_1 = require("./additionalItems"); +var error = { + message: function message(_ref) { + var len = _ref.params.len; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must NOT have more than ", " items"])), len); + }, + params: function params(_ref2) { + var len = _ref2.params.len; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{limit: ", "}"])), len); + } +}; +var def = { + keyword: "items", + type: "array", + schemaType: ["object", "boolean"], + before: "uniqueItems", + error: error, + code: function code(cxt) { + var schema = cxt.schema, + parentSchema = cxt.parentSchema, + it = cxt.it; + var prefixItems = parentSchema.prefixItems; + it.items = true; + if ((0, util_1.alwaysValidSchema)(it, schema)) return; + if (prefixItems) (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);else cxt.ok((0, code_1.validateArray)(cxt)); + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21,"../code":53,"./additionalItems":36}],46:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var util_1 = require("../../compile/util"); +var def = { + keyword: "not", + schemaType: ["object", "boolean"], + trackErrors: true, + code: function code(cxt) { + var gen = cxt.gen, + schema = cxt.schema, + it = cxt.it; + if ((0, util_1.alwaysValidSchema)(it, schema)) { + cxt.fail(); + return; + } + var valid = gen.name("valid"); + cxt.subschema({ + keyword: "not", + compositeRule: true, + createErrors: false, + allErrors: false + }, valid); + cxt.failResult(valid, function () { + return cxt.reset(); + }, function () { + return cxt.error(); + }); + }, + error: { + message: "must NOT be valid" + } +}; +exports["default"] = def; + +},{"../../compile/util":21}],47:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var error = { + message: "must match exactly one schema in oneOf", + params: function params(_ref) { + var _params = _ref.params; + return (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["{passingSchemas: ", "}"])), _params.passing); + } +}; +var def = { + keyword: "oneOf", + schemaType: "array", + trackErrors: true, + error: error, + code: function code(cxt) { + var gen = cxt.gen, + schema = cxt.schema, + parentSchema = cxt.parentSchema, + it = cxt.it; + /* istanbul ignore if */ + if (!Array.isArray(schema)) throw new Error("ajv implementation error"); + if (it.opts.discriminator && parentSchema.discriminator) return; + var schArr = schema; + var valid = gen["let"]("valid", false); + var passing = gen["let"]("passing", null); + var schValid = gen.name("_valid"); + cxt.setParams({ + passing: passing + }); + // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas + gen.block(validateOneOf); + cxt.result(valid, function () { + return cxt.reset(); + }, function () { + return cxt.error(true); + }); + function validateOneOf() { + schArr.forEach(function (sch, i) { + var schCxt; + if ((0, util_1.alwaysValidSchema)(it, sch)) { + gen["var"](schValid, true); + } else { + schCxt = cxt.subschema({ + keyword: "oneOf", + schemaProp: i, + compositeRule: true + }, schValid); + } + if (i > 0) { + gen["if"]((0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", " && ", ""])), schValid, valid)).assign(valid, false).assign(passing, (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["[", ", ", "]"])), passing, i))["else"](); + } + gen["if"](schValid, function () { + gen.assign(valid, true); + gen.assign(passing, i); + if (schCxt) cxt.mergeEvaluated(schCxt, codegen_1.Name); + }); + }); + } + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21}],48:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var code_1 = require("../code"); +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var util_2 = require("../../compile/util"); +var def = { + keyword: "patternProperties", + type: "object", + schemaType: "object", + code: function code(cxt) { + var gen = cxt.gen, + schema = cxt.schema, + data = cxt.data, + parentSchema = cxt.parentSchema, + it = cxt.it; + var opts = it.opts; + var patterns = (0, code_1.allSchemaProperties)(schema); + var alwaysValidPatterns = patterns.filter(function (p) { + return (0, util_1.alwaysValidSchema)(it, schema[p]); + }); + if (patterns.length === 0 || alwaysValidPatterns.length === patterns.length && (!it.opts.unevaluated || it.props === true)) { + return; + } + var checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties; + var valid = gen.name("valid"); + if (it.props !== true && !(it.props instanceof codegen_1.Name)) { + it.props = (0, util_2.evaluatedPropsToName)(gen, it.props); + } + var props = it.props; + validatePatternProperties(); + function validatePatternProperties() { + var _iterator = _createForOfIteratorHelper(patterns), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var pat = _step.value; + if (checkProperties) checkMatchingProperties(pat); + if (it.allErrors) { + validateProperties(pat); + } else { + gen["var"](valid, true); // TODO var + validateProperties(pat); + gen["if"](valid); + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + function checkMatchingProperties(pat) { + for (var prop in checkProperties) { + if (new RegExp(pat).test(prop)) { + (0, util_1.checkStrictMode)(it, "property ".concat(prop, " matches pattern ").concat(pat, " (use allowMatchingProperties)")); + } + } + } + function validateProperties(pat) { + gen.forIn("key", data, function (key) { + gen["if"]((0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["", ".test(", ")"])), (0, code_1.usePattern)(cxt, pat), key), function () { + var alwaysValid = alwaysValidPatterns.includes(pat); + if (!alwaysValid) { + cxt.subschema({ + keyword: "patternProperties", + schemaProp: pat, + dataProp: key, + dataPropType: util_2.Type.Str + }, valid); + } + if (it.opts.unevaluated && props !== true) { + gen.assign((0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", "[", "]"])), props, key), true); + } else if (!alwaysValid && !it.allErrors) { + // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false) + // or if all properties were evaluated (props === true) + gen["if"]((0, codegen_1.not)(valid), function () { + return gen["break"](); + }); + } + }); + }); + } + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21,"../code":53}],49:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var items_1 = require("./items"); +var def = { + keyword: "prefixItems", + type: "array", + schemaType: ["array"], + before: "uniqueItems", + code: function code(cxt) { + return (0, items_1.validateTuple)(cxt, "items"); + } +}; +exports["default"] = def; + +},{"./items":44}],50:[function(require,module,exports){ +"use strict"; + +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var validate_1 = require("../../compile/validate"); +var code_1 = require("../code"); +var util_1 = require("../../compile/util"); +var additionalProperties_1 = require("./additionalProperties"); +var def = { + keyword: "properties", + type: "object", + schemaType: "object", + code: function code(cxt) { + var gen = cxt.gen, + schema = cxt.schema, + parentSchema = cxt.parentSchema, + data = cxt.data, + it = cxt.it; + if (it.opts.removeAdditional === "all" && parentSchema.additionalProperties === undefined) { + additionalProperties_1["default"].code(new validate_1.KeywordCxt(it, additionalProperties_1["default"], "additionalProperties")); + } + var allProps = (0, code_1.allSchemaProperties)(schema); + var _iterator = _createForOfIteratorHelper(allProps), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var prop = _step.value; + it.definedProperties.add(prop); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + if (it.opts.unevaluated && allProps.length && it.props !== true) { + it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props); + } + var properties = allProps.filter(function (p) { + return !(0, util_1.alwaysValidSchema)(it, schema[p]); + }); + if (properties.length === 0) return; + var valid = gen.name("valid"); + var _iterator2 = _createForOfIteratorHelper(properties), + _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var _prop = _step2.value; + if (hasDefault(_prop)) { + applyPropertySchema(_prop); + } else { + gen["if"]((0, code_1.propertyInData)(gen, data, _prop, it.opts.ownProperties)); + applyPropertySchema(_prop); + if (!it.allErrors) gen["else"]()["var"](valid, true); + gen.endIf(); + } + cxt.it.definedProperties.add(_prop); + cxt.ok(valid); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + function hasDefault(prop) { + return it.opts.useDefaults && !it.compositeRule && schema[prop]["default"] !== undefined; + } + function applyPropertySchema(prop) { + cxt.subschema({ + keyword: "properties", + schemaProp: prop, + dataProp: prop + }, valid); + } + } +}; +exports["default"] = def; + +},{"../../compile/util":21,"../../compile/validate":26,"../code":53,"./additionalProperties":37}],51:[function(require,module,exports){ +"use strict"; + +var _templateObject; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var error = { + message: "property name must be valid", + params: function params(_ref) { + var _params = _ref.params; + return (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["{propertyName: ", "}"])), _params.propertyName); + } +}; +var def = { + keyword: "propertyNames", + type: "object", + schemaType: ["object", "boolean"], + error: error, + code: function code(cxt) { + var gen = cxt.gen, + schema = cxt.schema, + data = cxt.data, + it = cxt.it; + if ((0, util_1.alwaysValidSchema)(it, schema)) return; + var valid = gen.name("valid"); + gen.forIn("key", data, function (key) { + cxt.setParams({ + propertyName: key + }); + cxt.subschema({ + keyword: "propertyNames", + data: key, + dataTypes: ["string"], + propertyName: key, + compositeRule: true + }, valid); + gen["if"]((0, codegen_1.not)(valid), function () { + cxt.error(true); + if (!it.allErrors) gen["break"](); + }); + }); + cxt.ok(valid); + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21}],52:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var util_1 = require("../../compile/util"); +var def = { + keyword: ["then", "else"], + schemaType: ["object", "boolean"], + code: function code(_ref) { + var keyword = _ref.keyword, + parentSchema = _ref.parentSchema, + it = _ref.it; + if (parentSchema["if"] === undefined) (0, util_1.checkStrictMode)(it, "\"".concat(keyword, "\" without \"if\" is ignored")); + } +}; +exports["default"] = def; + +},{"../../compile/util":21}],53:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15; +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0; +var codegen_1 = require("../compile/codegen"); +var util_1 = require("../compile/util"); +var names_1 = require("../compile/names"); +var util_2 = require("../compile/util"); +function checkReportMissingProp(cxt, prop) { + var gen = cxt.gen, + data = cxt.data, + it = cxt.it; + gen["if"](noPropertyInData(gen, data, prop, it.opts.ownProperties), function () { + cxt.setParams({ + missingProperty: (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["", ""])), prop) + }, true); + cxt.error(); + }); +} +exports.checkReportMissingProp = checkReportMissingProp; +function checkMissingProp(_ref, properties, missing) { + var gen = _ref.gen, + data = _ref.data, + opts = _ref.it.opts; + return (0, codegen_1.or).apply(void 0, _toConsumableArray(properties.map(function (prop) { + return (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", " = ", ""])), missing, prop)); + }))); +} +exports.checkMissingProp = checkMissingProp; +function reportMissingProp(cxt, missing) { + cxt.setParams({ + missingProperty: missing + }, true); + cxt.error(); +} +exports.reportMissingProp = reportMissingProp; +function hasPropFunc(gen) { + return gen.scopeValue("func", { + // eslint-disable-next-line @typescript-eslint/unbound-method + ref: Object.prototype.hasOwnProperty, + code: (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Object.prototype.hasOwnProperty"]))) + }); +} +exports.hasPropFunc = hasPropFunc; +function isOwnProperty(gen, data, property) { + return (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", ".call(", ", ", ")"])), hasPropFunc(gen), data, property); +} +exports.isOwnProperty = isOwnProperty; +function propertyInData(gen, data, property, ownProperties) { + var cond = (0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", "", " !== undefined"])), data, (0, codegen_1.getProperty)(property)); + return ownProperties ? (0, codegen_1._)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["", " && ", ""])), cond, isOwnProperty(gen, data, property)) : cond; +} +exports.propertyInData = propertyInData; +function noPropertyInData(gen, data, property, ownProperties) { + var cond = (0, codegen_1._)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["", "", " === undefined"])), data, (0, codegen_1.getProperty)(property)); + return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond; +} +exports.noPropertyInData = noPropertyInData; +function allSchemaProperties(schemaMap) { + return schemaMap ? Object.keys(schemaMap).filter(function (p) { + return p !== "__proto__"; + }) : []; +} +exports.allSchemaProperties = allSchemaProperties; +function schemaProperties(it, schemaMap) { + return allSchemaProperties(schemaMap).filter(function (p) { + return !(0, util_1.alwaysValidSchema)(it, schemaMap[p]); + }); +} +exports.schemaProperties = schemaProperties; +function callValidateCode(_ref2, func, context, passSchema) { + var schemaCode = _ref2.schemaCode, + data = _ref2.data, + _ref2$it = _ref2.it, + gen = _ref2$it.gen, + topSchemaRef = _ref2$it.topSchemaRef, + schemaPath = _ref2$it.schemaPath, + errorPath = _ref2$it.errorPath, + it = _ref2.it; + var dataAndSchema = passSchema ? (0, codegen_1._)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["", ", ", ", ", "", ""])), schemaCode, data, topSchemaRef, schemaPath) : data; + var valCxt = [[names_1["default"].instancePath, (0, codegen_1.strConcat)(names_1["default"].instancePath, errorPath)], [names_1["default"].parentData, it.parentData], [names_1["default"].parentDataProperty, it.parentDataProperty], [names_1["default"].rootData, names_1["default"].rootData]]; + if (it.opts.dynamicRef) valCxt.push([names_1["default"].dynamicAnchors, names_1["default"].dynamicAnchors]); + var args = (0, codegen_1._)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["", ", ", ""])), dataAndSchema, gen.object.apply(gen, valCxt)); + return context !== codegen_1.nil ? (0, codegen_1._)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["", ".call(", ", ", ")"])), func, context, args) : (0, codegen_1._)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["", "(", ")"])), func, args); +} +exports.callValidateCode = callValidateCode; +var newRegExp = (0, codegen_1._)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["new RegExp"]))); +function usePattern(_ref3, pattern) { + var gen = _ref3.gen, + opts = _ref3.it.opts; + var u = opts.unicodeRegExp ? "u" : ""; + var regExp = opts.code.regExp; + var rx = regExp(pattern, u); + return gen.scopeValue("pattern", { + key: rx.toString(), + ref: rx, + code: (0, codegen_1._)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["", "(", ", ", ")"])), regExp.code === "new RegExp" ? newRegExp : (0, util_2.useFunc)(gen, regExp), pattern, u) + }); +} +exports.usePattern = usePattern; +function validateArray(cxt) { + var gen = cxt.gen, + data = cxt.data, + keyword = cxt.keyword, + it = cxt.it; + var valid = gen.name("valid"); + if (it.allErrors) { + var validArr = gen["let"]("valid", true); + validateItems(function () { + return gen.assign(validArr, false); + }); + return validArr; + } + gen["var"](valid, true); + validateItems(function () { + return gen["break"](); + }); + return valid; + function validateItems(notValid) { + var len = gen["const"]("len", (0, codegen_1._)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["", ".length"])), data)); + gen.forRange("i", 0, len, function (i) { + cxt.subschema({ + keyword: keyword, + dataProp: i, + dataPropType: util_1.Type.Num + }, valid); + gen["if"]((0, codegen_1.not)(valid), notValid); + }); + } +} +exports.validateArray = validateArray; +function validateUnion(cxt) { + var gen = cxt.gen, + schema = cxt.schema, + keyword = cxt.keyword, + it = cxt.it; + /* istanbul ignore if */ + if (!Array.isArray(schema)) throw new Error("ajv implementation error"); + var alwaysValid = schema.some(function (sch) { + return (0, util_1.alwaysValidSchema)(it, sch); + }); + if (alwaysValid && !it.opts.unevaluated) return; + var valid = gen["let"]("valid", false); + var schValid = gen.name("_valid"); + gen.block(function () { + return schema.forEach(function (_sch, i) { + var schCxt = cxt.subschema({ + keyword: keyword, + schemaProp: i, + compositeRule: true + }, schValid); + gen.assign(valid, (0, codegen_1._)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["", " || ", ""])), valid, schValid)); + var merged = cxt.mergeValidEvaluated(schCxt, schValid); + // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true) + // or if all properties and items were evaluated (it.props === true && it.items === true) + if (!merged) gen["if"]((0, codegen_1.not)(valid)); + }); + }); + cxt.result(valid, function () { + return cxt.reset(); + }, function () { + return cxt.error(true); + }); +} +exports.validateUnion = validateUnion; + +},{"../compile/codegen":13,"../compile/names":17,"../compile/util":21}],54:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var def = { + keyword: "id", + code: function code() { + throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID'); + } +}; +exports["default"] = def; + +},{}],55:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var id_1 = require("./id"); +var ref_1 = require("./ref"); +var core = ["$schema", "$id", "$defs", "$vocabulary", { + keyword: "$comment" +}, "definitions", id_1["default"], ref_1["default"]]; +exports["default"] = core; + +},{"./id":54,"./ref":56}],56:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.callRef = exports.getValidate = void 0; +var ref_error_1 = require("../../compile/ref_error"); +var code_1 = require("../code"); +var codegen_1 = require("../../compile/codegen"); +var names_1 = require("../../compile/names"); +var compile_1 = require("../../compile"); +var util_1 = require("../../compile/util"); +var def = { + keyword: "$ref", + schemaType: "string", + code: function code(cxt) { + var gen = cxt.gen, + $ref = cxt.schema, + it = cxt.it; + var baseId = it.baseId, + env = it.schemaEnv, + validateName = it.validateName, + opts = it.opts, + self = it.self; + var root = env.root; + if (($ref === "#" || $ref === "#/") && baseId === root.baseId) return callRootRef(); + var schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref); + if (schOrEnv === undefined) throw new ref_error_1["default"](it.opts.uriResolver, baseId, $ref); + if (schOrEnv instanceof compile_1.SchemaEnv) return callValidate(schOrEnv); + return inlineRefSchema(schOrEnv); + function callRootRef() { + if (env === root) return callRef(cxt, validateName, env, env.$async); + var rootName = gen.scopeValue("root", { + ref: root + }); + return callRef(cxt, (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["", ".validate"])), rootName), root, root.$async); + } + function callValidate(sch) { + var v = getValidate(cxt, sch); + callRef(cxt, v, sch, sch.$async); + } + function inlineRefSchema(sch) { + var schName = gen.scopeValue("schema", opts.code.source === true ? { + ref: sch, + code: (0, codegen_1.stringify)(sch) + } : { + ref: sch + }); + var valid = gen.name("valid"); + var schCxt = cxt.subschema({ + schema: sch, + dataTypes: [], + schemaPath: codegen_1.nil, + topSchemaRef: schName, + errSchemaPath: $ref + }, valid); + cxt.mergeEvaluated(schCxt); + cxt.ok(valid); + } + } +}; +function getValidate(cxt, sch) { + var gen = cxt.gen; + return sch.validate ? gen.scopeValue("validate", { + ref: sch.validate + }) : (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", ".validate"])), gen.scopeValue("wrapper", { + ref: sch + })); +} +exports.getValidate = getValidate; +function callRef(cxt, v, sch, $async) { + var gen = cxt.gen, + it = cxt.it; + var allErrors = it.allErrors, + env = it.schemaEnv, + opts = it.opts; + var passCxt = opts.passContext ? names_1["default"]["this"] : codegen_1.nil; + if ($async) callAsyncRef();else callSyncRef(); + function callAsyncRef() { + if (!env.$async) throw new Error("async schema referenced by sync schema"); + var valid = gen["let"]("valid"); + gen["try"](function () { + gen.code((0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["await ", ""])), (0, code_1.callValidateCode)(cxt, v, passCxt))); + addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result + if (!allErrors) gen.assign(valid, true); + }, function (e) { + gen["if"]((0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["!(", " instanceof ", ")"])), e, it.ValidationError), function () { + return gen["throw"](e); + }); + addErrorsFrom(e); + if (!allErrors) gen.assign(valid, false); + }); + cxt.ok(valid); + } + function callSyncRef() { + cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), function () { + return addEvaluatedFrom(v); + }, function () { + return addErrorsFrom(v); + }); + } + function addErrorsFrom(source) { + var errs = (0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", ".errors"])), source); + gen.assign(names_1["default"].vErrors, (0, codegen_1._)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["", " === null ? ", " : ", ".concat(", ")"])), names_1["default"].vErrors, errs, names_1["default"].vErrors, errs)); // TODO tagged + gen.assign(names_1["default"].errors, (0, codegen_1._)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["", ".length"])), names_1["default"].vErrors)); + } + function addEvaluatedFrom(source) { + var _a; + if (!it.opts.unevaluated) return; + var schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated; + // TODO refactor + if (it.props !== true) { + if (schEvaluated && !schEvaluated.dynamicProps) { + if (schEvaluated.props !== undefined) { + it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props); + } + } else { + var props = gen["var"]("props", (0, codegen_1._)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["", ".evaluated.props"])), source)); + it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name); + } + } + if (it.items !== true) { + if (schEvaluated && !schEvaluated.dynamicItems) { + if (schEvaluated.items !== undefined) { + it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items); + } + } else { + var items = gen["var"]("items", (0, codegen_1._)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["", ".evaluated.items"])), source)); + it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name); + } + } + } +} +exports.callRef = callRef; +exports["default"] = def; + +},{"../../compile":16,"../../compile/codegen":13,"../../compile/names":17,"../../compile/ref_error":18,"../../compile/util":21,"../code":53}],57:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4; +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var types_1 = require("../discriminator/types"); +var compile_1 = require("../../compile"); +var util_1 = require("../../compile/util"); +var error = { + message: function message(_ref) { + var _ref$params = _ref.params, + discrError = _ref$params.discrError, + tagName = _ref$params.tagName; + return discrError === types_1.DiscrError.Tag ? "tag \"".concat(tagName, "\" must be string") : "value of tag \"".concat(tagName, "\" must be in oneOf"); + }, + params: function params(_ref2) { + var _ref2$params = _ref2.params, + discrError = _ref2$params.discrError, + tag = _ref2$params.tag, + tagName = _ref2$params.tagName; + return (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["{error: ", ", tag: ", ", tagValue: ", "}"])), discrError, tagName, tag); + } +}; +var def = { + keyword: "discriminator", + type: "object", + schemaType: "object", + error: error, + code: function code(cxt) { + var gen = cxt.gen, + data = cxt.data, + schema = cxt.schema, + parentSchema = cxt.parentSchema, + it = cxt.it; + var oneOf = parentSchema.oneOf; + if (!it.opts.discriminator) { + throw new Error("discriminator: requires discriminator option"); + } + var tagName = schema.propertyName; + if (typeof tagName != "string") throw new Error("discriminator: requires propertyName"); + if (schema.mapping) throw new Error("discriminator: mapping is not supported"); + if (!oneOf) throw new Error("discriminator: requires oneOf keyword"); + var valid = gen["let"]("valid", false); + var tag = gen["const"]("tag", (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", "", ""])), data, (0, codegen_1.getProperty)(tagName))); + gen["if"]((0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["typeof ", " == \"string\""])), tag), function () { + return validateMapping(); + }, function () { + return cxt.error(false, { + discrError: types_1.DiscrError.Tag, + tag: tag, + tagName: tagName + }); + }); + cxt.ok(valid); + function validateMapping() { + var mapping = getMapping(); + gen["if"](false); + for (var tagValue in mapping) { + gen.elseIf((0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", " === ", ""])), tag, tagValue)); + gen.assign(valid, applyTagSchema(mapping[tagValue])); + } + gen["else"](); + cxt.error(false, { + discrError: types_1.DiscrError.Mapping, + tag: tag, + tagName: tagName + }); + gen.endIf(); + } + function applyTagSchema(schemaProp) { + var _valid = gen.name("valid"); + var schCxt = cxt.subschema({ + keyword: "oneOf", + schemaProp: schemaProp + }, _valid); + cxt.mergeEvaluated(schCxt, codegen_1.Name); + return _valid; + } + function getMapping() { + var _a; + var oneOfMapping = {}; + var topRequired = hasRequired(parentSchema); + var tagRequired = true; + for (var i = 0; i < oneOf.length; i++) { + var sch = oneOf[i]; + if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) { + sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, sch === null || sch === void 0 ? void 0 : sch.$ref); + if (sch instanceof compile_1.SchemaEnv) sch = sch.schema; + } + var propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName]; + if (_typeof(propSch) != "object") { + throw new Error("discriminator: oneOf subschemas (or referenced schemas) must have \"properties/".concat(tagName, "\"")); + } + tagRequired = tagRequired && (topRequired || hasRequired(sch)); + addMappings(propSch, i); + } + if (!tagRequired) throw new Error("discriminator: \"".concat(tagName, "\" must be required")); + return oneOfMapping; + function hasRequired(_ref3) { + var required = _ref3.required; + return Array.isArray(required) && required.includes(tagName); + } + function addMappings(sch, i) { + if (sch["const"]) { + addMapping(sch["const"], i); + } else if (sch["enum"]) { + var _iterator = _createForOfIteratorHelper(sch["enum"]), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var tagValue = _step.value; + addMapping(tagValue, i); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } else { + throw new Error("discriminator: \"properties/".concat(tagName, "\" must have \"const\" or \"enum\"")); + } + } + function addMapping(tagValue, i) { + if (typeof tagValue != "string" || tagValue in oneOfMapping) { + throw new Error("discriminator: \"".concat(tagName, "\" values must be unique strings")); + } + oneOfMapping[tagValue] = i; + } + } + } +}; +exports["default"] = def; + +},{"../../compile":16,"../../compile/codegen":13,"../../compile/util":21,"../discriminator/types":58}],58:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DiscrError = void 0; +var DiscrError; +(function (DiscrError) { + DiscrError["Tag"] = "tag"; + DiscrError["Mapping"] = "mapping"; +})(DiscrError = exports.DiscrError || (exports.DiscrError = {})); + +},{}],59:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var core_1 = require("./core"); +var validation_1 = require("./validation"); +var applicator_1 = require("./applicator"); +var format_1 = require("./format"); +var metadata_1 = require("./metadata"); +var draft7Vocabularies = [core_1["default"], validation_1["default"], (0, applicator_1["default"])(), format_1["default"], metadata_1.metadataVocabulary, metadata_1.contentVocabulary]; +exports["default"] = draft7Vocabularies; + +},{"./applicator":43,"./core":55,"./format":61,"./metadata":62,"./validation":65}],60:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17; +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var error = { + message: function message(_ref) { + var schemaCode = _ref.schemaCode; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must match format \"", "\""])), schemaCode); + }, + params: function params(_ref2) { + var schemaCode = _ref2.schemaCode; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{format: ", "}"])), schemaCode); + } +}; +var def = { + keyword: "format", + type: ["number", "string"], + schemaType: "string", + $data: true, + error: error, + code: function code(cxt, ruleType) { + var gen = cxt.gen, + data = cxt.data, + $data = cxt.$data, + schema = cxt.schema, + schemaCode = cxt.schemaCode, + it = cxt.it; + var opts = it.opts, + errSchemaPath = it.errSchemaPath, + schemaEnv = it.schemaEnv, + self = it.self; + if (!opts.validateFormats) return; + if ($data) validate$DataFormat();else validateFormat(); + function validate$DataFormat() { + var fmts = gen.scopeValue("formats", { + ref: self.formats, + code: opts.code.formats + }); + var fDef = gen["const"]("fDef", (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", "[", "]"])), fmts, schemaCode)); + var fType = gen["let"]("fType"); + var format = gen["let"]("format"); + // TODO simplify + gen["if"]((0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["typeof ", " == \"object\" && !(", " instanceof RegExp)"])), fDef, fDef), function () { + return gen.assign(fType, (0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", ".type || \"string\""])), fDef)).assign(format, (0, codegen_1._)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["", ".validate"])), fDef)); + }, function () { + return gen.assign(fType, (0, codegen_1._)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\"string\""])))).assign(format, fDef); + }); + cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt())); + function unknownFmt() { + if (opts.strictSchema === false) return codegen_1.nil; + return (0, codegen_1._)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["", " && !", ""])), schemaCode, format); + } + function invalidFmt() { + var callFormat = schemaEnv.$async ? (0, codegen_1._)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["(", ".async ? await ", "(", ") : ", "(", "))"])), fDef, format, data, format, data) : (0, codegen_1._)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["", "(", ")"])), format, data); + var validData = (0, codegen_1._)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["(typeof ", " == \"function\" ? ", " : ", ".test(", "))"])), format, callFormat, format, data); + return (0, codegen_1._)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["", " && ", " !== true && ", " === ", " && !", ""])), format, format, fType, ruleType, validData); + } + } + function validateFormat() { + var formatDef = self.formats[schema]; + if (!formatDef) { + unknownFormat(); + return; + } + if (formatDef === true) return; + var _getFormat = getFormat(formatDef), + _getFormat2 = _slicedToArray(_getFormat, 3), + fmtType = _getFormat2[0], + format = _getFormat2[1], + fmtRef = _getFormat2[2]; + if (fmtType === ruleType) cxt.pass(validCondition()); + function unknownFormat() { + if (opts.strictSchema === false) { + self.logger.warn(unknownMsg()); + return; + } + throw new Error(unknownMsg()); + function unknownMsg() { + return "unknown format \"".concat(schema, "\" ignored in schema at path \"").concat(errSchemaPath, "\""); + } + } + function getFormat(fmtDef) { + var code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["", "", ""])), opts.code.formats, (0, codegen_1.getProperty)(schema)) : undefined; + var fmt = gen.scopeValue("formats", { + key: schema, + ref: fmtDef, + code: code + }); + if (_typeof(fmtDef) == "object" && !(fmtDef instanceof RegExp)) { + return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["", ".validate"])), fmt)]; + } + return ["string", fmtDef, fmt]; + } + function validCondition() { + if (_typeof(formatDef) == "object" && !(formatDef instanceof RegExp) && formatDef.async) { + if (!schemaEnv.$async) throw new Error("async format in sync schema"); + return (0, codegen_1._)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["await ", "(", ")"])), fmtRef, data); + } + return typeof format == "function" ? (0, codegen_1._)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["", "(", ")"])), fmtRef, data) : (0, codegen_1._)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["", ".test(", ")"])), fmtRef, data); + } + } + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13}],61:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var format_1 = require("./format"); +var format = [format_1["default"]]; +exports["default"] = format; + +},{"./format":60}],62:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.contentVocabulary = exports.metadataVocabulary = void 0; +exports.metadataVocabulary = ["title", "description", "default", "deprecated", "readOnly", "writeOnly", "examples"]; +exports.contentVocabulary = ["contentMediaType", "contentEncoding", "contentSchema"]; + +},{}],63:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3; +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var equal_1 = require("../../runtime/equal"); +var error = { + message: "must be equal to constant", + params: function params(_ref) { + var schemaCode = _ref.schemaCode; + return (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["{allowedValue: ", "}"])), schemaCode); + } +}; +var def = { + keyword: "const", + $data: true, + error: error, + code: function code(cxt) { + var gen = cxt.gen, + data = cxt.data, + $data = cxt.$data, + schemaCode = cxt.schemaCode, + schema = cxt.schema; + if ($data || schema && _typeof(schema) == "object") { + cxt.fail$data((0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["!", "(", ", ", ")"])), (0, util_1.useFunc)(gen, equal_1["default"]), data, schemaCode)); + } else { + cxt.fail((0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", " !== ", ""])), schema, data)); + } + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21,"../../runtime/equal":32}],64:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4; +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var equal_1 = require("../../runtime/equal"); +var error = { + message: "must be equal to one of the allowed values", + params: function params(_ref) { + var schemaCode = _ref.schemaCode; + return (0, codegen_1._)(_templateObject || (_templateObject = _taggedTemplateLiteral(["{allowedValues: ", "}"])), schemaCode); + } +}; +var def = { + keyword: "enum", + schemaType: "array", + $data: true, + error: error, + code: function code(cxt) { + var gen = cxt.gen, + data = cxt.data, + $data = cxt.$data, + schema = cxt.schema, + schemaCode = cxt.schemaCode, + it = cxt.it; + if (!$data && schema.length === 0) throw new Error("enum must have non-empty array"); + var useLoop = schema.length >= it.opts.loopEnum; + var eql; + var getEql = function getEql() { + return eql !== null && eql !== void 0 ? eql : eql = (0, util_1.useFunc)(gen, equal_1["default"]); + }; + var valid; + if (useLoop || $data) { + valid = gen["let"]("valid"); + cxt.block$data(valid, loopEnum); + } else { + /* istanbul ignore if */ + if (!Array.isArray(schema)) throw new Error("ajv implementation error"); + var vSchema = gen["const"]("vSchema", schemaCode); + valid = (0, codegen_1.or).apply(void 0, _toConsumableArray(schema.map(function (_x, i) { + return equalCode(vSchema, i); + }))); + } + cxt.pass(valid); + function loopEnum() { + gen.assign(valid, false); + gen.forOf("v", schemaCode, function (v) { + return gen["if"]((0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", "(", ", ", ")"])), getEql(), data, v), function () { + return gen.assign(valid, true)["break"](); + }); + }); + } + function equalCode(vSchema, i) { + var sch = schema[i]; + return _typeof(sch) === "object" && sch !== null ? (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", "(", ", ", "[", "])"])), getEql(), data, vSchema, i) : (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", " === ", ""])), data, sch); + } + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21,"../../runtime/equal":32}],65:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var limitNumber_1 = require("./limitNumber"); +var multipleOf_1 = require("./multipleOf"); +var limitLength_1 = require("./limitLength"); +var pattern_1 = require("./pattern"); +var limitProperties_1 = require("./limitProperties"); +var required_1 = require("./required"); +var limitItems_1 = require("./limitItems"); +var uniqueItems_1 = require("./uniqueItems"); +var const_1 = require("./const"); +var enum_1 = require("./enum"); +var validation = [ +// number +limitNumber_1["default"], multipleOf_1["default"], +// string +limitLength_1["default"], pattern_1["default"], +// object +limitProperties_1["default"], required_1["default"], +// array +limitItems_1["default"], uniqueItems_1["default"], +// any +{ + keyword: "type", + schemaType: ["string", "array"] +}, { + keyword: "nullable", + schemaType: "boolean" +}, const_1["default"], enum_1["default"]]; +exports["default"] = validation; + +},{"./const":63,"./enum":64,"./limitItems":66,"./limitLength":67,"./limitNumber":68,"./limitProperties":69,"./multipleOf":70,"./pattern":71,"./required":72,"./uniqueItems":73}],66:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var error = { + message: function message(_ref) { + var keyword = _ref.keyword, + schemaCode = _ref.schemaCode; + var comp = keyword === "maxItems" ? "more" : "fewer"; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must NOT have ", " than ", " items"])), comp, schemaCode); + }, + params: function params(_ref2) { + var schemaCode = _ref2.schemaCode; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{limit: ", "}"])), schemaCode); + } +}; +var def = { + keyword: ["maxItems", "minItems"], + type: "array", + schemaType: "number", + $data: true, + error: error, + code: function code(cxt) { + var keyword = cxt.keyword, + data = cxt.data, + schemaCode = cxt.schemaCode; + var op = keyword === "maxItems" ? codegen_1.operators.GT : codegen_1.operators.LT; + cxt.fail$data((0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", ".length ", " ", ""])), data, op, schemaCode)); + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13}],67:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var ucs2length_1 = require("../../runtime/ucs2length"); +var error = { + message: function message(_ref) { + var keyword = _ref.keyword, + schemaCode = _ref.schemaCode; + var comp = keyword === "maxLength" ? "more" : "fewer"; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must NOT have ", " than ", " characters"])), comp, schemaCode); + }, + params: function params(_ref2) { + var schemaCode = _ref2.schemaCode; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{limit: ", "}"])), schemaCode); + } +}; +var def = { + keyword: ["maxLength", "minLength"], + type: "string", + schemaType: "number", + $data: true, + error: error, + code: function code(cxt) { + var keyword = cxt.keyword, + data = cxt.data, + schemaCode = cxt.schemaCode, + it = cxt.it; + var op = keyword === "maxLength" ? codegen_1.operators.GT : codegen_1.operators.LT; + var len = it.opts.unicode === false ? (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", ".length"])), data) : (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", "(", ")"])), (0, util_1.useFunc)(cxt.gen, ucs2length_1["default"]), data); + cxt.fail$data((0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", " ", " ", ""])), len, op, schemaCode)); + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21,"../../runtime/ucs2length":33}],68:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var ops = codegen_1.operators; +var KWDs = { + maximum: { + okStr: "<=", + ok: ops.LTE, + fail: ops.GT + }, + minimum: { + okStr: ">=", + ok: ops.GTE, + fail: ops.LT + }, + exclusiveMaximum: { + okStr: "<", + ok: ops.LT, + fail: ops.GTE + }, + exclusiveMinimum: { + okStr: ">", + ok: ops.GT, + fail: ops.LTE + } +}; +var error = { + message: function message(_ref) { + var keyword = _ref.keyword, + schemaCode = _ref.schemaCode; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must be ", " ", ""])), KWDs[keyword].okStr, schemaCode); + }, + params: function params(_ref2) { + var keyword = _ref2.keyword, + schemaCode = _ref2.schemaCode; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{comparison: ", ", limit: ", "}"])), KWDs[keyword].okStr, schemaCode); + } +}; +var def = { + keyword: Object.keys(KWDs), + type: "number", + schemaType: "number", + $data: true, + error: error, + code: function code(cxt) { + var keyword = cxt.keyword, + data = cxt.data, + schemaCode = cxt.schemaCode; + cxt.fail$data((0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", " ", " ", " || isNaN(", ")"])), data, KWDs[keyword].fail, schemaCode, data)); + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13}],69:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var error = { + message: function message(_ref) { + var keyword = _ref.keyword, + schemaCode = _ref.schemaCode; + var comp = keyword === "maxProperties" ? "more" : "fewer"; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must NOT have ", " than ", " properties"])), comp, schemaCode); + }, + params: function params(_ref2) { + var schemaCode = _ref2.schemaCode; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{limit: ", "}"])), schemaCode); + } +}; +var def = { + keyword: ["maxProperties", "minProperties"], + type: "object", + schemaType: "number", + $data: true, + error: error, + code: function code(cxt) { + var keyword = cxt.keyword, + data = cxt.data, + schemaCode = cxt.schemaCode; + var op = keyword === "maxProperties" ? codegen_1.operators.GT : codegen_1.operators.LT; + cxt.fail$data((0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Object.keys(", ").length ", " ", ""])), data, op, schemaCode)); + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13}],70:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var codegen_1 = require("../../compile/codegen"); +var error = { + message: function message(_ref) { + var schemaCode = _ref.schemaCode; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must be multiple of ", ""])), schemaCode); + }, + params: function params(_ref2) { + var schemaCode = _ref2.schemaCode; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{multipleOf: ", "}"])), schemaCode); + } +}; +var def = { + keyword: "multipleOf", + type: "number", + schemaType: "number", + $data: true, + error: error, + code: function code(cxt) { + var gen = cxt.gen, + data = cxt.data, + schemaCode = cxt.schemaCode, + it = cxt.it; + // const bdt = bad$DataType(schemaCode, def.schemaType, $data) + var prec = it.opts.multipleOfPrecision; + var res = gen["let"]("res"); + var invalid = prec ? (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Math.abs(Math.round(", ") - ", ") > 1e-", ""])), res, res, prec) : (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", " !== parseInt(", ")"])), res, res); + cxt.fail$data((0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["(", " === 0 || (", " = ", "/", ", ", "))"])), schemaCode, res, data, schemaCode, invalid)); + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13}],71:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var code_1 = require("../code"); +var codegen_1 = require("../../compile/codegen"); +var error = { + message: function message(_ref) { + var schemaCode = _ref.schemaCode; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must match pattern \"", "\""])), schemaCode); + }, + params: function params(_ref2) { + var schemaCode = _ref2.schemaCode; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{pattern: ", "}"])), schemaCode); + } +}; +var def = { + keyword: "pattern", + type: "string", + schemaType: "string", + $data: true, + error: error, + code: function code(cxt) { + var data = cxt.data, + $data = cxt.$data, + schema = cxt.schema, + schemaCode = cxt.schemaCode, + it = cxt.it; + // TODO regexp should be wrapped in try/catchs + var u = it.opts.unicodeRegExp ? "u" : ""; + var regExp = $data ? (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["(new RegExp(", ", ", "))"])), schemaCode, u) : (0, code_1.usePattern)(cxt, schema); + cxt.fail$data((0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["!", ".test(", ")"])), regExp, data)); + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../code":53}],72:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2; +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var code_1 = require("../code"); +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var error = { + message: function message(_ref) { + var missingProperty = _ref.params.missingProperty; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must have required property '", "'"])), missingProperty); + }, + params: function params(_ref2) { + var missingProperty = _ref2.params.missingProperty; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{missingProperty: ", "}"])), missingProperty); + } +}; +var def = { + keyword: "required", + type: "object", + schemaType: "array", + $data: true, + error: error, + code: function code(cxt) { + var gen = cxt.gen, + schema = cxt.schema, + schemaCode = cxt.schemaCode, + data = cxt.data, + $data = cxt.$data, + it = cxt.it; + var opts = it.opts; + if (!$data && schema.length === 0) return; + var useLoop = schema.length >= opts.loopRequired; + if (it.allErrors) allErrorsMode();else exitOnErrorMode(); + if (opts.strictRequired) { + var props = cxt.parentSchema.properties; + var definedProperties = cxt.it.definedProperties; + var _iterator = _createForOfIteratorHelper(schema), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var requiredKey = _step.value; + if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) { + var schemaPath = it.schemaEnv.baseId + it.errSchemaPath; + var msg = "required property \"".concat(requiredKey, "\" is not defined at \"").concat(schemaPath, "\" (strictRequired)"); + (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired); + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + function allErrorsMode() { + if (useLoop || $data) { + cxt.block$data(codegen_1.nil, loopAllRequired); + } else { + var _iterator2 = _createForOfIteratorHelper(schema), + _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var prop = _step2.value; + (0, code_1.checkReportMissingProp)(cxt, prop); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + } + } + function exitOnErrorMode() { + var missing = gen["let"]("missing"); + if (useLoop || $data) { + var valid = gen["let"]("valid", true); + cxt.block$data(valid, function () { + return loopUntilMissing(missing, valid); + }); + cxt.ok(valid); + } else { + gen["if"]((0, code_1.checkMissingProp)(cxt, schema, missing)); + (0, code_1.reportMissingProp)(cxt, missing); + gen["else"](); + } + } + function loopAllRequired() { + gen.forOf("prop", schemaCode, function (prop) { + cxt.setParams({ + missingProperty: prop + }); + gen["if"]((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), function () { + return cxt.error(); + }); + }); + } + function loopUntilMissing(missing, valid) { + cxt.setParams({ + missingProperty: missing + }); + gen.forOf(missing, schemaCode, function () { + gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties)); + gen["if"]((0, codegen_1.not)(valid), function () { + cxt.error(); + gen["break"](); + }); + }, codegen_1.nil); + } + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21,"../code":53}],73:[function(require,module,exports){ +"use strict"; + +var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17; +function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +var dataType_1 = require("../../compile/validate/dataType"); +var codegen_1 = require("../../compile/codegen"); +var util_1 = require("../../compile/util"); +var equal_1 = require("../../runtime/equal"); +var error = { + message: function message(_ref) { + var _ref$params = _ref.params, + i = _ref$params.i, + j = _ref$params.j; + return (0, codegen_1.str)(_templateObject || (_templateObject = _taggedTemplateLiteral(["must NOT have duplicate items (items ## ", " and ", " are identical)"])), j, i); + }, + params: function params(_ref2) { + var _ref2$params = _ref2.params, + i = _ref2$params.i, + j = _ref2$params.j; + return (0, codegen_1._)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{i: ", ", j: ", "}"])), i, j); + } +}; +var def = { + keyword: "uniqueItems", + type: "array", + schemaType: "boolean", + $data: true, + error: error, + code: function code(cxt) { + var gen = cxt.gen, + data = cxt.data, + $data = cxt.$data, + schema = cxt.schema, + parentSchema = cxt.parentSchema, + schemaCode = cxt.schemaCode, + it = cxt.it; + if (!$data && !schema) return; + var valid = gen["let"]("valid"); + var itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : []; + cxt.block$data(valid, validateUniqueItems, (0, codegen_1._)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["", " === false"])), schemaCode)); + cxt.ok(valid); + function validateUniqueItems() { + var i = gen["let"]("i", (0, codegen_1._)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", ".length"])), data)); + var j = gen["let"]("j"); + cxt.setParams({ + i: i, + j: j + }); + gen.assign(valid, true); + gen["if"]((0, codegen_1._)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", " > 1"])), i), function () { + return (canOptimize() ? loopN : loopN2)(i, j); + }); + } + function canOptimize() { + return itemTypes.length > 0 && !itemTypes.some(function (t) { + return t === "object" || t === "array"; + }); + } + function loopN(i, j) { + var item = gen.name("item"); + var wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong); + var indices = gen["const"]("indices", (0, codegen_1._)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["{}"])))); + gen["for"]((0, codegen_1._)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([";", "--;"])), i), function () { + gen["let"](item, (0, codegen_1._)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["", "[", "]"])), data, i)); + gen["if"](wrongType, (0, codegen_1._)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["continue"])))); + if (itemTypes.length > 1) gen["if"]((0, codegen_1._)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["typeof ", " == \"string\""])), item), (0, codegen_1._)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["", " += \"_\""])), item)); + gen["if"]((0, codegen_1._)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["typeof ", "[", "] == \"number\""])), indices, item), function () { + gen.assign(j, (0, codegen_1._)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["", "[", "]"])), indices, item)); + cxt.error(); + gen.assign(valid, false)["break"](); + }).code((0, codegen_1._)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["", "[", "] = ", ""])), indices, item, i)); + }); + } + function loopN2(i, j) { + var eql = (0, util_1.useFunc)(gen, equal_1["default"]); + var outer = gen.name("outer"); + gen.label(outer)["for"]((0, codegen_1._)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral([";", "--;"])), i), function () { + return gen["for"]((0, codegen_1._)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["", " = ", "; ", "--;"])), j, i, j), function () { + return gen["if"]((0, codegen_1._)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["", "(", "[", "], ", "[", "])"])), eql, data, i, data, j), function () { + cxt.error(); + gen.assign(valid, false)["break"](outer); + }); + }); + }); + } + } +}; +exports["default"] = def; + +},{"../../compile/codegen":13,"../../compile/util":21,"../../compile/validate/dataType":24,"../../runtime/equal":32}],74:[function(require,module,exports){ +/*! + * content-type + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1 + * + * parameter = token "=" ( token / quoted-string ) + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" + * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" + * / DIGIT / ALPHA + * ; any VCHAR, except delimiters + * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE + * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text + * obs-text = %x80-FF + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + */ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g; // eslint-disable-line no-control-regex +var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/; // eslint-disable-line no-control-regex +var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + +/** + * RegExp to match quoted-pair in RFC 7230 sec 3.2.6 + * + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + * obs-text = %x80-FF + */ +var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g; // eslint-disable-line no-control-regex + +/** + * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6 + */ +var QUOTE_REGEXP = /([\\"])/g; + +/** + * RegExp to match type in RFC 7231 sec 3.1.1.1 + * + * media-type = type "/" subtype + * type = token + * subtype = token + */ +var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + +/** + * Module exports. + * @public + */ + +exports.format = format; +exports.parse = parse; + +/** + * Format object to media type. + * + * @param {object} obj + * @return {string} + * @public + */ + +function format(obj) { + if (!obj || _typeof(obj) !== 'object') { + throw new TypeError('argument obj is required'); + } + var parameters = obj.parameters; + var type = obj.type; + if (!type || !TYPE_REGEXP.test(type)) { + throw new TypeError('invalid type'); + } + var string = type; + + // append parameters + if (parameters && _typeof(parameters) === 'object') { + var param; + var params = Object.keys(parameters).sort(); + for (var i = 0; i < params.length; i++) { + param = params[i]; + if (!TOKEN_REGEXP.test(param)) { + throw new TypeError('invalid parameter name'); + } + string += '; ' + param + '=' + qstring(parameters[param]); + } + } + return string; +} + +/** + * Parse media type to object. + * + * @param {string|object} string + * @return {Object} + * @public + */ + +function parse(string) { + if (!string) { + throw new TypeError('argument string is required'); + } + + // support req/res-like objects as argument + var header = _typeof(string) === 'object' ? getcontenttype(string) : string; + if (typeof header !== 'string') { + throw new TypeError('argument string is required to be a string'); + } + var index = header.indexOf(';'); + var type = index !== -1 ? header.slice(0, index).trim() : header.trim(); + if (!TYPE_REGEXP.test(type)) { + throw new TypeError('invalid media type'); + } + var obj = new ContentType(type.toLowerCase()); + + // parse parameters + if (index !== -1) { + var key; + var match; + var value; + PARAM_REGEXP.lastIndex = index; + while (match = PARAM_REGEXP.exec(header)) { + if (match.index !== index) { + throw new TypeError('invalid parameter format'); + } + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + if (value.charCodeAt(0) === 0x22 /* " */) { + // remove quotes + value = value.slice(1, -1); + + // remove escapes + if (value.indexOf('\\') !== -1) { + value = value.replace(QESC_REGEXP, '$1'); + } + } + obj.parameters[key] = value; + } + if (index !== header.length) { + throw new TypeError('invalid parameter format'); + } + } + return obj; +} + +/** + * Get content-type from req/res objects. + * + * @param {object} + * @return {Object} + * @private + */ + +function getcontenttype(obj) { + var header; + if (typeof obj.getHeader === 'function') { + // res-like + header = obj.getHeader('content-type'); + } else if (_typeof(obj.headers) === 'object') { + // req-like + header = obj.headers && obj.headers['content-type']; + } + if (typeof header !== 'string') { + throw new TypeError('content-type header is missing from object'); + } + return header; +} + +/** + * Quote a string if necessary. + * + * @param {string} val + * @return {string} + * @private + */ + +function qstring(val) { + var str = String(val); + + // no need to quote tokens + if (TOKEN_REGEXP.test(str)) { + return str; + } + if (str.length > 0 && !TEXT_REGEXP.test(str)) { + throw new TypeError('invalid parameter value'); + } + return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"'; +} + +/** + * Class to represent a content type. + * @private + */ +function ContentType(type) { + this.parameters = Object.create(null); + this.type = type; +} + +},{}],75:[function(require,module,exports){ +'use strict'; + +// do not edit .js files directly - edit src/index.jst +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +module.exports = function equal(a, b) { + if (a === b) return true; + if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') { + if (a.constructor !== b.constructor) return false; + var length, i, keys; + if (Array.isArray(a)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false; + return true; + } + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) return false; + for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + for (i = length; i-- !== 0;) { + var key = keys[i]; + if (!equal(a[key], b[key])) return false; + } + return true; + } + + // true if both NaN, false otherwise + return a !== a && b !== b; +}; + +},{}],76:[function(require,module,exports){ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function Coords() {} +Coords.prototype.init = function () { + if (!arguments.length) { + throw new Error('no arguments'); + } else if (arguments[0].lat && arguments[0].lng) { + this.lat = arguments[0].lat; + this.lon = arguments[0].lng; + } else if (typeof arguments[0] === "string") { + var strarr = arguments[0].split(","); + this.lat = parseFloat(strarr[0].trim()); + this.lon = parseFloat(strarr[1].trim()); + } else if (Object.prototype.toString.call(arguments[0]) === "[object Array]") { + var arr = arguments[0]; + if (arguments[1] === true) { + this.lat = arr[1]; + this.lon = arr[0]; + } else { + this.lat = arr[0]; + this.lon = arr[1]; + } + } else if (arguments[2] === true) { + this.lat = arguments[1]; + this.lon = arguments[0]; + } else { + this.lat = arguments[0]; + this.lon = arguments[1]; + } + this.compute(); +}; +Coords.prototype.compute = function () { + this.north = this.lat > 0; + this.east = this.lon > 0; + this.latValues = computeFor(this.lat); + this.lonValues = computeFor(this.lon); + function computeFor(initValue) { + var values = {}; + values.initValue = initValue; + values.degrees = Math.abs(initValue); + values.degreesInt = Math.floor(values.degrees); + values.degreesFrac = values.degrees - values.degreesInt; + values.secondsTotal = 3600 * values.degreesFrac; + values.minutes = values.secondsTotal / 60; + values.minutesInt = Math.floor(values.minutes); + values.seconds = values.secondsTotal - values.minutesInt * 60; + return values; + } +}; +var shortFormats = { + 'FFf': 'DD MM ss X', + 'Ff': 'DD mm X', + 'f': 'dd X' +}; +var units = { + degrees: '°', + minutes: '′', + seconds: '″' +}; +Coords.prototype.format = function (format, options) { + if (_typeof(format) === 'object') { + var submittedFormat = format; + options = format; + format = 'FFf'; + } + if (typeof format === 'undefined') { + format = 'FFf'; + } + if (typeof options === 'undefined') { + options = {}; + } + if (typeof options === 'string') { + var submittedString = options; + options = { + latLonSeparator: submittedString + }; + } + if (typeof options.latLonSeparator === 'undefined') { + options.latLonSeparator = ' '; + } + if (typeof options.decimalPlaces === 'undefined') { + options.decimalPlaces = 5; + } else { + options.decimalPlaces = parseInt(options.decimalPlaces); + } + if (Object.keys(shortFormats).indexOf(format) > -1) { + format = shortFormats[format]; + } + var lat = formatFor(this.latValues, this.north ? 'N' : 'S'); + var lon = formatFor(this.lonValues, this.east ? 'E' : 'W'); + function formatFor(values, X) { + var formatted = format; + formatted = formatted.replace(/DD/g, values.degreesInt + units.degrees); + formatted = formatted.replace(/dd/g, values.degrees.toFixed(options.decimalPlaces) + units.degrees); + formatted = formatted.replace(/D/g, values.degreesInt); + formatted = formatted.replace(/d/g, values.degrees.toFixed(options.decimalPlaces)); + formatted = formatted.replace(/MM/g, values.minutesInt + units.minutes); + formatted = formatted.replace(/mm/g, values.minutes.toFixed(options.decimalPlaces) + units.minutes); + formatted = formatted.replace(/M/g, values.minutesInt); + formatted = formatted.replace(/m/g, values.minutes.toFixed(options.decimalPlaces)); + formatted = formatted.replace(/ss/g, values.seconds.toFixed(options.decimalPlaces) + units.seconds); + formatted = formatted.replace(/s/g, values.seconds.toFixed(options.decimalPlaces)); + formatted = formatted.replace(/-/g, values.initValue < 0 ? '-' : ''); + formatted = formatted.replace(/X/g, X); + return formatted; + } + return lat + options.latLonSeparator + lon; +}; +function formatcoords() { + var c = new Coords(); + c.init.apply(c, arguments); + return c; +} +module.exports = formatcoords; + +},{}],77:[function(require,module,exports){ +(function (process,global){(function (){ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * [js-sha256]{@link https://github.com/emn178/js-sha256} + * + * @version 0.10.1 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2023 + * @license MIT + */ +/*jslint bitwise: true */ +(function () { + 'use strict'; + + var ERROR = 'input is invalid type'; + var WINDOW = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object'; + var root = WINDOW ? window : {}; + if (root.JS_SHA256_NO_WINDOW) { + WINDOW = false; + } + var WEB_WORKER = !WINDOW && (typeof self === "undefined" ? "undefined" : _typeof(self)) === 'object'; + var NODE_JS = !root.JS_SHA256_NO_NODE_JS && (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process.versions && process.versions.node; + if (NODE_JS) { + root = global; + } else if (WEB_WORKER) { + root = self; + } + var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && (typeof module === "undefined" ? "undefined" : _typeof(module)) === 'object' && module.exports; + var AMD = typeof define === 'function' && define.amd; + var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined'; + var HEX_CHARS = '0123456789abcdef'.split(''); + var EXTRA = [-2147483648, 8388608, 32768, 128]; + var SHIFT = [24, 16, 8, 0]; + var K = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]; + var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer']; + var blocks = []; + if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) { + Array.isArray = function (obj) { + return Object.prototype.toString.call(obj) === '[object Array]'; + }; + } + if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) { + ArrayBuffer.isView = function (obj) { + return _typeof(obj) === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer; + }; + } + var createOutputMethod = function createOutputMethod(outputType, is224) { + return function (message) { + return new Sha256(is224, true).update(message)[outputType](); + }; + }; + var createMethod = function createMethod(is224) { + var method = createOutputMethod('hex', is224); + if (NODE_JS) { + method = nodeWrap(method, is224); + } + method.create = function () { + return new Sha256(is224); + }; + method.update = function (message) { + return method.create().update(message); + }; + for (var i = 0; i < OUTPUT_TYPES.length; ++i) { + var type = OUTPUT_TYPES[i]; + method[type] = createOutputMethod(type, is224); + } + return method; + }; + var nodeWrap = function nodeWrap(method, is224) { + var crypto = require('crypto'); + var Buffer = require('buffer').Buffer; + var algorithm = is224 ? 'sha224' : 'sha256'; + var bufferFrom; + if (Buffer.from && !root.JS_SHA256_NO_BUFFER_FROM) { + bufferFrom = Buffer.from; + } else { + bufferFrom = function bufferFrom(message) { + return new Buffer(message); + }; + } + var nodeMethod = function nodeMethod(message) { + if (typeof message === 'string') { + return crypto.createHash(algorithm).update(message, 'utf8').digest('hex'); + } else { + if (message === null || message === undefined) { + throw new Error(ERROR); + } else if (message.constructor === ArrayBuffer) { + message = new Uint8Array(message); + } + } + if (Array.isArray(message) || ArrayBuffer.isView(message) || message.constructor === Buffer) { + return crypto.createHash(algorithm).update(bufferFrom(message)).digest('hex'); + } else { + return method(message); + } + }; + return nodeMethod; + }; + var createHmacOutputMethod = function createHmacOutputMethod(outputType, is224) { + return function (key, message) { + return new HmacSha256(key, is224, true).update(message)[outputType](); + }; + }; + var createHmacMethod = function createHmacMethod(is224) { + var method = createHmacOutputMethod('hex', is224); + method.create = function (key) { + return new HmacSha256(key, is224); + }; + method.update = function (key, message) { + return method.create(key).update(message); + }; + for (var i = 0; i < OUTPUT_TYPES.length; ++i) { + var type = OUTPUT_TYPES[i]; + method[type] = createHmacOutputMethod(type, is224); + } + return method; + }; + function Sha256(is224, sharedMemory) { + if (sharedMemory) { + blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0; + this.blocks = blocks; + } else { + this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + } + if (is224) { + this.h0 = 0xc1059ed8; + this.h1 = 0x367cd507; + this.h2 = 0x3070dd17; + this.h3 = 0xf70e5939; + this.h4 = 0xffc00b31; + this.h5 = 0x68581511; + this.h6 = 0x64f98fa7; + this.h7 = 0xbefa4fa4; + } else { + // 256 + this.h0 = 0x6a09e667; + this.h1 = 0xbb67ae85; + this.h2 = 0x3c6ef372; + this.h3 = 0xa54ff53a; + this.h4 = 0x510e527f; + this.h5 = 0x9b05688c; + this.h6 = 0x1f83d9ab; + this.h7 = 0x5be0cd19; + } + this.block = this.start = this.bytes = this.hBytes = 0; + this.finalized = this.hashed = false; + this.first = true; + this.is224 = is224; + } + Sha256.prototype.update = function (message) { + if (this.finalized) { + return; + } + var notString, + type = _typeof(message); + if (type !== 'string') { + if (type === 'object') { + if (message === null) { + throw new Error(ERROR); + } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) { + message = new Uint8Array(message); + } else if (!Array.isArray(message)) { + if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) { + throw new Error(ERROR); + } + } + } else { + throw new Error(ERROR); + } + notString = true; + } + var code, + index = 0, + i, + length = message.length, + blocks = this.blocks; + while (index < length) { + if (this.hashed) { + this.hashed = false; + blocks[0] = this.block; + blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0; + } + if (notString) { + for (i = this.start; index < length && i < 64; ++index) { + blocks[i >> 2] |= message[index] << SHIFT[i++ & 3]; + } + } else { + for (i = this.start; index < length && i < 64; ++index) { + code = message.charCodeAt(index); + if (code < 0x80) { + blocks[i >> 2] |= code << SHIFT[i++ & 3]; + } else if (code < 0x800) { + blocks[i >> 2] |= (0xc0 | code >> 6) << SHIFT[i++ & 3]; + blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3]; + } else if (code < 0xd800 || code >= 0xe000) { + blocks[i >> 2] |= (0xe0 | code >> 12) << SHIFT[i++ & 3]; + blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3]; + blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3]; + } else { + code = 0x10000 + ((code & 0x3ff) << 10 | message.charCodeAt(++index) & 0x3ff); + blocks[i >> 2] |= (0xf0 | code >> 18) << SHIFT[i++ & 3]; + blocks[i >> 2] |= (0x80 | code >> 12 & 0x3f) << SHIFT[i++ & 3]; + blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3]; + blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3]; + } + } + } + this.lastByteIndex = i; + this.bytes += i - this.start; + if (i >= 64) { + this.block = blocks[16]; + this.start = i - 64; + this.hash(); + this.hashed = true; + } else { + this.start = i; + } + } + if (this.bytes > 4294967295) { + this.hBytes += this.bytes / 4294967296 << 0; + this.bytes = this.bytes % 4294967296; + } + return this; + }; + Sha256.prototype.finalize = function () { + if (this.finalized) { + return; + } + this.finalized = true; + var blocks = this.blocks, + i = this.lastByteIndex; + blocks[16] = this.block; + blocks[i >> 2] |= EXTRA[i & 3]; + this.block = blocks[16]; + if (i >= 56) { + if (!this.hashed) { + this.hash(); + } + blocks[0] = this.block; + blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0; + } + blocks[14] = this.hBytes << 3 | this.bytes >>> 29; + blocks[15] = this.bytes << 3; + this.hash(); + }; + Sha256.prototype.hash = function () { + var a = this.h0, + b = this.h1, + c = this.h2, + d = this.h3, + e = this.h4, + f = this.h5, + g = this.h6, + h = this.h7, + blocks = this.blocks, + j, + s0, + s1, + maj, + t1, + t2, + ch, + ab, + da, + cd, + bc; + for (j = 16; j < 64; ++j) { + // rightrotate + t1 = blocks[j - 15]; + s0 = (t1 >>> 7 | t1 << 25) ^ (t1 >>> 18 | t1 << 14) ^ t1 >>> 3; + t1 = blocks[j - 2]; + s1 = (t1 >>> 17 | t1 << 15) ^ (t1 >>> 19 | t1 << 13) ^ t1 >>> 10; + blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0; + } + bc = b & c; + for (j = 0; j < 64; j += 4) { + if (this.first) { + if (this.is224) { + ab = 300032; + t1 = blocks[0] - 1413257819; + h = t1 - 150054599 << 0; + d = t1 + 24177077 << 0; + } else { + ab = 704751109; + t1 = blocks[0] - 210244248; + h = t1 - 1521486534 << 0; + d = t1 + 143694565 << 0; + } + this.first = false; + } else { + s0 = (a >>> 2 | a << 30) ^ (a >>> 13 | a << 19) ^ (a >>> 22 | a << 10); + s1 = (e >>> 6 | e << 26) ^ (e >>> 11 | e << 21) ^ (e >>> 25 | e << 7); + ab = a & b; + maj = ab ^ a & c ^ bc; + ch = e & f ^ ~e & g; + t1 = h + s1 + ch + K[j] + blocks[j]; + t2 = s0 + maj; + h = d + t1 << 0; + d = t1 + t2 << 0; + } + s0 = (d >>> 2 | d << 30) ^ (d >>> 13 | d << 19) ^ (d >>> 22 | d << 10); + s1 = (h >>> 6 | h << 26) ^ (h >>> 11 | h << 21) ^ (h >>> 25 | h << 7); + da = d & a; + maj = da ^ d & b ^ ab; + ch = h & e ^ ~h & f; + t1 = g + s1 + ch + K[j + 1] + blocks[j + 1]; + t2 = s0 + maj; + g = c + t1 << 0; + c = t1 + t2 << 0; + s0 = (c >>> 2 | c << 30) ^ (c >>> 13 | c << 19) ^ (c >>> 22 | c << 10); + s1 = (g >>> 6 | g << 26) ^ (g >>> 11 | g << 21) ^ (g >>> 25 | g << 7); + cd = c & d; + maj = cd ^ c & a ^ da; + ch = g & h ^ ~g & e; + t1 = f + s1 + ch + K[j + 2] + blocks[j + 2]; + t2 = s0 + maj; + f = b + t1 << 0; + b = t1 + t2 << 0; + s0 = (b >>> 2 | b << 30) ^ (b >>> 13 | b << 19) ^ (b >>> 22 | b << 10); + s1 = (f >>> 6 | f << 26) ^ (f >>> 11 | f << 21) ^ (f >>> 25 | f << 7); + bc = b & c; + maj = bc ^ b & d ^ cd; + ch = f & g ^ ~f & h; + t1 = e + s1 + ch + K[j + 3] + blocks[j + 3]; + t2 = s0 + maj; + e = a + t1 << 0; + a = t1 + t2 << 0; + this.chromeBugWorkAround = true; + } + this.h0 = this.h0 + a << 0; + this.h1 = this.h1 + b << 0; + this.h2 = this.h2 + c << 0; + this.h3 = this.h3 + d << 0; + this.h4 = this.h4 + e << 0; + this.h5 = this.h5 + f << 0; + this.h6 = this.h6 + g << 0; + this.h7 = this.h7 + h << 0; + }; + Sha256.prototype.hex = function () { + this.finalize(); + var h0 = this.h0, + h1 = this.h1, + h2 = this.h2, + h3 = this.h3, + h4 = this.h4, + h5 = this.h5, + h6 = this.h6, + h7 = this.h7; + var hex = HEX_CHARS[h0 >> 28 & 0x0F] + HEX_CHARS[h0 >> 24 & 0x0F] + HEX_CHARS[h0 >> 20 & 0x0F] + HEX_CHARS[h0 >> 16 & 0x0F] + HEX_CHARS[h0 >> 12 & 0x0F] + HEX_CHARS[h0 >> 8 & 0x0F] + HEX_CHARS[h0 >> 4 & 0x0F] + HEX_CHARS[h0 & 0x0F] + HEX_CHARS[h1 >> 28 & 0x0F] + HEX_CHARS[h1 >> 24 & 0x0F] + HEX_CHARS[h1 >> 20 & 0x0F] + HEX_CHARS[h1 >> 16 & 0x0F] + HEX_CHARS[h1 >> 12 & 0x0F] + HEX_CHARS[h1 >> 8 & 0x0F] + HEX_CHARS[h1 >> 4 & 0x0F] + HEX_CHARS[h1 & 0x0F] + HEX_CHARS[h2 >> 28 & 0x0F] + HEX_CHARS[h2 >> 24 & 0x0F] + HEX_CHARS[h2 >> 20 & 0x0F] + HEX_CHARS[h2 >> 16 & 0x0F] + HEX_CHARS[h2 >> 12 & 0x0F] + HEX_CHARS[h2 >> 8 & 0x0F] + HEX_CHARS[h2 >> 4 & 0x0F] + HEX_CHARS[h2 & 0x0F] + HEX_CHARS[h3 >> 28 & 0x0F] + HEX_CHARS[h3 >> 24 & 0x0F] + HEX_CHARS[h3 >> 20 & 0x0F] + HEX_CHARS[h3 >> 16 & 0x0F] + HEX_CHARS[h3 >> 12 & 0x0F] + HEX_CHARS[h3 >> 8 & 0x0F] + HEX_CHARS[h3 >> 4 & 0x0F] + HEX_CHARS[h3 & 0x0F] + HEX_CHARS[h4 >> 28 & 0x0F] + HEX_CHARS[h4 >> 24 & 0x0F] + HEX_CHARS[h4 >> 20 & 0x0F] + HEX_CHARS[h4 >> 16 & 0x0F] + HEX_CHARS[h4 >> 12 & 0x0F] + HEX_CHARS[h4 >> 8 & 0x0F] + HEX_CHARS[h4 >> 4 & 0x0F] + HEX_CHARS[h4 & 0x0F] + HEX_CHARS[h5 >> 28 & 0x0F] + HEX_CHARS[h5 >> 24 & 0x0F] + HEX_CHARS[h5 >> 20 & 0x0F] + HEX_CHARS[h5 >> 16 & 0x0F] + HEX_CHARS[h5 >> 12 & 0x0F] + HEX_CHARS[h5 >> 8 & 0x0F] + HEX_CHARS[h5 >> 4 & 0x0F] + HEX_CHARS[h5 & 0x0F] + HEX_CHARS[h6 >> 28 & 0x0F] + HEX_CHARS[h6 >> 24 & 0x0F] + HEX_CHARS[h6 >> 20 & 0x0F] + HEX_CHARS[h6 >> 16 & 0x0F] + HEX_CHARS[h6 >> 12 & 0x0F] + HEX_CHARS[h6 >> 8 & 0x0F] + HEX_CHARS[h6 >> 4 & 0x0F] + HEX_CHARS[h6 & 0x0F]; + if (!this.is224) { + hex += HEX_CHARS[h7 >> 28 & 0x0F] + HEX_CHARS[h7 >> 24 & 0x0F] + HEX_CHARS[h7 >> 20 & 0x0F] + HEX_CHARS[h7 >> 16 & 0x0F] + HEX_CHARS[h7 >> 12 & 0x0F] + HEX_CHARS[h7 >> 8 & 0x0F] + HEX_CHARS[h7 >> 4 & 0x0F] + HEX_CHARS[h7 & 0x0F]; + } + return hex; + }; + Sha256.prototype.toString = Sha256.prototype.hex; + Sha256.prototype.digest = function () { + this.finalize(); + var h0 = this.h0, + h1 = this.h1, + h2 = this.h2, + h3 = this.h3, + h4 = this.h4, + h5 = this.h5, + h6 = this.h6, + h7 = this.h7; + var arr = [h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF]; + if (!this.is224) { + arr.push(h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF); + } + return arr; + }; + Sha256.prototype.array = Sha256.prototype.digest; + Sha256.prototype.arrayBuffer = function () { + this.finalize(); + var buffer = new ArrayBuffer(this.is224 ? 28 : 32); + var dataView = new DataView(buffer); + dataView.setUint32(0, this.h0); + dataView.setUint32(4, this.h1); + dataView.setUint32(8, this.h2); + dataView.setUint32(12, this.h3); + dataView.setUint32(16, this.h4); + dataView.setUint32(20, this.h5); + dataView.setUint32(24, this.h6); + if (!this.is224) { + dataView.setUint32(28, this.h7); + } + return buffer; + }; + function HmacSha256(key, is224, sharedMemory) { + var i, + type = _typeof(key); + if (type === 'string') { + var bytes = [], + length = key.length, + index = 0, + code; + for (i = 0; i < length; ++i) { + code = key.charCodeAt(i); + if (code < 0x80) { + bytes[index++] = code; + } else if (code < 0x800) { + bytes[index++] = 0xc0 | code >> 6; + bytes[index++] = 0x80 | code & 0x3f; + } else if (code < 0xd800 || code >= 0xe000) { + bytes[index++] = 0xe0 | code >> 12; + bytes[index++] = 0x80 | code >> 6 & 0x3f; + bytes[index++] = 0x80 | code & 0x3f; + } else { + code = 0x10000 + ((code & 0x3ff) << 10 | key.charCodeAt(++i) & 0x3ff); + bytes[index++] = 0xf0 | code >> 18; + bytes[index++] = 0x80 | code >> 12 & 0x3f; + bytes[index++] = 0x80 | code >> 6 & 0x3f; + bytes[index++] = 0x80 | code & 0x3f; + } + } + key = bytes; + } else { + if (type === 'object') { + if (key === null) { + throw new Error(ERROR); + } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) { + key = new Uint8Array(key); + } else if (!Array.isArray(key)) { + if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) { + throw new Error(ERROR); + } + } + } else { + throw new Error(ERROR); + } + } + if (key.length > 64) { + key = new Sha256(is224, true).update(key).array(); + } + var oKeyPad = [], + iKeyPad = []; + for (i = 0; i < 64; ++i) { + var b = key[i] || 0; + oKeyPad[i] = 0x5c ^ b; + iKeyPad[i] = 0x36 ^ b; + } + Sha256.call(this, is224, sharedMemory); + this.update(iKeyPad); + this.oKeyPad = oKeyPad; + this.inner = true; + this.sharedMemory = sharedMemory; + } + HmacSha256.prototype = new Sha256(); + HmacSha256.prototype.finalize = function () { + Sha256.prototype.finalize.call(this); + if (this.inner) { + this.inner = false; + var innerHash = this.array(); + Sha256.call(this, this.is224, this.sharedMemory); + this.update(this.oKeyPad); + this.update(innerHash); + Sha256.prototype.finalize.call(this); + } + }; + var exports = createMethod(); + exports.sha256 = exports; + exports.sha224 = createMethod(true); + exports.sha256.hmac = createHmacMethod(); + exports.sha224.hmac = createHmacMethod(true); + if (COMMON_JS) { + module.exports = exports; + } else { + root.sha256 = exports.sha256; + root.sha224 = exports.sha224; + if (AMD) { + define(function () { + return exports; + }); + } + } +})(); + +}).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"_process":6,"buffer":2,"crypto":2}],78:[function(require,module,exports){ +'use strict'; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +var traverse = module.exports = function (schema, opts, cb) { + // Legacy support for v0.3.1 and earlier. + if (typeof opts == 'function') { + cb = opts; + opts = {}; + } + cb = opts.cb || cb; + var pre = typeof cb == 'function' ? cb : cb.pre || function () {}; + var post = cb.post || function () {}; + _traverse(opts, pre, post, schema, '', schema); +}; +traverse.keywords = { + additionalItems: true, + items: true, + contains: true, + additionalProperties: true, + propertyNames: true, + not: true, + "if": true, + then: true, + "else": true +}; +traverse.arrayKeywords = { + items: true, + allOf: true, + anyOf: true, + oneOf: true +}; +traverse.propsKeywords = { + $defs: true, + definitions: true, + properties: true, + patternProperties: true, + dependencies: true +}; +traverse.skipKeywords = { + "default": true, + "enum": true, + "const": true, + required: true, + maximum: true, + minimum: true, + exclusiveMaximum: true, + exclusiveMinimum: true, + multipleOf: true, + maxLength: true, + minLength: true, + pattern: true, + format: true, + maxItems: true, + minItems: true, + uniqueItems: true, + maxProperties: true, + minProperties: true +}; +function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) { + if (schema && _typeof(schema) == 'object' && !Array.isArray(schema)) { + pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); + for (var key in schema) { + var sch = schema[key]; + if (Array.isArray(sch)) { + if (key in traverse.arrayKeywords) { + for (var i = 0; i < sch.length; i++) _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i); + } + } else if (key in traverse.propsKeywords) { + if (sch && _typeof(sch) == 'object') { + for (var prop in sch) _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop); + } + } else if (key in traverse.keywords || opts.allKeys && !(key in traverse.skipKeywords)) { + _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema); + } + } + post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); + } +} +function escapeJsonPtr(str) { + return str.replace(/~/g, '~0').replace(/\//g, '~1'); +} + +},{}],79:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.MiniMap = void 0; +var MiniMap = exports.MiniMap = L.Control.MiniMap = L.Control.extend({ + includes: L.Evented ? L.Evented.prototype : L.Mixin.Events, + options: { + position: 'bottomright', + toggleDisplay: false, + zoomLevelOffset: -5, + zoomLevelFixed: false, + centerFixed: false, + zoomAnimation: false, + autoToggleDisplay: false, + minimized: false, + width: 150, + height: 150, + collapsedWidth: 19, + collapsedHeight: 19, + aimingRectOptions: { + color: '#ff7800', + weight: 1, + interactive: false + }, + shadowRectOptions: { + color: '#000000', + weight: 1, + interactive: false, + opacity: 0, + fillOpacity: 0 + }, + hideText: 'Hide MiniMap', + showText: 'Show MiniMap', + mapOptions: {} // Allows definition / override of Leaflet map options. + }, + // layer is the map layer to be shown in the minimap + initialize: function initialize(layer, options) { + L.Util.setOptions(this, options); + // Make sure the aiming rects are non-clickable even if the user tries to set them clickable (most likely by forgetting to specify them false) + this.options.aimingRectOptions.interactive = false; + this.options.shadowRectOptions.interactive = false; + this._layer = layer; + }, + onAdd: function onAdd(map) { + this._mainMap = map; + + // Creating the container and stopping events from spilling through to the main map. + this._container = L.DomUtil.create('div', 'leaflet-control-minimap'); + this._container.style.width = this.options.width + 'px'; + this._container.style.height = this.options.height + 'px'; + L.DomEvent.disableClickPropagation(this._container); + L.DomEvent.on(this._container, 'mousewheel', L.DomEvent.stopPropagation); + var mapOptions = { + attributionControl: false, + dragging: !this.options.centerFixed, + zoomControl: false, + zoomAnimation: this.options.zoomAnimation, + autoToggleDisplay: this.options.autoToggleDisplay, + touchZoom: this.options.centerFixed ? 'center' : !this._isZoomLevelFixed(), + scrollWheelZoom: this.options.centerFixed ? 'center' : !this._isZoomLevelFixed(), + doubleClickZoom: this.options.centerFixed ? 'center' : !this._isZoomLevelFixed(), + boxZoom: !this._isZoomLevelFixed(), + crs: map.options.crs + }; + mapOptions = L.Util.extend(this.options.mapOptions, mapOptions); // merge with priority of the local mapOptions object. + + this._miniMap = new L.Map(this._container, mapOptions); + this._miniMap.addLayer(this._layer); + + // These bools are used to prevent infinite loops of the two maps notifying each other that they've moved. + this._mainMapMoving = false; + this._miniMapMoving = false; + + // Keep a record of this to prevent auto toggling when the user explicitly doesn't want it. + this._userToggledDisplay = false; + this._minimized = false; + if (this.options.toggleDisplay) { + this._addToggleButton(); + } + this._miniMap.whenReady(L.Util.bind(function () { + this._aimingRect = L.rectangle(this._mainMap.getBounds(), this.options.aimingRectOptions).addTo(this._miniMap); + this._shadowRect = L.rectangle(this._mainMap.getBounds(), this.options.shadowRectOptions).addTo(this._miniMap); + this._mainMap.on('move', this._onMainMapMoving, this); + this._mainMap.on('moveend', this._onMainMapMoved, this); + this._mainMap.on('resize', this._onMainMapResize, this); + this._miniMap.on('movestart', this._onMiniMapMoveStarted, this); + this._miniMap.on('move', this._onMiniMapMoving, this); + this._miniMap.on('moveend', this._onMiniMapMoved, this); + }, this)); + return this._container; + }, + addTo: function addTo(map) { + L.Control.prototype.addTo.call(this, map); + var center = this.options.centerFixed || this._mainMap.getCenter(); + this._miniMap.setView(center, this._decideZoom(true)); + this._setDisplay(this.options.minimized); + return this; + }, + onRemove: function onRemove(map) { + this._mainMap.off('move', this._onMainMapMoving, this); + this._mainMap.off('moveend', this._onMainMapMoved, this); + this._mainMap.off('resize', this._onMainMapResize, this); + this._miniMap.off('movestart', this._onMiniMapMoveStarted, this); + this._miniMap.off('move', this._onMiniMapMoving, this); + this._miniMap.off('moveend', this._onMiniMapMoved, this); + this._miniMap.removeLayer(this._layer); + }, + changeLayer: function changeLayer(layer) { + this._miniMap.removeLayer(this._layer); + this._layer = layer; + this._miniMap.addLayer(this._layer); + }, + _addToggleButton: function _addToggleButton() { + this._toggleDisplayButton = this.options.toggleDisplay ? this._createButton('', this._toggleButtonInitialTitleText(), 'leaflet-control-minimap-toggle-display leaflet-control-minimap-toggle-display-' + this.options.position, this._container, this._toggleDisplayButtonClicked, this) : undefined; + this._toggleDisplayButton.style.width = this.options.collapsedWidth + 'px'; + this._toggleDisplayButton.style.height = this.options.collapsedHeight + 'px'; + }, + _toggleButtonInitialTitleText: function _toggleButtonInitialTitleText() { + if (this.options.minimized) { + return this.options.showText; + } else { + return this.options.hideText; + } + }, + _createButton: function _createButton(html, title, className, container, fn, context) { + var link = L.DomUtil.create('a', className, container); + link.innerHTML = html; + link.href = '#'; + link.title = title; + var stop = L.DomEvent.stopPropagation; + L.DomEvent.on(link, 'click', stop).on(link, 'mousedown', stop).on(link, 'dblclick', stop).on(link, 'click', L.DomEvent.preventDefault).on(link, 'click', fn, context); + return link; + }, + _toggleDisplayButtonClicked: function _toggleDisplayButtonClicked() { + this._userToggledDisplay = true; + if (!this._minimized) { + this.minimize(); + } else { + this.restore(); + } + }, + _setDisplay: function _setDisplay(minimize) { + if (minimize !== this._minimized) { + if (!this._minimized) { + this.minimize(); + } else { + this.restore(); + } + } + }, + minimize: function minimize() { + // hide the minimap + if (this.options.toggleDisplay) { + this._container.style.width = this.options.collapsedWidth + 'px'; + this._container.style.height = this.options.collapsedHeight + 'px'; + this._toggleDisplayButton.className += ' minimized-' + this.options.position; + this._toggleDisplayButton.title = this.options.showText; + } else { + this._container.style.display = 'none'; + } + this._minimized = true; + this._toggle(); + }, + restore: function restore() { + if (this.options.toggleDisplay) { + this._container.style.width = this.options.width + 'px'; + this._container.style.height = this.options.height + 'px'; + this._toggleDisplayButton.className = this._toggleDisplayButton.className.replace('minimized-' + this.options.position, ''); + this._toggleDisplayButton.title = this.options.hideText; + } else { + this._container.style.display = 'block'; + } + this._minimized = false; + this._toggle(); + }, + invalidateSize: function invalidateSize() { + this._miniMap.invalidateSize(); + }, + _onMainMapMoved: function _onMainMapMoved(e) { + if (!this._miniMapMoving) { + var center = this.options.centerFixed || this._mainMap.getCenter(); + this._mainMapMoving = true; + this._miniMap.setView(center, this._decideZoom(true)); + this._setDisplay(this._decideMinimized()); + } else { + this._miniMapMoving = false; + } + this._aimingRect.setBounds(this._mainMap.getBounds()); + }, + _onMainMapMoving: function _onMainMapMoving(e) { + this._aimingRect.setBounds(this._mainMap.getBounds()); + }, + _onMiniMapMoveStarted: function _onMiniMapMoveStarted(e) { + if (!this.options.centerFixed) { + var lastAimingRect = this._aimingRect.getBounds(); + var sw = this._miniMap.latLngToContainerPoint(lastAimingRect.getSouthWest()); + var ne = this._miniMap.latLngToContainerPoint(lastAimingRect.getNorthEast()); + this._lastAimingRectPosition = { + sw: sw, + ne: ne + }; + } + }, + _onMiniMapMoving: function _onMiniMapMoving(e) { + if (!this.options.centerFixed) { + if (!this._mainMapMoving && this._lastAimingRectPosition) { + this._shadowRect.setBounds(new L.LatLngBounds(this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.sw), this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.ne))); + this._shadowRect.setStyle({ + opacity: 1, + fillOpacity: 0.3 + }); + } + } + }, + _onMiniMapMoved: function _onMiniMapMoved(e) { + if (!this._mainMapMoving) { + this._miniMapMoving = true; + this._mainMap.setView(this._miniMap.getCenter(), this._decideZoom(false)); + this._shadowRect.setStyle({ + opacity: 0, + fillOpacity: 0 + }); + } else { + this._mainMapMoving = false; + } + }, + _onMainMapResize: function _onMainMapResize(e) { + this._miniMap.invalidateSize(); + }, + _isZoomLevelFixed: function _isZoomLevelFixed() { + var zoomLevelFixed = this.options.zoomLevelFixed; + return this._isDefined(zoomLevelFixed) && this._isInteger(zoomLevelFixed); + }, + _decideZoom: function _decideZoom(fromMaintoMini) { + if (!this._isZoomLevelFixed()) { + if (fromMaintoMini) { + return this._mainMap.getZoom() + this.options.zoomLevelOffset; + } else { + var currentDiff = this._miniMap.getZoom() - this._mainMap.getZoom(); + var proposedZoom = this._miniMap.getZoom() - this.options.zoomLevelOffset; + var toRet; + if (currentDiff > this.options.zoomLevelOffset && this._mainMap.getZoom() < this._miniMap.getMinZoom() - this.options.zoomLevelOffset) { + // This means the miniMap is zoomed out to the minimum zoom level and can't zoom any more. + if (this._miniMap.getZoom() > this._lastMiniMapZoom) { + // This means the user is trying to zoom in by using the minimap, zoom the main map. + toRet = this._mainMap.getZoom() + 1; + // Also we cheat and zoom the minimap out again to keep it visually consistent. + this._miniMap.setZoom(this._miniMap.getZoom() - 1); + } else { + // Either the user is trying to zoom out past the mini map's min zoom or has just panned using it, we can't tell the difference. + // Therefore, we ignore it! + toRet = this._mainMap.getZoom(); + } + } else { + // This is what happens in the majority of cases, and always if you configure the min levels + offset in a sane fashion. + toRet = proposedZoom; + } + this._lastMiniMapZoom = this._miniMap.getZoom(); + return toRet; + } + } else { + if (fromMaintoMini) { + return this.options.zoomLevelFixed; + } else { + return this._mainMap.getZoom(); + } + } + }, + _decideMinimized: function _decideMinimized() { + if (this._userToggledDisplay) { + return this._minimized; + } + if (this.options.autoToggleDisplay) { + if (this._mainMap.getBounds().contains(this._miniMap.getBounds())) { + return true; + } + return false; + } + return this._minimized; + }, + _isInteger: function _isInteger(value) { + return typeof value === 'number'; + }, + _isDefined: function _isDefined(value) { + return typeof value !== 'undefined'; + }, + _toggle: function _toggle() { + L.Util.requestAnimFrame(function () { + L.DomEvent.on(this._container, 'transitionend', this._fireToggleEvents, this); + if (!L.Browser.any3d) { + L.Util.requestAnimFrame(this._fireToggleEvents, this); + } + }, this); + }, + disableInteractivity: function disableInteractivity() { + this._miniMap.dragging.disable(); + this._miniMap.scrollWheelZoom.disable(); + this._miniMap.doubleClickZoom.disable(); + this._miniMap.touchZoom.disable(); + }, + isMiniMapOpen: function isMiniMapOpen() { + return !this._minimized; + }, + _fireToggleEvents: function _fireToggleEvents() { + this.invalidateSize(); + L.DomEvent.off(this._container, 'transitionend', this._fireToggleEvents, this); + var data = { + minimized: this._minimized + }; + this.fire(this._minimized ? 'minimize' : 'restore', data); + this.invalidateSize(); + this.fire('toggle', data); + } +}); +L.Map.mergeOptions({ + miniMapControl: false +}); +L.Map.addInitHook(function () { + if (this.options.miniMapControl) { + this.miniMapControl = new MiniMap().addTo(this); + } +}); +L.control.minimap = function (layer, options) { + return new L.Control.MiniMap(layer, options); +}; + +},{}],80:[function(require,module,exports){ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +!function (a, t) { + "object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define("leafletGestureHandling", ["exports"], t) : t(a.leafletGestureHandling = {}); +}(void 0, function (a) { + "use strict"; + + var o = { + ar: { + touch: "استخدم إصبعين لتحريك الخريطة", + scroll: "‏استخدم ctrl + scroll لتصغير/تكبير الخريطة", + scrollMac: "يمكنك استخدام ⌘ + التمرير لتكبير/تصغير الخريطة" + }, + bg: { + touch: "Използвайте два пръста, за да преместите картата", + scroll: "Задръжте бутона Ctrl натиснат, докато превъртате, за да промените мащаба на картата", + scrollMac: "Задръжте бутона ⌘ натиснат, докато превъртате, за да промените мащаба на картата" + }, + bn: { + touch: "মানচিত্রটিকে সরাতে দুটি আঙ্গুল ব্যবহার করুন", + scroll: "ম্যাপ জুম করতে ctrl + scroll ব্যবহার করুন", + scrollMac: "ম্যাপে জুম করতে ⌘ বোতাম টিপে স্ক্রল করুন" + }, + ca: { + touch: "Fes servir dos dits per moure el mapa", + scroll: "Prem la tecla Control mentre et desplaces per apropar i allunyar el mapa", + scrollMac: "Prem la tecla ⌘ mentre et desplaces per apropar i allunyar el mapa" + }, + cs: { + touch: "K posunutí mapy použijte dva prsty", + scroll: "Velikost zobrazení mapy změňte podržením klávesy Ctrl a posouváním kolečka myši", + scrollMac: "Velikost zobrazení mapy změníte podržením klávesy ⌘ a posunutím kolečka myši / touchpadu" + }, + da: { + touch: "Brug to fingre til at flytte kortet", + scroll: "Brug ctrl + rullefunktionen til at zoome ind og ud på kortet", + scrollMac: "Brug ⌘ + rullefunktionen til at zoome ind og ud på kortet" + }, + de: { + touch: "Verschieben der Karte mit zwei Fingern", + scroll: "Verwende Strg+Scrollen zum Zoomen der Karte", + scrollMac: "⌘" + }, + el: { + touch: "Χρησιμοποιήστε δύο δάχτυλα για μετακίνηση στον χάρτη", + scroll: "Χρησιμοποιήστε το πλήκτρο Ctrl και κύλιση, για να μεγεθύνετε τον χάρτη", + scrollMac: "Χρησιμοποιήστε το πλήκτρο ⌘ + κύλιση για εστίαση στον χάρτη" + }, + en: { + touch: "Use two fingers to move the map", + scroll: "Use ctrl + scroll to zoom the map", + scrollMac: "Use ⌘ + scroll to zoom the map" + }, + "en-AU": { + touch: "Use two fingers to move the map", + scroll: "Use ctrl + scroll to zoom the map", + scrollMac: "Use ⌘ + scroll to zoom the map" + }, + "en-GB": { + touch: "Use two fingers to move the map", + scroll: "Use ctrl + scroll to zoom the map", + scrollMac: "Use ⌘ + scroll to zoom the map" + }, + es: { + touch: "Para mover el mapa, utiliza dos dedos", + scroll: "Mantén pulsada la tecla Ctrl mientras te desplazas para acercar o alejar el mapa", + scrollMac: "Mantén pulsada la tecla ⌘ mientras te desplazas para acercar o alejar el mapa" + }, + eu: { + touch: "Erabili bi hatz mapa mugitzeko", + scroll: "Mapan zooma aplikatzeko, sakatu Ktrl eta egin gora edo behera", + scrollMac: "Eduki sakatuta ⌘ eta egin gora eta behera mapa handitu eta txikitzeko" + }, + fa: { + touch: "برای حرکت دادن نقشه از دو انگشت استفاده کنید.", + scroll: "‏برای بزرگ‌نمایی نقشه از ctrl + scroll استفاده کنید", + scrollMac: "برای بزرگ‌نمایی نقشه، از ⌘ + پیمایش استفاده کنید." + }, + fi: { + touch: "Siirrä karttaa kahdella sormella.", + scroll: "Zoomaa karttaa painamalla Ctrl-painiketta ja vierittämällä.", + scrollMac: "Zoomaa karttaa pitämällä painike ⌘ painettuna ja vierittämällä." + }, + fil: { + touch: "Gumamit ng dalawang daliri upang iusog ang mapa", + scroll: "Gamitin ang ctrl + scroll upang i-zoom ang mapa", + scrollMac: "Gamitin ang ⌘ + scroll upang i-zoom ang mapa" + }, + fr: { + touch: "Utilisez deux doigts pour déplacer la carte", + scroll: "Vous pouvez zoomer sur la carte à l'aide de CTRL+Molette de défilement", + scrollMac: "Vous pouvez zoomer sur la carte à l'aide de ⌘+Molette de défilement" + }, + gl: { + touch: "Utiliza dous dedos para mover o mapa", + scroll: "Preme Ctrl mentres te desprazas para ampliar o mapa", + scrollMac: "Preme ⌘ e desprázate para ampliar o mapa" + }, + gu: { + touch: "નકશો ખસેડવા બે આંગળીઓનો ઉપયોગ કરો", + scroll: "નકશાને ઝૂમ કરવા માટે ctrl + સ્ક્રોલનો ઉપયોગ કરો", + scrollMac: "નકશાને ઝૂમ કરવા ⌘ + સ્ક્રોલનો ઉપયોગ કરો" + }, + hi: { + touch: "मैप एक जगह से दूसरी जगह ले जाने के लिए दो उंगलियों का इस्तेमाल करें", + scroll: "मैप को ज़ूम करने के लिए ctrl + स्क्रोल का उपयोग करें", + scrollMac: "मैप को ज़ूम करने के लिए ⌘ + स्क्रोल का उपयोग करें" + }, + hr: { + touch: "Pomičite kartu pomoću dva prsta", + scroll: "Upotrijebite Ctrl i klizač miša da biste zumirali kartu", + scrollMac: "Upotrijebite gumb ⌘ dok se pomičete za zumiranje karte" + }, + hu: { + touch: "Két ujjal mozgassa a térképet", + scroll: "A térkép a ctrl + görgetés használatával nagyítható", + scrollMac: "A térkép a ⌘ + görgetés használatával nagyítható" + }, + id: { + touch: "Gunakan dua jari untuk menggerakkan peta", + scroll: "Gunakan ctrl + scroll untuk memperbesar atau memperkecil peta", + scrollMac: "Gunakan ⌘ + scroll untuk memperbesar atau memperkecil peta" + }, + it: { + touch: "Utilizza due dita per spostare la mappa", + scroll: "Utilizza CTRL + scorrimento per eseguire lo zoom della mappa", + scrollMac: "Utilizza ⌘ + scorrimento per eseguire lo zoom della mappa" + }, + iw: { + touch: "הזז את המפה באמצעות שתי אצבעות", + scroll: "‏אפשר לשנות את מרחק התצוגה במפה באמצעות מקש ctrl וגלילה", + scrollMac: "אפשר לשנות את מרחק התצוגה במפה באמצעות מקש ⌘ וגלילה" + }, + ja: { + touch: "地図を移動させるには指 2 本で操作します", + scroll: "地図をズームするには、Ctrl キーを押しながらスクロールしてください", + scrollMac: "地図をズームするには、⌘ キーを押しながらスクロールしてください" + }, + kn: { + touch: "Use two fingers to move the map", + scroll: "Use Ctrl + scroll to zoom the map", + scrollMac: "Use ⌘ + scroll to zoom the map" + }, + ko: { + touch: "지도를 움직이려면 두 손가락을 사용하세요.", + scroll: "지도를 확대/축소하려면 Ctrl을 누른 채 스크롤하세요.", + scrollMac: "지도를 확대하려면 ⌘ + 스크롤 사용" + }, + lt: { + touch: "Perkelkite žemėlapį dviem pirštais", + scroll: "Slinkite nuspaudę klavišą „Ctrl“, kad pakeistumėte žemėlapio mastelį", + scrollMac: "Paspauskite klavišą ⌘ ir slinkite, kad priartintumėte žemėlapį" + }, + lv: { + touch: "Lai pārvietotu karti, bīdiet to ar diviem pirkstiem", + scroll: "Kartes tālummaiņai izmantojiet ctrl + ritināšanu", + scrollMac: "Lai veiktu kartes tālummaiņu, izmantojiet ⌘ + ritināšanu" + }, + ml: { + touch: "മാപ്പ് നീക്കാൻ രണ്ട് വിരലുകൾ ഉപയോഗിക്കുക", + scroll: "കൺട്രോൾ + സ്‌ക്രോൾ ഉപയോഗിച്ച് ‌മാപ്പ് ‌സൂം ചെയ്യുക", + scrollMac: "⌘ + സ്‌ക്രോൾ ഉപയോഗിച്ച് ‌മാപ്പ് ‌സൂം ചെയ്യുക" + }, + mr: { + touch: "नकाशा हलविण्यासाठी दोन बोटे वापरा", + scroll: "नकाशा झूम करण्यासाठी ctrl + scroll वापरा", + scrollMac: "नकाशावर झूम करण्यासाठी ⌘ + स्क्रोल वापरा" + }, + nl: { + touch: "Gebruik twee vingers om de kaart te verplaatsen", + scroll: "Gebruik Ctrl + scrollen om in- en uit te zoomen op de kaart", + scrollMac: "Gebruik ⌘ + scrollen om in en uit te zoomen op de kaart" + }, + no: { + touch: "Bruk to fingre for å flytte kartet", + scroll: "Hold ctrl-tasten inne og rull for å zoome på kartet", + scrollMac: "Hold inne ⌘-tasten og rull for å zoome på kartet" + }, + pl: { + touch: "Przesuń mapę dwoma palcami", + scroll: "Naciśnij CTRL i przewiń, by przybliżyć mapę", + scrollMac: "Naciśnij ⌘ i przewiń, by przybliżyć mapę" + }, + pt: { + touch: "Use dois dedos para mover o mapa", + scroll: "Pressione Ctrl e role a tela simultaneamente para aplicar zoom no mapa", + scrollMac: "Use ⌘ e role a tela simultaneamente para aplicar zoom no mapa" + }, + "pt-BR": { + touch: "Use dois dedos para mover o mapa", + scroll: "Pressione Ctrl e role a tela simultaneamente para aplicar zoom no mapa", + scrollMac: "Use ⌘ e role a tela simultaneamente para aplicar zoom no mapa" + }, + "pt-PT": { + touch: "Utilize dois dedos para mover o mapa", + scroll: "Utilizar ctrl + deslocar para aumentar/diminuir zoom do mapa", + scrollMac: "Utilize ⌘ + deslocar para aumentar/diminuir o zoom do mapa" + }, + ro: { + touch: "Folosiți două degete pentru a deplasa harta", + scroll: "Apăsați tasta ctrl și derulați simultan pentru a mări harta", + scrollMac: "Folosiți ⌘ și derulați pentru a mări/micșora harta" + }, + ru: { + touch: "Чтобы переместить карту, проведите по ней двумя пальцами", + scroll: "Чтобы изменить масштаб, прокручивайте карту, удерживая клавишу Ctrl.", + scrollMac: "Чтобы изменить масштаб, нажмите ⌘ + прокрутка" + }, + sk: { + touch: "Mapu môžete posunúť dvoma prstami", + scroll: "Ak chcete priblížiť mapu, stlačte kláves ctrl a posúvajte", + scrollMac: "Ak chcete priblížiť mapu, stlačte kláves ⌘ a posúvajte kolieskom myši" + }, + sl: { + touch: "Premaknite zemljevid z dvema prstoma", + scroll: "Zemljevid povečate tako, da držite tipko Ctrl in vrtite kolesce na miški", + scrollMac: "Uporabite ⌘ + funkcijo pomika, da povečate ali pomanjšate zemljevid" + }, + sr: { + touch: "Мапу померајте помоћу два прста", + scroll: "Притисните ctrl тастер док померате да бисте зумирали мапу", + scrollMac: "Притисните тастер ⌘ док померате да бисте зумирали мапу" + }, + sv: { + touch: "Använd två fingrar för att flytta kartan", + scroll: "Använd ctrl + rulla för att zooma kartan", + scrollMac: "Använd ⌘ + rulla för att zooma på kartan" + }, + ta: { + touch: "மேப்பை நகர்த்த இரண்டு விரல்களைப் பயன்படுத்தவும்", + scroll: "மேப்பை பெரிதாக்கி/சிறிதாக்கிப் பார்க்க, ctrl பட்டனைப் பிடித்தபடி, மேலே/கீழே ஸ்க்ரால் செய்யவும்", + scrollMac: "மேப்பை பெரிதாக்கி/சிறிதாக்கிப் பார்க்க, ⌘ பட்டனைப் பிடித்தபடி, மேலே/கீழே ஸ்க்ரால் செய்யவும்" + }, + te: { + touch: "మ్యాప్‌ని తరలించడం కోసం రెండు వేళ్లను ఉపయోగించండి", + scroll: "మ్యాప్‌ని జూమ్ చేయడానికి ctrl బటన్‌ను నొక్కి ఉంచి, స్క్రోల్ చేయండి", + scrollMac: "మ్యాప్ జూమ్ చేయాలంటే ⌘ + స్క్రోల్ ఉపయోగించండి" + }, + th: { + touch: "ใช้ 2 นิ้วเพื่อเลื่อนแผนที่", + scroll: "กด Ctrl ค้างไว้ แล้วเลื่อนหน้าจอเพื่อซูมแผนที่", + scrollMac: "กด ⌘ แล้วเลื่อนหน้าจอเพื่อซูมแผนที่" + }, + tl: { + touch: "Gumamit ng dalawang daliri upang iusog ang mapa", + scroll: "Gamitin ang ctrl + scroll upang i-zoom ang mapa", + scrollMac: "Gamitin ang ⌘ + scroll upang i-zoom ang mapa" + }, + tr: { + touch: "Haritada gezinmek için iki parmağınızı kullanın", + scroll: "Haritayı yakınlaştırmak için ctrl + kaydırma kombinasyonunu kullanın", + scrollMac: "Haritayı yakınlaştırmak için ⌘ tuşuna basıp ekranı kaydırın" + }, + uk: { + touch: "Переміщуйте карту двома пальцями", + scroll: "Щоб змінювати масштаб карти, прокручуйте коліщатко миші, утримуючи клавішу Ctrl", + scrollMac: "Щоб змінити масштаб карти, використовуйте ⌘ + прокручування" + }, + vi: { + touch: "Sử dụng hai ngón tay để di chuyển bản đồ", + scroll: "Sử dụng ctrl + cuộn để thu phóng bản đồ", + scrollMac: "Sử dụng ⌘ + cuộn để thu phóng bản đồ" + }, + "zh-CN": { + touch: "使用双指移动地图", + scroll: "按住 Ctrl 并滚动鼠标滚轮才可缩放地图", + scrollMac: "按住 ⌘ 并滚动鼠标滚轮才可缩放地图" + }, + "zh-TW": { + touch: "同時以兩指移動地圖", + scroll: "按住 ctrl 鍵加上捲動滑鼠可以縮放地圖", + scrollMac: "按 ⌘ 加上滾動捲軸可以縮放地圖" + } + }; + L.Map.mergeOptions({ + gestureHandlingOptions: { + text: {}, + duration: 1e3 + } + }); + var t = !1, + e = L.Handler.extend({ + addHooks: function addHooks() { + this._handleTouch = this._handleTouch.bind(this), this._setupPluginOptions(), this._setLanguageContent(), this._disableInteractions(), this._map._container.addEventListener("touchstart", this._handleTouch), this._map._container.addEventListener("touchmove", this._handleTouch), this._map._container.addEventListener("touchend", this._handleTouch), this._map._container.addEventListener("touchcancel", this._handleTouch), this._map._container.addEventListener("click", this._handleTouch), L.DomEvent.on(this._map._container, "wheel", this._handleScroll, this), L.DomEvent.on(this._map, "mouseover", this._handleMouseOver, this), L.DomEvent.on(this._map, "mouseout", this._handleMouseOut, this), L.DomEvent.on(this._map, "movestart", this._handleDragging, this), L.DomEvent.on(this._map, "move", this._handleDragging, this), L.DomEvent.on(this._map, "moveend", this._handleDragging, this); + }, + removeHooks: function removeHooks() { + this._enableInteractions(), this._map._container.removeEventListener("touchstart", this._handleTouch), this._map._container.removeEventListener("touchmove", this._handleTouch), this._map._container.removeEventListener("touchend", this._handleTouch), this._map._container.removeEventListener("touchcancel", this._handleTouch), this._map._container.removeEventListener("click", this._handleTouch), L.DomEvent.off(this._map._container, "wheel", this._handleScroll, this), L.DomEvent.off(this._map, "mouseover", this._handleMouseOver, this), L.DomEvent.off(this._map, "mouseout", this._handleMouseOut, this), L.DomEvent.off(this._map, "movestart", this._handleDragging, this), L.DomEvent.off(this._map, "move", this._handleDragging, this), L.DomEvent.off(this._map, "moveend", this._handleDragging, this); + }, + _handleDragging: function _handleDragging(a) { + "movestart" == a.type || "move" == a.type ? t = !0 : "moveend" == a.type && (t = !1); + }, + _disableInteractions: function _disableInteractions() { + this._map.dragging.disable(), this._map.scrollWheelZoom.disable(), this._map.tap && this._map.tap.disable(); + }, + _enableInteractions: function _enableInteractions() { + this._map.dragging.enable(), this._map.scrollWheelZoom.enable(), this._map.tap && this._map.tap.enable(); + }, + _setupPluginOptions: function _setupPluginOptions() { + this._map.options.gestureHandlingText && (this._map.options.gestureHandlingOptions.text = this._map.options.gestureHandlingText); + }, + _setLanguageContent: function _setLanguageContent() { + var a; + if (this._map.options.gestureHandlingOptions && this._map.options.gestureHandlingOptions.text && this._map.options.gestureHandlingOptions.text.touch && this._map.options.gestureHandlingOptions.text.scroll && this._map.options.gestureHandlingOptions.text.scrollMac) a = this._map.options.gestureHandlingOptions.text;else { + var t = this._getUserLanguage(); + t || (t = "en"), o[t] && (a = o[t]), a || -1 === t.indexOf("-") || (t = t.split("-")[0], a = o[t]), a || (a = o[t = "en"]); + } + var e = !1; + 0 <= navigator.platform.toUpperCase().indexOf("MAC") && (e = !0); + var l = a.scroll; + e && (l = a.scrollMac), this._map._container.setAttribute("data-gesture-handling-touch-content", a.touch), this._map._container.setAttribute("data-gesture-handling-scroll-content", l); + }, + _getUserLanguage: function _getUserLanguage() { + return navigator.languages ? navigator.languages[0] : navigator.language || navigator.userLanguage; + }, + _handleTouch: function _handleTouch(a) { + for (var t = ["leaflet-control-minimap", "leaflet-interactive", "leaflet-popup-content", "leaflet-popup-content-wrapper", "leaflet-popup-close-button", "leaflet-control-zoom-in", "leaflet-control-zoom-out"], e = !1, l = 0; l < t.length; l++) L.DomUtil.hasClass(a.target, t[l]) && (e = !0); + e ? L.DomUtil.hasClass(a.target, "leaflet-interactive") && "touchmove" === a.type && 1 === a.touches.length ? (L.DomUtil.addClass(this._map._container, "leaflet-gesture-handling-touch-warning"), this._disableInteractions()) : L.DomUtil.removeClass(this._map._container, "leaflet-gesture-handling-touch-warning") : "touchmove" === a.type || "touchstart" === a.type ? 1 === a.touches.length ? (L.DomUtil.addClass(this._map._container, "leaflet-gesture-handling-touch-warning"), this._disableInteractions()) : (a.preventDefault(), this._enableInteractions(), L.DomUtil.removeClass(this._map._container, "leaflet-gesture-handling-touch-warning")) : L.DomUtil.removeClass(this._map._container, "leaflet-gesture-handling-touch-warning"); + }, + _isScrolling: !1, + _handleScroll: function _handleScroll(a) { + a.metaKey || a.ctrlKey ? (a.preventDefault(), L.DomUtil.removeClass(this._map._container, "leaflet-gesture-handling-scroll-warning"), this._map.scrollWheelZoom.enable()) : (L.DomUtil.addClass(this._map._container, "leaflet-gesture-handling-scroll-warning"), this._map.scrollWheelZoom.disable(), clearTimeout(this._isScrolling), this._isScrolling = setTimeout(function () { + for (var a = document.getElementsByClassName("leaflet-gesture-handling-scroll-warning"), t = 0; t < a.length; t++) L.DomUtil.removeClass(a[t], "leaflet-gesture-handling-scroll-warning"); + }, this._map.options.gestureHandlingOptions.duration)); + }, + _handleMouseOver: function _handleMouseOver(a) { + this._enableInteractions(); + }, + _handleMouseOut: function _handleMouseOut(a) { + t || this._disableInteractions(); + } + }); + L.Map.addInitHook("addHandler", "gestureHandling", e), a.GestureHandling = e, a["default"] = e, Object.defineProperty(a, "__esModule", { + value: !0 + }); +}); + +},{}],81:[function(require,module,exports){ +"use strict"; + +/** + * Leaflet vector features drag functionality + * @author Alexander Milevski + * @preserve + */ +L.Path.include({ + _transform: function _transform(t) { + if (this._renderer) { + if (t) { + this._renderer.transformPath(this, t); + } else { + this._renderer._resetTransformPath(this); + this._update(); + } + } + return this; + }, + _onMouseClick: function _onMouseClick(t) { + if (this.dragging && this.dragging.moved() || this._map.dragging && this._map.dragging.moved()) { + return; + } + this._fireMouseEvent(t); + } +}); +var END = { + mousedown: "mouseup", + touchstart: "touchend", + pointerdown: "touchend", + MSPointerDown: "touchend" +}; +var MOVE = { + mousedown: "mousemove", + touchstart: "touchmove", + pointerdown: "touchmove", + MSPointerDown: "touchmove" +}; +function distance(t, a) { + var i = t.x - a.x, + n = t.y - a.y; + return Math.sqrt(i * i + n * n); +} +L.Handler.PathDrag = L.Handler.extend({ + statics: { + DRAGGING_CLS: "leaflet-path-draggable" + }, + initialize: function initialize(t) { + this._path = t; + this._matrix = null; + this._startPoint = null; + this._dragStartPoint = null; + this._mapDraggingWasEnabled = false; + this._path._dragMoved = false; + }, + addHooks: function addHooks() { + this._path.on("mousedown", this._onDragStart, this); + this._path.options.className = this._path.options.className ? this._path.options.className + " " + L.Handler.PathDrag.DRAGGING_CLS : L.Handler.PathDrag.DRAGGING_CLS; + if (this._path._path) { + L.DomUtil.addClass(this._path._path, L.Handler.PathDrag.DRAGGING_CLS); + } + }, + removeHooks: function removeHooks() { + this._path.off("mousedown", this._onDragStart, this); + this._path.options.className = this._path.options.className.replace(new RegExp("\\s+" + L.Handler.PathDrag.DRAGGING_CLS), ""); + if (this._path._path) { + L.DomUtil.removeClass(this._path._path, L.Handler.PathDrag.DRAGGING_CLS); + } + }, + moved: function moved() { + return this._path._dragMoved; + }, + _onDragStart: function _onDragStart(t) { + var a = t.originalEvent._simulated ? "touchstart" : t.originalEvent.type; + this._mapDraggingWasEnabled = false; + this._startPoint = t.containerPoint.clone(); + this._dragStartPoint = t.containerPoint.clone(); + this._matrix = [1, 0, 0, 1, 0, 0]; + L.DomEvent.stop(t.originalEvent); + L.DomUtil.addClass(this._path._renderer._container, "leaflet-interactive"); + L.DomEvent.on(document, MOVE[a], this._onDrag, this).on(document, END[a], this._onDragEnd, this); + if (this._path._map.dragging.enabled()) { + this._path._map.dragging.disable(); + this._mapDraggingWasEnabled = true; + } + this._path._dragMoved = false; + if (this._path._popup) { + this._path._popup.close(); + } + this._replaceCoordGetters(t); + }, + _onDrag: function _onDrag(t) { + L.DomEvent.stop(t); + var a = t.touches && t.touches.length >= 1 ? t.touches[0] : t; + var i = this._path._map.mouseEventToContainerPoint(a); + if (t.type === "touchmove" && !this._path._dragMoved) { + var n = this._dragStartPoint.distanceTo(i); + if (n <= this._path._map.options.tapTolerance) { + return; + } + } + var e = i.x; + var r = i.y; + var s = e - this._startPoint.x; + var o = r - this._startPoint.y; + if (s || o) { + if (!this._path._dragMoved) { + this._path._dragMoved = true; + this._path.options.interactive = false; + this._path._map.dragging._draggable._moved = true; + this._path.fire("dragstart", t); + this._path.bringToFront(); + } + this._matrix[4] += s; + this._matrix[5] += o; + this._startPoint.x = e; + this._startPoint.y = r; + this._path.fire("predrag", t); + this._path._transform(this._matrix); + this._path.fire("drag", t); + } + }, + _onDragEnd: function _onDragEnd(t) { + var a = this._path._map.mouseEventToContainerPoint(t); + var i = this.moved(); + if (i) { + this._transformPoints(this._matrix); + this._path._updatePath(); + this._path._project(); + this._path._transform(null); + L.DomEvent.stop(t); + } + L.DomEvent.off(document, "mousemove touchmove", this._onDrag, this); + L.DomEvent.off(document, "mouseup touchend", this._onDragEnd, this); + this._restoreCoordGetters(); + if (i) { + this._path.fire("dragend", { + distance: distance(this._dragStartPoint, a) + }); + var n = this._path._containsPoint; + this._path._containsPoint = L.Util.falseFn; + L.Util.requestAnimFrame(function () { + this._path._dragMoved = false; + this._path.options.interactive = true; + this._path._containsPoint = n; + }, this); + } + if (this._mapDraggingWasEnabled) { + this._path._map.dragging.enable(); + } + }, + _transformPoints: function _transformPoints(t, a) { + var i = this._path; + var n, e, r; + var s = L.point(t[4], t[5]); + var o = i._map.options.crs; + var h = o.transformation; + var _ = o.scale(i._map.getZoom()); + var g = o.projection; + var d = h.untransform(s, _).subtract(h.untransform(L.point(0, 0), _)); + var p = !a; + i._bounds = new L.LatLngBounds(); + if (i._point) { + a = g.unproject(g.project(i._latlng)._add(d)); + if (p) { + i._latlng = a; + i._point._add(s); + } + } else if (i._rings || i._parts) { + var l = i._rings || i._parts; + var f = i._latlngs; + a = a || f; + if (!L.Util.isArray(f[0])) { + f = [f]; + a = [a]; + } + for (n = 0, e = l.length; n < e; n++) { + a[n] = a[n] || []; + for (var u = 0, m = l[n].length; u < m; u++) { + r = f[n][u]; + a[n][u] = g.unproject(g.project(r)._add(d)); + if (p) { + i._bounds.extend(f[n][u]); + l[n][u]._add(s); + } + } + } + } + return a; + }, + _replaceCoordGetters: function _replaceCoordGetters() { + if (this._path.getLatLng) { + this._path.getLatLng_ = this._path.getLatLng; + this._path.getLatLng = L.Util.bind(function () { + return this.dragging._transformPoints(this.dragging._matrix, {}); + }, this._path); + } else if (this._path.getLatLngs) { + this._path.getLatLngs_ = this._path.getLatLngs; + this._path.getLatLngs = L.Util.bind(function () { + return this.dragging._transformPoints(this.dragging._matrix, []); + }, this._path); + } + }, + _restoreCoordGetters: function _restoreCoordGetters() { + if (this._path.getLatLng_) { + this._path.getLatLng = this._path.getLatLng_; + delete this._path.getLatLng_; + } else if (this._path.getLatLngs_) { + this._path.getLatLngs = this._path.getLatLngs_; + delete this._path.getLatLngs_; + } + } +}); +L.Handler.PathDrag.makeDraggable = function (t) { + t.dragging = new L.Handler.PathDrag(t); + return t; +}; +L.Path.prototype.makeDraggable = function () { + return L.Handler.PathDrag.makeDraggable(this); +}; +L.Path.addInitHook(function () { + if (this.options.draggable) { + this.options.interactive = true; + if (this.dragging) { + this.dragging.enable(); + } else { + L.Handler.PathDrag.makeDraggable(this); + this.dragging.enable(); + } + } else if (this.dragging) { + this.dragging.disable(); + } +}); +L.SVG.include({ + _resetTransformPath: function _resetTransformPath(t) { + t._path.setAttributeNS(null, "transform", ""); + }, + transformPath: function transformPath(t, a) { + t._path.setAttributeNS(null, "transform", "matrix(" + a.join(" ") + ")"); + } +}); +L.SVG.include(!L.Browser.vml ? {} : { + _resetTransformPath: function _resetTransformPath(t) { + if (t._skew) { + t._skew.on = false; + t._path.removeChild(t._skew); + t._skew = null; + } + }, + transformPath: function transformPath(t, a) { + var i = t._skew; + if (!i) { + i = L.SVG.create("skew"); + t._path.appendChild(i); + i.style.behavior = "url(#default#VML)"; + t._skew = i; + } + var n = a[0].toFixed(8) + " " + a[1].toFixed(8) + " " + a[2].toFixed(8) + " " + a[3].toFixed(8) + " 0 0"; + var e = Math.floor(a[4]).toFixed() + ", " + Math.floor(a[5]).toFixed() + ""; + var r = this._path.style; + var s = parseFloat(r.left); + var o = parseFloat(r.top); + var h = parseFloat(r.width); + var _ = parseFloat(r.height); + if (isNaN(s)) s = 0; + if (isNaN(o)) o = 0; + if (isNaN(h) || !h) h = 1; + if (isNaN(_) || !_) _ = 1; + var g = (-s / h - .5).toFixed(8) + " " + (-o / _ - .5).toFixed(8); + i.on = "f"; + i.matrix = n; + i.origin = g; + i.offset = e; + i.on = true; + } +}); +function TRUE_FN() { + return true; +} +L.Canvas.include({ + _resetTransformPath: function _resetTransformPath(t) { + if (!this._containerCopy) return; + delete this._containerCopy; + if (t._containsPoint_) { + t._containsPoint = t._containsPoint_; + delete t._containsPoint_; + this._requestRedraw(t); + } + }, + transformPath: function transformPath(t, a) { + var i = this._containerCopy; + var n = this._ctx, + e; + var r = L.Browser.retina ? 2 : 1; + var s = this._bounds; + var o = s.getSize(); + var h = s.min; + if (!i) { + i = this._containerCopy = document.createElement("canvas"); + e = i.getContext("2d"); + i.width = r * o.x; + i.height = r * o.y; + this._removePath(t); + this._redraw(); + e.translate(r * s.min.x, r * s.min.y); + e.drawImage(this._container, 0, 0); + this._initPath(t); + t._containsPoint_ = t._containsPoint; + t._containsPoint = TRUE_FN; + } + n.save(); + n.clearRect(h.x, h.y, o.x * r, o.y * r); + n.setTransform(1, 0, 0, 1, 0, 0); + n.restore(); + n.save(); + n.drawImage(this._containerCopy, 0, 0, o.x, o.y); + n.transform.apply(n, a); + this._drawing = true; + t._updatePath(); + this._drawing = false; + n.restore(); + } +}); + +},{}],82:[function(require,module,exports){ +"use strict"; + +L.Control.ScaleNautic = L.Control.Scale.extend({ + options: { + nautic: false + }, + _addScales: function _addScales(options, className, container) { + L.Control.Scale.prototype._addScales.call(this, options, className, container); + L.setOptions(options); + if (this.options.nautic) { + this._nScale = L.DomUtil.create('div', className, container); + } + }, + _updateScales: function _updateScales(maxMeters) { + L.Control.Scale.prototype._updateScales.call(this, maxMeters); + if (this.options.nautic && maxMeters) { + this._updateNautic(maxMeters); + } + }, + _updateNautic: function _updateNautic(maxMeters) { + var scale = this._nScale, + maxNauticalMiles = maxMeters / 1852, + nauticalMiles; + if (maxMeters >= 1852) { + nauticalMiles = L.Control.Scale.prototype._getRoundNum.call(this, maxNauticalMiles); + } else { + nauticalMiles = maxNauticalMiles > 0.1 ? Math.round(maxNauticalMiles * 10) / 10 : Math.round(maxNauticalMiles * 100) / 100; + } + scale.style.width = Math.round(this.options.maxWidth * (nauticalMiles / maxNauticalMiles)) - 10 + 'px'; + scale.innerHTML = nauticalMiles + ' nm'; + } +}); +L.control.scalenautic = function (options) { + return new L.Control.ScaleNautic(options); +}; + +},{}],83:[function(require,module,exports){ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/* @preserve + * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ + +(function (global, factory) { + (typeof exports === "undefined" ? "undefined" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.leaflet = {})); +})(void 0, function (exports) { + 'use strict'; + + var version = "1.9.4"; + + /* + * @namespace Util + * + * Various utility functions, used by Leaflet internally. + */ + + // @function extend(dest: Object, src?: Object): Object + // Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut. + function extend(dest) { + var i, j, len, src; + for (j = 1, len = arguments.length; j < len; j++) { + src = arguments[j]; + for (i in src) { + dest[i] = src[i]; + } + } + return dest; + } + + // @function create(proto: Object, properties?: Object): Object + // Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create) + var create$2 = Object.create || function () { + function F() {} + return function (proto) { + F.prototype = proto; + return new F(); + }; + }(); + + // @function bind(fn: Function, …): Function + // Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind). + // Has a `L.bind()` shortcut. + function bind(fn, obj) { + var slice = Array.prototype.slice; + if (fn.bind) { + return fn.bind.apply(fn, slice.call(arguments, 1)); + } + var args = slice.call(arguments, 2); + return function () { + return fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments); + }; + } + + // @property lastId: Number + // Last unique ID used by [`stamp()`](#util-stamp) + var lastId = 0; + + // @function stamp(obj: Object): Number + // Returns the unique ID of an object, assigning it one if it doesn't have it. + function stamp(obj) { + if (!('_leaflet_id' in obj)) { + obj['_leaflet_id'] = ++lastId; + } + return obj._leaflet_id; + } + + // @function throttle(fn: Function, time: Number, context: Object): Function + // Returns a function which executes function `fn` with the given scope `context` + // (so that the `this` keyword refers to `context` inside `fn`'s code). The function + // `fn` will be called no more than one time per given amount of `time`. The arguments + // received by the bound function will be any arguments passed when binding the + // function, followed by any arguments passed when invoking the bound function. + // Has an `L.throttle` shortcut. + function throttle(fn, time, context) { + var lock, args, wrapperFn, later; + later = function later() { + // reset lock and call if queued + lock = false; + if (args) { + wrapperFn.apply(context, args); + args = false; + } + }; + wrapperFn = function wrapperFn() { + if (lock) { + // called too soon, queue to call later + args = arguments; + } else { + // call and lock until later + fn.apply(context, arguments); + setTimeout(later, time); + lock = true; + } + }; + return wrapperFn; + } + + // @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number + // Returns the number `num` modulo `range` in such a way so it lies within + // `range[0]` and `range[1]`. The returned value will be always smaller than + // `range[1]` unless `includeMax` is set to `true`. + function wrapNum(x, range, includeMax) { + var max = range[1], + min = range[0], + d = max - min; + return x === max && includeMax ? x : ((x - min) % d + d) % d + min; + } + + // @function falseFn(): Function + // Returns a function which always returns `false`. + function falseFn() { + return false; + } + + // @function formatNum(num: Number, precision?: Number|false): Number + // Returns the number `num` rounded with specified `precision`. + // The default `precision` value is 6 decimal places. + // `false` can be passed to skip any processing (can be useful to avoid round-off errors). + function formatNum(num, precision) { + if (precision === false) { + return num; + } + var pow = Math.pow(10, precision === undefined ? 6 : precision); + return Math.round(num * pow) / pow; + } + + // @function trim(str: String): String + // Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim) + function trim(str) { + return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); + } + + // @function splitWords(str: String): String[] + // Trims and splits the string on whitespace and returns the array of parts. + function splitWords(str) { + return trim(str).split(/\s+/); + } + + // @function setOptions(obj: Object, options: Object): Object + // Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut. + function setOptions(obj, options) { + if (!Object.prototype.hasOwnProperty.call(obj, 'options')) { + obj.options = obj.options ? create$2(obj.options) : {}; + } + for (var i in options) { + obj.options[i] = options[i]; + } + return obj.options; + } + + // @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String + // Converts an object into a parameter URL string, e.g. `{a: "foo", b: "bar"}` + // translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will + // be appended at the end. If `uppercase` is `true`, the parameter names will + // be uppercased (e.g. `'?A=foo&B=bar'`) + function getParamString(obj, existingUrl, uppercase) { + var params = []; + for (var i in obj) { + params.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i])); + } + return (!existingUrl || existingUrl.indexOf('?') === -1 ? '?' : '&') + params.join('&'); + } + var templateRe = /\{ *([\w_ -]+) *\}/g; + + // @function template(str: String, data: Object): String + // Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'` + // and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string + // `('Hello foo, bar')`. You can also specify functions instead of strings for + // data values — they will be evaluated passing `data` as an argument. + function template(str, data) { + return str.replace(templateRe, function (str, key) { + var value = data[key]; + if (value === undefined) { + throw new Error('No value provided for variable ' + str); + } else if (typeof value === 'function') { + value = value(data); + } + return value; + }); + } + + // @function isArray(obj): Boolean + // Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray) + var isArray = Array.isArray || function (obj) { + return Object.prototype.toString.call(obj) === '[object Array]'; + }; + + // @function indexOf(array: Array, el: Object): Number + // Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) + function indexOf(array, el) { + for (var i = 0; i < array.length; i++) { + if (array[i] === el) { + return i; + } + } + return -1; + } + + // @property emptyImageUrl: String + // Data URI string containing a base64-encoded empty GIF image. + // Used as a hack to free memory from unused images on WebKit-powered + // mobile devices (by setting image `src` to this string). + var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='; + + // inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/ + + function getPrefixed(name) { + return window['webkit' + name] || window['moz' + name] || window['ms' + name]; + } + var lastTime = 0; + + // fallback for IE 7-8 + function timeoutDefer(fn) { + var time = +new Date(), + timeToCall = Math.max(0, 16 - (time - lastTime)); + lastTime = time + timeToCall; + return window.setTimeout(fn, timeToCall); + } + var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer; + var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') || getPrefixed('CancelRequestAnimationFrame') || function (id) { + window.clearTimeout(id); + }; + + // @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number + // Schedules `fn` to be executed when the browser repaints. `fn` is bound to + // `context` if given. When `immediate` is set, `fn` is called immediately if + // the browser doesn't have native support for + // [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame), + // otherwise it's delayed. Returns a request ID that can be used to cancel the request. + function requestAnimFrame(fn, context, immediate) { + if (immediate && requestFn === timeoutDefer) { + fn.call(context); + } else { + return requestFn.call(window, bind(fn, context)); + } + } + + // @function cancelAnimFrame(id: Number): undefined + // Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame). + function cancelAnimFrame(id) { + if (id) { + cancelFn.call(window, id); + } + } + var Util = { + __proto__: null, + extend: extend, + create: create$2, + bind: bind, + get lastId() { + return lastId; + }, + stamp: stamp, + throttle: throttle, + wrapNum: wrapNum, + falseFn: falseFn, + formatNum: formatNum, + trim: trim, + splitWords: splitWords, + setOptions: setOptions, + getParamString: getParamString, + template: template, + isArray: isArray, + indexOf: indexOf, + emptyImageUrl: emptyImageUrl, + requestFn: requestFn, + cancelFn: cancelFn, + requestAnimFrame: requestAnimFrame, + cancelAnimFrame: cancelAnimFrame + }; + + // @class Class + // @aka L.Class + + // @section + // @uninheritable + + // Thanks to John Resig and Dean Edwards for inspiration! + + function Class() {} + Class.extend = function (props) { + // @function extend(props: Object): Function + // [Extends the current class](#class-inheritance) given the properties to be included. + // Returns a Javascript function that is a class constructor (to be called with `new`). + var NewClass = function NewClass() { + setOptions(this); + + // call the constructor + if (this.initialize) { + this.initialize.apply(this, arguments); + } + + // call all constructor hooks + this.callInitHooks(); + }; + var parentProto = NewClass.__super__ = this.prototype; + var proto = create$2(parentProto); + proto.constructor = NewClass; + NewClass.prototype = proto; + + // inherit parent's statics + for (var i in this) { + if (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') { + NewClass[i] = this[i]; + } + } + + // mix static properties into the class + if (props.statics) { + extend(NewClass, props.statics); + } + + // mix includes into the prototype + if (props.includes) { + checkDeprecatedMixinEvents(props.includes); + extend.apply(null, [proto].concat(props.includes)); + } + + // mix given properties into the prototype + extend(proto, props); + delete proto.statics; + delete proto.includes; + + // merge options + if (proto.options) { + proto.options = parentProto.options ? create$2(parentProto.options) : {}; + extend(proto.options, props.options); + } + proto._initHooks = []; + + // add method for calling all hooks + proto.callInitHooks = function () { + if (this._initHooksCalled) { + return; + } + if (parentProto.callInitHooks) { + parentProto.callInitHooks.call(this); + } + this._initHooksCalled = true; + for (var i = 0, len = proto._initHooks.length; i < len; i++) { + proto._initHooks[i].call(this); + } + }; + return NewClass; + }; + + // @function include(properties: Object): this + // [Includes a mixin](#class-includes) into the current class. + Class.include = function (props) { + var parentOptions = this.prototype.options; + extend(this.prototype, props); + if (props.options) { + this.prototype.options = parentOptions; + this.mergeOptions(props.options); + } + return this; + }; + + // @function mergeOptions(options: Object): this + // [Merges `options`](#class-options) into the defaults of the class. + Class.mergeOptions = function (options) { + extend(this.prototype.options, options); + return this; + }; + + // @function addInitHook(fn: Function): this + // Adds a [constructor hook](#class-constructor-hooks) to the class. + Class.addInitHook = function (fn) { + // (Function) || (String, args...) + var args = Array.prototype.slice.call(arguments, 1); + var init = typeof fn === 'function' ? fn : function () { + this[fn].apply(this, args); + }; + this.prototype._initHooks = this.prototype._initHooks || []; + this.prototype._initHooks.push(init); + return this; + }; + function checkDeprecatedMixinEvents(includes) { + /* global L: true */ + if (typeof L === 'undefined' || !L || !L.Mixin) { + return; + } + includes = isArray(includes) ? includes : [includes]; + for (var i = 0; i < includes.length; i++) { + if (includes[i] === L.Mixin.Events) { + console.warn('Deprecated include of L.Mixin.Events: ' + 'this property will be removed in future releases, ' + 'please inherit from L.Evented instead.', new Error().stack); + } + } + } + + /* + * @class Evented + * @aka L.Evented + * @inherits Class + * + * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event). + * + * @example + * + * ```js + * map.on('click', function(e) { + * alert(e.latlng); + * } ); + * ``` + * + * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function: + * + * ```js + * function onClick(e) { ... } + * + * map.on('click', onClick); + * map.off('click', onClick); + * ``` + */ + + var Events = { + /* @method on(type: String, fn: Function, context?: Object): this + * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`). + * + * @alternative + * @method on(eventMap: Object): this + * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}` + */ + on: function on(types, fn, context) { + // types can be a map of types/handlers + if (_typeof(types) === 'object') { + for (var type in types) { + // we don't process space-separated events here for performance; + // it's a hot path since Layer uses the on(obj) syntax + this._on(type, types[type], fn); + } + } else { + // types can be a string of space-separated words + types = splitWords(types); + for (var i = 0, len = types.length; i < len; i++) { + this._on(types[i], fn, context); + } + } + return this; + }, + /* @method off(type: String, fn?: Function, context?: Object): this + * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener. + * + * @alternative + * @method off(eventMap: Object): this + * Removes a set of type/listener pairs. + * + * @alternative + * @method off: this + * Removes all listeners to all events on the object. This includes implicitly attached events. + */ + off: function off(types, fn, context) { + if (!arguments.length) { + // clear all listeners if called without arguments + delete this._events; + } else if (_typeof(types) === 'object') { + for (var type in types) { + this._off(type, types[type], fn); + } + } else { + types = splitWords(types); + var removeAll = arguments.length === 1; + for (var i = 0, len = types.length; i < len; i++) { + if (removeAll) { + this._off(types[i]); + } else { + this._off(types[i], fn, context); + } + } + } + return this; + }, + // attach listener (without syntactic sugar now) + _on: function _on(type, fn, context, _once) { + if (typeof fn !== 'function') { + console.warn('wrong listener type: ' + _typeof(fn)); + return; + } + + // check if fn already there + if (this._listens(type, fn, context) !== false) { + return; + } + if (context === this) { + // Less memory footprint. + context = undefined; + } + var newListener = { + fn: fn, + ctx: context + }; + if (_once) { + newListener.once = true; + } + this._events = this._events || {}; + this._events[type] = this._events[type] || []; + this._events[type].push(newListener); + }, + _off: function _off(type, fn, context) { + var listeners, i, len; + if (!this._events) { + return; + } + listeners = this._events[type]; + if (!listeners) { + return; + } + if (arguments.length === 1) { + // remove all + if (this._firingCount) { + // Set all removed listeners to noop + // so they are not called if remove happens in fire + for (i = 0, len = listeners.length; i < len; i++) { + listeners[i].fn = falseFn; + } + } + // clear all listeners for a type if function isn't specified + delete this._events[type]; + return; + } + if (typeof fn !== 'function') { + console.warn('wrong listener type: ' + _typeof(fn)); + return; + } + + // find fn and remove it + var index = this._listens(type, fn, context); + if (index !== false) { + var listener = listeners[index]; + if (this._firingCount) { + // set the removed listener to noop so that's not called if remove happens in fire + listener.fn = falseFn; + + /* copy array in case events are being fired */ + this._events[type] = listeners = listeners.slice(); + } + listeners.splice(index, 1); + } + }, + // @method fire(type: String, data?: Object, propagate?: Boolean): this + // Fires an event of the specified type. You can optionally provide a data + // object — the first argument of the listener function will contain its + // properties. The event can optionally be propagated to event parents. + fire: function fire(type, data, propagate) { + if (!this.listens(type, propagate)) { + return this; + } + var event = extend({}, data, { + type: type, + target: this, + sourceTarget: data && data.sourceTarget || this + }); + if (this._events) { + var listeners = this._events[type]; + if (listeners) { + this._firingCount = this._firingCount + 1 || 1; + for (var i = 0, len = listeners.length; i < len; i++) { + var l = listeners[i]; + // off overwrites l.fn, so we need to copy fn to a var + var fn = l.fn; + if (l.once) { + this.off(type, fn, l.ctx); + } + fn.call(l.ctx || this, event); + } + this._firingCount--; + } + } + if (propagate) { + // propagate the event to parents (set with addEventParent) + this._propagateEvent(event); + } + return this; + }, + // @method listens(type: String, propagate?: Boolean): Boolean + // @method listens(type: String, fn: Function, context?: Object, propagate?: Boolean): Boolean + // Returns `true` if a particular event type has any listeners attached to it. + // The verification can optionally be propagated, it will return `true` if parents have the listener attached to it. + listens: function listens(type, fn, context, propagate) { + if (typeof type !== 'string') { + console.warn('"string" type argument expected'); + } + + // we don't overwrite the input `fn` value, because we need to use it for propagation + var _fn = fn; + if (typeof fn !== 'function') { + propagate = !!fn; + _fn = undefined; + context = undefined; + } + var listeners = this._events && this._events[type]; + if (listeners && listeners.length) { + if (this._listens(type, _fn, context) !== false) { + return true; + } + } + if (propagate) { + // also check parents for listeners if event propagates + for (var id in this._eventParents) { + if (this._eventParents[id].listens(type, fn, context, propagate)) { + return true; + } + } + } + return false; + }, + // returns the index (number) or false + _listens: function _listens(type, fn, context) { + if (!this._events) { + return false; + } + var listeners = this._events[type] || []; + if (!fn) { + return !!listeners.length; + } + if (context === this) { + // Less memory footprint. + context = undefined; + } + for (var i = 0, len = listeners.length; i < len; i++) { + if (listeners[i].fn === fn && listeners[i].ctx === context) { + return i; + } + } + return false; + }, + // @method once(…): this + // Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed. + once: function once(types, fn, context) { + // types can be a map of types/handlers + if (_typeof(types) === 'object') { + for (var type in types) { + // we don't process space-separated events here for performance; + // it's a hot path since Layer uses the on(obj) syntax + this._on(type, types[type], fn, true); + } + } else { + // types can be a string of space-separated words + types = splitWords(types); + for (var i = 0, len = types.length; i < len; i++) { + this._on(types[i], fn, context, true); + } + } + return this; + }, + // @method addEventParent(obj: Evented): this + // Adds an event parent - an `Evented` that will receive propagated events + addEventParent: function addEventParent(obj) { + this._eventParents = this._eventParents || {}; + this._eventParents[stamp(obj)] = obj; + return this; + }, + // @method removeEventParent(obj: Evented): this + // Removes an event parent, so it will stop receiving propagated events + removeEventParent: function removeEventParent(obj) { + if (this._eventParents) { + delete this._eventParents[stamp(obj)]; + } + return this; + }, + _propagateEvent: function _propagateEvent(e) { + for (var id in this._eventParents) { + this._eventParents[id].fire(e.type, extend({ + layer: e.target, + propagatedFrom: e.target + }, e), true); + } + } + }; + + // aliases; we should ditch those eventually + + // @method addEventListener(…): this + // Alias to [`on(…)`](#evented-on) + Events.addEventListener = Events.on; + + // @method removeEventListener(…): this + // Alias to [`off(…)`](#evented-off) + + // @method clearAllEventListeners(…): this + // Alias to [`off()`](#evented-off) + Events.removeEventListener = Events.clearAllEventListeners = Events.off; + + // @method addOneTimeEventListener(…): this + // Alias to [`once(…)`](#evented-once) + Events.addOneTimeEventListener = Events.once; + + // @method fireEvent(…): this + // Alias to [`fire(…)`](#evented-fire) + Events.fireEvent = Events.fire; + + // @method hasEventListeners(…): Boolean + // Alias to [`listens(…)`](#evented-listens) + Events.hasEventListeners = Events.listens; + var Evented = Class.extend(Events); + + /* + * @class Point + * @aka L.Point + * + * Represents a point with `x` and `y` coordinates in pixels. + * + * @example + * + * ```js + * var point = L.point(200, 300); + * ``` + * + * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent: + * + * ```js + * map.panBy([200, 300]); + * map.panBy(L.point(200, 300)); + * ``` + * + * Note that `Point` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + + function Point(x, y, round) { + // @property x: Number; The `x` coordinate of the point + this.x = round ? Math.round(x) : x; + // @property y: Number; The `y` coordinate of the point + this.y = round ? Math.round(y) : y; + } + var trunc = Math.trunc || function (v) { + return v > 0 ? Math.floor(v) : Math.ceil(v); + }; + Point.prototype = { + // @method clone(): Point + // Returns a copy of the current point. + clone: function clone() { + return new Point(this.x, this.y); + }, + // @method add(otherPoint: Point): Point + // Returns the result of addition of the current and the given points. + add: function add(point) { + // non-destructive, returns a new point + return this.clone()._add(toPoint(point)); + }, + _add: function _add(point) { + // destructive, used directly for performance in situations where it's safe to modify existing point + this.x += point.x; + this.y += point.y; + return this; + }, + // @method subtract(otherPoint: Point): Point + // Returns the result of subtraction of the given point from the current. + subtract: function subtract(point) { + return this.clone()._subtract(toPoint(point)); + }, + _subtract: function _subtract(point) { + this.x -= point.x; + this.y -= point.y; + return this; + }, + // @method divideBy(num: Number): Point + // Returns the result of division of the current point by the given number. + divideBy: function divideBy(num) { + return this.clone()._divideBy(num); + }, + _divideBy: function _divideBy(num) { + this.x /= num; + this.y /= num; + return this; + }, + // @method multiplyBy(num: Number): Point + // Returns the result of multiplication of the current point by the given number. + multiplyBy: function multiplyBy(num) { + return this.clone()._multiplyBy(num); + }, + _multiplyBy: function _multiplyBy(num) { + this.x *= num; + this.y *= num; + return this; + }, + // @method scaleBy(scale: Point): Point + // Multiply each coordinate of the current point by each coordinate of + // `scale`. In linear algebra terms, multiply the point by the + // [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation) + // defined by `scale`. + scaleBy: function scaleBy(point) { + return new Point(this.x * point.x, this.y * point.y); + }, + // @method unscaleBy(scale: Point): Point + // Inverse of `scaleBy`. Divide each coordinate of the current point by + // each coordinate of `scale`. + unscaleBy: function unscaleBy(point) { + return new Point(this.x / point.x, this.y / point.y); + }, + // @method round(): Point + // Returns a copy of the current point with rounded coordinates. + round: function round() { + return this.clone()._round(); + }, + _round: function _round() { + this.x = Math.round(this.x); + this.y = Math.round(this.y); + return this; + }, + // @method floor(): Point + // Returns a copy of the current point with floored coordinates (rounded down). + floor: function floor() { + return this.clone()._floor(); + }, + _floor: function _floor() { + this.x = Math.floor(this.x); + this.y = Math.floor(this.y); + return this; + }, + // @method ceil(): Point + // Returns a copy of the current point with ceiled coordinates (rounded up). + ceil: function ceil() { + return this.clone()._ceil(); + }, + _ceil: function _ceil() { + this.x = Math.ceil(this.x); + this.y = Math.ceil(this.y); + return this; + }, + // @method trunc(): Point + // Returns a copy of the current point with truncated coordinates (rounded towards zero). + trunc: function trunc() { + return this.clone()._trunc(); + }, + _trunc: function _trunc() { + this.x = trunc(this.x); + this.y = trunc(this.y); + return this; + }, + // @method distanceTo(otherPoint: Point): Number + // Returns the cartesian distance between the current and the given points. + distanceTo: function distanceTo(point) { + point = toPoint(point); + var x = point.x - this.x, + y = point.y - this.y; + return Math.sqrt(x * x + y * y); + }, + // @method equals(otherPoint: Point): Boolean + // Returns `true` if the given point has the same coordinates. + equals: function equals(point) { + point = toPoint(point); + return point.x === this.x && point.y === this.y; + }, + // @method contains(otherPoint: Point): Boolean + // Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values). + contains: function contains(point) { + point = toPoint(point); + return Math.abs(point.x) <= Math.abs(this.x) && Math.abs(point.y) <= Math.abs(this.y); + }, + // @method toString(): String + // Returns a string representation of the point for debugging purposes. + toString: function toString() { + return 'Point(' + formatNum(this.x) + ', ' + formatNum(this.y) + ')'; + } + }; + + // @factory L.point(x: Number, y: Number, round?: Boolean) + // Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values. + + // @alternative + // @factory L.point(coords: Number[]) + // Expects an array of the form `[x, y]` instead. + + // @alternative + // @factory L.point(coords: Object) + // Expects a plain object of the form `{x: Number, y: Number}` instead. + function toPoint(x, y, round) { + if (x instanceof Point) { + return x; + } + if (isArray(x)) { + return new Point(x[0], x[1]); + } + if (x === undefined || x === null) { + return x; + } + if (_typeof(x) === 'object' && 'x' in x && 'y' in x) { + return new Point(x.x, x.y); + } + return new Point(x, y, round); + } + + /* + * @class Bounds + * @aka L.Bounds + * + * Represents a rectangular area in pixel coordinates. + * + * @example + * + * ```js + * var p1 = L.point(10, 10), + * p2 = L.point(40, 60), + * bounds = L.bounds(p1, p2); + * ``` + * + * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this: + * + * ```js + * otherBounds.intersects([[10, 10], [40, 60]]); + * ``` + * + * Note that `Bounds` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + + function Bounds(a, b) { + if (!a) { + return; + } + var points = b ? [a, b] : a; + for (var i = 0, len = points.length; i < len; i++) { + this.extend(points[i]); + } + } + Bounds.prototype = { + // @method extend(point: Point): this + // Extends the bounds to contain the given point. + + // @alternative + // @method extend(otherBounds: Bounds): this + // Extend the bounds to contain the given bounds + extend: function extend(obj) { + var min2, max2; + if (!obj) { + return this; + } + if (obj instanceof Point || typeof obj[0] === 'number' || 'x' in obj) { + min2 = max2 = toPoint(obj); + } else { + obj = toBounds(obj); + min2 = obj.min; + max2 = obj.max; + if (!min2 || !max2) { + return this; + } + } + + // @property min: Point + // The top left corner of the rectangle. + // @property max: Point + // The bottom right corner of the rectangle. + if (!this.min && !this.max) { + this.min = min2.clone(); + this.max = max2.clone(); + } else { + this.min.x = Math.min(min2.x, this.min.x); + this.max.x = Math.max(max2.x, this.max.x); + this.min.y = Math.min(min2.y, this.min.y); + this.max.y = Math.max(max2.y, this.max.y); + } + return this; + }, + // @method getCenter(round?: Boolean): Point + // Returns the center point of the bounds. + getCenter: function getCenter(round) { + return toPoint((this.min.x + this.max.x) / 2, (this.min.y + this.max.y) / 2, round); + }, + // @method getBottomLeft(): Point + // Returns the bottom-left point of the bounds. + getBottomLeft: function getBottomLeft() { + return toPoint(this.min.x, this.max.y); + }, + // @method getTopRight(): Point + // Returns the top-right point of the bounds. + getTopRight: function getTopRight() { + // -> Point + return toPoint(this.max.x, this.min.y); + }, + // @method getTopLeft(): Point + // Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)). + getTopLeft: function getTopLeft() { + return this.min; // left, top + }, + // @method getBottomRight(): Point + // Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)). + getBottomRight: function getBottomRight() { + return this.max; // right, bottom + }, + // @method getSize(): Point + // Returns the size of the given bounds + getSize: function getSize() { + return this.max.subtract(this.min); + }, + // @method contains(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle contains the given one. + // @alternative + // @method contains(point: Point): Boolean + // Returns `true` if the rectangle contains the given point. + contains: function contains(obj) { + var min, max; + if (typeof obj[0] === 'number' || obj instanceof Point) { + obj = toPoint(obj); + } else { + obj = toBounds(obj); + } + if (obj instanceof Bounds) { + min = obj.min; + max = obj.max; + } else { + min = max = obj; + } + return min.x >= this.min.x && max.x <= this.max.x && min.y >= this.min.y && max.y <= this.max.y; + }, + // @method intersects(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle intersects the given bounds. Two bounds + // intersect if they have at least one point in common. + intersects: function intersects(bounds) { + // (Bounds) -> Boolean + bounds = toBounds(bounds); + var min = this.min, + max = this.max, + min2 = bounds.min, + max2 = bounds.max, + xIntersects = max2.x >= min.x && min2.x <= max.x, + yIntersects = max2.y >= min.y && min2.y <= max.y; + return xIntersects && yIntersects; + }, + // @method overlaps(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle overlaps the given bounds. Two bounds + // overlap if their intersection is an area. + overlaps: function overlaps(bounds) { + // (Bounds) -> Boolean + bounds = toBounds(bounds); + var min = this.min, + max = this.max, + min2 = bounds.min, + max2 = bounds.max, + xOverlaps = max2.x > min.x && min2.x < max.x, + yOverlaps = max2.y > min.y && min2.y < max.y; + return xOverlaps && yOverlaps; + }, + // @method isValid(): Boolean + // Returns `true` if the bounds are properly initialized. + isValid: function isValid() { + return !!(this.min && this.max); + }, + // @method pad(bufferRatio: Number): Bounds + // Returns bounds created by extending or retracting the current bounds by a given ratio in each direction. + // For example, a ratio of 0.5 extends the bounds by 50% in each direction. + // Negative values will retract the bounds. + pad: function pad(bufferRatio) { + var min = this.min, + max = this.max, + heightBuffer = Math.abs(min.x - max.x) * bufferRatio, + widthBuffer = Math.abs(min.y - max.y) * bufferRatio; + return toBounds(toPoint(min.x - heightBuffer, min.y - widthBuffer), toPoint(max.x + heightBuffer, max.y + widthBuffer)); + }, + // @method equals(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle is equivalent to the given bounds. + equals: function equals(bounds) { + if (!bounds) { + return false; + } + bounds = toBounds(bounds); + return this.min.equals(bounds.getTopLeft()) && this.max.equals(bounds.getBottomRight()); + } + }; + + // @factory L.bounds(corner1: Point, corner2: Point) + // Creates a Bounds object from two corners coordinate pairs. + // @alternative + // @factory L.bounds(points: Point[]) + // Creates a Bounds object from the given array of points. + function toBounds(a, b) { + if (!a || a instanceof Bounds) { + return a; + } + return new Bounds(a, b); + } + + /* + * @class LatLngBounds + * @aka L.LatLngBounds + * + * Represents a rectangular geographical area on a map. + * + * @example + * + * ```js + * var corner1 = L.latLng(40.712, -74.227), + * corner2 = L.latLng(40.774, -74.125), + * bounds = L.latLngBounds(corner1, corner2); + * ``` + * + * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this: + * + * ```js + * map.fitBounds([ + * [40.712, -74.227], + * [40.774, -74.125] + * ]); + * ``` + * + * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range. + * + * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + + function LatLngBounds(corner1, corner2) { + // (LatLng, LatLng) or (LatLng[]) + if (!corner1) { + return; + } + var latlngs = corner2 ? [corner1, corner2] : corner1; + for (var i = 0, len = latlngs.length; i < len; i++) { + this.extend(latlngs[i]); + } + } + LatLngBounds.prototype = { + // @method extend(latlng: LatLng): this + // Extend the bounds to contain the given point + + // @alternative + // @method extend(otherBounds: LatLngBounds): this + // Extend the bounds to contain the given bounds + extend: function extend(obj) { + var sw = this._southWest, + ne = this._northEast, + sw2, + ne2; + if (obj instanceof LatLng) { + sw2 = obj; + ne2 = obj; + } else if (obj instanceof LatLngBounds) { + sw2 = obj._southWest; + ne2 = obj._northEast; + if (!sw2 || !ne2) { + return this; + } + } else { + return obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this; + } + if (!sw && !ne) { + this._southWest = new LatLng(sw2.lat, sw2.lng); + this._northEast = new LatLng(ne2.lat, ne2.lng); + } else { + sw.lat = Math.min(sw2.lat, sw.lat); + sw.lng = Math.min(sw2.lng, sw.lng); + ne.lat = Math.max(ne2.lat, ne.lat); + ne.lng = Math.max(ne2.lng, ne.lng); + } + return this; + }, + // @method pad(bufferRatio: Number): LatLngBounds + // Returns bounds created by extending or retracting the current bounds by a given ratio in each direction. + // For example, a ratio of 0.5 extends the bounds by 50% in each direction. + // Negative values will retract the bounds. + pad: function pad(bufferRatio) { + var sw = this._southWest, + ne = this._northEast, + heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio, + widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio; + return new LatLngBounds(new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer), new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer)); + }, + // @method getCenter(): LatLng + // Returns the center point of the bounds. + getCenter: function getCenter() { + return new LatLng((this._southWest.lat + this._northEast.lat) / 2, (this._southWest.lng + this._northEast.lng) / 2); + }, + // @method getSouthWest(): LatLng + // Returns the south-west point of the bounds. + getSouthWest: function getSouthWest() { + return this._southWest; + }, + // @method getNorthEast(): LatLng + // Returns the north-east point of the bounds. + getNorthEast: function getNorthEast() { + return this._northEast; + }, + // @method getNorthWest(): LatLng + // Returns the north-west point of the bounds. + getNorthWest: function getNorthWest() { + return new LatLng(this.getNorth(), this.getWest()); + }, + // @method getSouthEast(): LatLng + // Returns the south-east point of the bounds. + getSouthEast: function getSouthEast() { + return new LatLng(this.getSouth(), this.getEast()); + }, + // @method getWest(): Number + // Returns the west longitude of the bounds + getWest: function getWest() { + return this._southWest.lng; + }, + // @method getSouth(): Number + // Returns the south latitude of the bounds + getSouth: function getSouth() { + return this._southWest.lat; + }, + // @method getEast(): Number + // Returns the east longitude of the bounds + getEast: function getEast() { + return this._northEast.lng; + }, + // @method getNorth(): Number + // Returns the north latitude of the bounds + getNorth: function getNorth() { + return this._northEast.lat; + }, + // @method contains(otherBounds: LatLngBounds): Boolean + // Returns `true` if the rectangle contains the given one. + + // @alternative + // @method contains (latlng: LatLng): Boolean + // Returns `true` if the rectangle contains the given point. + contains: function contains(obj) { + // (LatLngBounds) or (LatLng) -> Boolean + if (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) { + obj = toLatLng(obj); + } else { + obj = toLatLngBounds(obj); + } + var sw = this._southWest, + ne = this._northEast, + sw2, + ne2; + if (obj instanceof LatLngBounds) { + sw2 = obj.getSouthWest(); + ne2 = obj.getNorthEast(); + } else { + sw2 = ne2 = obj; + } + return sw2.lat >= sw.lat && ne2.lat <= ne.lat && sw2.lng >= sw.lng && ne2.lng <= ne.lng; + }, + // @method intersects(otherBounds: LatLngBounds): Boolean + // Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common. + intersects: function intersects(bounds) { + bounds = toLatLngBounds(bounds); + var sw = this._southWest, + ne = this._northEast, + sw2 = bounds.getSouthWest(), + ne2 = bounds.getNorthEast(), + latIntersects = ne2.lat >= sw.lat && sw2.lat <= ne.lat, + lngIntersects = ne2.lng >= sw.lng && sw2.lng <= ne.lng; + return latIntersects && lngIntersects; + }, + // @method overlaps(otherBounds: LatLngBounds): Boolean + // Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area. + overlaps: function overlaps(bounds) { + bounds = toLatLngBounds(bounds); + var sw = this._southWest, + ne = this._northEast, + sw2 = bounds.getSouthWest(), + ne2 = bounds.getNorthEast(), + latOverlaps = ne2.lat > sw.lat && sw2.lat < ne.lat, + lngOverlaps = ne2.lng > sw.lng && sw2.lng < ne.lng; + return latOverlaps && lngOverlaps; + }, + // @method toBBoxString(): String + // Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data. + toBBoxString: function toBBoxString() { + return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(','); + }, + // @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean + // Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number. + equals: function equals(bounds, maxMargin) { + if (!bounds) { + return false; + } + bounds = toLatLngBounds(bounds); + return this._southWest.equals(bounds.getSouthWest(), maxMargin) && this._northEast.equals(bounds.getNorthEast(), maxMargin); + }, + // @method isValid(): Boolean + // Returns `true` if the bounds are properly initialized. + isValid: function isValid() { + return !!(this._southWest && this._northEast); + } + }; + + // TODO International date line? + + // @factory L.latLngBounds(corner1: LatLng, corner2: LatLng) + // Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle. + + // @alternative + // @factory L.latLngBounds(latlngs: LatLng[]) + // Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds). + function toLatLngBounds(a, b) { + if (a instanceof LatLngBounds) { + return a; + } + return new LatLngBounds(a, b); + } + + /* @class LatLng + * @aka L.LatLng + * + * Represents a geographical point with a certain latitude and longitude. + * + * @example + * + * ``` + * var latlng = L.latLng(50.5, 30.5); + * ``` + * + * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent: + * + * ``` + * map.panTo([50, 30]); + * map.panTo({lon: 30, lat: 50}); + * map.panTo({lat: 50, lng: 30}); + * map.panTo(L.latLng(50, 30)); + * ``` + * + * Note that `LatLng` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + + function LatLng(lat, lng, alt) { + if (isNaN(lat) || isNaN(lng)) { + throw new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')'); + } + + // @property lat: Number + // Latitude in degrees + this.lat = +lat; + + // @property lng: Number + // Longitude in degrees + this.lng = +lng; + + // @property alt: Number + // Altitude in meters (optional) + if (alt !== undefined) { + this.alt = +alt; + } + } + LatLng.prototype = { + // @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean + // Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number. + equals: function equals(obj, maxMargin) { + if (!obj) { + return false; + } + obj = toLatLng(obj); + var margin = Math.max(Math.abs(this.lat - obj.lat), Math.abs(this.lng - obj.lng)); + return margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin); + }, + // @method toString(): String + // Returns a string representation of the point (for debugging purposes). + toString: function toString(precision) { + return 'LatLng(' + formatNum(this.lat, precision) + ', ' + formatNum(this.lng, precision) + ')'; + }, + // @method distanceTo(otherLatLng: LatLng): Number + // Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines). + distanceTo: function distanceTo(other) { + return Earth.distance(this, toLatLng(other)); + }, + // @method wrap(): LatLng + // Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees. + wrap: function wrap() { + return Earth.wrapLatLng(this); + }, + // @method toBounds(sizeInMeters: Number): LatLngBounds + // Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`. + toBounds: function toBounds(sizeInMeters) { + var latAccuracy = 180 * sizeInMeters / 40075017, + lngAccuracy = latAccuracy / Math.cos(Math.PI / 180 * this.lat); + return toLatLngBounds([this.lat - latAccuracy, this.lng - lngAccuracy], [this.lat + latAccuracy, this.lng + lngAccuracy]); + }, + clone: function clone() { + return new LatLng(this.lat, this.lng, this.alt); + } + }; + + // @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng + // Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude). + + // @alternative + // @factory L.latLng(coords: Array): LatLng + // Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead. + + // @alternative + // @factory L.latLng(coords: Object): LatLng + // Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead. + + function toLatLng(a, b, c) { + if (a instanceof LatLng) { + return a; + } + if (isArray(a) && _typeof(a[0]) !== 'object') { + if (a.length === 3) { + return new LatLng(a[0], a[1], a[2]); + } + if (a.length === 2) { + return new LatLng(a[0], a[1]); + } + return null; + } + if (a === undefined || a === null) { + return a; + } + if (_typeof(a) === 'object' && 'lat' in a) { + return new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt); + } + if (b === undefined) { + return null; + } + return new LatLng(a, b, c); + } + + /* + * @namespace CRS + * @crs L.CRS.Base + * Object that defines coordinate reference systems for projecting + * geographical points into pixel (screen) coordinates and back (and to + * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See + * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system). + * + * Leaflet defines the most usual CRSs by default. If you want to use a + * CRS not defined by default, take a look at the + * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin. + * + * Note that the CRS instances do not inherit from Leaflet's `Class` object, + * and can't be instantiated. Also, new classes can't inherit from them, + * and methods can't be added to them with the `include` function. + */ + + var CRS = { + // @method latLngToPoint(latlng: LatLng, zoom: Number): Point + // Projects geographical coordinates into pixel coordinates for a given zoom. + latLngToPoint: function latLngToPoint(latlng, zoom) { + var projectedPoint = this.projection.project(latlng), + scale = this.scale(zoom); + return this.transformation._transform(projectedPoint, scale); + }, + // @method pointToLatLng(point: Point, zoom: Number): LatLng + // The inverse of `latLngToPoint`. Projects pixel coordinates on a given + // zoom into geographical coordinates. + pointToLatLng: function pointToLatLng(point, zoom) { + var scale = this.scale(zoom), + untransformedPoint = this.transformation.untransform(point, scale); + return this.projection.unproject(untransformedPoint); + }, + // @method project(latlng: LatLng): Point + // Projects geographical coordinates into coordinates in units accepted for + // this CRS (e.g. meters for EPSG:3857, for passing it to WMS services). + project: function project(latlng) { + return this.projection.project(latlng); + }, + // @method unproject(point: Point): LatLng + // Given a projected coordinate returns the corresponding LatLng. + // The inverse of `project`. + unproject: function unproject(point) { + return this.projection.unproject(point); + }, + // @method scale(zoom: Number): Number + // Returns the scale used when transforming projected coordinates into + // pixel coordinates for a particular zoom. For example, it returns + // `256 * 2^zoom` for Mercator-based CRS. + scale: function scale(zoom) { + return 256 * Math.pow(2, zoom); + }, + // @method zoom(scale: Number): Number + // Inverse of `scale()`, returns the zoom level corresponding to a scale + // factor of `scale`. + zoom: function zoom(scale) { + return Math.log(scale / 256) / Math.LN2; + }, + // @method getProjectedBounds(zoom: Number): Bounds + // Returns the projection's bounds scaled and transformed for the provided `zoom`. + getProjectedBounds: function getProjectedBounds(zoom) { + if (this.infinite) { + return null; + } + var b = this.projection.bounds, + s = this.scale(zoom), + min = this.transformation.transform(b.min, s), + max = this.transformation.transform(b.max, s); + return new Bounds(min, max); + }, + // @method distance(latlng1: LatLng, latlng2: LatLng): Number + // Returns the distance between two geographical coordinates. + + // @property code: String + // Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`) + // + // @property wrapLng: Number[] + // An array of two numbers defining whether the longitude (horizontal) coordinate + // axis wraps around a given range and how. Defaults to `[-180, 180]` in most + // geographical CRSs. If `undefined`, the longitude axis does not wrap around. + // + // @property wrapLat: Number[] + // Like `wrapLng`, but for the latitude (vertical) axis. + + // wrapLng: [min, max], + // wrapLat: [min, max], + + // @property infinite: Boolean + // If true, the coordinate space will be unbounded (infinite in both axes) + infinite: false, + // @method wrapLatLng(latlng: LatLng): LatLng + // Returns a `LatLng` where lat and lng has been wrapped according to the + // CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds. + wrapLatLng: function wrapLatLng(latlng) { + var lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng, + lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat, + alt = latlng.alt; + return new LatLng(lat, lng, alt); + }, + // @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds + // Returns a `LatLngBounds` with the same size as the given one, ensuring + // that its center is within the CRS's bounds. + // Only accepts actual `L.LatLngBounds` instances, not arrays. + wrapLatLngBounds: function wrapLatLngBounds(bounds) { + var center = bounds.getCenter(), + newCenter = this.wrapLatLng(center), + latShift = center.lat - newCenter.lat, + lngShift = center.lng - newCenter.lng; + if (latShift === 0 && lngShift === 0) { + return bounds; + } + var sw = bounds.getSouthWest(), + ne = bounds.getNorthEast(), + newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift), + newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift); + return new LatLngBounds(newSw, newNe); + } + }; + + /* + * @namespace CRS + * @crs L.CRS.Earth + * + * Serves as the base for CRS that are global such that they cover the earth. + * Can only be used as the base for other CRS and cannot be used directly, + * since it does not have a `code`, `projection` or `transformation`. `distance()` returns + * meters. + */ + + var Earth = extend({}, CRS, { + wrapLng: [-180, 180], + // Mean Earth Radius, as recommended for use by + // the International Union of Geodesy and Geophysics, + // see https://rosettacode.org/wiki/Haversine_formula + R: 6371000, + // distance between two geographical points using spherical law of cosines approximation + distance: function distance(latlng1, latlng2) { + var rad = Math.PI / 180, + lat1 = latlng1.lat * rad, + lat2 = latlng2.lat * rad, + sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2), + sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2), + a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon, + c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + return this.R * c; + } + }); + + /* + * @namespace Projection + * @projection L.Projection.SphericalMercator + * + * Spherical Mercator projection — the most common projection for online maps, + * used by almost all free and commercial tile providers. Assumes that Earth is + * a sphere. Used by the `EPSG:3857` CRS. + */ + + var earthRadius = 6378137; + var SphericalMercator = { + R: earthRadius, + MAX_LATITUDE: 85.0511287798, + project: function project(latlng) { + var d = Math.PI / 180, + max = this.MAX_LATITUDE, + lat = Math.max(Math.min(max, latlng.lat), -max), + sin = Math.sin(lat * d); + return new Point(this.R * latlng.lng * d, this.R * Math.log((1 + sin) / (1 - sin)) / 2); + }, + unproject: function unproject(point) { + var d = 180 / Math.PI; + return new LatLng((2 * Math.atan(Math.exp(point.y / this.R)) - Math.PI / 2) * d, point.x * d / this.R); + }, + bounds: function () { + var d = earthRadius * Math.PI; + return new Bounds([-d, -d], [d, d]); + }() + }; + + /* + * @class Transformation + * @aka L.Transformation + * + * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d` + * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing + * the reverse. Used by Leaflet in its projections code. + * + * @example + * + * ```js + * var transformation = L.transformation(2, 5, -1, 10), + * p = L.point(1, 2), + * p2 = transformation.transform(p), // L.point(7, 8) + * p3 = transformation.untransform(p2); // L.point(1, 2) + * ``` + */ + + // factory new L.Transformation(a: Number, b: Number, c: Number, d: Number) + // Creates a `Transformation` object with the given coefficients. + function Transformation(a, b, c, d) { + if (isArray(a)) { + // use array properties + this._a = a[0]; + this._b = a[1]; + this._c = a[2]; + this._d = a[3]; + return; + } + this._a = a; + this._b = b; + this._c = c; + this._d = d; + } + Transformation.prototype = { + // @method transform(point: Point, scale?: Number): Point + // Returns a transformed point, optionally multiplied by the given scale. + // Only accepts actual `L.Point` instances, not arrays. + transform: function transform(point, scale) { + // (Point, Number) -> Point + return this._transform(point.clone(), scale); + }, + // destructive transform (faster) + _transform: function _transform(point, scale) { + scale = scale || 1; + point.x = scale * (this._a * point.x + this._b); + point.y = scale * (this._c * point.y + this._d); + return point; + }, + // @method untransform(point: Point, scale?: Number): Point + // Returns the reverse transformation of the given point, optionally divided + // by the given scale. Only accepts actual `L.Point` instances, not arrays. + untransform: function untransform(point, scale) { + scale = scale || 1; + return new Point((point.x / scale - this._b) / this._a, (point.y / scale - this._d) / this._c); + } + }; + + // factory L.transformation(a: Number, b: Number, c: Number, d: Number) + + // @factory L.transformation(a: Number, b: Number, c: Number, d: Number) + // Instantiates a Transformation object with the given coefficients. + + // @alternative + // @factory L.transformation(coefficients: Array): Transformation + // Expects an coefficients array of the form + // `[a: Number, b: Number, c: Number, d: Number]`. + + function toTransformation(a, b, c, d) { + return new Transformation(a, b, c, d); + } + + /* + * @namespace CRS + * @crs L.CRS.EPSG3857 + * + * The most common CRS for online maps, used by almost all free and commercial + * tile providers. Uses Spherical Mercator projection. Set in by default in + * Map's `crs` option. + */ + + var EPSG3857 = extend({}, Earth, { + code: 'EPSG:3857', + projection: SphericalMercator, + transformation: function () { + var scale = 0.5 / (Math.PI * SphericalMercator.R); + return toTransformation(scale, 0.5, -scale, 0.5); + }() + }); + var EPSG900913 = extend({}, EPSG3857, { + code: 'EPSG:900913' + }); + + // @namespace SVG; @section + // There are several static functions which can be called without instantiating L.SVG: + + // @function create(name: String): SVGElement + // Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement), + // corresponding to the class name passed. For example, using 'line' will return + // an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement). + function svgCreate(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); + } + + // @function pointsToPath(rings: Point[], closed: Boolean): String + // Generates a SVG path string for multiple rings, with each ring turning + // into "M..L..L.." instructions + function pointsToPath(rings, closed) { + var str = '', + i, + j, + len, + len2, + points, + p; + for (i = 0, len = rings.length; i < len; i++) { + points = rings[i]; + for (j = 0, len2 = points.length; j < len2; j++) { + p = points[j]; + str += (j ? 'L' : 'M') + p.x + ' ' + p.y; + } + + // closes the ring for polygons; "x" is VML syntax + str += closed ? Browser.svg ? 'z' : 'x' : ''; + } + + // SVG complains about empty path strings + return str || 'M0 0'; + } + + /* + * @namespace Browser + * @aka L.Browser + * + * A namespace with static properties for browser/feature detection used by Leaflet internally. + * + * @example + * + * ```js + * if (L.Browser.ielt9) { + * alert('Upgrade your browser, dude!'); + * } + * ``` + */ + + var style = document.documentElement.style; + + // @property ie: Boolean; `true` for all Internet Explorer versions (not Edge). + var ie = ('ActiveXObject' in window); + + // @property ielt9: Boolean; `true` for Internet Explorer versions less than 9. + var ielt9 = ie && !document.addEventListener; + + // @property edge: Boolean; `true` for the Edge web browser. + var edge = 'msLaunchUri' in navigator && !('documentMode' in document); + + // @property webkit: Boolean; + // `true` for webkit-based browsers like Chrome and Safari (including mobile versions). + var webkit = userAgentContains('webkit'); + + // @property android: Boolean + // **Deprecated.** `true` for any browser running on an Android platform. + var android = userAgentContains('android'); + + // @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3. + var android23 = userAgentContains('android 2') || userAgentContains('android 3'); + + /* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */ + var webkitVer = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit + // @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome) + var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window); + + // @property opera: Boolean; `true` for the Opera browser + var opera = !!window.opera; + + // @property chrome: Boolean; `true` for the Chrome browser. + var chrome = !edge && userAgentContains('chrome'); + + // @property gecko: Boolean; `true` for gecko-based browsers like Firefox. + var gecko = userAgentContains('gecko') && !webkit && !opera && !ie; + + // @property safari: Boolean; `true` for the Safari browser. + var safari = !chrome && userAgentContains('safari'); + var phantom = userAgentContains('phantom'); + + // @property opera12: Boolean + // `true` for the Opera browser supporting CSS transforms (version 12 or later). + var opera12 = ('OTransition' in style); + + // @property win: Boolean; `true` when the browser is running in a Windows platform + var win = navigator.platform.indexOf('Win') === 0; + + // @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms. + var ie3d = ie && 'transition' in style; + + // @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms. + var webkit3d = 'WebKitCSSMatrix' in window && 'm11' in new window.WebKitCSSMatrix() && !android23; + + // @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms. + var gecko3d = ('MozPerspective' in style); + + // @property any3d: Boolean + // `true` for all browsers supporting CSS transforms. + var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom; + + // @property mobile: Boolean; `true` for all browsers running in a mobile device. + var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile'); + + // @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device. + var mobileWebkit = mobile && webkit; + + // @property mobileWebkit3d: Boolean + // `true` for all webkit-based browsers in a mobile device supporting CSS transforms. + var mobileWebkit3d = mobile && webkit3d; + + // @property msPointer: Boolean + // `true` for browsers implementing the Microsoft touch events model (notably IE10). + var msPointer = !window.PointerEvent && window.MSPointerEvent; + + // @property pointer: Boolean + // `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx). + var pointer = !!(window.PointerEvent || msPointer); + + // @property touchNative: Boolean + // `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events). + // **This does not necessarily mean** that the browser is running in a computer with + // a touchscreen, it only means that the browser is capable of understanding + // touch events. + var touchNative = 'ontouchstart' in window || !!window.TouchEvent; + + // @property touch: Boolean + // `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events. + // Note: pointer events will be preferred (if available), and processed for all `touch*` listeners. + var touch = !window.L_NO_TOUCH && (touchNative || pointer); + + // @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device. + var mobileOpera = mobile && opera; + + // @property mobileGecko: Boolean + // `true` for gecko-based browsers running in a mobile device. + var mobileGecko = mobile && gecko; + + // @property retina: Boolean + // `true` for browsers on a high-resolution "retina" screen or on any screen when browser's display zoom is more than 100%. + var retina = (window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI) > 1; + + // @property passiveEvents: Boolean + // `true` for browsers that support passive events. + var passiveEvents = function () { + var supportsPassiveOption = false; + try { + var opts = Object.defineProperty({}, 'passive', { + get: function get() { + // eslint-disable-line getter-return + supportsPassiveOption = true; + } + }); + window.addEventListener('testPassiveEventSupport', falseFn, opts); + window.removeEventListener('testPassiveEventSupport', falseFn, opts); + } catch (e) { + // Errors can safely be ignored since this is only a browser support test. + } + return supportsPassiveOption; + }(); + + // @property canvas: Boolean + // `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API). + var canvas$1 = function () { + return !!document.createElement('canvas').getContext; + }(); + + // @property svg: Boolean + // `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG). + var svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect); + var inlineSvg = !!svg$1 && function () { + var div = document.createElement('div'); + div.innerHTML = ''; + return (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg'; + }(); + + // @property vml: Boolean + // `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language). + var vml = !svg$1 && function () { + try { + var div = document.createElement('div'); + div.innerHTML = ''; + var shape = div.firstChild; + shape.style.behavior = 'url(#default#VML)'; + return shape && _typeof(shape.adj) === 'object'; + } catch (e) { + return false; + } + }(); + + // @property mac: Boolean; `true` when the browser is running in a Mac platform + var mac = navigator.platform.indexOf('Mac') === 0; + + // @property mac: Boolean; `true` when the browser is running in a Linux platform + var linux = navigator.platform.indexOf('Linux') === 0; + function userAgentContains(str) { + return navigator.userAgent.toLowerCase().indexOf(str) >= 0; + } + var Browser = { + ie: ie, + ielt9: ielt9, + edge: edge, + webkit: webkit, + android: android, + android23: android23, + androidStock: androidStock, + opera: opera, + chrome: chrome, + gecko: gecko, + safari: safari, + phantom: phantom, + opera12: opera12, + win: win, + ie3d: ie3d, + webkit3d: webkit3d, + gecko3d: gecko3d, + any3d: any3d, + mobile: mobile, + mobileWebkit: mobileWebkit, + mobileWebkit3d: mobileWebkit3d, + msPointer: msPointer, + pointer: pointer, + touch: touch, + touchNative: touchNative, + mobileOpera: mobileOpera, + mobileGecko: mobileGecko, + retina: retina, + passiveEvents: passiveEvents, + canvas: canvas$1, + svg: svg$1, + vml: vml, + inlineSvg: inlineSvg, + mac: mac, + linux: linux + }; + + /* + * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices. + */ + + var POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown'; + var POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove'; + var POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup'; + var POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel'; + var pEvent = { + touchstart: POINTER_DOWN, + touchmove: POINTER_MOVE, + touchend: POINTER_UP, + touchcancel: POINTER_CANCEL + }; + var handle = { + touchstart: _onPointerStart, + touchmove: _handlePointer, + touchend: _handlePointer, + touchcancel: _handlePointer + }; + var _pointers = {}; + var _pointerDocListener = false; + + // Provides a touch events wrapper for (ms)pointer events. + // ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890 + + function addPointerListener(obj, type, handler) { + if (type === 'touchstart') { + _addPointerDocListener(); + } + if (!handle[type]) { + console.warn('wrong event specified:', type); + return falseFn; + } + handler = handle[type].bind(this, handler); + obj.addEventListener(pEvent[type], handler, false); + return handler; + } + function removePointerListener(obj, type, handler) { + if (!pEvent[type]) { + console.warn('wrong event specified:', type); + return; + } + obj.removeEventListener(pEvent[type], handler, false); + } + function _globalPointerDown(e) { + _pointers[e.pointerId] = e; + } + function _globalPointerMove(e) { + if (_pointers[e.pointerId]) { + _pointers[e.pointerId] = e; + } + } + function _globalPointerUp(e) { + delete _pointers[e.pointerId]; + } + function _addPointerDocListener() { + // need to keep track of what pointers and how many are active to provide e.touches emulation + if (!_pointerDocListener) { + // we listen document as any drags that end by moving the touch off the screen get fired there + document.addEventListener(POINTER_DOWN, _globalPointerDown, true); + document.addEventListener(POINTER_MOVE, _globalPointerMove, true); + document.addEventListener(POINTER_UP, _globalPointerUp, true); + document.addEventListener(POINTER_CANCEL, _globalPointerUp, true); + _pointerDocListener = true; + } + } + function _handlePointer(handler, e) { + if (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { + return; + } + e.touches = []; + for (var i in _pointers) { + e.touches.push(_pointers[i]); + } + e.changedTouches = [e]; + handler(e); + } + function _onPointerStart(handler, e) { + // IE10 specific: MsTouch needs preventDefault. See #2000 + if (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) { + preventDefault(e); + } + _handlePointer(handler, e); + } + + /* + * Extends the event handling code with double tap support for mobile browsers. + * + * Note: currently most browsers fire native dblclick, with only a few exceptions + * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386) + */ + + function makeDblclick(event) { + // in modern browsers `type` cannot be just overridden: + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only + var newEvent = {}, + prop, + i; + for (i in event) { + prop = event[i]; + newEvent[i] = prop && prop.bind ? prop.bind(event) : prop; + } + event = newEvent; + newEvent.type = 'dblclick'; + newEvent.detail = 2; + newEvent.isTrusted = false; + newEvent._simulated = true; // for debug purposes + return newEvent; + } + var delay = 200; + function addDoubleTapListener(obj, handler) { + // Most browsers handle double tap natively + obj.addEventListener('dblclick', handler); + + // On some platforms the browser doesn't fire native dblclicks for touch events. + // It seems that in all such cases `detail` property of `click` event is always `1`. + // So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed. + var last = 0, + detail; + function simDblclick(e) { + if (e.detail !== 1) { + detail = e.detail; // keep in sync to avoid false dblclick in some cases + return; + } + if (e.pointerType === 'mouse' || e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents) { + return; + } + + // When clicking on an , the browser generates a click on its + //