diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 6477b03f07..54d80df8e5 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -49,7 +49,7 @@
/types/adal-angular/ @unindented @aciccarello
/types/add-zero/ @Roaders
/types/adlib/ @Esri @MikeTschudi
-/types/adm-zip/ @jvilk @abner
+/types/adm-zip/ @jvilk @abner @BendingBender
/types/adone/ @s0m3on3 @maxveres
/types/aes-js/ @federicobond
/types/aframe/ @devpaul @bertoritger @twastvedt
@@ -59,12 +59,14 @@
/types/agora-rtc-sdk/ @menthays
/types/airbnb-prop-types/ @milesj
/types/ajv-errors/ @afshawnlotfi
+/types/ajv-merge-patch/ @littlepiggy03
/types/ale-url-parser/ @msn0
/types/alertify/ @jjeffery
/types/alexa-sdk/ @petebeegle @hoo29 @pascalwhoop @blforce @rk-7 @alexmalcoci
/types/alexa-voice-service/ @dolanmiu
/types/algebra.js/ @CaselIT
-/types/algoliasearch/ @cbaptiste @haroenv @aherve @samouss @keichinger
+/types/algoliasearch/ @cbaptiste @haroenv @aherve @samouss @keichinger @neryortez @antoinerousseau
+/types/algoliasearch-helper/ @gburgett @haroenv @samouss
/types/ali-app/ @taoqf
/types/ali-oss/ @ptrdu
/types/all-keys/ @BendingBender
@@ -72,6 +74,7 @@
/types/allure-js-commons/ @zaqqaz
/types/almost-equal/ @cmaddalozzo
/types/alt/ @Shearerbeard
+/types/amap-js-api/ @breeze9527
/types/amap-js-sdk/ @agasbzj
/types/amazon-cognito-auth-js/ @scottescue
/types/amazon-product-api/ @MattiLehtinen @alien35
@@ -160,7 +163,7 @@
/types/angularlocalstorage/ @horiuchi
/types/angulartics/ @bateast2
/types/animation-frame/ @qinfchen
-/types/animejs/ @A-Babin
+/types/animejs/ @A-Babin @supaiku0
/types/annyang/ @hisham @theluk
/types/ansi/ @Gustavo6046
/types/ansi-colors/ @rogierschouten @BendingBender
@@ -204,7 +207,7 @@
/types/archy/ @vvakame
/types/are-we-there-yet/ @brianloveswords
/types/argon2-browser/ @ivangabriele
-/types/argparse/ @arcticwaters @tlaziuk @eps1lon
+/types/argparse/ @arcticwaters @tlaziuk @eps1lon @cakoose
/types/args/ @Slessi
/types/argv/ @hookclaw
/types/arr-diff/ @BendingBender
@@ -273,7 +276,8 @@
/types/await-timeout/ @szhu
/types/awesomplete/ @webbiesdk @bmdixon @tbekolay @chrislopresto
/types/aws-iot-device-sdk/ @niik @mlamp
-/types/aws-lambda/ @skarum @tobyhede @buggy @y13i @wwwy3y3 @OrthoDex @MichaelMarner @daniel-cottone @kostya-misura @coderbyheart @palmithor @daniloraisi @simonbuchan @Haydabase @repl-chris @aneilbaboo @jeznag @louislarry @dpapukchiev @ohookins @trevor-leach @jagregory @dalen
+/types/aws-lambda/ @skarum @tobyhede @buggy @y13i @wwwy3y3 @OrthoDex @MichaelMarner @daniel-cottone @kostya-misura @coderbyheart @palmithor @daniloraisi @simonbuchan @Haydabase @repl-chris @aneilbaboo @jeznag @louislarry @dpapukchiev @ohookins @trevor-leach @jagregory @dalen @loikg @skyzenr @richardcornelissen
+/types/aws-param-store/ @jasonthomasgray
/types/aws-serverless-express/ @threesquared @jcaffey @mattmeye @albertovasquez
/types/aws4/ @ajcrites
/types/axe-webdriverjs/ @JoshuaKGoldberg
@@ -295,7 +299,7 @@
/types/babel-types/ @yortus @baxtersa @marvinhagemeister @bcherny
/types/babel-webpack-plugin/ @j-f1
/types/babel__code-frame/ @mohsen1 @ForbesLindesay
-/types/babel__core/ @yortus @marvinhagemeister @mgroenhoff
+/types/babel__core/ @yortus @marvinhagemeister @mgroenhoff @Jessidhia
/types/babel__generator/ @yortus @johnnyestilles @mgroenhoff
/types/babel__template/ @yortus @marvinhagemeister @mgroenhoff
/types/babel__traverse/ @yortus @marvinhagemeister @rpetrich @mgroenhoff
@@ -303,15 +307,15 @@
/types/babylon/ @yortus @marvinhagemeister
/types/babylon-walk/ @czbuchi
/types/babyparse/ @cdiddy77
-/types/backbone/ @borisyankov @nvivo @kenjiru @jjoekoullas
+/types/backbone/ @borisyankov @nvivo @kenjiru @jjoekoullas @jgonggrijp
/types/backbone-associations/ @craigbrett17
/types/backbone-fetch-cache/ @delphinus35
-/types/backbone-relational/ @eirikhm
+/types/backbone-relational/ @eirikhm @jgonggrijp
/types/backbone.layoutmanager/ @hejiang2000
/types/backbone.localstorage/ @lgrignon
-/types/backbone.marionette/ @zhamid @nvivo @sventschui @razorness @confususs @jjoekoullas
+/types/backbone.marionette/ @zhamid @nvivo @sventschui @razorness @confususs @jjoekoullas @jgonggrijp
/types/backbone.paginator/ @Nyamazing
-/types/backbone.radio/ @alphaleonis
+/types/backbone.radio/ @alphaleonis @jgonggrijp
/types/backgrid/ @jlujan
/types/backlog-js/ @vvatanabe
/types/backo2/ @Retsam
@@ -375,6 +379,7 @@
/types/bip38/ @micksatana
/types/bip39/ @micksatana
/types/bit-array/ @mudkipme
+/types/bit-twiddle/ @adamzerella
/types/bitcoinjs-lib/ @mhegazy @dlebrecht @rbuckton @micksatana @youssefgh @kento1218
/types/bitcore-lib/ @lautarodragan
/types/bittorrent-protocol/ @feross @tlaziuk
@@ -414,6 +419,7 @@
/types/bootstrap/ @denisname
/types/bootstrap/v3/ @borisyankov @denisname
/types/bootstrap-3-typeahead/ @AndersonFriaca
+/types/bootstrap-colorpicker/ @aleksandar-manukov
/types/bootstrap-datepicker/ @borisyankov
/types/bootstrap-fileinput/ @CheCoxshall
/types/bootstrap-growl-ifightcrime/ @AndersonFriaca
@@ -457,7 +463,7 @@
/types/browserslist-useragent/ @nju33
/types/bs58/ @chrootsu @BendingBender
/types/bs58/v3/ @chrootsu
-/types/bson/ @horiuchi @CaselIT
+/types/bson/ @horiuchi @CaselIT @justingrant
/types/btoa/ @johngeorgewright @bricka
/types/buble/ @Kocal
/types/bucks/ @zaneli
@@ -469,6 +475,7 @@
/types/buffer-xor/ @danwbyrne
/types/buffers/ @rhencke
/types/bufferstream/ @Bartvds
+/types/build-output-script/ @BendingBender
/types/builtin-modules/ @ajafff
/types/bull/ @bgrieder @JProgrammer @marshall007 @weeco @blaugold @iamolegga @koblas @bondz @wuha-team @aleccool213 @danmana @kjellmorten @pc-jedi
/types/bull/v2/ @bgrieder @JProgrammer
@@ -480,11 +487,13 @@
/types/bunyan-config/ @cyrilschumacher
/types/bunyan-format/ @dex4er
/types/bunyan-prettystream/ @jasonswearingen @enlight
+/types/bunyan-seq/ @raybooysen
/types/bunyan-winston-adapter/ @stevehipwell
/types/busboy/ @jacobbaskin
/types/business-rules-engine/ @rsamec
/types/bwip-js/ @MugeSo
/types/byline/ @reppners
+/types/byte-range/ @BendingBender
/types/bytebuffer/ @cappellin
/types/bytes/ @danny8002 @believer
/types/bytewise/ @danwbyrne
@@ -499,8 +508,8 @@
/types/callsites/ @BendingBender
/types/calq/ @eirikhm
/types/camaro/ @tuananh
-/types/camelcase/ @samverschueren
/types/camelcase-keys/ @mhegazy
+/types/camljs/ @andrei-markeev
/types/camo/ @lucasmciruzzi
/types/cancan/ @Vincent-Pang
/types/caniuse-api/ @davecardwell
@@ -511,16 +520,23 @@
/types/canvasjs/ @brutalimp
/types/capitalize/ @frederickfogerty
/types/capture-console/ @AustonZ
+/types/carbon__colors/ @vpicone
+/types/carbon__layout/ @vpicone
+/types/carbon__motion/ @vpicone
+/types/carbon__themes/ @vpicone
+/types/carbon__type/ @vpicone
/types/card-validator/ @ChanceM
/types/case-sensitive-paths-webpack-plugin/ @r3nya
/types/caseless/ @downace @mastermatt
/types/cash/ @akvlko
/types/casperjs/ @jedmao @urielch
-/types/cassandra-driver/ @Svjard @pc-jedi
+/types/cassandra-driver/ @Svjard @pc-jedi @michal-b-kaminski
+/types/cassanknex/ @bioball
/types/catbox/ @jasonswearingen @AJamesPhillips @saboya
/types/catbox/v7/ @jasonswearingen @AJamesPhillips
/types/catbox-memory/ @SimonSchick
/types/catbox-redis/ @SimonSchick
+/types/cavy/ @tyler-hoffman
/types/cbor/ @pushplay
/types/ccap/ @taoqf
/types/cesium/ @Zuzon @hnipps @szechyjs @golyalpha
@@ -561,11 +577,10 @@
/types/check-types/ @idchlife
/types/checkstyle-formatter/ @mhegazy
/types/checksum/ @rogierschouten
-/types/cheerio/ @blittle @wmaurer @umarniz @LiJinyao @chennakrishna8 @AzSiAz
+/types/cheerio/ @blittle @wmaurer @umarniz @LiJinyao @chennakrishna8 @AzSiAz @nwtgck
/types/chess.js/ @JacobFischer
/types/chessboardjs/ @sliverb @davidmpaz
/types/chmodr/ @BendingBender
-/types/chokidar/ @reppners @felixfbecker @bayssmekanique
/types/chordsheetjs/ @adamsbloom
/types/chosen-js/ @borisyankov @denisname
/types/chownr/ @BendingBender
@@ -576,6 +591,7 @@
/types/chromecast-caf-receiver/ @craigrbruce
/types/chromecast-caf-sender/ @samuelmaddock
/types/chromedriver/ @pe8ter
+/types/cipher-base/ @adamzerella
/types/circuit-breaker-js/ @DeTeam
/types/circular-json/ @jpevarnek
/types/ckeditor/ @wittwert @stuartlong @viktorpegy
@@ -627,6 +643,7 @@
/types/cls-hooked/ @aleung
/types/clusterize.js/ @Pr1st0n
/types/cmd-shim/ @cspotcode
+/types/co/ @doniyor2109
/types/co-body/ @geoffreak
/types/co-views/ @devlee @geoffreak
/types/code/ @prashaantt
@@ -637,6 +654,7 @@
/types/coinlist/ @BendingBender
/types/coinstring/ @mhegazy
/types/collections/ @scarabedore
+/types/collectionsjs/ @jaymeh
/types/color/ @Airlun @jameswlane
/types/color/v2/ @Airlun
/types/color/v1/ @LKay
@@ -646,6 +664,7 @@
/types/color-name/ @Ailrun
/types/color-namer/ @in19farkt
/types/color-string/ @BendingBender @danmarshall
+/types/color-support/ @Yavanosta
/types/colorbrewer/ @mtraynham
/types/colornames/ @manuth
/types/colresizable/ @gilleswaeber
@@ -654,7 +673,7 @@
/types/combine-source-map/ @TeamworkGuy2
/types/combined-stream/ @felixge @tlaziuk @konpikwastaken
/types/combokeys/ @iclanton
-/types/cometd/ @derekcicerone @unindented @alxHenry
+/types/cometd/ @derekcicerone @unindented @alxHenry @hagl
/types/command-exists/ @BendingBender
/types/command-line-args/ @75lb
/types/command-line-args/v4/ @CzBuCHi @75lb
@@ -672,6 +691,7 @@
/types/compare-version/ @jpevarnek
/types/compare-versions/ @LogvinovLeon
/types/complex/ @AyaMorisawa @pavasich
+/types/complex.js/ @adamzerella
/types/component-emitter/ @psnider
/types/compose-function/ @denis-sokolov
/types/compressible/ @BendingBender
@@ -681,9 +701,7 @@
/types/compute-stdev/ @mrmlnc
/types/concat-stream/ @jmarianer
/types/concaveman/ @DenisCarriere
-/types/conf/ @SamVerschueren @BendingBender
-/types/conf/v1/ @SamVerschueren @BendingBender
-/types/conf/v0/ @SamVerschueren
+/types/condense-whitespace/ @djcsdy
/types/confidence/ @jppellerin
/types/config/ @RWander @forrestbice @jndonald3 @albertovasquez
/types/config-yaml/ @me
@@ -692,16 +710,17 @@
/types/confit/ @ethanresnick
/types/connect/ @SomaticIT @EvanHahn
/types/connect-busboy/ @pinguet62
-/types/connect-datadog/ @moshegood
+/types/connect-datadog/ @moshegood @xzyfer
/types/connect-ensure-login/ @0x6368656174
/types/connect-flash/ @AndreasGassmann
/types/connect-history-api-fallback/ @douglasduteil
+/types/connect-history-api-fallback-exclusions/ @tonystonee
/types/connect-livereload/ @SomaticIT
/types/connect-modrewrite/ @tinganho
/types/connect-mongo/ @Syati
/types/connect-mongodb-session/ @NattapongSiri
/types/connect-pg-simple/ @pasieronen
-/types/connect-redis/ @xstoudi
+/types/connect-redis/ @xstoudi @sbutler2901
/types/connect-slashes/ @samherrmann
/types/connect-timeout/ @cyrilschumacher
/types/consola/ @Jungwoo-An
@@ -785,6 +804,7 @@
/types/create-html-element/ @BendingBender
/types/create-react-class/ @jgoz
/types/create-subscription/ @Asana @vsiao
+/types/create-xpub/ @BendingBender
/types/createjs/ @evilangelist @gyohk
/types/createjs-lib/ @evilangelist @gyohk
/types/credential/ @phuvo
@@ -814,6 +834,7 @@
/types/css-to-style/ @bengry
/types/css-tree/ @erik-kallen
/types/cssbeautify/ @rictic
+/types/cssesc/ @djcsdy
/types/cssnano/ @odnamrataizem
/types/csso/ @screendriver @erik-kallen
/types/csurf/ @horiuchi
@@ -845,7 +866,7 @@
/types/d3-box/ @lk-chen
/types/d3-brush/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-chord/ @tomwanzek @gustavderdrache @borisyankov
-/types/d3-cloud/ @hansrwindhoff
+/types/d3-cloud/ @hansrwindhoff @locknono
/types/d3-collection/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-color/ @tomwanzek @gustavderdrache @borisyankov @denisname @ledragon
/types/d3-contour/ @tomwanzek @Ledragon
@@ -855,7 +876,7 @@
/types/d3-dsv/ @tomwanzek @gustavderdrache @borisyankov @denisname
/types/d3-ease/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-fetch/ @ledragon @denisname
-/types/d3-force/ @tomwanzek @gustavderdrache @borisyankov
+/types/d3-force/ @tomwanzek @gustavderdrache @borisyankov @denisname
/types/d3-format/ @tomwanzek @gustavderdrache @borisyankov @denisname
/types/d3-geo/ @ledragon @tomwanzek @gustavderdrache @borisyankov
/types/d3-graphviz/ @DomParfitt
@@ -894,6 +915,7 @@
/types/dat.gui/ @gyohk @sonic3d @rroylance @singuerinc
/types/data-driven/ @mrhen
/types/datadog-metrics/ @pushplay
+/types/datadog-statsd-metrics-collector/ @xzyfer
/types/datadog-tracer/ @dineshsaravanan
/types/datatables.net/ @Silver-Connection @omidkrad @pragmatrix @CNBoland
/types/datatables.net-autofill/ @andy-maca
@@ -904,7 +926,9 @@
/types/datatables.net-rowreorder/ @baywet
/types/datatables.net-scroller/ @RohdeK
/types/datatables.net-select/ @szechyjs
+/types/date-and-time/ @danplisetsky
/types/date-arithmetic/ @HeeL
+/types/date-now/ @adamzerella
/types/date.format.js/ @balrob
/types/dateformat/ @aicest @BendingBender
/types/dateformat/v1/ @aicest
@@ -916,13 +940,12 @@
/types/db-migrate-pg/ @nickiannone
/types/db.js/ @cgwrench
/types/dc/ @hansrwindhoff @mtraynham @MatthiasJobst
-/types/dd-trace/ @ColinBradley @alloy
/types/deasync/ @Sicilica
/types/debessmann/ @vkorehov
/types/debounce/ @denis-sokolov @joshuakgoldberg @wcarson
/types/debounce-fn/ @BendingBender
/types/debounce-promise/ @whtsky
-/types/debug/ @swook @galtalmor @zamb3zi @brasten
+/types/debug/ @swook @galtalmor @zamb3zi @brasten @npenin
/types/decamelize/ @samverschueren
/types/decay/ @enaeseth
/types/decode-entities/ @waspothegreat
@@ -934,6 +957,7 @@
/types/deep-assign/ @souldreamer
/types/deep-diff/ @ZauberNerd
/types/deep-equal/ @remojansen @janslow
+/types/deep-equal-in-any-order/ @bcaudan
/types/deep-extend/ @rhysd
/types/deep-freeze/ @Bartvds @aluanhaddad
/types/deep-freeze-es6/ @mattbishop
@@ -946,8 +970,6 @@
/types/defined/ @BendingBender
/types/deglob/ @saadq
/types/deku/ @pocka
-/types/del/ @AyaMorisawa @BendingBender @bitjson
-/types/del/v2/ @AyaMorisawa
/types/delaunator/ @DenisCarriere @BTOdell
/types/delete-empty/ @Alorel
/types/deline/ @iarroyo5
@@ -963,7 +985,6 @@
/types/derhuerst__cli-on-key/ @jacobbubu
/types/destroy/ @BendingBender
/types/destroy-on-hwm/ @BendingBender
-/types/detect-browser/ @rogierschouten @carusology
/types/detect-character-encoding/ @BendingBender
/types/detect-hover/ @thomastilkema
/types/detect-indent/ @Bartvds @BendingBender
@@ -997,7 +1018,7 @@
/types/dir-resolve/ @andy-ms
/types/dirname-regex/ @BendingBender
/types/discontinuous-range/ @OiCMudkips
-/types/discord-rpc/ @jasonhaxstuff
+/types/discord-rpc/ @jasonhaxstuff @lolPants
/types/discourse-sso/ @championswimmer
/types/dispatchr/ @Ragg-
/types/disposable-email-domains/ @geoffreak
@@ -1049,8 +1070,10 @@
/types/draft-js/ @dmitryrogozhny @eelco @ghotiphud @schwers @michael-yx-wu @willisplummer @smvilar @sulf @pablopunk @claudiopro
/types/drag-timetable/ @chinkan
/types/draggabilly/ @jaydubu
+/types/dragscroll/ @spkellydev
/types/dragster/ @zskovacs
/types/dragula/ @pwelter34 @abruzzihraig
+/types/driftless/ @dandelany
/types/drivelist/ @WholeMilk
/types/dropbox-chooser/ @quas94
/types/dropboxjs/ @Steve-Fenton @xperiments
@@ -1064,6 +1087,7 @@
/types/duplicate-package-checker-webpack-plugin/ @mtraynham
/types/durandal/ @BlueSpire
/types/dustjs-linkedin/ @mdezem
+/types/dv/ @taoqf
/types/dvtng-jss/ @Ptival
/types/dw-bxslider-4/ @namerci
/types/dwt/ @yushulx @jbh @lincoln2018 @Tom-Dynamsoft
@@ -1083,7 +1107,7 @@
/types/easy-xapi/ @DeadAlready
/types/easy-xapi-utils/ @DeadAlready
/types/ebongarde-root/ @Ebongarde
-/types/echarts/ @xieisabug @AntiMoron @liveangela @Ovilia @iRON5
+/types/echarts/ @xieisabug @AntiMoron @liveangela @Ovilia @iRON5 @bilalucar
/types/ecma-proposal-math-extensions/ @ksm2
/types/ecurve/ @mhegazy
/types/ed25519/ @erikma
@@ -1151,7 +1175,7 @@
/types/ember__object/ @mike-north
/types/ember__polyfills/ @mike-north
/types/ember__routing/ @mike-north
-/types/ember__runloop/ @mike-north
+/types/ember__runloop/ @mike-north @scalvert
/types/ember__service/ @mike-north
/types/ember__string/ @mike-north
/types/ember__test/ @mike-north
@@ -1179,10 +1203,9 @@
/types/entities/ @aliceklipper
/types/env-ci/ @BendingBender
/types/env-editor/ @BendingBender
-/types/env-paths/ @danwbyrne
/types/env-to-object/ @MugeSo
/types/envify/ @tkQubo
-/types/enzyme/ @MarianPalkus @NoHomey @jwbay @huhuanming @MartynasZilinskas @thovden @hotell
+/types/enzyme/ @MarianPalkus @NoHomey @jwbay @huhuanming @MartynasZilinskas @thovden @hotell @screendriver
/types/enzyme-adapter-react-15/ @tkrotoff
/types/enzyme-adapter-react-15.4/ @nali
/types/enzyme-adapter-react-16/ @tkrotoff
@@ -1221,12 +1244,13 @@
/types/estree/ @RReverser
/types/etag/ @BendingBender
/types/eth-lightwallet/ @LogvinovLeon
+/types/eth-sig-util/ @quezak
/types/ethereum-protocol/ @LogvinovLeon
-/types/ethereumjs-abi/ @LogvinovLeon
+/types/ethereumjs-abi/ @LogvinovLeon @quezak
/types/ethereumjs-tx/ @LogvinovLeon @dmihal
/types/ethereumjs-util/ @cortopy
/types/ethjs-signer/ @doppio
-/types/eureka-js-client/ @Schnillz @karl-run @tombarton
+/types/eureka-js-client/ @Schnillz @karl-run @tombarton @jpsullivan
/types/evaporate/ @kookster @chrisrhoden @ailrun
/types/event-emitter/ @LKay
/types/event-emitter-es6/ @ahstro
@@ -1253,9 +1277,11 @@
/types/expect-puppeteer/ @JoshuaKGoldberg @tkrotoff
/types/expect.js/ @teppeis
/types/expectations/ @vvakame
+/types/expired/ @BendingBender
/types/expired-storage/ @intolerance
/types/expirymanager/ @DanielRose
-/types/expo/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo @levansuper @ihmpavel @burtek @jkillian
+/types/expo/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo @levansuper @ihmpavel @burtek @jkillian @satya164 @vinitsood
+/types/expo/v31/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo @levansuper @ihmpavel @burtek @jkillian @satya164
/types/expo/v30/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo
/types/expo/v27/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo
/types/expo/v26/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @tinaroh
@@ -1263,6 +1289,7 @@
/types/expo/v24/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger
/types/expo/v23/ @KonstantinKai
/types/expo-localization/ @burtek
+/types/expo-mixpanel-analytics/ @martintreurnicht
/types/expo__status-bar-height/ @dawnmist
/types/expo__vector-icons/ @incleaf @robertying
/types/express/ @borisyankov
@@ -1313,7 +1340,8 @@
/types/express-slow-down/ @jdforsythe
/types/express-socket.io-session/ @AylaJK
/types/express-to-koa/ @xiaohanzhang
-/types/express-unless/ @wokim
+/types/express-unless/ @wokim @joaovieira @michal-b-kaminski
+/types/express-urlrewrite/ @mgroenhoff
/types/express-version-request/ @weffe
/types/express-version-route/ @weffe
/types/express-wechat-access/ @simmons8616
@@ -1332,7 +1360,7 @@
/types/eyes/ @brynbellomy
/types/ez-plus/ @AndersonFriaca
/types/f1/ @neolwc
-/types/fabric/ @oklemencic @joewashear007 @mrand01 @NotWoods @bmartinson @RogerioTeixeira @BradleyHill
+/types/fabric/ @oklemencic @joewashear007 @mrand01 @NotWoods @bmartinson @RogerioTeixeira @BradleyHill @bmkrol823 @glenngartner
/types/facebook-instant-games/ @menushka @oyvindjam
/types/facebook-js-sdk/ @amritk @mahmoudzohdi @fluidsonic
/types/facebook-pixel/ @noctishsu
@@ -1346,7 +1374,7 @@
/types/falcor-router/ @Quramy @cdhgee
/types/famous/ @borisvasilenko
/types/fancy-log/ @pine
-/types/fancybox/ @borisyankov
+/types/fancybox/ @borisyankov @SPWizard01
/types/farbtastic/ @EnableSoftware
/types/fast-json-stable-stringify/ @BendingBender
/types/fast-levenshtein/ @mizunashi-mana
@@ -1355,12 +1383,8 @@
/types/fast64/ @rarmatei
/types/fastclick/ @shinnn
/types/fastify-accepts/ @leomelzer
-/types/fastify-cors/ @jannikkeye
/types/fastify-favicon/ @tuelsch
-/types/fastify-jwt/ @jannikkeye
-/types/fastify-multipart/ @jannikkeye
/types/fastify-rate-limit/ @pc-jedi
-/types/fastify-static/ @leomelzer
/types/favico.js/ @drowse314-dev-ymat
/types/favicons/ @mohsen1 @metsawyr
/types/fb/ @JoshStrobl
@@ -1375,7 +1399,7 @@
/types/feathersjs__authentication-oauth1/ @j2L4e
/types/feathersjs__authentication-oauth2/ @j2L4e @NickBolles
/types/feathersjs__configuration/ @j2L4e
-/types/feathersjs__errors/ @j2L4e
+/types/feathersjs__errors/ @j2L4e @RazzM13
/types/feathersjs__express/ @j2L4e @DadUndead
/types/feathersjs__feathers/ @j2L4e @AbraaoAlves @TimMensch
/types/feathersjs__primus/ @j2L4e
@@ -1405,7 +1429,7 @@
/types/file-url/ @coderslagoon
/types/filenamify/ @rokt33r
/types/filenamify-url/ @cprecioso
-/types/filesize/ @GiedriusGrabauskas @renchap @Ky6uk
+/types/filesize/ @GiedriusGrabauskas @renchap @Ky6uk @ffxsam
/types/fill-pdf/ @westy92
/types/filter-console/ @BendingBender
/types/filter-invalid-dom-props/ @icopp
@@ -1467,11 +1491,12 @@
/types/focus-within/ @eramdam
/types/fontfaceobserver/ @RandScullard
/types/fontoxml/ @rolandzwaga
+/types/force-graph/ @p-kimberley
/types/forever-agent/ @yavanosta
/types/forever-monitor/ @shuntksh @wrboyce
/types/forge-apis/ @Autodesk-Forge
/types/forge-di/ @adamcarr
-/types/forge-viewer/ @Autodesk-Forge
+/types/forge-viewer/ @Autodesk-Forge @alansmithnbs
/types/form-data/ @soywiz @leonyu @BendingBender
/types/form-serialize/ @tyler-johnson
/types/form-serializer/ @flqw
@@ -1685,7 +1710,7 @@
/types/geolite2/ @ffflorian
/types/geometry-dom/ @nakakura
/types/geopattern/ @Gaelan
-/types/gestalt/ @serranoarevalo
+/types/gestalt/ @serranoarevalo @joshgachnang
/types/get-caller-file/ @ajafff
/types/get-certain/ @BendingBender
/types/get-emails/ @BendingBender
@@ -1708,7 +1733,8 @@
/types/ghauth/ @Leko
/types/gifffer/ @gatimus
/types/gijgo/ @atatanasov
-/types/giraffe/ @darthapo
+/types/giphy-api/ @screendriver
+/types/giraffe/ @darthapo @jgonggrijp
/types/git/ @vvakame
/types/git-add-remote/ @BendingBender
/types/git-branch/ @rynclark
@@ -1735,6 +1761,9 @@
/types/gl-react-native/ @jussikinnula
/types/gl-shader/ @MathiasPaumgarten
/types/gl-texture2d/ @MathiasPaumgarten
+/types/gl-vec2/ @adamzerella
+/types/gl-vec3/ @adamzerella
+/types/gl-vec4/ @adamzerella
/types/gldatepicker/ @qcz
/types/glidejs/ @milanjaros
/types/glob/ @vvakame @voy @ajafff
@@ -1751,7 +1780,6 @@
/types/global-tunnel-ng/ @BendingBender
/types/globalize/ @gcastre @afromogli @bryanforbes
/types/globalize-compiler/ @iclanton
-/types/globby/ @douglasduteil @ikatyang
/types/globule/ @durad
/types/glue/ @garfty
/types/glue/v4/ @gjednaszewski
@@ -1780,7 +1808,7 @@
/types/google.script.client-side/ @clomie
/types/google.visualization/ @danludwig @gmoore-sjcorg @danmana @mlcheng @IvanBisultanov @glebm @shrujalshah28
/types/google__maps/ @indrimuska
-/types/googlemaps/ @cgwrench @nertzy @xaolas @mrmcnerd @martincostello @svenkreiss @bolatovumar @gauthierm
+/types/googlemaps/ @cgwrench @nertzy @xaolas @mrmcnerd @martincostello @svenkreiss @bolatovumar @gauthierm @captain-igloo
/types/googlemaps.infobubble/ @Dashue
/types/googlepay/ @Fluccioni @Radu-Raicea @fstanis
/types/got/ @BendingBender @LinusU @ikokostya @stijnvn
@@ -1792,7 +1820,7 @@
/types/gramps__rest-helpers/ @claude
/types/graphite-udp/ @EricByers
/types/graphlib-dot/ @DomParfitt
-/types/graphql/ @TonyPythoneer @calebmer @intellix @firede @kepennar @freiksenet @IvanGoncharov @DxCx @rportugal @tgriesser @dyst5422 @adnsio @divyenduz @bradzacher @clayne11 @JCMais @langpavel
+/types/graphql/ @TonyPythoneer @calebmer @intellix @firede @kepennar @freiksenet @IvanGoncharov @DxCx @rportugal @tgriesser @dyst5422 @adnsio @divyenduz @bradzacher @clayne11 @JCMais @langpavel @mc0
/types/graphql-date/ @enaeseth
/types/graphql-deduplicator/ @lfades
/types/graphql-depth-limit/ @eritikass
@@ -1817,7 +1845,7 @@
/types/gridstack/ @PascalSenn @ZoolWay @Sl1MBoy
/types/grpc-error/ @danwbyrne
/types/grunt/ @jeffmay @basarat
-/types/gsap/ @codebelt @ProbablePrime @philipbulley @leomeloxp
+/types/gsap/ @codebelt @ProbablePrime @philipbulley @leomeloxp @AdemHodzic
/types/gtin/ @RafaelKr
/types/guardian__prosemirror-invisibles/ @dddotsev
/types/guid/ @maroy1986
@@ -1845,6 +1873,7 @@
/types/gulp-file-include/ @DanielRosenwasser
/types/gulp-filter/ @tkrotoff
/types/gulp-flatten/ @k-kagurazaka
+/types/gulp-gh-pages/ @ntnyq
/types/gulp-gzip/ @tkQubo
/types/gulp-help/ @tkQubo
/types/gulp-help-doc/ @Mikhus
@@ -1898,6 +1927,8 @@
/types/gulp-util/ @jedmao
/types/gulp-watch/ @tkrotoff
/types/gulp-zip/ @dudeofawesome
+/types/gun/ @Jack-Works
+/types/gyronorm/ @evanshortiss
/types/gzip-js/ @rhysd
/types/gzip-size/ @plantain-00 @jimivdw @andrewiggins
/types/gzip-size/v3/ @plantain-00
@@ -1905,7 +1936,6 @@
/types/halfred/ @dherges
/types/halogen/ @steller
/types/hammerjs/ @milkisevil @codler
-/types/handlebars/ @borisyankov @evil-shrike
/types/handlebars-helpers/ @Toilal
/types/hapi/ @rafaelsouzaf @jhsimms @SimonSchick @saboya
/types/hapi/v17/ @rafaelsouzaf @jhsimms @SimonSchick @saboya
@@ -1948,12 +1978,13 @@
/types/hedron/ @dborysov
/types/hellojs/ @PavelPZ @vuorinem @baywet
/types/hellosign-embedded/ @xt0rted
-/types/helmet/ @cyrilschumacher @EvanHahn @bluehatbrit
+/types/helmet/ @cyrilschumacher @EvanHahn @bluehatbrit @chdanielmueller
/types/heredatalens/ @denyo
/types/heremaps/ @Josh-ES @denyo @fx88
/types/heroku-logger/ @kylevogt
/types/hex-rgb/ @BendingBender
/types/hex-rgba/ @r3nya
+/types/hexo/ @kentarouTakeda
/types/hexo-bunyan/ @segayuu
/types/hexo-fs/ @segayuu
/types/hexo-log/ @segayuu
@@ -1969,15 +2000,15 @@
/types/history.js/ @borisyankov @gjunge
/types/historykana/ @h-shiratsuki
/types/hjson/ @crunchie84
-/types/hls.js/ @jgainfort @brookback @adripanico
+/types/hls.js/ @jgainfort @brookback @adripanico @beraliv
/types/hoek/ @prashaantt
-/types/hoist-non-react-statics/ @JounQin
+/types/hoist-non-react-statics/ @JounQin @jamesreggio
/types/holderjs/ @renjfk
/types/hooker/ @misak113
/types/hopscotch/ @pimterry @Aurimas1
/types/host-validation/ @dintopple
/types/hosted-git-info/ @OiyouYeahYou
-/types/howler/ @xperiments @tdukart @alien35 @nicholashza
+/types/howler/ @xperiments @alien35 @nicholashza @cjurango
/types/hpp/ @kryops
/types/html-entities/ @xstoudi
/types/html-minifier/ @tkrotoff @rikuayanokozy
@@ -1986,10 +2017,13 @@
/types/html-tag-names/ @sandersn
/types/html-tags/ @BendingBender
/types/html-to-text/ @erykwarren
+/types/html-truncate/ @adamzerella
/types/html-void-elements/ @rhysd
/types/html-webpack-plugin/ @deevus @bumbleblym @tlaziuk
/types/html-webpack-template/ @bumbleblym
/types/html2canvas/ @rwhepburn @tan9 @sschocke @Ristaaf
+/types/html5-history/ @akashishu777
+/types/html5plus/ @dcloudio
/types/htmlbars-inline-precompile/ @chriskrycho
/types/htmlparser2/ @staticfunction @LinusU
/types/htmltojsx/ @basarat
@@ -2001,7 +2035,7 @@
/types/http-errors/ @tkrotoff @BendingBender
/types/http-graceful-shutdown/ @dlee-nvisia
/types/http-link-header/ @screendriver
-/types/http-proxy/ @SomaticIT @Raigen @DanielMSchmidt
+/types/http-proxy/ @SomaticIT @Raigen @DanielMSchmidt @jabreu610
/types/http-proxy-agent/ @mrmlnc @steprescott
/types/http-proxy-middleware/ @zebMcCorkle @BendingBender
/types/http-rx/ @L2jLiga
@@ -2009,9 +2043,10 @@
/types/http-status/ @misak113
/types/http-string-parser/ @pine613
/types/httperr/ @yortus
-/types/hubot/ @dirk @KeesCBakker
+/types/hubot/ @dirk @KeesCBakker @eeemil
/types/hubspot-pace/ @borislavjivkov
/types/humane/ @jmvrbanac
+/types/humanize-ms/ @adamzerella
/types/humanize-plus/ @DenisCarriere
/types/humanize-string/ @ragnarok56
/types/humanize-url/ @BendingBender
@@ -2028,13 +2063,10 @@
/types/i18next/ @mxl @deerawan @GiedriusGrabauskas @lenovouser @qqilihq @butchyyyy
/types/i18next/v8/ @mxl @deerawan @GiedriusGrabauskas
/types/i18next/v2/ @mxl @deerawan @GiedriusGrabauskas
-/types/i18next-browser-languagedetector/ @cyrilschumacher @GiedriusGrabauskas
-/types/i18next-browser-languagedetector/v0/ @cyrilschumacher @GiedriusGrabauskas
/types/i18next-express-middleware/ @cyrilschumacher
/types/i18next-ko/ @dwaxweiler
/types/i18next-node-fs-backend/ @cyrilschumacher @lenovouser
/types/i18next-sprintf-postprocessor/ @cyrilschumacher
-/types/i18next-xhr-backend/ @jamuhl @GiedriusGrabauskas
/types/i2c-bus/ @101100
/types/iarna__toml/ @ajafff
/types/iban/ @cyrilschumacher
@@ -2075,6 +2107,7 @@
/types/in-range/ @DanielRosenwasser
/types/inboxsdk/ @rdoursenaud @amiram
/types/incremental-dom/ @basarat @lanthaler @vvakame
+/types/indefinite/ @omaishr
/types/indent-string/ @mhegazy @BendingBender
/types/inert/ @nycdotnet @AJamesPhillips @lenovouser
/types/inert/v4/ @nycdotnet @AJamesPhillips
@@ -2085,8 +2118,12 @@
/types/iniparser/ @chrootsu
/types/init-package-json/ @kfarnung
/types/ink/ @cprecioso
+/types/ink-spinner/ @lukostry
+/types/ink-table/ @lukostry
+/types/ink-text-input/ @lukostry
/types/inline-css/ @philipisapain
/types/inline-style-prefixer/ @ahz @dpetrezselyova @franklixuefei
+/types/inputmask/ @dmester
/types/inquirer/ @tkQubo @ppathan @jouderianjr @bang88 @bitjson @synarque @jrockwood @kwkelly @Ailrun
/types/inquirer-npm-name/ @manuth
/types/insert-css/ @hvoecking
@@ -2097,8 +2134,6 @@
/types/intercom-client/ @jineshshah36 @peping
/types/intercom-web/ @fongandrew @salbahra @onatm
/types/intercomjs/ @spencerwi
-/types/internal-ip/ @BendingBender
-/types/internal-ip/v2/ @BendingBender
/types/interpret/ @BendingBender
/types/intl/ @RagibHasin
/types/intl-locales-supported/ @Slessi
@@ -2135,6 +2170,7 @@
/types/is-array/ @pine
/types/is-array-sorted/ @BendingBender
/types/is-binary-path/ @DanielRosenwasser
+/types/is-blank/ @heygambo
/types/is-buffer/ @rokt33r
/types/is-callable/ @nieltg
/types/is-charging/ @BendingBender
@@ -2153,14 +2189,16 @@
/types/is-glob/ @mrmlnc
/types/is-hotkey/ @petester42 @kalley
/types/is-installed-globally/ @BendingBender
+/types/is-integer/ @djcsdy
/types/is-ip/ @coderslagoon
/types/is-mobile/ @LogvinovLeon
/types/is-my-json-valid/ @kruncher
+/types/is-natural-number/ @adamzerella
/types/is-negated-glob/ @ajafff
/types/is-number/ @harryshipton
/types/is-obj/ @forivall
/types/is-object/ @wbhob
-/types/is-online/ @BendingBender
+/types/is-odd/ @adamzerella
/types/is-path-cwd/ @DanielRosenwasser
/types/is-path-in-cwd/ @mhegazy
/types/is-plain-obj/ @BendingBender
@@ -2196,7 +2234,7 @@
/types/iso-3166-2/ @sicilica
/types/iso8601-localizer/ @avielfedida
/types/isomorphic-fetch/ @toddlucas
-/types/isotope-layout/ @avidenic @malinushj
+/types/isotope-layout/ @avidenic @malinushj @SPWizard01
/types/issue-parser/ @Leko
/types/issue-regex/ @BendingBender
/types/istanbul/ @tkrotoff
@@ -2240,14 +2278,14 @@
/types/jcanvas/ @rogierschouten
/types/jdataview/ @RReverser
/types/jdenticon/ @mtr
-/types/jest/ @NoHomey @jwbay @asvetliakov @alexjoverm @epicallan @ikatyang @wsmd @JamieMason @douglasduteil @ahnpnl @joshuakgoldberg @UselessPickles @r3nya @hotell @sebald @andys8
+/types/jest/ @NoHomey @jwbay @asvetliakov @alexjoverm @epicallan @ikatyang @wsmd @JamieMason @douglasduteil @ahnpnl @joshuakgoldberg @UselessPickles @r3nya @hotell @sebald @andys8 @antoinebrault
/types/jest/v16/ @NoHomey @jwbay
/types/jest-axe/ @JoshuaKGoldberg
/types/jest-cli/ @lifeiscontent
/types/jest-diff/ @myabc
/types/jest-docblock/ @ikatyang
/types/jest-each/ @theutz @nickmccurdy
-/types/jest-environment-puppeteer/ @joshuakgoldberg
+/types/jest-environment-puppeteer/ @joshuakgoldberg @ifiokjr
/types/jest-get-type/ @myabc
/types/jest-image-snapshot/ @dawnmist
/types/jest-in-case/ @geovanisouza92
@@ -2267,7 +2305,7 @@
/types/jjve/ @Nemo157
/types/jmespath/ @pushplay
/types/johnny-five/ @nakakura @ujvzolee @workshop2 @xtrimsystems @marcinobiedz
-/types/joi/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus @wanganjun @rafaelkallis @aconanlai @zaphoyd @thewillg @SimonSchick
+/types/joi/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus @wanganjun @rafaelkallis @aconanlai @zaphoyd @thewillg @SimonSchick @afharo
/types/joi/v13/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus @wanganjun @rafaelkallis @aconanlai @zaphoyd @thewillg @SimonSchick
/types/joi/v10/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @aconanlai
/types/joi/v6/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW
@@ -2423,8 +2461,10 @@
/types/js.spec/ @mattbishop
/types/jsbn/ @Evgenus @al2xed
/types/jschannel/ @yitzchok @McFlat
+/types/jscodeshift/ @brieb
/types/jscrollpane/ @qcz
/types/jsdeferred/ @minodisk
+/types/jsdoc-to-markdown/ @adamzerella
/types/jsdom/ @leonard-thieu @palmfjord
/types/jsen/ @vladeck
/types/jsend/ @CaselIT
@@ -2452,13 +2492,14 @@
/types/json-stringify-safe/ @BendingBender
/types/json2csv/ @juanjoDiaz
/types/json2md/ @MartynasZilinskas
+/types/json2mq/ @ZhangYiJiang
/types/json3/ @NN---
/types/json5/ @Esemesek
/types/json_ml/ @pluma
/types/jsonabc/ @ffflorian
/types/jsonapi-serializer/ @chiangf
/types/jsonata/ @nick121212
-/types/jsoneditor/ @alejo90 @errietta
+/types/jsoneditor/ @alejo90 @errietta @adamvig
/types/jsoneditor-for-react/ @joshuakgoldberg
/types/jsoneditoronline/ @vbortone
/types/jsonfile/ @dbowring @BendingBender
@@ -2472,7 +2513,7 @@
/types/jsonrpc-serializer/ @Akim95 @many20
/types/jsonstream/ @Bartvds
/types/jsontoxml/ @benstevens48
-/types/jsonwebtoken/ @SomaticIT @danielheim @brikou @vpk @rlgod
+/types/jsonwebtoken/ @SomaticIT @danielheim @brikou @vpk @rlgod @kettil
/types/jsonwebtoken-promisified/ @SomaticIT @danielheim @brikou @aneilbaboo
/types/jspath/ @dex4er
/types/jspdf/ @amberjs @lleios @jemerald
@@ -2515,7 +2556,8 @@
/types/jwt-simple/ @kenfdev @GaelMagnan
/types/jwt-then/ @phenomax
/types/k6/ @MajorBreakfast
-/types/kafka-node/ @dansitu @bkim54 @sfrooster @amiram
+/types/kafka-node/ @dansitu @bkim54 @sfrooster @amiram @insanehong
+/types/kafkajs/ @michal-b-kaminski
/types/karma/ @tkrotoff @43081j @devoto13
/types/karma/v1/ @tkrotoff @43081j
/types/karma-chai/ @JayAndCatchFire
@@ -2525,7 +2567,7 @@
/types/karma-jasmine/ @michelsalib
/types/karma-viewport/ @karak
/types/karma-webpack/ @mtraynham
-/types/katex/ @mrand01 @knguyen0125
+/types/katex/ @mrand01 @knguyen0125 @dreamerblue
/types/kcors/ @Xstoudi @izayoiko
/types/kdbush/ @DenisCarriere @chrfrasco
/types/kdbxweb/ @Roang-zero1
@@ -2540,7 +2582,7 @@
/types/keymirror/ @jfahrenkrug
/types/keypress.js/ @rcchen
/types/keysym/ @harryshipton
-/types/keytar/ @miniak @shiftkey @juturu
+/types/keytar/ @miniak @shiftkey @juturu @queeniema
/types/keyv/ @Arylo @BendingBender
/types/keyv__mongo/ @BendingBender
/types/keyv__mysql/ @BendingBender
@@ -2548,7 +2590,8 @@
/types/keyv__redis/ @BendingBender
/types/keyv__sqlite/ @BendingBender
/types/kik-browser/ @joelday
-/types/klaw/ @mceachen
+/types/kissfft-js/ @racerhere
+/types/klaw/ @mceachen @p4sca1
/types/klaw/v1/ @mceachen
/types/klaw-sync/ @shiftkey
/types/kms-json/ @sunnyone
@@ -2579,7 +2622,7 @@
/types/koa-better-body/ @danwbyrne
/types/koa-bodyparser/ @hellopao @anup-2s @hirochachacha
/types/koa-bouncer/ @maruware
-/types/koa-bunyan-logger/ @sjmcdowall
+/types/koa-bunyan-logger/ @sjmcdowall @jankdc
/types/koa-cache-control/ @pe8ter
/types/koa-compose/ @jkeylu
/types/koa-compress/ @hellopao
@@ -2593,10 +2636,11 @@
/types/koa-hbs/ @jcbmln @mudkipme
/types/koa-helmet/ @me
/types/koa-html-minifier/ @romain-faust
-/types/koa-joi-router/ @wingsbob @move-zig @hirochachacha
+/types/koa-joi-router/ @wingsbob @move-zig @hirochachacha @NotWoods
/types/koa-json/ @brooklyndev
/types/koa-json-error/ @mudkipme
/types/koa-log/ @havenchyk
+/types/koa-log4/ @a631807682
/types/koa-logger/ @geoffreak @tlaziuk
/types/koa-logger-winston/ @stevehipwell
/types/koa-morgan/ @vesse
@@ -2618,7 +2662,7 @@
/types/koa-send/ @pe8ter @tlaziuk
/types/koa-session/ @kerol2r20 @tlaziuk @hirochachacha
/types/koa-session-minimal/ @longztian
-/types/koa-sslify/ @wingsbob
+/types/koa-sslify/ @wingsbob @msokk
/types/koa-static/ @hellopao @tlaziuk
/types/koa-static-cache/ @JounQin
/types/koa-static-server/ @wulunyi
@@ -2657,7 +2701,7 @@
/types/ldap-filters/ @pluma
/types/ldapjs/ @cvillemure @peterkooijmans
/types/leadfoot/ @theintern
-/types/leaflet/ @alejo90 @atd-schubert @mcauer
+/types/leaflet/ @alejo90 @atd-schubert @mcauer @ronikar
/types/leaflet/v0/ @rgripper
/types/leaflet-areaselect/ @awallat
/types/leaflet-curve/ @onikiienko
@@ -2711,6 +2755,7 @@
/types/libxslt/ @alejo90
/types/license-checker/ @rogierschouten @unindented
/types/liftoff/ @BendingBender
+/types/lil-uri/ @wcarson
/types/lil-uuid/ @Pr1st0n
/types/lime-js/ @arthur-xavier
/types/line-by-line/ @etomsen
@@ -2726,6 +2771,7 @@
/types/linkifyjs/ @szhu @ovidiubute
/types/list-git-remotes/ @BendingBender
/types/list-stream/ @IanStorm
+/types/list.js/ @jeffreymeng
/types/listr/ @durad
/types/lls/ @borislavjivkov
/types/load-google-maps-api/ @oBusk
@@ -3037,7 +3083,6 @@
/types/lodash.zipobjectdeep/ @bczengel @chrootsu @stepancar
/types/lodash.zipwith/ @bczengel @chrootsu @stepancar
/types/log-symbols/ @BendingBender
-/types/log-update/ @BendingBender
/types/logat/ @krvikash35
/types/logform/ @DABH
/types/logg/ @blittle
@@ -3045,7 +3090,7 @@
/types/loglevel/ @Pro @szmeti @screendriver
/types/logrotate-stream/ @rogierschouten
/types/lokijs/ @TeamworkGuy2 @thomasconner
-/types/lolex/ @Nemo157 @joshuakgoldberg @rogierschouten
+/types/lolex/ @Nemo157 @joshuakgoldberg @rogierschouten @zyishai
/types/long/ @peterkooijmans
/types/looks-same/ @xcatliu
/types/loopback/ @kattsushi @enko @sequoia @drmikecrowe @karimsa
@@ -3059,6 +3104,7 @@
/types/lowlight/ @NoHomey
/types/lozad/ @plantain-00
/types/lru-cache/ @Bartvds @BendingBender
+/types/lru-cache/v4/ @Bartvds @BendingBender
/types/lscache/ @Chris-Martinezz
/types/ltx/ @PJakcson @BendingBender
/types/luaparse/ @stpettersens
@@ -3077,9 +3123,8 @@
/types/maildev/ @cyrilschumacher @zbarbuto
/types/mailgen/ @vothanhkiet @jordanfarrer
/types/mailgun-js/ @sampsonjoliver @andipaetzold
-/types/mailparser/ @psnider
+/types/mailparser/ @psnider @Avol-V
/types/main-bower-files/ @k-kagurazaka
-/types/make-dir/ @ikatyang @BendingBender
/types/maker.js/ @danmarshall
/types/makeup-expander/ @darkwebdev
/types/makeup-floating-label/ @darkwebdev
@@ -3092,13 +3137,14 @@
/types/mangopay2-nodejs-sdk/ @ifiokjr
/types/map-obj/ @BendingBender
/types/mapbox/ @anahkiasen @Fluccioni
-/types/mapbox-gl/ @dobrud @patrickr
+/types/mapbox-gl/ @dobrud @patrickr @macobo
/types/mapbox-gl-leaflet/ @agorshkov23
/types/mapbox__geo-viewport/ @fnberta
/types/mapbox__geojson-area/ @n0nick
/types/mapbox__polyline/ @Kern0 @mklopets
/types/mapbox__s3urls/ @sebastianvera
/types/mapbox__shelf-pack/ @Perlmint
+/types/mapbox__sphericalmercator/ @nhusher
/types/mapnik/ @ipv4sec
/types/mapsjs/ @davismj
/types/mariasql/ @bennett000
@@ -3109,7 +3155,7 @@
/types/markdown-it-lazy-headers/ @knom
/types/markdown-pdf/ @MonsieurMan
/types/markdownlint/ @ark120202
-/types/marked/ @worr @BendingBender @CrossR @mwickett
+/types/marked/ @worr @BendingBender @CrossR @mwickett @htkzhtm
/types/marked-terminal/ @bkendall
/types/marker-animate-unobtrusive/ @viskin
/types/markerclustererplus/ @enanox @mxl
@@ -3177,7 +3223,7 @@
/types/mem-fs-editor/ @MyFoodBag
/types/memcached/ @KentarouTakeda
/types/memdown/ @MeirionHughes @danwbyrne
-/types/memjs/ @leizongmin
+/types/memjs/ @leizongmin @BendingBender
/types/memoize-one/ @karol-majewski @franklixuefei
/types/memoize-one/v3/ @karol-majewski @franklixuefei
/types/memoizee/ @juanpicado
@@ -3217,6 +3263,7 @@
/types/micro-events/ @AlexanderSychev
/types/micromatch/ @glen-84 @vemoo
/types/micromatch/v2/ @glen-84
+/types/micromodal/ @wcarson
/types/microrouter/ @mathieudutour
/types/microservice-utilities/ @runebaas
/types/microsoft-ajax/ @pjmagee
@@ -3279,18 +3326,19 @@
/types/moment-duration-format/ @SwintDC @TwoStone @leonard-thieu @bendykowski
/types/moment-holiday/ @rwdalpe
/types/moment-jalaali/ @alitaheri
+/types/moment-precise-range-plugin/ @gricey432
/types/moment-range/ @Burgov @wilgert @franjuan @MartynasZilinskas @chemass
/types/moment-round/ @jacobbaskin
/types/moment-shortformat/ @whatasoda
/types/moment-strftime2/ @dex4er
-/types/moment-timezone/ @michelsalib @alanblins @asermax
+/types/moment-timezone/ @michelsalib @alanblins @asermax @borys-kupar
/types/money-math/ @taoqf
/types/mongo-sanitize/ @CedricCazin
-/types/mongodb/ @CaselIT @alanmarcell @bitjson @dante-101 @mcortesi @EnricoPicci @AJCStriker @julien-c @daprahamian @denys-bushulyak @BastienAr @sindbach @geraldinelemeur @jishi @various89 @angela-1 @lirbank @hector7 @floric @erikc5000
+/types/mongodb/ @CaselIT @alanmarcell @bitjson @dante-101 @mcortesi @EnricoPicci @AJCStriker @julien-c @daprahamian @denys-bushulyak @BastienAr @sindbach @geraldinelemeur @jishi @various89 @angela-1 @lirbank @hector7 @floric @erikc5000 @Manc
/types/mongodb/v2/ @CaselIT @alanmarcell @bitjson @dante-101 @mcortesi
/types/mongodb-memory-server/ @dmitryrogozhny
/types/mongodb-uri/ @mernxl
-/types/mongoose/ @horiuchi @lukasz-zak @Alorel @jendrikw @ethanresnick @vologab @jussikinnula @ondratra @alfirin @idandrd @various89 @Fazendaaa @NormanPerrin @danmana @stablio @emmanuelgautier @frontendmonster @mingchen
+/types/mongoose/ @horiuchi @lukasz-zak @Alorel @jendrikw @ethanresnick @vologab @jussikinnula @ondratra @alfirin @idandrd @various89 @Fazendaaa @NormanPerrin @danmana @stablio @emmanuelgautier @frontendmonster @mingchen @penumbra1
/types/mongoose/v4/ @simonxca @horiuchi @lukasz-zak
/types/mongoose-auto-increment/ @AyaMorisawa
/types/mongoose-deep-populate/ @AyaMorisawa
@@ -3315,8 +3363,7 @@
/types/motor-hat/ @muntyan
/types/mousetrap/ @qcz @alanhchoi
/types/move-concurrently/ @mgroenhoff
-/types/move-file/ @BendingBender
-/types/moveto/ @shermendev
+/types/moveto/ @shermendev @pea3nut
/types/moviedb/ @basarat @0x6368656174
/types/moxios/ @itoasuka
/types/mozilla-readability/ @charlesvdv
@@ -3344,6 +3391,7 @@
/types/multiplexjs/ @KamyarNazeri
/types/multisort/ @CzBuCHi
/types/multistream/ @mrmlnc @kenzierocks
+/types/mumath/ @adamzerella
/types/muri/ @jloveridge
/types/murmurhash/ @atd-schubert
/types/murmurhash-js/ @cvle
@@ -3369,6 +3417,8 @@
/types/nats-hemera/ @vforv
/types/natsort/ @mgroenhoff
/types/natural/ @dmoonfire
+/types/natural-compare/ @doniyor2109
+/types/natural-compare-lite/ @doniyor2109
/types/natural-sort/ @a-morales @fluggo
/types/navermaps/ @ckboyjiy
/types/navigation/ @grahammendick
@@ -3437,14 +3487,16 @@
/types/nightwatch/ @rkavalap @schlesiger @ClaytonAstrom
/types/nise/ @a-tarasyuk
/types/nivo-slider/ @AndersonFriaca
-/types/noble/ @swook @shantanubhadoria @lukel99 @bioball @keton @thegecko
+/types/no-scroll/ @ZhangYiJiang
+/types/noble/ @swook @shantanubhadoria @lukel99 @bioball @keton @thegecko @claytonkucera
/types/noble-mac/ @swook @shantanubhadoria @lukel99 @bioball @keton @thegecko
/types/nock/ @bonnici @horiuchi @afharo @mastermatt @damour @paambaati
/types/nodal/ @charrondev
-/types/node/ @Microsoft @DefinitelyTyped @jkomyno @a-tarasyuk @alvis @r3nya @brunoscheufler @smac89 @tellnes @DeividasBakanas @eyqs @Flarna @Hannes-Magnusson-CK @KSXGitHub @hoo29 @kjin @ajafff @islishude @mwiktorczyk @matthieusieben @mohsen1 @n-e @octo-sniffle @parambirs @eps1lon @SimonSchick @ThomasdenH @WilcoBakker @wwwy3y3 @ZaneHannanAU @jeremiergz @samuela @kuehlein
-/types/node/v9/ @Microsoft @DefinitelyTyped @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff @hoo29 @n-e @brunoscheufler @mohsen1 @KSXGitHub @a-tarasyuk @islishude @r3nya @eyqs
-/types/node/v8/ @Microsoft @DefinitelyTyped @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @hoo29 @n-e @brunoscheufler @KSXGitHub @islishude @r3nya
-/types/node/v7/ @Microsoft @DefinitelyTyped @parambirs @tellnes @WilcoBakker @eps1lon @KSXGitHub @Archcry
+/types/node/ @Microsoft @DefinitelyTyped @jkomyno @a-tarasyuk @alvis @r3nya @btoueg @brunoscheufler @smac89 @tellnes @touffy @DeividasBakanas @eyqs @Flarna @Hannes-Magnusson-CK @KSXGitHub @hoo29 @kjin @ajafff @islishude @mwiktorczyk @matthieusieben @mohsen1 @n-e @octo-sniffle @parambirs @eps1lon @SimonSchick @ThomasdenH @WilcoBakker @wwwy3y3 @ZaneHannanAU @jeremiergz @samuela @kuehlein @j-oliveras @bhongy
+/types/node/v10/ @Microsoft @DefinitelyTyped @jkomyno @a-tarasyuk @alvis @r3nya @brunoscheufler @smac89 @tellnes @DeividasBakanas @eyqs @Flarna @Hannes-Magnusson-CK @KSXGitHub @hoo29 @kjin @ajafff @islishude @mwiktorczyk @matthieusieben @mohsen1 @n-e @octo-sniffle @parambirs @eps1lon @SimonSchick @ThomasdenH @WilcoBakker @wwwy3y3 @ZaneHannanAU @jeremiergz @samuela @kuehlein @j-oliveras @bhongy
+/types/node/v9/ @Microsoft @DefinitelyTyped @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff @hoo29 @n-e @brunoscheufler @mohsen1 @KSXGitHub @a-tarasyuk @islishude @r3nya @eyqs @j-oliveras @bhongy
+/types/node/v8/ @Microsoft @DefinitelyTyped @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @hoo29 @n-e @brunoscheufler @KSXGitHub @islishude @r3nya @j-oliveras @bhongy
+/types/node/v7/ @Microsoft @DefinitelyTyped @parambirs @tellnes @WilcoBakker @eps1lon @KSXGitHub @Archcry @j-oliveras
/types/node/v6/ @Microsoft @DefinitelyTyped @WilcoBakker @inlined @eps1lon @Alorel @KSXGitHub @Archcry
/types/node/v4/ @Microsoft @DefinitelyTyped @eps1lon @Archcry
/types/node/v0/ @Microsoft @DefinitelyTyped
@@ -3457,9 +3509,9 @@
/types/node-cron/ @maximelkin @burtek
/types/node-dijkstra/ @nokutu
/types/node-dir/ @panuhorsmalahti
-/types/node-dogstatsd/ @chrisbobo
+/types/node-dogstatsd/ @chrisbobo @xzyfer
/types/node-emoji/ @jonestristand @styu @rimiti
-/types/node-fetch/ @torstenwerner @nikcorg @vinaybedre
+/types/node-fetch/ @torstenwerner @nikcorg @vinaybedre @kyranet
/types/node-fibers/ @caryhaynie
/types/node-forge/ @westy92 @flynetworks @a-k-g @rafal2228 @beenotung @joeflateau @Apologiz @timhwang21 @supaiku0 @andersk
/types/node-gcm/ @horiuchi
@@ -3471,6 +3523,7 @@
/types/node-hue-api/ @fjmorel
/types/node-int64/ @x3cion @kevin-greene-ck
/types/node-ipc/ @arvitaly @gjurgens
+/types/node-jose/ @nadunindunil
/types/node-jsfl-runner/ @mrand01
/types/node-json-db/ @kuzn-ilya
/types/node-localstorage/ @intolerance
@@ -3485,6 +3538,7 @@
/types/node-redis-pubsub/ @renekeijzer
/types/node-resque/ @gordey4doronin
/types/node-rsa/ @alitaheri @xm @ffflorian
+/types/node-sass/ @pspeter3 @chriseppstein
/types/node-schedule/ @cyrilschumacher @flowpl
/types/node-slack/ @tkQubo
/types/node-snap7/ @heilingbrunner
@@ -3506,7 +3560,7 @@
/types/node-zopfli-es/ @Alorel
/types/node_redis/ @borisyankov
/types/nodecredstash/ @migstopheles
-/types/nodegit/ @dolanmiu @tniessen
+/types/nodegit/ @dolanmiu @tniessen @pvigier
/types/nodemailer/ @rogierschouten @dex4er @bioball
/types/nodemailer/v3/ @rogierschouten
/types/nodemailer-direct-transport/ @rogierschouten
@@ -3523,7 +3577,6 @@
/types/nopt/ @jbondc
/types/normalize-package-data/ @jdxcode
/types/normalize-path/ @BendingBender
-/types/normalize-url/ @odin3 @BendingBender @mathieumg
/types/notie/ @mateusdemboski
/types/notify/ @hellochar
/types/notifyjs/ @soundTricker @NateScarlet
@@ -3537,10 +3590,12 @@
/types/npm-email/ @BendingBender
/types/npm-keyword/ @BendingBender
/types/npm-license-crawler/ @ffflorian
+/types/npm-list-author-packages/ @ffflorian
/types/npm-name/ @BendingBender
/types/npm-package-arg/ @mgroenhoff @OiYouYeahYou
/types/npm-packlist/ @ajafff
/types/npm-paths/ @BendingBender
+/types/npm-registry-package-info/ @ffflorian
/types/npm-run-path/ @BendingBender
/types/npm-user/ @BendingBender
/types/npm-user-packages/ @BendingBender
@@ -3548,6 +3603,7 @@
/types/ns-api/ @Archcry
/types/nslog/ @unindented
/types/nsqjs/ @cezaryrk
+/types/nssm/ @hongaar
/types/number-is-nan/ @mhegazy
/types/number-to-words/ @frederickfogerty
/types/numeral/ @vbortone @BehindTheMath @klujanrosas
@@ -3560,6 +3616,7 @@
/types/nw.js/ @alirdn
/types/nwmatcher/ @woutervh-
/types/o.js/ @IceOnFire @bradzacher @janhommes @jcchalte
+/types/oakdex-pokedex/ @jalyna
/types/oauth/ @nonAlgebraic @EduardoAC
/types/oauth-shim/ @BendingBender
/types/oauth.js/ @nobuoka
@@ -3590,13 +3647,13 @@
/types/office-js-preview/ @OfficeDev @Zlatkovsky @kbrandl @Rick-Kirkham @AlexJerabek @ElizabethSamuel-MSFT
/types/office-runtime/ @Zlatkovsky @mscharlock
/types/offline-js/ @cgwrench
+/types/offscreencanvas/ @kayahr
/types/oibackoff/ @geoffreak
/types/oidc-token-manager/ @rosieks
/types/oja/ @buffcode
/types/okta__okta-vue/ @innovation-team
/types/ol/ @yairtawil
/types/omggif/ @ffflorian
-/types/on-change/ @BendingBender
/types/on-finished/ @czechboy0 @BendingBender
/types/on-headers/ @jjeffery @BendingBender
/types/on-wake-up/ @ajafff
@@ -3604,14 +3661,18 @@
/types/one-time/ @BendingBender
/types/onesignal-cordova-plugin/ @broder
/types/onetime/ @BendingBender
+/types/onetime/v2/ @BendingBender
/types/oniguruma/ @smhxx
+/types/onionoo/ @BendingBender
/types/onoff/ @marcel-ernst @Kallu609
/types/ontime/ @Hirse
/types/open/ @Bartvds
/types/open-editor/ @BendingBender
+/types/open-graph/ @ffflorian
/types/openapi-factory/ @runebaas
/types/opener/ @tikurahul
/types/openfin/ @chrisbarker @rdepena @whyn07m3 @licui3936
+/types/openfin/v37/ @chrisbarker @rdepena @whyn07m3 @licui3936
/types/openfin/v34/ @chrisbarker @rdepena @whyn07m3
/types/openfin/v29/ @chrisbarker @rdepena
/types/openfin/v17/ @chrisbarker
@@ -3628,9 +3689,6 @@
/types/optics-agent/ @crevil
/types/optimist/ @soywiz @chbrown
/types/optimize-css-assets-webpack-plugin/ @odnamrataizem
-/types/ora/ @basarat @screendriver @BendingBender @azasypkin
-/types/ora/v1/ @basarat @screendriver @BendingBender @azasypkin
-/types/ora/v0/ @basarat @screendriver
/types/oracle__oraclejet/ @nolakara @jingxwu
/types/oracledb/ @Bigous
/types/orchestrator/ @tkQubo @TeamworkGuy2
@@ -3659,25 +3717,19 @@
/types/p-defer/ @SamVerschueren @BendingBender
/types/p-do-whilst/ @BendingBender
/types/p-each-series/ @BendingBender
-/types/p-event/ @BendingBender
/types/p-every/ @BendingBender
/types/p-forever/ @BendingBender
/types/p-is-promise/ @BendingBender
/types/p-lazy/ @BendingBender
-/types/p-limit/ @BendingBender @LinusU
/types/p-loading/ @renjfk
/types/p-locate/ @BendingBender
/types/p-log/ @BendingBender
-/types/p-map/ @BendingBender
/types/p-map-series/ @BendingBender
/types/p-memoize/ @forabi
/types/p-min-delay/ @BendingBender
/types/p-one/ @BendingBender
-/types/p-pipe/ @BendingBender
/types/p-progress/ @icopp
/types/p-props/ @BendingBender
-/types/p-queue/ @BendingBender @evanshortiss
-/types/p-queue/v2/ @BendingBender @evanshortiss
/types/p-reduce/ @BendingBender
/types/p-reflect/ @BendingBender
/types/p-retry/ @BendingBender
@@ -3685,7 +3737,6 @@
/types/p-settle/ @natesilva
/types/p-some/ @BendingBender
/types/p-tap/ @BendingBender
-/types/p-throttle/ @BendingBender
/types/p-time/ @BendingBender
/types/p-timeout/ @BendingBender
/types/p-times/ @BendingBender
@@ -3694,7 +3745,7 @@
/types/p-wait-for/v1/ @BendingBender
/types/p-waterfall/ @BendingBender
/types/p-whilst/ @BendingBender
-/types/p2/ @clark-stevenson
+/types/p2/ @clark-stevenson @jramstedt
/types/p5/ @p5-types
/types/package-json/ @jinwoo @BendingBender
/types/packery/ @piraveen @hanssens
@@ -3716,7 +3767,7 @@
/types/parity-pmr/ @leovujanic
/types/parity-poe/ @leovujanic
/types/park-miller/ @BendingBender
-/types/parse/ @dpoetzsch @jaeggerr @flavionegrao @wesleygrimes @owsas @agoldis
+/types/parse/ @dpoetzsch @jaeggerr @flavionegrao @wesleygrimes @owsas @agoldis @AlexandreHetu
/types/parse/v1/ @dpoetzsch @jaeggerr @flavionegrao @wesleygrimes @owsas
/types/parse-columns/ @BendingBender
/types/parse-filepath/ @BendingBender
@@ -3795,7 +3846,7 @@
/types/pbf/ @cschwarz
/types/pbkdf2/ @timonegk
/types/pdf2image/ @taoqf
-/types/pdfjs-dist/ @jbaldwin
+/types/pdfjs-dist/ @jbaldwin @1999
/types/pdfkit/ @erichillah
/types/pdfmake/ @m1llen1um @radziksh @evolkmann
/types/pdfobject/ @nielsboogaard
@@ -3805,12 +3856,14 @@
/types/pegjs/ @vvakame @SrTobi @siegebell
/types/pem/ @tony19 @DethAriel
/types/pem-jwk/ @alessiopcc
+/types/pendo-io-browser/ @aaronbeall
/types/permit/ @jannikkeye
/types/persona/ @Nycto
/types/pet-finder-api/ @me
/types/petit-dom/ @JamesMessinger
/types/pg/ @pspeter3
/types/pg/v6/ @pspeter3
+/types/pg-copy-streams/ @fluggo
/types/pg-ears/ @bradleyayers
/types/pg-escape/ @khell
/types/pg-format/ @zopf
@@ -3822,7 +3875,7 @@
/types/phantom/ @horiuchi @llRandom
/types/phantomcss/ @abauzac
/types/phantomjs/ @jedhunsaker @keesey
-/types/phoenix/ @mciastek
+/types/phoenix/ @mciastek @John-Goff @princemaple
/types/phone/ @DxCx
/types/phone-formatter/ @westy92
/types/phonegap/ @borisyankov @DickvdBrink
@@ -3839,7 +3892,7 @@
/types/pid-from-port/ @BendingBender
/types/pidusage/ @cyrilschumacher @mx601595686
/types/pify/ @samverschueren @mad-mike @c7hm4r
-/types/pigpio/ @manerfan @erikma
+/types/pigpio/ @manerfan @erikma @park012241
/types/pigpio-dht/ @erikma
/types/pikaday/ @MidnightDesign @wake42 @mezoistvan
/types/pikaday-time/ @Sayan751
@@ -3853,10 +3906,10 @@
/types/piwik-tracker/ @lbguilherme
/types/pixelmatch/ @iamolegga
/types/pixi.js/ @clark-stevenson
-/types/pkg-conf/ @jorgegonzalez
/types/pkg-dir/ @NK-WEB-Git
/types/pkg-up/ @forivall
/types/pkg-versions/ @BendingBender
+/types/pkgcloud/ @dantman
/types/pkijs/ @microshine
/types/platform/ @JakeH
/types/playcanvas/ @Neoflash1979
@@ -3864,13 +3917,13 @@
/types/playmusic/ @nickp10
/types/pleasejs/ @nakakura
/types/plist/ @higuri
-/types/plotly.js/ @chrisgervang @martinduparc @frederikaalund @taoqf @Dadstart @szechyjs @MercifulCode @soorajpudiyadath @jonfreedman @meganrm
+/types/plotly.js/ @chrisgervang @martinduparc @frederikaalund @taoqf @Dadstart @szechyjs @MercifulCode @soorajpudiyadath @jonfreedman @meganrm @zeroyoichihachi
/types/plugapi/ @BNedry
/types/plugin-error/ @rogierschouten
/types/plupload/ @patrickbussmann
/types/plur/ @iRoachie
/types/pluralize/ @ukyo @karol-majewski
-/types/png-async/ @kanreisa
+/types/plurals-cldr/ @ChaosinaCan
/types/png.js/ @ffflorian
/types/pngjs/ @jason0x43
/types/pngquant-bin/ @hikoma
@@ -3899,9 +3952,11 @@
/types/postcss-modules-local-by-default/ @huan086
/types/postcss-modules-resolve-imports/ @huan086
/types/postcss-modules-scope/ @huan086
+/types/postcss-nested/ @VorontsovMaxim
/types/postcss-url/ @lenovouser
/types/postman-collection/ @kbuzby
/types/postmark/ @benbayard @jineshshah36
+/types/postmate/ @wcarson
/types/pouch-redux-middleware/ @charrondev
/types/pouchdb/ @AGBrown @geppy @fredgalvao
/types/pouchdb-adapter-fruitdown/ @spaulg @geppy @fredgalvao
@@ -3928,12 +3983,14 @@
/types/preloadjs/ @endel
/types/prelude-ls/ @AyaMorisawa
/types/prettier/ @ikatyang
+/types/pretty/ @adamzerella
/types/pretty-bytes/ @plantain-00 @danielasy
/types/pretty-bytes/v4/ @plantain-00
/types/pretty-format/ @ikatyang
/types/pretty-hrtime/ @BendingBender
/types/pretty-ms/ @BendingBender @ocboogie @silh
/types/pretty-ms/v3/ @BendingBender @ocboogie
+/types/pretty-time/ @adamzerella
/types/preval.macro/ @huan086
/types/printf/ @AluisioASG
/types/priorityqueuejs/ @geoffreak
@@ -3942,6 +3999,7 @@
/types/private-ip/ @coderslagoon
/types/procfs-stats/ @cyrilschumacher
/types/progress/ @sebastian-lenz
+/types/progress-stream/ @mickdekkers
/types/progressbar/ @atd-schubert
/types/progressjs/ @zaneli
/types/proj4/ @DenisCarriere @BendingBender
@@ -3969,8 +4027,8 @@
/types/prompt-sync-history/ @MugeSo
/types/promptly/ @danrspencer
/types/prompts/ @Berkays @danielpa9708 @kamontat
-/types/prop-types/ @DovydasNavickas @ferdaber
-/types/proper-lockfile/ @qlonik
+/types/prop-types/ @DovydasNavickas @ferdaber @eps1lon
+/types/proper-lockfile/ @qlonik @LinusU
/types/properties-reader/ @Goldsmith42
/types/prosemirror-collab/ @bradleyayers @davidka @timjb @patsimm
/types/prosemirror-commands/ @bradleyayers @davidka @timjb @patsimm
@@ -3986,6 +4044,7 @@
/types/prosemirror-schema-list/ @bradleyayers @davidka @timjb @patsimm
/types/prosemirror-state/ @bradleyayers @davidka @timjb @patsimm
/types/prosemirror-tables/ @superchu @eshvedai @patsimm
+/types/prosemirror-test-builder/ @ifiokjr
/types/prosemirror-transform/ @bradleyayers @davidka @timjb @patsimm
/types/prosemirror-view/ @bradleyayers @davidka @timjb @patsimm
/types/proton-native/ @khanhas @ltetzlaff
@@ -4004,7 +4063,7 @@
/types/ptomasroos__react-native-multi-slider/ @Slessi
/types/pty.js/ @enlight
/types/public-ip/ @BendingBender
-/types/pubnub/ @bitbankinc @rollymaduk @vitosamson @FlorianDr @danduh
+/types/pubnub/ @bitbankinc @rollymaduk @vitosamson @FlorianDr @danduh @ChristianBoehlke
/types/pubsub-js/ @borisyankov
/types/pug/ @TonyPythoneer @19majkel94
/types/pulltorefreshjs/ @DanielRosenwasser @humpedli
@@ -4035,7 +4094,6 @@
/types/qs/ @RWander @leonyu @tehbelinda @zyml @artursvonda @CarlosBonetti
/types/qs-middleware/ @davecardwell
/types/qtip2/ @Seltzer @leonard-thieu
-/types/query-string/ @SamVerschueren @tkrotoff @huhuanming @MadaraUchiha @shssoichiro @jarrku
/types/querystringify/ @ilich
/types/quick-lru/ @BendingBender
/types/quick-lru/v1/ @BendingBender
@@ -4053,7 +4111,7 @@
/types/radius/ @codeanimal
/types/radix64/ @huan086
/types/raf/ @BenLorantfy
-/types/ramda/ @donnut @tycho01 @mdekrey @mrdziuban @sbking @afharo @teves-castro @1M0reBug @hojberg @samsonkeung @angeloocana @raynerd @googol @moshensky @ethanresnick @leighman @CaptJakk @deftomat @deptno @blimusiek @biern @rayhaneh @rgm @drewwyatt @jottenlips @minitesh
+/types/ramda/ @donnut @tycho01 @mdekrey @mrdziuban @sbking @afharo @teves-castro @1M0reBug @hojberg @samsonkeung @angeloocana @raynerd @googol @moshensky @ethanresnick @leighman @CaptJakk @deftomat @deptno @blimusiek @biern @rayhaneh @rgm @drewwyatt @jottenlips @minitesh @krantisinh @pirix-gh
/types/random-boolean/ @BendingBender
/types/random-float/ @BendingBender
/types/random-int/ @BendingBender
@@ -4091,7 +4149,7 @@
/types/rc/ @DanielRosenwasser @BendingBender
/types/rc-progress/ @jussikinnula
/types/rc-select/ @DenisTirilis
-/types/rc-slider/ @mantasmarcinkus @mattoni @paustint @j-fro @Deanna2
+/types/rc-slider/ @mantasmarcinkus @mattoni @paustint @j-fro @Deanna2 @nicholasmaddren @nulladdict
/types/rc-switch/ @karol-majewski
/types/rc-time-picker/ @Hoff97
/types/rc-tooltip/ @rhysd @ahstro @vsaarinen
@@ -4102,7 +4160,7 @@
/types/rdflib/ @cenotelie
/types/re-base/ @jordandrako
/types/reach__router/ @kingdaro
-/types/react/ @johnnyreilly @bbenezech @pzavolinsky @digiguru @ericanderson @tkrotoff @DovydasNavickas @onigoetz @theruther4d @guilhermehubner @ferdaber @jrakotoharisoa @pascaloliv @hotell @franklixuefei @Jessidhia @pshrmn @threepointone
+/types/react/ @johnnyreilly @bbenezech @pzavolinsky @digiguru @ericanderson @tkrotoff @DovydasNavickas @onigoetz @theruther4d @guilhermehubner @ferdaber @jrakotoharisoa @pascaloliv @hotell @franklixuefei @Jessidhia @pshrmn @threepointone @saranshkataria
/types/react/v15/ @bbenezech @pzavolinsky @digiguru @ericanderson @tkrotoff @DovydasNavickas @onigoetz
/types/react-adal/ @dkorolev1
/types/react-albus/ @sseppola @conradreuter @kuirak
@@ -4116,10 +4174,10 @@
/types/react-aria-modal/ @forabi
/types/react-autocomplete/ @lstanden
/types/react-autosuggest/ @nicolas-schmitt @pjo256 @robessog @tbayne @cdeutsch @rosskevin
-/types/react-avatar-editor/ @diogocorrea @gabsprates
+/types/react-avatar-editor/ @diogocorrea @gabsprates @lsenta @davidspiess
/types/react-beautiful-dnd/ @varHarrie @bradleyayers @paustint @marknelissen @enricoboccadifuoco @lonyele
/types/react-better-password/ @mhuynh1
-/types/react-big-calendar/ @piotrwitek @paustint @pikpok @eps1lon @strongpauly @janb87
+/types/react-big-calendar/ @piotrwitek @paustint @pikpok @eps1lon @strongpauly @janb87 @ldthorne
/types/react-blessed/ @me
/types/react-body-classname/ @mhegazy
/types/react-bootstrap/ @walkerburgin @vsiao @danilojrr @Batbold-Gansukh @octatone @chengsieuly @mretolaza @katbusch @vitosamson @LKay @aaronbeall @jrakotoharisoa @r3nya @t49tran @bes
@@ -4127,7 +4185,7 @@
/types/react-bootstrap-daterangepicker/ @ianks
/types/react-bootstrap-table/ @flaub @alelode @UJosue10 @dawnmist @Ogglas
/types/react-bootstrap-table/v2/ @flaub @alelode @UJosue10
-/types/react-bootstrap-typeahead/ @Guymestef @radziksh @PaitoAnderson @arichter83 @dalevfenton
+/types/react-bootstrap-typeahead/ @Guymestef @radziksh @PaitoAnderson @arichter83 @dalevfenton @KngHawkon
/types/react-breadcrumbs/ @guoyunhe
/types/react-breadcrumbs-dynamic/ @mitsuruog
/types/react-broadcast/ @kandros
@@ -4137,7 +4195,7 @@
/types/react-calendar-timeline/ @radziksh @acemac
/types/react-cartographer/ @trevonmckay
/types/react-circular-progressbar/ @lstanden
-/types/react-click-outside/ @screendriver
+/types/react-click-outside/ @screendriver @Ky6uk
/types/react-close-on-escape/ @JamesAlias
/types/react-codemirror/ @velveret @rudi-c
/types/react-coinhive/ @sktbcbbs
@@ -4149,11 +4207,12 @@
/types/react-copy-to-clipboard/ @mabels @BernabeFelix
/types/react-copy-write/ @samhh @davej
/types/react-countup/ @danielbrodin
-/types/react-credit-cards/ @vstrimaitis @olefrank
+/types/react-credit-cards/ @vstrimaitis @olefrank @zzanol
/types/react-cropper/ @stepancar
/types/react-css-collapse/ @dford07
/types/react-css-modules/ @KostyaEsmukov @skirsdeda
/types/react-css-transition-replace/ @LKay
+/types/react-csv/ @vincentjames501
/types/react-currency-formatter/ @pastushenkoy @Jeka-Vasiliev
/types/react-custom-scrollbars/ @David-LeBlanc-git @kittimiyo
/types/react-custom-scrollbars/v3/ @David-LeBlanc-git
@@ -4166,15 +4225,16 @@
/types/react-daterange-picker/ @uncovertruth @MartynasZilinskas @donaldtf @vladflorescu94
/types/react-dates/ @ArturAmpilogov @NathanNZ
/types/react-daum-postcode/ @Sa-ryong
-/types/react-dnd-multi-backend/ @dawnmist @beeequeue
+/types/react-dev-utils/ @ark120202
+/types/react-dnd-multi-backend/ @dawnmist @beeequeue @robcodemonkey
/types/react-dnd-touch-backend/ @mleko @dawnmist @beeequeue
/types/react-document-meta/ @ulrichb
/types/react-document-title/ @cleverguy25
-/types/react-dom/ @MartynasZilinskas @theruther4d
+/types/react-dom/ @MartynasZilinskas @theruther4d @Jessidhia
/types/react-dom/v15/ @MartynasZilinskas
/types/react-dom-factories/ @jgoz
/types/react-dotdotdot/ @jczyzewski
-/types/react-draft-wysiwyg/ @imechZhangLY @brunoMaurice
+/types/react-draft-wysiwyg/ @imechZhangLY @brunoMaurice @ldanet
/types/react-dragtastic/ @nscarcella
/types/react-dropzone/ @matdube @LynxEyes @goblindegook @benbayard @LKay @codeaid @jurosh @ekilah
/types/react-dropzone/v3/ @matdube @LynxEyes @goblindegook @benbayard @LKay
@@ -4224,7 +4284,6 @@
/types/react-howler/ @maksimovicdanijel
/types/react-hyperscript/ @tock203
/types/react-icon-base/ @apare @LKay
-/types/react-icons/ @apare @johnnyreilly @LKay
/types/react-image-crop/ @danielasy @chaaya
/types/react-image-fallback/ @8enSmith
/types/react-image-gallery/ @adamwpc
@@ -4240,11 +4299,11 @@
/types/react-input-calendar/ @stepancar
/types/react-input-mask/ @apare @dima7a14
/types/react-input-mask/v1/ @apare
-/types/react-instantsearch/ @gburgett @jpowell
-/types/react-instantsearch-core/ @gburgett @jpowell @davidfurlong
-/types/react-instantsearch-dom/ @gburgett @jpowell
-/types/react-instantsearch-native/ @gburgett @jpowell
-/types/react-intl/ @bgrieder @cdroulers @gyzerok @tillwolff @LKay @bhouser @kristerkari @formatlos @lukyth @obedm503
+/types/react-instantsearch/ @gburgett @jpowell @haroenv @samouss
+/types/react-instantsearch-core/ @gburgett @jpowell @davidfurlong @haroenv @samouss
+/types/react-instantsearch-dom/ @gburgett @jpowell @haroenv @samouss
+/types/react-instantsearch-native/ @gburgett @jpowell @haroenv @samouss
+/types/react-intl/ @bgrieder @cdroulers @gyzerok @tillwolff @LKay @bhouser @kristerkari @formatlos @lukyth @obedm503 @anion155
/types/react-intl/v1/ @bgrieder
/types/react-intl-redux/ @LKay
/types/react-is/ @AviVahl @christianchown @eps1lon
@@ -4256,9 +4315,11 @@
/types/react-json-tree/ @gnestor @zainafzal08
/types/react-jsonschema-form/ @iamdanfox @iplus26 @phbou72 @LucianBuzzo @sthenault @sbusch
/types/react-jss/ @eps1lon @jlaw90
+/types/react-kawaii/ @ZhangYiJiang
/types/react-lazyload/ @m0a
/types/react-lazylog/ @benjaminRomano
/types/react-leaflet/ @danzel @davschne @yuit
+/types/react-leaflet/v1/ @danzel @davschne @yuit
/types/react-leaflet-markercluster/ @Kimahriman
/types/react-lifecycle-component/ @pixelshaded
/types/react-lifecycles-compat/ @bySabi
@@ -4269,6 +4330,7 @@
/types/react-mailchimp-subscribe/ @osdiab
/types/react-map-gl/ @rimig @fnberta
/types/react-maskedinput/ @LKay @lavoaster @CarlosBonetti
+/types/react-material-ui-form-validator/ @FrankBrullo
/types/react-mce/ @morphologue
/types/react-mdl/ @bradzacher
/types/react-measure/ @asvetliakov @marcfallows
@@ -4276,9 +4338,10 @@
/types/react-mixin/ @tkqubo
/types/react-modal/ @radziksh @drewnoakes @homburg @ttamminen @hallowatcher @peterblazejewicz @jpowell
/types/react-motion/ @stepancar @asvetliakov @dimitarnestorov
+/types/react-motion-loop/ @j-em
/types/react-motion-slider/ @asvetliakov
/types/react-motion-ui-pack/ @jsonunger
-/types/react-native/ @alloy @huhuanming @iRoachie @skn0tt @timwangdev @kamal @nelyousfi @alexdunne @swissmanu @bm-software @tkrotoff @a-tarasyuk @mvdam @esemesek @mrnickel @souvik-ghosh
+/types/react-native/ @alloy @huhuanming @iRoachie @skn0tt @timwangdev @kamal @nelyousfi @alexdunne @swissmanu @bm-software @tkrotoff @a-tarasyuk @mvdam @esemesek @mrnickel @souvik-ghosh @nossbigg
/types/react-native-android-taskdescription/ @christianchown
/types/react-native-auth0/ @ascariandrea @marknelissen
/types/react-native-autocomplete-input/ @ifiokjr
@@ -4318,10 +4381,12 @@
/types/react-native-mauron85-background-geolocation/ @djereg
/types/react-native-mixpanel/ @r3nya
/types/react-native-modal-dropdown/ @echoulen
+/types/react-native-modal-filter-picker/ @ywchang @nossbigg
/types/react-native-modalbox/ @iRoachie
/types/react-native-multi-slider/ @Slessi
/types/react-native-navbar/ @ryokik
/types/react-native-orientation/ @MoLow
+/types/react-native-percentage-circle/ @hmajid2301
/types/react-native-permissions/ @vincentlanglet
/types/react-native-photo-view/ @christianchown
/types/react-native-platform-touchable/ @tngranados
@@ -4338,6 +4403,7 @@
/types/react-native-sensor-manager/ @SahinVardar
/types/react-native-settings-list/ @MrLuje
/types/react-native-share/ @marknelissen
+/types/react-native-snackbar-component/ @hmajid2301
/types/react-native-snap-carousel/ @jnbt @j-fro @gazaret @GuillaumeAmat @VitorLuizC
/types/react-native-sortable-grid/ @j-fro
/types/react-native-sortable-list/ @sivolobov @RookY2K
@@ -4348,7 +4414,7 @@
/types/react-native-svg-uri/ @iRoachie
/types/react-native-swiper/ @CaiHuan @huhuanming @mhcgrq
/types/react-native-tab-navigator/ @iRoachie
-/types/react-native-tab-view/ @kaoDev @iRoachie @timwangdev
+/types/react-native-tab-view/ @kaoDev @iRoachie @timwangdev @geriux
/types/react-native-text-input-mask/ @RodrigoAWeber
/types/react-native-toast-native/ @bm-software
/types/react-native-touch-id/ @huhuanming @gazaret @jinshin1013
@@ -4357,7 +4423,7 @@
/types/react-native-version-number/ @VincentLanglet
/types/react-native-video/ @huhuanming
/types/react-native-zeroconf/ @mattapet
-/types/react-navigation/ @huhuanming @mhcgrq @fangpenlin @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @YourGamesBeOver @ArmandoAssuncao @cliedeman @magrinj @TizioFittizio @stigi @LinusU @jshosomichi @jakebooyah @brunoro @DenisFrezzato @mickaelw @maxdavidson @alechill @builtbyproxy @jkillian @jeroenvervaeke @chagasaway @denissb @skovhus
+/types/react-navigation/ @huhuanming @mhcgrq @fangpenlin @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @YourGamesBeOver @ArmandoAssuncao @cliedeman @magrinj @TizioFittizio @stigi @LinusU @jshosomichi @jakebooyah @brunoro @DenisFrezzato @mickaelw @maxdavidson @alechill @builtbyproxy @jkillian @jeroenvervaeke @chagasaway @denissb @skovhus @azrosen92 @hmajid2301
/types/react-navigation/v2/ @huhuanming @mhcgrq @fangpenlin @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @YourGamesBeOver @ArmandoAssuncao @cliedeman @magrinj @TizioFittizio @stigi @LinusU @jshosomichi @jakebooyah @brunoro @DenisFrezzato @mickaelw @maxdavidson @alechill @builtbyproxy @jkillian @jeroenvervaeke @chagasaway
/types/react-navigation/v1/ @huhuanming @mhcgrq @fangpenlin @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @YourGamesBeOver @ArmandoAssuncao @cliedeman @Slessi
/types/react-navigation-material-bottom-tabs/ @iRoachie
@@ -4372,8 +4438,8 @@
/types/react-outside-click-handler/ @zubivan
/types/react-overlays/ @aaronbeall @vitosamson @aarondancer
/types/react-owl-carousel/ @tbounsiar @igorissen @KennethanCeyer
-/types/react-paginate/ @deevus @wouterhardeman @pegel03 @archy-bold @yasupeke @sugarshin @SPWizard01
-/types/react-paginate/v5/ @deevus @wouterhardeman @pegel03 @archy-bold @yasupeke
+/types/react-paginate/ @deevus @wouterhardeman @pegel03 @archy-bold @yasupeke @sugarshin @SPWizard01 @kevinrambaud
+/types/react-paginate/v5/ @deevus @wouterhardeman @pegel03 @archy-bold @yasupeke @kevinrambaud
/types/react-paginate/v4/ @deevus @wouterhardeman @pegel03 @archy-bold
/types/react-panelgroup/ @qgolsteyn
/types/react-places-autocomplete/ @guilhermehubner @r3nya @ApeNox @azizhk
@@ -4391,7 +4457,7 @@
/types/react-rangeslider/ @RichieRock
/types/react-recaptcha/ @mhegazy @zzanol
/types/react-reconciler/ @Methuselah96
-/types/react-redux/ @tkqubo @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva @kallikrein @val1984 @jrakotoharisoa @apapirovski @surgeboris @soerenbf
+/types/react-redux/ @tkqubo @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @kallikrein @val1984 @jrakotoharisoa @apapirovski @surgeboris @soerenbf
/types/react-redux/v6/ @tkqubo @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva @kallikrein @val1984 @jrakotoharisoa @apapirovski @surgeboris
/types/react-redux/v5/ @tkqubo @thasner @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva
/types/react-redux-epic/ @forabi
@@ -4399,12 +4465,13 @@
/types/react-redux-toastr/ @Smiche @artyomsv @kulmajaba
/types/react-relay/ @graphcool @voxmatt @alloy @npirotte @ckknight @kastermester @mattkrick
/types/react-request/ @dannycochran
+/types/react-resizable/ @airhorns
/types/react-resize-detector/ @matthew-matvei @aMoniker @rdrgn
/types/react-resolver/ @forabi
/types/react-responsive/ @asvetliakov @alechill @xaviergonz
/types/react-responsive/v1/ @asvetliakov
/types/react-rnd/ @Ragg- @fsubal @zyh825
-/types/react-router/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @tkrotoff @huy-nguyen @grmiade @DaIgeb @egorshulga @neuoy @rraina @pret-a-porter @t49tran @8enSmith
+/types/react-router/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @tkrotoff @huy-nguyen @grmiade @DaIgeb @egorshulga @neuoy @rraina @pret-a-porter @t49tran @8enSmith @wezleytsai @eps1lon
/types/react-router/v3/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @ssorallen @gillchristian @nulladdict
/types/react-router/v2/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov
/types/react-router-bootstrap/ @vlesierse @LKay @olmobrutall
@@ -4421,7 +4488,9 @@
/types/react-rte/ @jclyons52
/types/react-s-alert/ @mitsuruog
/types/react-scroll/ @sudoplz @GiedriusGrabauskas
+/types/react-scroll-into-view-if-needed/ @angusfretwell @allanpope @jonathanly
/types/react-scrollbar/ @stephenjelfs
+/types/react-scrollspy/ @ZhangYiJiang
/types/react-select/ @claasahl @jonfreedman
/types/react-select/v1/ @Hesquibet @giladgray @iebaker @skirsdeda @vujevits @devrelm @MartynasZilinskas @onatm @ninjaferret @tehbi4 @misantronic @darkartur @eps1lon @endurance @RCGuillaume
/types/react-share/ @icopp
@@ -4451,19 +4520,19 @@
/types/react-svg-inline/ @kiyopikko
/types/react-svg-pan-zoom/ @huy-nguyen
/types/react-swf/ @stepancar
-/types/react-swipe/ @DeividasBakanas
+/types/react-swipe/ @DeividasBakanas @AAlakkad
/types/react-swipeable/ @GiedriusGrabauskas @mctep @horiuchi
/types/react-swipeable-views/ @mxl @DeividasBakanas
/types/react-syntax-highlighter/ @NoHomey @ajgamble-milner
/types/react-table/ @royxue @psakalo @Havret @andys8 @Gelio
/types/react-table-filter/ @gjsln
-/types/react-tabs/ @danez @Equationist
+/types/react-tabs/ @yu-i9 @danez @Equationist
/types/react-tag-autocomplete/ @jlismore
/types/react-tag-input/ @Ogglas @jankarres @matthewberryman
/types/react-tagcloud/ @wassname
/types/react-tagsinput/ @mykter
/types/react-tap-event-plugin/ @mxl
-/types/react-test-renderer/ @arvitaly @lochbrunner @johnnyreilly @jgoz
+/types/react-test-renderer/ @arvitaly @lochbrunner @johnnyreilly @jgoz @Jessidhia
/types/react-test-renderer/v15/ @arvitaly @lochbrunner @lochbrunner @johnnyreilly
/types/react-tether/ @ryprice
/types/react-text-mask/ @guilhermehubner @cavarzan @needpower
@@ -4491,14 +4560,14 @@
/types/react-visibility-sensor/ @JRasmusBm @gcangussu
/types/react-webcam/ @squat
/types/react-weui/ @tairan
-/types/react-widgets/ @rogierschouten @sanyatuning @frodehansen2 @r3nya @MBillemaz @georg94 @tzarger
+/types/react-widgets/ @rogierschouten @sanyatuning @frodehansen2 @r3nya @MBillemaz @georg94 @tzarger @vegtelenseg
/types/react-widgets-moment/ @dawnmist
-/types/react-window/ @martynaskadisa
+/types/react-window/ @martynaskadisa @heyimalex
/types/react-window-size/ @jakejrichards
/types/react-wow/ @mikepthomas
/types/react-youtube/ @kgtkr @salguerooo
/types/react-youtube-embed/ @charles-salmon
-/types/reactable/ @spielc
+/types/reactable/ @spielc @priscila-moneo
/types/reactcss/ @chrisgervang @LKay
/types/reactstrap/ @alihammad @mfal @danilobjr @FaithForHumans @timc13 @patrickrgaffney @prabodht @georg94
/types/reactstrap/v4/ @alihammad @mfal @danilobjr @fabiopaiva
@@ -4513,11 +4582,11 @@
/types/readline-sync/ @jonestristand
/types/readline-transform/ @dex4er
/types/reapop/ @Barrokgl
-/types/rebass/ @rhysd @ryee-dev @jamesmckenzie
+/types/rebass/ @rhysd @ryee-dev @jamesmckenzie @gretzky @angusfretwell
/types/rebass__grid/ @antonvasin @vittorio @lhache @lavoaster
/types/recaptcha2/ @l-jonas
/types/recase/ @18steps
-/types/recharts/ @mthmulders @rapmue @royxue @ZheyangSong @richbai90 @caspeco-dan @pkeuter @jrsaunde @paulmelnikow @crusectrl @apalugniok @RobertStigsson @kousaku-maron
+/types/recharts/ @mthmulders @rapmue @royxue @ZheyangSong @richbai90 @caspeco-dan @pkeuter @jrsaunde @paulmelnikow @crusectrl @apalugniok @RobertStigsson @kousaku-maron @iflp
/types/recharts-scale/ @johnnyreilly
/types/rechoir/ @BendingBender
/types/recluster/ @dex4er
@@ -4553,7 +4622,8 @@
/types/redux-first-router-link/ @janb87
/types/redux-first-router-restore-scroll/ @icopp
/types/redux-first-routing/ @tlaziuk
-/types/redux-form/ @carsonf @aikoven @LKay @bancek @alsiola @tehbi4 @huwmartin @ethanresnick @reggino @maddijoyce @smifun @mshaaban088
+/types/redux-form/ @carsonf @aikoven @LKay @bancek @alsiola @tehbi4 @huwmartin @ethanresnick @reggino @maddijoyce @smifun @mshaaban088 @esetnik @bwlt
+/types/redux-form/v7/ @carsonf @aikoven @LKay @bancek @alsiola @tehbi4 @huwmartin @ethanresnick @reggino @maddijoyce @smifun @mshaaban088 @esetnik
/types/redux-form/v6/ @carsonf @aikoven @LKay @bancek @mshaaban088
/types/redux-form/v4/ @aikoven
/types/redux-immutable/ @oizie @sebald @gavingregory @lukyth
@@ -4608,6 +4678,8 @@
/types/remote-redux-devtools/ @ColinEberhardt @unindented @mamodom @colindekker
/types/remove-markdown/ @RagibHasin
/types/rename/ @Aankhen
+/types/repeat-element/ @adamzerella
+/types/repeat-string/ @adamzerella
/types/replace-ext/ @DeividasBakanas
/types/replace-string/ @BendingBender
/types/replacestream/ @dex4er
@@ -4630,6 +4702,7 @@
/types/resemblejs/ @pimterry
/types/reservoir/ @danvk
/types/resize-img/ @higuri
+/types/resize-observer-browser/ @chivesrs
/types/resolve/ @marionebl @ajafff
/types/resolve-cwd/ @BendingBender
/types/resolve-from/ @unional @BendingBender
@@ -4652,8 +4725,9 @@
/types/restler/ @cyrilschumacher
/types/restling/ @loghorn
/types/restore-cursor/ @BendingBender
-/types/resumablejs/ @DanielMcAssey
+/types/resumablejs/ @DanielMcAssey @Johns3n
/types/rethinkdb/ @alexgorbatchev @AdrianFarmadin @kondi @hoishin
+/types/retinajs/ @senjyouhara
/types/retry/ @krenor @BendingBender
/types/retry-as-promised/ @Raigen
/types/rev-hash/ @ikatyang
@@ -4684,6 +4758,7 @@
/types/rocksdb/ @MeirionHughes @danwbyrne
/types/roll/ @icopp
/types/rolling-rate-limiter/ @l-jonas
+/types/rollup-plugin-buble/ @Kocal
/types/rollup-plugin-commonjs/ @eoin-obrien
/types/rollup-plugin-delete/ @vladshcherbin
/types/rollup-plugin-json/ @asmockler @hotell
@@ -4707,6 +4782,7 @@
/types/rss/ @secondwtq
/types/rsvp/ @chriskrycho
/types/rsync/ @philippstucki
+/types/rtlcss/ @adamzerella
/types/rtree/ @oefirouz
/types/run-parallel/ @mrmlnc
/types/run-parallel-limit/ @mrmlnc
@@ -4776,13 +4852,15 @@
/types/schema-registry/ @bonzzy
/types/schwifty/ @ozum
/types/scoped-http-client/ @mattvperry @rianadon
-/types/screenfull/ @icholy @lionelb @joelshepherd
+/types/screenfull/ @icholy @lionelb @joelshepherd @BendingBender
+/types/screenfull/v3/ @icholy @lionelb @joelshepherd
/types/screeps/ @MarkoSulamagi @NhanHo @bryanbecker @resir014 @Arcath @dmarcuse
/types/screeps-profiler/ @ramblurr
/types/script-ext-html-webpack-plugin/ @davecardwell
/types/scriptjs/ @ssttevee
/types/scroll-into-view/ @zivni
/types/scroller/ @haskellcamargo
+/types/scrollparent/ @Sintifo
/types/scrollreveal/ @Davidblkx
/types/scrolltofixed/ @bmdixon
/types/scrypt/ @WhiteAbeLincoln
@@ -4798,6 +4876,7 @@
/types/seed-random/ @l-jonas
/types/seededshuffle/ @urish
/types/seedrandom/ @kernhanda
+/types/seen/ @admvx
/types/segment-analytics/ @fongandrew
/types/select2/ @borisyankov @denisname
/types/select2/v3/ @borisyankov
@@ -4837,6 +4916,7 @@
/types/semver-truncate/ @BendingBender
/types/sencha_touch/ @brian428
/types/send/ @MikeJerred
+/types/sendmail/ @saostad
/types/seneca/ @psnider @kevynb
/types/sequelize/ @samuelneff @codeanimal @drinchev @babolivier @kukoo1 @oktapodia @morpheusxaut @TitaneBoy @zjy01 @nidzov @Raigen @todd @nrschultz @thomas-b @Antoine38660 @smff
/types/sequelize/v3/ @samuelneff @codeanimal @drinchev @morpheusxaut @torhal
@@ -4846,7 +4926,7 @@
/types/sequester/ @Strate
/types/serialize-error/ @thomasthiebaud
/types/serialize-javascript/ @lith-light-g @Pochodaydayup
-/types/serialport/ @codefoster @apearson
+/types/serialport/ @codefoster @apearson @cinderblock
/types/serialport/v6/ @codefoster @apearson
/types/serialport/v4/ @codefoster
/types/serve-favicon/ @urossmolnik
@@ -4854,7 +4934,7 @@
/types/serve-static/ @urossmolnik @LinusU
/types/server/ @sant123 @iddan
/types/server-destroy/ @gyszalai
-/types/serverless/ @hassankhan
+/types/serverless/ @hassankhan @JonathanWilbur
/types/servicenow/ @bryceg
/types/session-file-store/ @blendsdk @rokt33r
/types/set-cookie-parser/ @nickp10 @ilyaztsv
@@ -4866,7 +4946,7 @@
/types/sha1/ @arcdev1
/types/sha256/ @nhardy
/types/shallow-equals/ @rsolomon
-/types/shallowequal/ @seansfkelley @BendingBender
+/types/shallowequal/ @seansfkelley @BendingBender @arndissler
/types/shallowequal/v0/ @seansfkelley
/types/shapefile/ @DenisCarriere @Thw0rted
/types/sharedb/ @soney
@@ -4882,7 +4962,7 @@
/types/shelljs/ @nikeee @voy @gkalpak @pheromonez @aldafu
/types/shelljs-exec-proxy/ @qlonik
/types/shimmer/ @kjin
-/types/shipit/ @cyrilschumacher
+/types/shipit-cli/ @cyrilschumacher
/types/shipit-utils/ @cyrilschumacher
/types/shopify-buy/ @openminder @straiforos @totemika
/types/shorten-repo-url/ @BendingBender
@@ -4944,7 +5024,7 @@
/types/sizzle/ @leonard-thieu
/types/sjcl/ @Evgenus
/types/skatejs/ @Hotell
-/types/sketchapp/ @manekinekko
+/types/sketchapp/ @manekinekko @shikanime
/types/ski/ @AyaMorisawa
/types/skin-tone/ @BendingBender
/types/skyway/ @nakakura @izmhr
@@ -4954,18 +5034,19 @@
/types/slackdown/ @nju33
/types/slackify-html/ @hypexr
/types/slash/ @BendingBender
-/types/slate/ @andykent @majelbstoat @JanLoebel @YangusKhan @kalley @Kornil @isubasti @sgreav
+/types/slate/ @andykent @majelbstoat @JanLoebel @YangusKhan @kalley @Kornil @isubasti @sgreav @jackall3n
/types/slate-base64-serializer/ @YangusKhan
/types/slate-html-serializer/ @YangusKhan
/types/slate-irc/ @elisee
/types/slate-plain-serializer/ @YangusKhan @mkiefel
-/types/slate-react/ @andykent @majelbstoat @JanLoebel @PatrickSachs @YangusKhan @isubasti @sgreav @Kornil
+/types/slate-react/ @andykent @majelbstoat @JanLoebel @PatrickSachs @YangusKhan @isubasti @sgreav @Kornil @jackall3n
/types/sleep/ @rajarz
/types/slice-ansi/ @dwieeb
/types/slickgrid/ @jbaldwin
/types/slideout/ @ToastHawaii
/types/slimerjs/ @alexwall
/types/slocket/ @BendingBender
+/types/slonik/ @sebald
/types/slug/ @mhegazy
/types/smart-fox-server/ @ChanceM
/types/smart-truncate/ @oyalhi
@@ -4982,6 +5063,8 @@
/types/snoowrap/ @vitosamson @TheAppleFreak @willwull
/types/snowball-stemmers/ @ryanvolum
/types/snowboy/ @dolanmiu
+/types/sns-validator/ @kevin68
+/types/sntp/ @adamzerella
/types/socket.io/ @progre @divillysausages @florentpoujol @KentarouTakeda @gigi @BrainMaestro
/types/socket.io/v1/ @progre @divillysausages @florentpoujol @KentarouTakeda @gigi @BrainMaestro
/types/socket.io-client/ @progre @divillysausages @florentpoujol
@@ -4998,7 +5081,7 @@
/types/socketty/ @Nax
/types/sockjs/ @pmccloghrylaing
/types/sockjs-client/ @vladev @arusakov @BendingBender @renjfk
-/types/solidity-parser-antlr/ @LogvinovLeon @albrow
+/types/solidity-parser-antlr/ @LogvinovLeon @albrow @yxliang01
/types/solr-client/ @liul85
/types/solution-center-communicator/ @dami-gg
/types/sonic-boom/ @alferpal
@@ -5008,7 +5091,7 @@
/types/soundmanager2/ @elton2048
/types/soupbintcp/ @jewbre
/types/source-list-map/ @e-cloud
-/types/source-map-support/ @Bartvds @jason0x43
+/types/source-map-support/ @Bartvds @jason0x43 @natealcedo
/types/space-pen/ @vvakame
/types/spark-md5/ @bastienmoulia
/types/sparkly/ @BendingBender
@@ -5024,13 +5107,14 @@
/types/speakingurl/ @Goldsmith42
/types/spected/ @benneq
/types/spectrum/ @M-Zuber @Ailrun
+/types/spellchecker/ @dalevfenton
/types/split/ @marcinporebski
/types/split.js/ @icholy
/types/split2/ @mugeso
/types/splunk-bunyan-logger/ @bricka
/types/splunk-logging/ @bricka
/types/spotify-api/ @skovmand
-/types/spotify-web-playback-sdk/ @Festify @mraerino @NeoLegends
+/types/spotify-web-playback-sdk/ @Festify @mraerino @NeoLegends @deini
/types/sprintf/ @soywiz @BendingBender
/types/sprintf-js/ @jasonswearingen @BendingBender @cdagli
/types/sql-bricks/ @adn05 @paleo
@@ -5047,6 +5131,7 @@
/types/ssh2-sftp-client/ @igrayson @ascariandrea @kartik2406 @viamuli
/types/ssh2-streams/ @rbuckton
/types/sshpk/ @mabels
+/types/ssri/ @huan086
/types/stack-mapper/ @rogierschouten
/types/stack-trace/ @exceptionless
/types/stack-utils/ @BendingBender
@@ -5084,14 +5169,16 @@
/types/storybook__addon-actions/ @joscha @jicjjang
/types/storybook__addon-backgrounds/ @hyunseob @adhrinae
/types/storybook__addon-centered/ @kiyopikko
-/types/storybook__addon-info/ @mkornblum @fyrkant
+/types/storybook__addon-info/ @mkornblum @fyrkant @RunningCoderLee
/types/storybook__addon-jest/ @halfmatthalfcat
-/types/storybook__addon-knobs/ @joscha @martynaskadisa @amacleay @MLoughry
+/types/storybook__addon-knobs/ @joscha @martynaskadisa @amacleay @MLoughry @alanhchoi
/types/storybook__addon-links/ @joscha @jessepinho
/types/storybook__addon-notes/ @joscha @amacleay @MLoughry
/types/storybook__addon-options/ @joscha @simonhn @amacleay @gaetanmaisse @adam187
/types/storybook__addon-storyshots/ @bradleyayers
/types/storybook__addon-viewport/ @Vinnl
+/types/storybook__addons/ @bmatcuk
+/types/storybook__channels/ @bmatcuk
/types/storybook__react/ @joscha @wapgear @dandean
/types/storybook__react-native/ @joscha @wapgear @alechill @iRoachie @ceyhuno
/types/storybook__vue/ @pntgupta
@@ -5133,7 +5220,7 @@
/types/strip-color/ @BendingBender
/types/strip-indent/ @BendingBender
/types/strip-json-comments/ @dmoonfire
-/types/stripe/ @wjohnsto @codeanimal @sampsonjoliver @LinusU @brannon @kkamperschroer @starhoshi @bruun @galtalmor @htunnicliff @squirly @tzarger @ifiokjr @SimonSchick @yultyyev @cpsoinos
+/types/stripe/ @wjohnsto @codeanimal @sampsonjoliver @LinusU @brannon @kkamperschroer @starhoshi @bruun @galtalmor @htunnicliff @squirly @tzarger @ifiokjr @SimonSchick @yultyyev @cpsoinos @saranshkataria @0xJoKe
/types/stripe-checkout/ @cgwrench
/types/stripe-v2/ @ejsmith @amritk @adamcmiel @jleider @galuszkak
/types/stripe-v3/ @ejsmith @amritk @adamcmiel @jleider @galuszkak @slangeder
@@ -5144,11 +5231,11 @@
/types/strophe/ @DavidKDeutsch
/types/strophe.js/ @DavidKDeutsch
/types/structured-source/ @azu
-/types/styled-components/ @Igorbek @Igmat @lavoaster @Jessidhia
+/types/styled-components/ @Igorbek @Igmat @lavoaster @Jessidhia @jkillian @eps1lon @flavordaaave
/types/styled-components/v3/ @Igorbek @Igmat
/types/styled-jsx/ @R1ZZU
/types/styled-react-modal/ @Lavoaster
-/types/styled-system/ @maxdeviant @phobon @zephraph @damassi @alloy @maoueh @lavoaster @jschuler @adam187 @gretzky
+/types/styled-system/ @maxdeviant @phobon @zephraph @damassi @alloy @maoueh @lavoaster @jschuler @adam187 @gretzky @chrislopresto
/types/styled-theming/ @ArjanJ
/types/stylelint/ @alan-agius4 @filipsalpe
/types/stylelint/v7/ @alan-agius4
@@ -5165,12 +5252,13 @@
/types/summernote/ @wstaelens @nusantara-cloud
/types/sumo-logger/ @forabi @clementallen
/types/suncalc/ @horiuchi
-/types/superagent/ @NicoZelaya @mxl @paplorinc @shreyjain1994 @zopf @beeequeue @lukaselmer
+/types/sunrise-sunset-js/ @hmajid2301
+/types/superagent/ @NicoZelaya @mxl @paplorinc @shreyjain1994 @zopf @beeequeue @lukaselmer @theQuazz
/types/superagent/v2/ @varju @NicoZelaya @mxl
/types/superagent-bunyan/ @bricka
/types/superagent-no-cache/ @mxl
/types/superagent-prefix/ @mxl
-/types/supercluster/ @DenisCarriere
+/types/supercluster/ @DenisCarriere @Manc
/types/superstruct/ @edwardsnare
/types/supertest/ @varju @pietu
/types/supertest-as-promised/ @tkrotoff
@@ -5225,16 +5313,18 @@
/types/table/ @evanshortiss @mrmlnc
/types/tableau/ @protip
/types/tableify/ @forivall
-/types/tabris-plugin-firebase/ @eclipsesource
/types/tabtab/ @vojtechhabarta @kamontat
/types/tabulator/ @euginio
+/types/tabulator-tables/ @jojoshua
/types/tail/ @spacejack
/types/tapable/ @e-cloud @johnnyreilly
/types/tapable/v0/ @e-cloud
/types/tape/ @Bartvds @sodatea @DennisSchwartz @mikehenrty @rostrowski
+/types/tape-async/ @ExE-Boss
/types/tar/ @SomaticIT @connor4312
/types/tar-fs/ @Umoxfo
/types/tar-stream/ @glicht
+/types/tarantool-driver/ @zharkov-eu
/types/task-graph-runner/ @mgroenhoff
/types/task-worklet/ @karol-majewski
/types/tcp-ping/ @stegano
@@ -5254,7 +5344,6 @@
/types/terminal-link/ @BendingBender
/types/terminal-menu/ @aravindarun
/types/tern/ @nkappler
-/types/terser/ @JordiAnderl
/types/terser-webpack-plugin/ @Danscho
/types/test-console/ @roberto @guidoux @gbmoretti
/types/test-listen/ @stephenmathieson
@@ -5274,14 +5363,14 @@
/types/texzilla/ @m93a
/types/tgfancy/ @Dabolus
/types/theming/ @eps1lon
-/types/theo/ @petekp
+/types/theo/ @petekp @laitine
/types/thepiratebay/ @jsorrell
-/types/three/ @gyohk @florentpoujol @SereznoKot @omni360 @ivoisbelongtous @piranha771 @qszhusightp @nakakura @s093294 @Pro @efokschaner @PsychoSTS @dhritzkiv @apurvaojas @NotWoods @sethk @elk941 @Methuselah96 @Dukuo @JulianSSS @devilsparta @KonstantinLukaschenko @danyim
+/types/three/ @gyohk @florentpoujol @omni360 @ivoisbelongtous @piranha771 @qszhusightp @nakakura @Pro @efokschaner @PsychoSTS @apurvaojas @NotWoods @Methuselah96 @Dukuo @JulianSSS @devilsparta @KonstantinLukaschenko @danyim @saranshkataria @psuter
/types/three-tds-loader/ @KonstantinLukaschenko @sschoensee
/types/thrift/ @kamek-pf @kevin-greene-ck @jessezhang91
/types/throng/ @cyrilschumacher @tatethurston
/types/throttle/ @BendingBender
-/types/throttle-debounce/ @czbuchi @franklixuefei
+/types/throttle-debounce/ @czbuchi @franklixuefei @oddsund
/types/through/ @AndrewGaspar
/types/through2/ @Bartvds @jedmao @valotas @TeamworkGuy2 @Alorel
/types/through2/v0/ @Bartvds @jedmao
@@ -5305,13 +5394,14 @@
/types/tiny-secp256k1/ @eduhenke
/types/tiny-slider-react/ @screendriver
/types/tinycolor2/ @M-Zuber @geertjansen @nvh @Ailrun
-/types/tinycon/ @dwaxweiler
+/types/tinycon/ @dwaxweiler @jaulz
/types/tinycopy/ @vvatanabe
/types/tinymce/ @martinduparc @ipoul @nicohartto
/types/titanium/ @appcelerator @janvennemann
/types/title/ @fa7ad
/types/tldjs/ @geoffreak
/types/tlds/ @ajshres
+/types/tmi.js/ @wpapsco
/types/tmp/ @optical @Perlmint
/types/to-absolute-glob/ @ajafff
/types/to-camel-case/ @j-f1
@@ -5321,6 +5411,7 @@
/types/to-title-case-gouch/ @stpettersens
/types/toastr/ @borisyankov
/types/tocktimer/ @evanshortiss
+/types/tokenizr/ @aNickzz
/types/tokgen/ @l-jonas
/types/toobusy-js/ @atd-schubert @BendingBender
/types/tooltipster/ @stephenlautier @pjmagee @VorobeY1326 @leonard-thieu @janhi @joeskeen
@@ -5352,6 +5443,7 @@
/types/trianglify/ @unindented
/types/trie-prefix-tree/ @jlismore
/types/trim/ @skysteve
+/types/trim-newlines/ @djcsdy
/types/triple-beam/ @danwbyrne
/types/triplesec/ @threesquared
/types/trunk8/ @niemyjski
@@ -5361,6 +5453,7 @@
/types/tspromise/ @soywiz
/types/ttf2woff2/ @ThomasdenH
/types/tunnel/ @BendingBender
+/types/turndown/ @sergey-zhidkov
/types/tus-js-client/ @kevhiggins @Acconut
/types/tv4/ @Bartvds @psnider
/types/tween.js/ @Amos47 @sunetos @jzarnikov @alexburner
@@ -5370,8 +5463,8 @@
/types/twilio/ @nickiannone @ashleybrener
/types/twilio-common/ @gatimus
/types/twilio-video/ @minddocdev @darioblanco
-/types/twit/ @Volox @sapphiredev @abraham @siwalikm @plhery
-/types/twitch-ext/ @beheh
+/types/twit/ @Volox @sapphiredev @abraham @siwalikm @plhery @justgoscha
+/types/twitch-ext/ @beheh @FedeDR
/types/twitter/ @BendingBender
/types/twitter-for-web/ @chitoku-k
/types/twitter-stream-channels/ @adrianbardan
@@ -5427,6 +5520,7 @@
/types/universal-analytics/ @Bartvds @DarkerTV
/types/universal-cookie/ @tomi
/types/unorm/ @chbrown
+/types/unsplash-js/ @markupcode
/types/untildify/ @BendingBender
/types/unused-filename/ @BendingBender
/types/unzip/ @coding2012
@@ -5458,11 +5552,15 @@
/types/urlsafe-base64/ @tkrotoff
/types/usage/ @pvomhoff
/types/usb/ @underscorebrody @thegecko
+/types/use-persisted-state/ @karol-majewski
+/types/use-set-interval/ @screendriver
+/types/use-set-timeout/ @screendriver
/types/user-event/ @whtsky
/types/user-home/ @mhegazy
/types/useragent/ @geoffreak
/types/username/ @kayahr @krivachy
/types/utf8/ @zelein
+/types/utif/ @smajl @nkprince007 @massic80
/types/util-deprecate/ @BendingBender
/types/util.promisify/ @adamvoss
/types/utils-merge/ @chrootsu
@@ -5496,11 +5594,11 @@
/types/vertx3-eventbus-client/ @oddeirik
/types/vex-js/ @gdcohan
/types/vexdb/ @MayorMonty
-/types/vexflow/ @rquiring @sebastianhaas @bohoffi @sschmidTU
+/types/vexflow/ @rquiring @sebastianhaas @bohoffi @sschmidTU @bneumann
/types/vfile/ @bizen241 @rokt33r
/types/vfile-location/ @ikatyang @rokt33r
/types/vfile-message/ @rokt33r
-/types/victory/ @asvetliakov @snerks @Havret @alredyExist @jlismore
+/types/victory/ @asvetliakov @snerks @Havret @allreadyExisted @jlismore
/types/video.js/ @vbortone @scleriot @SWBennett06 @IgelCampus @giofreitas @gjanblaszczyk @sroucheray @AkxeOne @meikidd
/types/viewability-helper/ @lironzluf
/types/viewerjs/ @lrh3321
@@ -5529,7 +5627,9 @@
/types/voronoi-diagram/ @michaelneu
/types/vorpal/ @danwbyrne
/types/vortex-web-client/ @Pro
+/types/voucher-code-generator/ @JWebCoder
/types/voximplant-websdk/ @aylarov
+/types/vue-chartkick/ @cnsmedia
/types/vue-color/ @me
/types/vue-markdown/ @neodon
/types/vue-resource/ @kaorun343
@@ -5544,8 +5644,8 @@
/types/w3c-image-capture/ @cosium
/types/w3c-permissions/ @jberube
/types/w3c-screen-orientation/ @kenchris
-/types/w3c-web-usb/ @larsgk
-/types/wait-for-localhost/ @BendingBender
+/types/w3c-web-usb/ @larsgk @thegecko
+/types/wait-on/ @ifiokjr
/types/waitme/ @totpero
/types/wake_on_lan/ @SrTobi
/types/walk/ @poppa
@@ -5572,7 +5672,7 @@
/types/web3/ @simon-jentzsch @nitzantomer @zurbo @yxliang01 @phra @naddison36 @icaroharry @linusnorton @jpeletier @anneau @matrushka @andrevmatos @levino @zlumer @archangel-irk @sogasg @donamk @dkent600 @nerddan @alexkvak
/types/web3-eth-abi/ @LogvinovLeon
/types/web3-provider-engine/ @LogvinovLeon
-/types/webappsec-credential-management/ @iainmcgin
+/types/webappsec-credential-management/ @iainmcgin @Hartimer
/types/webassembly-js-api/ @periklis @chicoxyzzy
/types/webassembly-web-api/ @jhenninger
/types/webcl/ @NCARalph
@@ -5593,7 +5693,7 @@
/types/webpack-config-utils/ @hotell
/types/webpack-dev-middleware/ @bumbleblym @reduckted @chrisabrams
/types/webpack-dev-middleware/v1/ @bumbleblym @reduckted
-/types/webpack-dev-server/ @maestroh @daveparslow @ZheyangSong @alan-agius4 @arturovt
+/types/webpack-dev-server/ @maestroh @daveparslow @ZheyangSong @alan-agius4 @arturovt @davecardwell
/types/webpack-dotenv-plugin/ @kryops
/types/webpack-env/ @use-strict @rhonsby
/types/webpack-fail-plugin/ @deevus
@@ -5610,6 +5710,7 @@
/types/webpack-stream/ @iclanton @bumbleblym
/types/webpack-subresource-integrity/ @huan086
/types/webpack-validator/ @deevus
+/types/webpack-watched-glob-entries-plugin/ @ChaosinaCan
/types/webpackbar/ @rynclark
/types/webpagetest/ @ksm2
/types/webprogbase-console-view/ @veetaha
@@ -5660,10 +5761,12 @@
/types/wiring-pi/ @NoHomey
/types/wnumb/ @acoreyj
/types/wonder.js/ @yyc-git
+/types/word-extractor/ @saboya
/types/word-list-json/ @dovidm
/types/word2vector/ @renekeijzer
/types/wordcloud/ @joeskeen
/types/words-to-numbers/ @James-Frowen
+/types/wordwrap/ @ark120202
/types/workbox-sw/ @wessberg
/types/workbox-webpack-plugin/ @kgroat
/types/worker-threads-pool/ @BendingBender
@@ -5724,7 +5827,7 @@
/types/ydn-db/ @yathit @gabrielmaldi
/types/year-days/ @BendingBender
/types/yeoman-assert/ @Toilal
-/types/yeoman-generator/ @armorik83 @janslow @ikatyang @tasadar2
+/types/yeoman-generator/ @armorik83 @janslow @ikatyang @tasadar2 @haggen
/types/yeoman-test/ @ikatyang
/types/yesql/ @Sumolari
/types/yn/ @BendingBender
@@ -5736,6 +5839,7 @@
/types/yosay/ @armorik83
/types/youtube/ @DazWilkin @JoshuaKGoldberg @eliotfallon213 @terrymun @paulhobbel
/types/youtube-dl/ @bsurai @moshfeu
+/types/youtube-player/ @jurca
/types/yui/ @giabao
/types/yup/ @dhardtke @vtserman @MoretonBayRC @sseppola @YashdalfTheGray @vincentjames501 @robertbullen @sat0yu @dancrumb
/types/z-schema/ @pgonzal
diff --git a/.travis.yml b/.travis.yml
index 9bd31bda14..6ea69355da 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,9 @@ language: node_js
node_js:
- 8
-sudo: false
-
notifications:
email: false
+
+script:
+ - npm run test
+ - if [[ $TRAVIS_EVENT_TYPE == "cron" ]]; then npm run update-codeowners || travis_terminate 1; fi
\ No newline at end of file
diff --git a/notNeededPackages.json b/notNeededPackages.json
index 4289393363..24f1f0e0e0 100644
--- a/notNeededPackages.json
+++ b/notNeededPackages.json
@@ -216,6 +216,12 @@
"sourceRepoURL": "https://github.com/blakeembrey/camel-case",
"asOfVersion": "1.2.1"
},
+ {
+ "libraryName": "camelcase",
+ "typingsPackageName": "camelcase",
+ "sourceRepoURL": "https://github.com/sindresorhus/camelcase",
+ "asOfVersion": "5.2.0"
+ },
{
"libraryName": "catalog",
"typingsPackageName": "catalog",
@@ -240,6 +246,12 @@
"sourceRepoURL": "https://github.com/mapbox/cheap-ruler",
"asOfVersion": "2.5.0"
},
+ {
+ "libraryName": "chokidar",
+ "typingsPackageName": "chokidar",
+ "sourceRepoURL": "https://github.com/paulmillr/chokidar",
+ "asOfVersion": "2.1.3"
+ },
{
"libraryName": "chunked-dc",
"typingsPackageName": "chunked-dc",
@@ -258,6 +270,12 @@
"sourceRepoURL": "https://github.com/tj/commander.js",
"asOfVersion": "2.12.2"
},
+ {
+ "libraryName": "conf",
+ "typingsPackageName": "conf",
+ "sourceRepoURL": "https://github.com/sindresorhus/conf",
+ "asOfVersion": "3.0.0"
+ },
{
"libraryName": "confirmdialog",
"typingsPackageName": "confirmdialog",
@@ -414,6 +432,12 @@
"sourceRepoURL": "git@github.com:KyleAMathews/deepmerge.git",
"asOfVersion": "2.2.0"
},
+ {
+ "libraryName": "del",
+ "typingsPackageName": "del",
+ "sourceRepoURL": "https://github.com/sindresorhus/del",
+ "asOfVersion": "4.0.0"
+ },
{
"libraryName": "delay",
"typingsPackageName": "delay",
@@ -510,6 +534,12 @@
"sourceRepoURL": "https://github.com/Sembiance/email-validator",
"asOfVersion": "1.0.6"
},
+ {
+ "libraryName": "env-paths",
+ "typingsPackageName": "env-paths",
+ "sourceRepoURL": "https://github.com/sindresorhus/env-paths",
+ "asOfVersion": "2.1.0"
+ },
{
"libraryName": "error-stack-parser",
"typingsPackageName": "error-stack-parser",
@@ -678,6 +708,12 @@
"sourceRepoURL": "https://github.com/jdalrymple/node-gitlab",
"asOfVersion": "2.0.0"
},
+ {
+ "libraryName": "globby",
+ "typingsPackageName": "globby",
+ "sourceRepoURL": "https://github.com/sindresorhus/globby",
+ "asOfVersion": "9.1.0"
+ },
{
"libraryName": "Google Cloud Storage",
"typingsPackageName": "google-cloud__storage",
@@ -714,6 +750,12 @@
"sourceRepoURL": "https://github.com/ivogabe/gulp-typescript",
"asOfVersion": "2.13.0"
},
+ {
+ "libraryName": "handlebars",
+ "typingsPackageName": "handlebars",
+ "sourceRepoURL": "https://github.com/wycats/handlebars.js",
+ "asOfVersion": "4.1.0"
+ },
{
"libraryName": "handsontable",
"typingsPackageName": "handsontable",
@@ -834,6 +876,12 @@
"sourceRepoURL": "https://github.com/blakeembrey/is-lower-case",
"asOfVersion": "1.1.2"
},
+ {
+ "libraryName": "is-online",
+ "typingsPackageName": "is-online",
+ "sourceRepoURL": "https://github.com/sindresorhus/is-online",
+ "asOfVersion": "8.1.0"
+ },
{
"libraryName": "is-plain-object",
"typingsPackageName": "is-plain-object",
@@ -990,6 +1038,12 @@
"sourceRepoURL": "https://github.com/steelsojka/lodash-decorators",
"asOfVersion": "4.0.0"
},
+ {
+ "libraryName": "log-update",
+ "typingsPackageName": "log-update",
+ "sourceRepoURL": "https://github.com/sindresorhus/log-update",
+ "asOfVersion": "3.1.0"
+ },
{
"libraryName": "log4javascript",
"typingsPackageName": "log4javascript",
@@ -1014,6 +1068,12 @@
"sourceRepoURL": "https://github.com/blakeembrey/lower-case-first",
"asOfVersion": "1.0.1"
},
+ {
+ "libraryName": "make-dir",
+ "typingsPackageName": "make-dir",
+ "sourceRepoURL": "https://github.com/sindresorhus/make-dir",
+ "asOfVersion": "2.1.0"
+ },
{
"libraryName": "mali",
"typingsPackageName": "mali",
@@ -1086,6 +1146,12 @@
"sourceRepoURL": "https://github.com/LearnBoost/monk.git",
"asOfVersion": "6.0.0"
},
+ {
+ "libraryName": "move-file",
+ "typingsPackageName": "move-file",
+ "sourceRepoURL": "https://github.com/sindresorhus/move-file",
+ "asOfVersion": "1.1.0"
+ },
{
"libraryName": "MQTT",
"typingsPackageName": "mqtt",
@@ -1110,6 +1176,12 @@
"sourceRepoURL": "https://github.com/theoephraim/node-pg-migrate#readme",
"asOfVersion": "2.15.0"
},
+ {
+ "libraryName": "png-async",
+ "typingsPackageName": "png-async",
+ "sourceRepoURL": "https://github.com/kanreisa/node-png-async",
+ "asOfVersion": "0.9.4"
+ },
{
"libraryName": "node-waves",
"typingsPackageName": "node-waves",
@@ -1140,12 +1212,36 @@
"sourceRepoURL": "https://github.com/foretagsplatsen/numbro/",
"asOfVersion": "1.9.3"
},
+ {
+ "libraryName": "on-change",
+ "typingsPackageName": "on-change",
+ "sourceRepoURL": "https://github.com/sindresorhus/on-change",
+ "asOfVersion": "1.1.0"
+ },
{
"libraryName": "Onsen UI",
"typingsPackageName": "onsenui",
"sourceRepoURL": "http://onsen.io",
"asOfVersion": "2.0.0"
},
+ {
+ "libraryName": "ora",
+ "typingsPackageName": "ora",
+ "sourceRepoURL": "https://github.com/sindresorhus/ora",
+ "asOfVersion": "3.2.0"
+ },
+ {
+ "libraryName": "p-event",
+ "typingsPackageName": "p-event",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-event",
+ "asOfVersion": "3.0.0"
+ },
+ {
+ "libraryName": "p-limit",
+ "typingsPackageName": "p-limit",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-limit",
+ "asOfVersion": "2.2.0"
+ },
{
"libraryName": "p-map",
"typingsPackageName": "p-map",
@@ -1158,6 +1254,12 @@
"sourceRepoURL": "https://github.com/sindresorhus/p-pipe",
"asOfVersion": "2.0.1"
},
+ {
+ "libraryName": "p-queue",
+ "typingsPackageName": "p-queue",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-queue",
+ "asOfVersion": "3.2.1"
+ },
{
"libraryName": "p-throttle",
"typingsPackageName": "p-throttle",
@@ -1230,6 +1332,12 @@
"sourceRepoURL": "https://github.com/PeculiarVentures/pkcs11js",
"asOfVersion": "1.0.4"
},
+ {
+ "libraryName": "pkg-conf",
+ "typingsPackageName": "pkg-conf",
+ "sourceRepoURL": "https://github.com/sindresorhus/pkg-conf",
+ "asOfVersion": "3.0.0"
+ },
{
"libraryName": "plottable",
"typingsPackageName": "plottable",
@@ -1278,6 +1386,12 @@
"sourceRepoURL": "https://github.com/kazuhikoarase/qrcode-generator",
"asOfVersion": "1.0.6"
},
+ {
+ "libraryName": "query-string",
+ "typingsPackageName": "query-string",
+ "sourceRepoURL": "https://github.com/sindresorhus/query-string",
+ "asOfVersion": "6.3.0"
+ },
{
"libraryName": "Raven JS",
"typingsPackageName": "raven-js",
@@ -1686,6 +1800,12 @@
"sourceRepoURL": "http://tabrisjs.com",
"asOfVersion": "1.8.0"
},
+ {
+ "libraryName": "tabris-plugin-firebase",
+ "typingsPackageName": "tabris-plugin-firebase",
+ "sourceRepoURL": "https://github.com/eclipsesource/tabris-plugin-firebase",
+ "asOfVersion": "2.1.0"
+ },
{
"libraryName": "tcomb",
"typingsPackageName": "tcomb",
diff --git a/package.json b/package.json
index 1a5124c035..f4c48b1b32 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
"scripts": {
"compile-scripts": "tsc -p scripts",
"not-needed": "node scripts/not-needed.js",
+ "update-codeowners": "node scripts/update-codeowners.js",
"test": "node node_modules/types-publisher/bin/tester/test.js --run-from-definitely-typed",
"lint": "dtslint types"
},
diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json
index 899f96af64..6e0fd5a58c 100644
--- a/scripts/tsconfig.json
+++ b/scripts/tsconfig.json
@@ -1,13 +1,10 @@
{
"compilerOptions": {
+ "allowJs": true,
+ "checkJs": true,
"module": "commonjs",
"target": "es6",
- "noImplicitAny": true,
- "strictNullChecks": true,
- "noImplicitReturns": true,
- "noImplicitThis": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
+ "strict": true,
"baseUrl": "../types",
"typeRoots": [
"../types"
@@ -15,4 +12,4 @@
"types": [],
"forceConsistentCasingInFileNames": true
}
-}
\ No newline at end of file
+}
diff --git a/scripts/update-codeowners.js b/scripts/update-codeowners.js
new file mode 100644
index 0000000000..56eda138c6
--- /dev/null
+++ b/scripts/update-codeowners.js
@@ -0,0 +1,126 @@
+///
+// Must reference esnext.asynciterable lib, since octokit uses AsyncIterable internally
+const cp = require("child_process");
+const Octokit = require("@octokit/rest");
+const { AllPackages, getDefinitelyTyped, loggerWithErrors,
+ parseDefinitions, parseNProcesses, clean } = require("types-publisher");
+const { writeFile } = require("fs-extra");
+
+async function main() {
+ const options = { definitelyTypedPath: ".", progress: false, parseInParallel: true };
+ const log = loggerWithErrors()[0];
+
+ clean();
+ const dt = await getDefinitelyTyped(options, log);
+ await parseDefinitions(dt, { nProcesses: parseNProcesses(), definitelyTypedPath: "." }, log);
+ const allPackages = await AllPackages.read(dt);
+ const typings = allPackages.allTypings();
+ const maxPathLen = Math.max(...typings.map(t => t.subDirectoryPath.length));
+ const entries = mapDefined(typings, t => getEntry(t, maxPathLen));
+ await writeFile([options.definitelyTypedPath, ".github", "CODEOWNERS"].join("/"), `${header}\n\n${entries.join("\n")}\n`, { encoding: "utf-8" });
+}
+
+const token = /** @type {string} */(process.env.GH_TOKEN);
+const gh = new Octokit();
+const reviewers = ["weswigham", "sandersn", "RyanCavanaugh"]
+const now = new Date();
+const branchName = `codeowner-update-${now.getFullYear()}${padNum(now.getMonth())}${padNum(now.getDay())}`;
+const remoteUrl = `https://${token}@github.com/DefinitelyTyped/DefinitelyTyped.git`;
+runSequence([
+ ["git", ["checkout", "."]], // reset any changes
+]);
+
+main().then(() => {
+ runSequence([
+ ["git", ["checkout", "-b", branchName]], // create a branch
+ ["git", ["add", ".github/CODEOWNERS"]], // Add CODEOWNERS
+ ["git", ["commit", "-m", `"Update CODEOWNERS"`]], // Commit all changes
+ ["git", ["remote", "add", "fork", remoteUrl]], // Add the remote fork
+ ["git", ["push", "--set-upstream", "fork", branchName, "-f"]] // push the branch
+ ]);
+
+ gh.authenticate({
+ type: "token",
+ token,
+ });
+ return gh.pulls.create({
+ owner: "DefinitelyTyped",
+ repo: "DefinitelyTyped",
+ maintainer_can_modify: true,
+ title: `🤖 CODEOWNERS has changed`,
+ head: `DefinitelyTyped:${branchName}`,
+ base: "master",
+ body:
+ `Please review the diff and merge if no changes are unexpected.
+
+cc ${reviewers.map(r => "@" + r).join(" ")}`,
+ })
+}).then(r => {
+ const num = r.data.number;
+ console.log(`Pull request ${num} created.`);
+ return gh.pulls.createReviewRequest({
+ owner: "DefinitelyTyped",
+ repo: "DefinitelyTyped",
+ number: num,
+ reviewers,
+ });
+}).then(() => {
+ console.log(`Reviewers requested, done.`);
+}).catch(e => {
+ console.error(e);
+ process.exit(1);
+});
+
+/** @param {[string, string[]][]} tasks */
+function runSequence(tasks) {
+ for (const task of tasks) {
+ console.log(`${task[0]} ${task[1].join(" ")}`);
+ const result = cp.spawnSync(task[0], task[1], { timeout: 100000, shell: true, stdio: "inherit" });
+ if (result.status !== 0) throw new Error(`${task[0]} ${task[1].join(" ")} failed: ${result.stderr && result.stderr.toString()}`);
+ }
+}
+
+/** @param {number} number */
+function padNum(number) {
+ const str = "" + number;
+ return str.length >= 2 ? str : "0" + str;
+}
+
+
+const header =
+`# This file is generated.
+# Add yourself to the "Definitions by:" list instead.
+# See https://github.com/DefinitelyTyped/DefinitelyTyped#edit-an-existing-package`;
+
+/**
+ * @param { { contributors: ReadonlyArray<{githubUsername?: string }>, subDirectoryPath: string} } pkg
+ * @param {number} maxPathLen
+ * @return {string | undefined}
+ */
+function getEntry(pkg, maxPathLen) {
+ const users = mapDefined(pkg.contributors, c => c.githubUsername);
+ if (!users.length) {
+ return undefined;
+ }
+
+ const path = `${pkg.subDirectoryPath}/`.padEnd(maxPathLen);
+ return `/types/${path} ${users.map(u => `@${u}`).join(" ")}`;
+}
+
+/**
+ * @template T,U
+ * @param {ReadonlyArray} arr
+ * @param {(t: T) => U | undefined} mapper
+ * @return U[]
+ */
+function mapDefined(arr, mapper) {
+ const out = [];
+ for (const a of arr) {
+ const res = mapper(a);
+ if (res !== undefined) {
+ out.push(res);
+ }
+ }
+ return out;
+}
+
diff --git a/types/adone/index.d.ts b/types/adone/index.d.ts
index 521bdf6e03..f7249c00b4 100644
--- a/types/adone/index.d.ts
+++ b/types/adone/index.d.ts
@@ -2,7 +2,7 @@
// Project: https://github.com/ciferox/adone
// Definitions by: am , Maximus
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-// TypeScript Version: 2.6
+// TypeScript Version: 2.8
///
///
diff --git a/types/adone/tslint.json b/types/adone/tslint.json
index 2a9ae5c804..177bd33372 100644
--- a/types/adone/tslint.json
+++ b/types/adone/tslint.json
@@ -16,4 +16,4 @@
"await-promise": false,
"no-restricted-globals": false
}
-}
\ No newline at end of file
+}
diff --git a/types/algoliasearch/algoliasearch-tests.ts b/types/algoliasearch/algoliasearch-tests.ts
index fdd0f395fe..1d588f2090 100644
--- a/types/algoliasearch/algoliasearch-tests.ts
+++ b/types/algoliasearch/algoliasearch-tests.ts
@@ -98,6 +98,7 @@ let _algoliaIndexSettings: IndexSettings = {
placeholders: { '': [''] },
camelCaseAttributes: [''],
sortFacetValuesBy: 'count',
+ queryLanguages: ['fr', 'es'],
};
let _algoliaQueryParameters: QueryParameters = {
diff --git a/types/algoliasearch/index.d.ts b/types/algoliasearch/index.d.ts
index 8e3ba4c5ab..1dc50603c7 100644
--- a/types/algoliasearch/index.d.ts
+++ b/types/algoliasearch/index.d.ts
@@ -6,6 +6,7 @@
// Samuel Vaillant
// Kai Eichinger
// Nery Ortez
+// Antoine Rousseau
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
@@ -1778,12 +1779,20 @@ declare namespace algoliasearch {
};
/**
* List of attributes on which to do a decomposition of camel case words.
- *
- https://www.algolia.com/doc/api-reference/api-parameters/camelCaseAttributes/
+ * https://www.algolia.com/doc/api-reference/api-parameters/camelCaseAttributes/
*/
camelCaseAttributes?: string[];
-
+ /**
+ * Controls how facet values are sorted.
+ * https://www.algolia.com/doc/api-reference/api-parameters/sortFacetValuesBy/
+ */
sortFacetValuesBy?: 'count' | 'alpha';
+ /**
+ * Sets the languages to be used by language-specific settings and functionalities
+ * such as ignorePlurals, removeStopWords, and CJK word-detection.
+ * https://www.algolia.com/doc/api-reference/api-parameters/queryLanguages/
+ */
+ queryLanguages?: Array<'af' | 'ar' | 'az' | 'bg' | 'bn' | 'ca' | 'cs' | 'cy' | 'da' | 'de' | 'el' | 'en' | 'eo' | 'es' | 'et' | 'eu' | 'fa' | 'fi' | 'fo' | 'fr' | 'ga' | 'gl' | 'he' | 'hi' | 'hu' | 'hy' | 'id' | 'is' | 'it' | 'ja' | 'ka' | 'kk' | 'ko' | 'ku' | 'ky' | 'lt' | 'lv' | 'mi' | 'mn' | 'mr' | 'ms' | 'mt' | 'nb' | 'nl' | 'no' | 'ns' | 'pl' | 'ps' | 'pt' | 'pt-br' | 'qu' | 'ro' | 'ru' | 'sk' | 'sq' | 'sv' | 'sw' | 'ta' | 'te' | 'th' | 'tl' | 'tn' | 'tr' | 'tt' | 'uk' | 'ur' | 'uz' | 'zh'>;
}
interface Response {
diff --git a/types/algoliasearch/lite/index.d.ts b/types/algoliasearch/lite/index.d.ts
index 11e22f5ccf..74c4b1bf15 100644
--- a/types/algoliasearch/lite/index.d.ts
+++ b/types/algoliasearch/lite/index.d.ts
@@ -7,6 +7,7 @@
// Claas Brüggemann
// Kai Eichinger
// Nery Ortez
+// Antoine Rousseau
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
@@ -534,9 +535,16 @@ declare namespace algoliasearch {
userData?: string | object;
/**
+ * Controls how facet values are sorted.
* https://www.algolia.com/doc/api-reference/api-parameters/sortFacetValuesBy/
*/
sortFacetValuesBy?: 'count' | 'alpha';
+ /**
+ * Sets the languages to be used by language-specific settings and functionalities
+ * such as ignorePlurals, removeStopWords, and CJK word-detection.
+ * https://www.algolia.com/doc/api-reference/api-parameters/queryLanguages/
+ */
+ queryLanguages?: Array<'af' | 'ar' | 'az' | 'bg' | 'bn' | 'ca' | 'cs' | 'cy' | 'da' | 'de' | 'el' | 'en' | 'eo' | 'es' | 'et' | 'eu' | 'fa' | 'fi' | 'fo' | 'fr' | 'ga' | 'gl' | 'he' | 'hi' | 'hu' | 'hy' | 'id' | 'is' | 'it' | 'ja' | 'ka' | 'kk' | 'ko' | 'ku' | 'ky' | 'lt' | 'lv' | 'mi' | 'mn' | 'mr' | 'ms' | 'mt' | 'nb' | 'nl' | 'no' | 'ns' | 'pl' | 'ps' | 'pt' | 'pt-br' | 'qu' | 'ro' | 'ru' | 'sk' | 'sq' | 'sv' | 'sw' | 'ta' | 'te' | 'th' | 'tl' | 'tn' | 'tr' | 'tt' | 'uk' | 'ur' | 'uz' | 'zh'>;
}
namespace SearchForFacetValues {
diff --git a/types/amap-js-api/amap-js-api-tests.ts b/types/amap-js-api/amap-js-api-tests.ts
new file mode 100644
index 0000000000..ee7a2ac583
--- /dev/null
+++ b/types/amap-js-api/amap-js-api-tests.ts
@@ -0,0 +1,3376 @@
+/**
+ * preset.ts
+ */
+
+declare const map: AMap.Map;
+declare const lnglat: AMap.LngLat;
+declare const size: AMap.Size;
+declare const lnglatTuple: [number, number];
+declare const pixel: AMap.Pixel;
+declare const markerShape: AMap.MarkerShape;
+declare const icon: AMap.Icon;
+declare const bounds: AMap.Bounds;
+declare const div: HTMLDivElement;
+declare const lang: AMap.Lang;
+declare const domEle: HTMLElement;
+declare const canvasEle: HTMLCanvasElement;
+declare const imgEle: HTMLImageElement;
+
+declare const circle: AMap.Circle;
+declare const marker: AMap.Marker;
+declare const layer: AMap.Layer;
+declare const tileLayer: AMap.TileLayer;
+declare const massMarksLayer: AMap.MassMarks;
+
+// declare const videoLayer: AMap.VideoLayer;
+// declare const buildings: AMap.Buildings;
+// declare const canvasLayer: AMap.CanvasLayer;
+// declare const flexible: AMap.TileLayer.Flexible;
+// declare const imageLayer: AMap.ImageLayer;
+// declare const tileLayerGroup: AMap.LayerGroup;
+// declare const layerGroup: AMap.LayerGroup;
+// declare const trafficLayer: AMap.TileLayer.Traffic;
+// declare const bezierCurve: AMap.BezierCurve;
+// declare const contextMenu: AMap.ContextMenu;
+// declare const polyline: AMap.Polyline;
+// declare const polygon: AMap.Polygon;
+
+/**
+ * arryBounds.ts
+ */
+
+// $ExpectType ArrayBounds
+const testArrayBounds = new AMap.ArrayBounds([lnglat, lnglat, lnglat]);
+
+// $ExpectType LngLat[]
+testArrayBounds.bounds;
+
+// $ExpectType boolean
+testArrayBounds.contains(lnglat);
+
+// $ExpectType Bounds
+testArrayBounds.toBounds();
+
+// $ExpectType LngLat
+testArrayBounds.getCenter();
+
+/**
+ * bounds.ts
+ */
+
+// $ExpectType Bounds
+const testBounds = new AMap.Bounds(lnglat, lnglat);
+
+// $ExpectType boolean
+testBounds.contains(lnglat);
+// $ExpectType boolean
+testBounds.contains(lnglatTuple);
+
+// $ExpectType LngLat
+testBounds.getCenter();
+
+// $ExpectType LngLat
+testBounds.getSouthWest();
+
+// $ExpectType LngLat
+testBounds.getSouthEast();
+
+// $ExpectType LngLat
+testBounds.getNorthEast();
+
+// $ExpectType LngLat
+testBounds.getNorthWest();
+
+// $ExpectType string
+testBounds.toString();
+
+/**
+ * browser.ts
+ */
+
+const brwoser = AMap.Browser;
+
+// $ExpectType string
+brwoser.ua;
+
+// $ExpectType boolean
+brwoser.mobile;
+
+const plat: 'android' | 'ios' | 'windows' | 'mac' | 'other' = brwoser.plat;
+
+// $ExpectType boolean
+brwoser.mac;
+
+// $ExpectType boolean
+brwoser.windows;
+
+// $ExpectType boolean
+brwoser.ios;
+
+// $ExpectType boolean
+brwoser.iPad;
+
+// $ExpectType boolean
+brwoser.iPhone;
+
+// $ExpectType boolean
+brwoser.android;
+
+// $ExpectType boolean
+brwoser.android23;
+
+// $ExpectType boolean
+brwoser.chrome;
+
+// $ExpectType boolean
+brwoser.firefox;
+
+// $ExpectType boolean
+brwoser.safari;
+
+// $ExpectType boolean
+brwoser.wechat;
+
+// $ExpectType boolean
+brwoser.uc;
+
+// $ExpectType boolean
+brwoser.qq;
+
+// $ExpectType boolean
+brwoser.ie;
+
+// $ExpectType boolean
+brwoser.ie6;
+
+// $ExpectType boolean
+brwoser.ie7;
+
+// $ExpectType boolean
+brwoser.ie8;
+
+// $ExpectType boolean
+brwoser.ie9;
+
+// $ExpectType boolean
+brwoser.ie10;
+
+// $ExpectType boolean
+brwoser.ie11;
+
+// $ExpectType boolean
+brwoser.edge;
+
+// $ExpectType boolean
+brwoser.ielt9;
+
+// $ExpectType boolean
+brwoser.baidu;
+
+// $ExpectType boolean
+brwoser.isLocalStorage;
+
+// $ExpectType boolean
+brwoser.isGeolocation;
+
+// $ExpectType boolean
+brwoser.mobileWebkit;
+
+// $ExpectType boolean
+brwoser.mobileWebkit3d;
+
+// $ExpectType boolean
+brwoser.mobileOpera;
+
+// $ExpectType boolean
+brwoser.retina;
+
+// $ExpectType boolean
+brwoser.touch;
+
+// $ExpectType boolean
+brwoser.msPointer;
+
+// $ExpectType boolean
+brwoser.pointer;
+
+// $ExpectType boolean
+brwoser.webkit;
+
+// $ExpectType boolean
+brwoser.ie3d;
+
+// $ExpectType boolean
+brwoser.webkit3d;
+
+// $ExpectType boolean
+brwoser.gecko3d;
+
+// $ExpectType boolean
+brwoser.opera3d;
+
+// $ExpectType boolean
+brwoser.any3d;
+
+// $ExpectType boolean
+brwoser.isCanvas;
+
+// $ExpectType boolean
+brwoser.isSvg;
+
+// $ExpectType boolean
+brwoser.isVML;
+
+// $ExpectType boolean
+brwoser.isWorker;
+
+// $ExpectType boolean
+brwoser.isWebsocket;
+
+// $ExpectType boolean
+brwoser.isWebGL();
+
+/**
+ * convert-from.ts
+ */
+
+declare const convertType: 'baidu' | 'mapbar' | 'gps' | null;
+// $ExpectType void
+AMap.convertFrom(lnglat, convertType, (status, result) => {
+ const temp: 'complete' | 'error' = status;
+ if (typeof result !== 'string') {
+ // $ExpectType string
+ result.info;
+ // $ExpectType LngLat[]
+ result.locations;
+ } else {
+ // $ExpectType string
+ result;
+ }
+});
+// $ExpectType void
+AMap.convertFrom([lnglat], null, () => { });
+// $ExpectType void
+AMap.convertFrom(lnglatTuple, null, () => { });
+// $ExpectType void
+AMap.convertFrom([lnglatTuple], null, () => { });
+
+/**
+ * dom-util.ts
+ */
+
+const domUtil = AMap.DomUtil;
+
+// $ExpectType Size
+domUtil.getViewport(div);
+
+// $ExpectType Pixel
+domUtil.getViewportOffset(div);
+
+// $ExpectType HTMLDivElement
+domUtil.create('div');
+// $ExpectType HTMLAnchorElement
+domUtil.create('a');
+// $ExpectType HTMLDivElement
+domUtil.create('div', div);
+// $ExpectType HTMLDivElement
+domUtil.create('div', div, 'className');
+
+// $ExpectType void
+domUtil.setClass(div);
+// $ExpectType void
+domUtil.setClass(div, 'className');
+
+// $ExpectType boolean
+domUtil.hasClass(div, 'className');
+
+// $ExpectType void
+domUtil.removeClass(div, 'className');
+
+// $ExpectType void
+domUtil.setOpacity(div, 1);
+
+// $ExpectType void
+domUtil.rotate(div, 10);
+// $ExpectType void
+domUtil.rotate(div, 10, { x: 10, y: 10 });
+
+const util2: typeof AMap.DomUtil = domUtil.setCss(div, { textAlign: 'left' });
+// $ExpectError
+domUtil.setCss(div, { textAlign: 10 });
+
+// $ExpectType void
+domUtil.empty(div);
+
+// $ExpectType void
+domUtil.remove(div);
+
+/**
+ * event.ts
+ */
+
+// $ExpectType Map
+map.on('hotspotclick', (event: AMap.Map.EventMap['hotspotclick']) => {
+ // $ExpectType "hotspotclick"
+ event.type;
+ // $ExpectType string
+ event.id;
+ // $ExpectType LngLat
+ event.lnglat;
+});
+
+// $ExpectType EventListener<0>
+AMap.event.addDomListener(div, 'click', event => {
+ // $ExpectType number
+ event.clientX;
+});
+
+// $ExpectType EventListener<1>
+AMap.event.addListener(map, 'hotspotclick', function(event: AMap.Map.EventMap['hotspotclick']) {
+ // $ExpectType "hotspotclick"
+ event.type;
+ // $ExpectType string
+ event.id;
+ // $ExpectType LngLat
+ event.lnglat;
+ // $ExpectType number
+ this.test;
+}, { test: 1 });
+AMap.event.addListener(map, 'click', (event: AMap.Map.EventMap['click']) => {
+ // $ExpectType "click"
+ event.type;
+ // $ExpectType LngLat
+ event.lnglat;
+ // $ExpectType Map
+ event.target;
+});
+
+// $ExpectType EventListener<1>
+const eventListener = AMap.event.addListenerOnce(map, 'hotspotclick', function(event: AMap.Map.EventMap['hotspotclick']) {
+ // $ExpectType "hotspotclick"
+ event.type;
+ // $ExpectType string
+ event.id;
+ // $ExpectType LngLat
+ event.lnglat;
+ // $ExpectType number
+ this.test;
+}, { test: 1 });
+
+// $ExpectType void
+AMap.event.removeListener(eventListener);
+
+// $ExpectType void
+AMap.event.trigger(map, 'click', {
+ lnglat,
+ pixel,
+ target: map
+});
+// $ExpectType void
+AMap.event.trigger(map, 'hotspotclick', {
+ lnglat,
+ name: 'name',
+ id: 'id',
+ isIndoorPOI: true
+});
+// $ExpectType void
+AMap.event.trigger(map, 'complete');
+
+/**
+ * geometry-util.ts
+ */
+
+{
+ const point = lnglat;
+ const pointTuple = lnglatTuple;
+ const line = [point];
+ const lineTuple = [pointTuple];
+ const ring = [point];
+ const ringTuple = [pointTuple];
+ const polygon = [ring];
+ const polygonTuple = [ringTuple];
+ const geometryUtil = AMap.GeometryUtil;
+
+ // $ExpectType number
+ geometryUtil.distance(point, point);
+ // $ExpectType number
+ geometryUtil.distance(pointTuple, pointTuple);
+ // $ExpectType number
+ geometryUtil.distance(point, line);
+ // $ExpectType number
+ geometryUtil.distance(pointTuple, lineTuple);
+
+ // $ExpectType number
+ geometryUtil.ringArea(ring);
+ // $ExpectType number
+ geometryUtil.ringArea(ringTuple);
+
+ // $ExpectType boolean
+ geometryUtil.isClockwise(ring);
+ // $ExpectType boolean
+ geometryUtil.isClockwise(ringTuple);
+
+ // $ExpectType number
+ geometryUtil.distanceOfLine(line);
+ // $ExpectType number
+ geometryUtil.distanceOfLine(lineTuple);
+
+ // $ExpectType [number, number][]
+ geometryUtil.ringRingClip(ring, ring);
+ // $ExpectType [number, number][]
+ geometryUtil.ringRingClip(ringTuple, ringTuple);
+
+ // $ExpectType boolean
+ geometryUtil.doesRingRingIntersect(ring, ring);
+ // $ExpectType boolean
+ geometryUtil.doesRingRingIntersect(ringTuple, ringTuple);
+
+ // $ExpectType boolean
+ geometryUtil.doesLineRingIntersect(line, ring);
+ // $ExpectType boolean
+ geometryUtil.doesLineRingIntersect(lineTuple, ringTuple);
+
+ // $ExpectType boolean
+ geometryUtil.doesLineLineIntersect(line, line);
+ // $ExpectType boolean
+ geometryUtil.doesLineLineIntersect(lineTuple, lineTuple);
+
+ // $ExpectType boolean
+ geometryUtil.doesSegmentPolygonIntersect(point, point, polygon);
+ // $ExpectType boolean
+ geometryUtil.doesSegmentPolygonIntersect(pointTuple, pointTuple, polygonTuple);
+
+ // $ExpectType boolean
+ geometryUtil.doesSegmentRingIntersect(point, point, ring);
+ // $ExpectType boolean
+ geometryUtil.doesSegmentRingIntersect(pointTuple, pointTuple, ringTuple);
+
+ // $ExpectType boolean
+ geometryUtil.doesSegmentLineIntersect(point, point, line);
+ // $ExpectType boolean
+ geometryUtil.doesSegmentLineIntersect(pointTuple, pointTuple, lineTuple);
+
+ // $ExpectType boolean
+ geometryUtil.doesSegmentsIntersect(point, point, point, point);
+ // $ExpectType boolean
+ geometryUtil.doesSegmentsIntersect(pointTuple, pointTuple, pointTuple, pointTuple);
+
+ // $ExpectType boolean
+ geometryUtil.isPointInRing(point, ring);
+ // $ExpectType boolean
+ geometryUtil.isPointInRing(pointTuple, ringTuple);
+
+ // $ExpectType boolean
+ geometryUtil.isRingInRing(ring, ring);
+ // $ExpectType boolean
+ geometryUtil.isRingInRing(ringTuple, ringTuple);
+
+ // $ExpectType boolean
+ geometryUtil.isPointInPolygon(point, polygon);
+ // $ExpectType boolean
+ geometryUtil.isPointInPolygon(pointTuple, polygonTuple);
+
+ // $ExpectType [number, number][]
+ geometryUtil.makesureClockwise(lineTuple);
+
+ // $ExpectType [number, number][]
+ geometryUtil.makesureAntiClockwise(lineTuple);
+
+ // $ExpectType [number, number]
+ geometryUtil.closestOnSegment(point, point, point);
+ // $ExpectType [number, number]
+ geometryUtil.closestOnSegment(pointTuple, pointTuple, pointTuple);
+
+ // $ExpectType [number, number]
+ geometryUtil.closestOnSegment(point, point, point);
+ // $ExpectType [number, number]
+ geometryUtil.closestOnSegment(pointTuple, pointTuple, pointTuple);
+
+ // $ExpectType [number, number]
+ geometryUtil.closestOnLine(point, line);
+ // $ExpectType [number, number]
+ geometryUtil.closestOnLine(pointTuple, lineTuple);
+
+ // $ExpectType number
+ geometryUtil.distanceToSegment(point, point, point);
+ // $ExpectType number
+ geometryUtil.distanceToSegment(pointTuple, pointTuple, pointTuple);
+
+ // $ExpectType number
+ geometryUtil.distanceToLine(point, line);
+ // $ExpectType number
+ geometryUtil.distanceToLine(pointTuple, lineTuple);
+
+ // $ExpectType boolean
+ geometryUtil.isPointOnSegment(point, point, point);
+ // $ExpectType boolean
+ geometryUtil.isPointOnSegment(point, point, point, 1);
+ // $ExpectType boolean
+ geometryUtil.isPointOnSegment(pointTuple, pointTuple, pointTuple);
+ // $ExpectType boolean
+ geometryUtil.isPointOnSegment(pointTuple, pointTuple, pointTuple, 1);
+
+ // $ExpectType boolean
+ geometryUtil.isPointOnLine(point, line);
+ // $ExpectType boolean
+ geometryUtil.isPointOnLine(point, line, 1);
+ // $ExpectType boolean
+ geometryUtil.isPointOnLine(pointTuple, lineTuple);
+ // $ExpectType boolean
+ geometryUtil.isPointOnLine(pointTuple, lineTuple, 1);
+
+ // $ExpectType boolean
+ geometryUtil.isPointOnRing(point, ring);
+ // $ExpectType boolean
+ geometryUtil.isPointOnRing(point, ring, 1);
+ // $ExpectType boolean
+ geometryUtil.isPointOnRing(pointTuple, ringTuple);
+ // $ExpectType boolean
+ geometryUtil.isPointOnRing(pointTuple, ringTuple, 1);
+
+ // $ExpectType boolean
+ geometryUtil.isPointOnPolygon(point, polygon);
+ // $ExpectType boolean
+ geometryUtil.isPointOnPolygon(point, polygon, 1);
+ // $ExpectType boolean
+ geometryUtil.isPointOnPolygon(pointTuple, polygonTuple);
+ // $ExpectType boolean
+ geometryUtil.isPointOnPolygon(pointTuple, polygonTuple, 1);
+}
+
+/**
+ * lnglat.ts
+ */
+
+// $ExpectType LngLat
+new AMap.LngLat(114, 22);
+// $ExpectType LngLat
+const testLnglat = new AMap.LngLat(113, 21);
+
+// $ExpectType LngLat
+testLnglat.offset(1, 2);
+
+// $ExpectType number
+testLnglat.distance(testLnglat);
+// $ExpectType number
+testLnglat.distance([testLnglat]);
+
+// $ExpectType number
+testLnglat.getLng();
+
+// $ExpectType number
+testLnglat.getLat();
+
+// $ExpectType boolean
+testLnglat.equals(testLnglat);
+
+// $ExpectType string
+testLnglat.toString();
+
+// $ExpectType LngLat
+testLnglat.add(testLnglat);
+// $ExpectType LngLat
+testLnglat.add(testLnglat, true);
+
+// $ExpectType LngLat
+testLnglat.subtract(testLnglat);
+// $ExpectType LngLat
+testLnglat.subtract(testLnglat, true);
+
+// $ExpectType LngLat
+testLnglat.divideBy(1);
+// $ExpectType LngLat
+testLnglat.divideBy(1, true);
+
+// $ExpectType LngLat
+testLnglat.multiplyBy(1);
+// $ExpectType LngLat
+testLnglat.multiplyBy(1, true);
+
+/**
+ * map.ts
+ */
+
+// $ExpectType Map
+new AMap.Map('map');
+// $ExpectType Map
+new AMap.Map(div);
+
+// $ExpectType Map
+new AMap.Map(div, {});
+
+// $ExpectType Map
+const testMap = new AMap.Map(div, {
+ layers: [tileLayer],
+ zoom: 15,
+ center: [1, 2],
+ labelzIndex: 110,
+ zooms: [5, 15],
+ lang: 'zh_cn',
+ defaultCursor: 'default',
+ crs: 'EPSG4326',
+ animateEnable: true,
+ isHotspot: false,
+ defaultLayer: tileLayer,
+ rotateEnable: true,
+ resizeEnable: true,
+ showIndoorMap: true,
+ // indoorMap, // TODO
+ expandZoomRange: true,
+ dragEnable: true,
+ zoomEnable: true,
+ doubleClickZoom: true,
+ keyboardEnable: true,
+ jogEnable: true,
+ scrollWheel: true,
+ touchZoom: true,
+ mapStyle: '',
+ features: ['road'],
+ showBuildingBlock: true,
+ skyColor: '#fff',
+ preloadMode: true,
+ mask: [[1, 2], [2, 3], [3, 4]]
+});
+
+// $ExpectType number
+testMap.getZoom();
+
+// $ExpectType Layer[]
+testMap.getLayers();
+
+// $ExpectType LngLat
+testMap.getCenter();
+
+// $ExpectType HTMLElement | null
+testMap.getContainer();
+
+testMap.getCity(city => {
+ // $ExpectType string
+ city.city;
+ // $ExpectType string
+ city.citycode;
+ // $ExpectType string
+ city.district;
+ // $ExpectType string | never[]
+ city.province;
+});
+
+// $ExpectType Bounds
+testMap.getBounds();
+
+// $ExpectType number
+testMap.getLabelzIndex();
+
+// $ExpectType Lang
+testMap.getLang();
+
+// $ExpectType Size
+testMap.getSize();
+
+// $ExpectType number
+testMap.getRotation();
+
+// $ExpectType Status
+const mapStatus = testMap.getStatus();
+// $ExpectType boolean
+mapStatus.animateEnable;
+// $ExpectType boolean
+mapStatus.doubleClickZoom;
+// $ExpectType boolean
+mapStatus.dragEnable;
+// $ExpectType boolean
+mapStatus.isHotspot;
+// $ExpectType boolean
+mapStatus.jogEnable;
+// $ExpectType boolean
+mapStatus.keyboardEnable;
+// $ExpectType boolean
+mapStatus.pitchEnable;
+// $ExpectType boolean
+mapStatus.resizeEnable;
+// $ExpectType boolean
+mapStatus.rotateEnable;
+// $ExpectType boolean
+mapStatus.scrollWheel;
+// $ExpectType boolean
+mapStatus.touchZoom;
+// $ExpectType boolean
+mapStatus.zoomEnable;
+
+// $ExpectType string
+testMap.getDefaultCursor();
+
+// $ExpectType number
+testMap.getResolution();
+
+// $ExpectType number
+testMap.getScale();
+// $ExpectType number
+testMap.getScale(1);
+
+// $ExpectType void
+testMap.setZoom(1);
+
+// $ExpectType void
+testMap.setLabelzIndex(1);
+
+// $ExpectType void
+testMap.setLayers([tileLayer]);
+
+// $ExpectType void
+testMap.setCenter(lnglat);
+// $ExpectType void
+testMap.setCenter([1, 2]);
+
+// $ExpectType void
+testMap.setZoomAndCenter(13, lnglat);
+// $ExpectType void
+testMap.setZoomAndCenter(13, [1, 2]);
+
+// $ExpectType void
+testMap.setCity('city', (coord, zoom) => {
+ // $ExpectType string
+ coord[0];
+ // $ExpectType string
+ coord[1];
+ // $ExpectType number
+ zoom;
+});
+
+// $ExpectType Bounds
+testMap.setBounds(bounds);
+
+// $ExpectType void
+testMap.setLimitBounds(bounds);
+
+// $ExpectType void
+testMap.clearLimitBounds();
+
+// $ExpectType void
+testMap.setLang('zh_cn');
+
+// $ExpectType void
+testMap.setRotation(1);
+
+// $ExpectType void
+testMap.setStatus({});
+// $ExpectType void
+testMap.setStatus({
+ animateEnable: true,
+ doubleClickZoom: true,
+ dragEnable: true,
+ isHotspot: true,
+ jogEnable: true,
+ keyboardEnable: true,
+ pitchEnable: false,
+ resizeEnable: false,
+ rotateEnable: false,
+ scrollWheel: true,
+ touchZoom: true,
+ zoomEnable: true
+});
+
+// $ExpectType void
+testMap.setDefaultCursor('default');
+
+// $ExpectType void
+testMap.zoomIn();
+
+// $ExpectType void
+testMap.zoomOut();
+
+// $ExpectType void
+testMap.panTo([1, 2]);
+// $ExpectType void
+testMap.panTo(lnglat);
+
+// $ExpectType void
+testMap.panBy(1, 2);
+
+// $ExpectType void
+testMap.clearMap();
+
+// $ExpectType Map
+testMap.plugin('plugin name', () => { });
+// $ExpectType Map
+testMap.plugin(['plugin name'], () => { });
+
+// $ExpectType void
+testMap.clearInfoWindow();
+
+// $ExpectType LngLat
+testMap.pixelToLngLat(pixel);
+// $ExpectType LngLat
+testMap.pixelToLngLat(pixel, 1);
+
+// $ExpectType Pixel
+testMap.lnglatToPixel(lnglat);
+// $ExpectType Pixel
+testMap.lnglatToPixel(lnglat, 1);
+
+// $ExpectType LngLat
+testMap.containerToLngLat(pixel);
+
+// $ExpectType Pixel
+testMap.lngLatToContainer(lnglat);
+// $ExpectType Pixel
+testMap.lnglatTocontainer(lnglat);
+
+// $ExpectType void
+testMap.setMapStyle('');
+// $ExpectType string
+testMap.getMapStyle();
+
+// $ExpectType void
+testMap.setFeatures('all');
+// $ExpectType void
+testMap.setFeatures(['bg']);
+
+const feature: 'all' | 'bg' | 'point' | 'road' | 'building' | AMap.Map.Feature[] = testMap.getFeatures();
+
+// $ExpectType void
+testMap.setDefaultLayer(tileLayer);
+
+// $ExpectType void
+testMap.setPitch(1);
+// $ExpectType number
+testMap.getPitch();
+
+// $ExpectType ViewMode
+testMap.getViewMode_();
+
+// $ExpectType Pixel
+testMap.lngLatToGeodeticCoord(lnglat);
+// $ExpectType Pixel
+testMap.lngLatToGeodeticCoord(lnglatTuple);
+
+// $ExpectType LngLat
+testMap.geodeticCoordToLngLat(pixel);
+
+// $ExpectType void
+testMap.destroy();
+
+declare function dblClickHandler(this: AMap.Map, event: AMap.Map.EventMap['dblclick']): void;
+
+// $ExpectType Map
+testMap.on('click', (event: AMap.Map.EventMap['click']) => {
+ // $ExpectType "click"
+ event.type;
+ // $ExpectType Pixel
+ event.pixel;
+ // $ExpectType LngLat
+ event.lnglat;
+ // $ExpectType Map
+ event.target;
+});
+// $ExpectType Map
+testMap.on('dblclick', dblClickHandler);
+// $ExpectType Map
+testMap.on('complete', (event: AMap.Map.EventMap['complete']) => {
+ // $ExpectType "complete"
+ event.type;
+ // $ExpectError
+ event.value;
+});
+// $ExpectType Map
+testMap.on('hotspotclick', (event: AMap.Map.EventMap['hotspotclick']) => {
+ // $ExpectType string
+ event.id;
+ // $ExpectType LngLat
+ event.lnglat;
+ // $ExpectType string
+ event.name;
+ // $ExpectType "hotspotclick"
+ event.type;
+});
+// $ExpectType Map
+testMap.on('custom', (event: AMap.Event<'custom', { test: string }>) => {
+ // $ExpectType "custom"
+ event.type;
+ // $ExpectType string
+ event.test;
+});
+
+// $ExpectType Map
+testMap.off('dblclick', dblClickHandler);
+// $ExpectType Map
+testMap.off('click', 'mv');
+
+// $ExpectType Map
+testMap.emit('click', {
+ target: testMap,
+ lnglat,
+ pixel
+});
+
+testMap.emit('complete');
+// $ExpectType Map
+testMap.emit('hotspotclick', {
+ lnglat,
+ name: '123',
+ id: '123',
+ isIndoorPOI: true
+});
+// $ExpectType Map
+testMap.emit('custom', {
+ test: 1
+});
+// $ExpectType Map
+testMap.emit('custom', undefined);
+
+/**
+ * pixel.ts
+ */
+
+// $ExpectType Pixel
+new AMap.Pixel(10, 20);
+// $ExpectType Pixel
+const testPixel = new AMap.Pixel(10, 20);
+
+// $ExpectType number
+testPixel.getX();
+
+// $ExpectType number
+testPixel.getY();
+
+// $ExpectType boolean
+testPixel.equals(testPixel);
+
+// $ExpectType string
+testPixel.toString();
+
+// $ExpectType Pixel
+testPixel.add({ x: 1, y: 2 });
+// $ExpectType Pixel
+testPixel.add({ x: 1, y: 2 }, false);
+
+// $ExpectType Pixel
+testPixel.round();
+
+// $ExpectType Pixel
+testPixel.floor();
+
+// $ExpectType number
+testPixel.length();
+
+// $ExpectType number | null
+testPixel.direction();
+
+// $ExpectType Pixel
+testPixel.toFixed();
+// $ExpectType Pixel
+testPixel.toFixed(2);
+
+/**
+ * size.ts
+ */
+
+// $ExpectType Size
+const testSize = new AMap.Size(10, 20);
+
+// $ExpectType number
+testSize.getHeight();
+
+// $ExpectType number
+testSize.getWidth();
+
+// $ExpectType string
+testSize.toString();
+
+// $ExpectType boolean
+testSize.contains({ x: 10, y: 10 });
+
+/**
+ * util.ts
+ */
+
+const util = AMap.Util;
+
+// $ExpectType string
+util.colorNameToHex('colorName');
+
+// $ExpectType string
+util.rgbHex2Rgba('rgbHex');
+
+// $ExpectType string
+util.argbHex2Rgba('argbHex');
+
+// $ExpectType boolean
+util.isEmpty({});
+// $ExpectError
+util.isEmpty(1);
+
+// $ExpectType number[]
+util.deleteItemFromArray([1], 1);
+
+// $ExpectType number[]
+util.deleteItemFromArrayByIndex([1], 1);
+
+// $ExpectType number
+util.indexOf([1], 1);
+// $ExpectError
+util.indexOf([1], '1');
+
+// $ExpectType number
+util.format(1);
+// $ExpectType number
+util.format(1, 1);
+
+declare const value1: number | number[];
+// $ExpectType boolean
+util.isArray(value1);
+if (util.isArray(value1)) {
+ // $ExpectType number[]
+ value1;
+} else {
+ // $ExpectType number
+ value1;
+}
+
+declare const value2: number | HTMLElement;
+// $ExpectType boolean
+util.isDOM(value2);
+if (util.isDOM(value2)) {
+ // $ExpectType HTMLElement
+ value2;
+} else {
+ // $ExpectType number
+ value2;
+}
+
+// $ExpectType boolean
+util.includes([1], 1);
+// $ExpectError
+util.includes([1], '1');
+
+// $ExpectType number
+util.requestIdleCallback(() => { });
+// $ExpectType number
+const idleCallbackHandle = util.requestIdleCallback(() => { }, { timeout: 1 });
+
+// $ExpectType void
+util.cancelIdleCallback(idleCallbackHandle);
+
+// $ExpectType number
+util.requestAnimFrame(() => { });
+// $ExpectType number
+const animFrameHandle = util.requestAnimFrame(function() {
+ // $ExpectType number
+ this.test;
+}, { test: 1 });
+
+// $ExpectType void
+util.cancelAnimFrame(animFrameHandle);
+
+/**
+ * view2d.ts
+ */
+
+// $ExpectType View2D
+new AMap.View2D();
+// $ExpectType View2D
+new AMap.View2D({});
+
+// $ExpectType View2D
+new AMap.View2D({
+ center: [1, 2],
+ rotation: 1,
+ zoom: 10,
+ crs: 'EPGS3395'
+});
+
+// $ExpectType View2D
+const testView2d = new AMap.View2D({
+ center: lnglat
+});
+
+// $ExpectType View2D
+testView2d.on('complete', () => { });
+
+/**
+ * layer/buildings.ts
+ */
+
+// $ExpectType Buildings
+new AMap.Buildings();
+// $ExpectType Buildings
+new AMap.Buildings();
+// $ExpectType Buildings
+const testBuildings = new AMap.Buildings({
+ zooms: [1, 18],
+ opacity: 0.8,
+ heightFactor: 1,
+ visible: true,
+ zIndex: 10,
+ map
+});
+
+testBuildings.setStyle({
+ hideWithoutStyle: false,
+ areas: [
+ {
+ visible: true,
+ rejectTexture: true,
+ color1: 'ffffff00',
+ color2: 'ffffcc00',
+ path: [[1, 2]]
+ },
+ {
+ visible: true,
+ rejectTexture: true,
+ color1: 'ffffff00',
+ color2: 'ffffcc00',
+ path: [lnglat]
+ },
+ {
+ color1: 'ff99ff00',
+ path: [lnglat]
+ },
+ ]
+});
+
+/**
+ * layer/canvasLayer.ts
+ */
+
+// $ExpectType CanvasLayer
+new AMap.CanvasLayer({
+ map,
+ bounds,
+ visible: true,
+ zooms: [1, 2],
+ opacity: 1
+});
+
+// $ExpectType CanvasLayer
+new AMap.CanvasLayer();
+// $ExpectType CanvasLayer
+new AMap.CanvasLayer({});
+// $ExpectType CanvasLayer
+const testCanvasLayer = new AMap.CanvasLayer({
+ bounds
+});
+
+// $ExpectType void
+testCanvasLayer.setMap(null);
+// $ExpectType void
+testCanvasLayer.setMap(map);
+
+// $ExpectType Map | null | undefined
+testCanvasLayer.getMap();
+
+// $ExpectType void
+testCanvasLayer.show();
+
+// $ExpectType void
+testCanvasLayer.hide();
+
+// $ExpectType number
+testCanvasLayer.getzIndex();
+
+// $ExpectType void
+testCanvasLayer.setzIndex(10);
+
+// $ExpectType HTMLCanvasElement | null
+testCanvasLayer.getElement();
+
+// $ExpectType void
+testCanvasLayer.setCanvas(canvasEle);
+
+// $ExpectType HTMLCanvasElement | undefined
+testCanvasLayer.getCanvas();
+
+/**
+ * layer/flexible.ts
+ */
+
+// $ExpectType Flexible
+new AMap.TileLayer.Flexible();
+// $ExpectType Flexible
+new AMap.TileLayer.Flexible({});
+// $ExpectType Flexible
+const testFlexible = new AMap.TileLayer.Flexible({
+ createTile(x, y, z, success, fail) {
+ // $ExpectType number
+ x;
+ // $ExpectType number
+ y;
+ // $ExpectType number
+ z;
+ // $ExpectType void
+ success(imgEle);
+ // $ExpectType void
+ success(canvasEle);
+ // $ExpectType void
+ fail();
+ },
+ cacheSize: 10,
+ opacity: 1,
+ visible: true,
+ map,
+ zIndex: 1,
+ zooms: [1, 2]
+});
+
+// $ExpectType void
+testFlexible.setMap(null);
+// $ExpectType void
+testFlexible.setMap(map);
+
+// $ExpectType Map | null | undefined
+testFlexible.getMap();
+
+// $ExpectType void
+testFlexible.show();
+
+// $ExpectType void
+testFlexible.hide();
+
+// $ExpectType void
+testFlexible.setzIndex(10);
+
+// $ExpectType number
+testFlexible.getzIndex();
+
+/**
+ * layer/imageLayer.ts
+ */
+
+// $ExpectType ImageLayer
+new AMap.ImageLayer({
+ map,
+ bounds,
+ visible: true,
+ zooms: [1, 2],
+ opacity: 1
+});
+
+// $ExpectType ImageLayer
+new AMap.ImageLayer();
+// $ExpectType ImageLayer
+new AMap.ImageLayer({});
+// $ExpectType ImageLayer
+const testImageLayer = new AMap.ImageLayer({
+ bounds
+});
+
+// $ExpectType void
+testImageLayer.setMap(null);
+// $ExpectType void
+testImageLayer.setMap(map);
+
+// $ExpectType Map | null | undefined
+testImageLayer.getMap();
+
+// $ExpectType void
+testImageLayer.show();
+
+// $ExpectType void
+testImageLayer.hide();
+
+// $ExpectType number
+testImageLayer.getzIndex();
+
+// $ExpectType void
+testImageLayer.setzIndex(10);
+
+// $ExpectType HTMLImageElement | null
+testImageLayer.getElement();
+
+// $ExpectType void
+testImageLayer.setImageUrl('url');
+
+// $ExpectType string | undefined
+testImageLayer.getImageUrl();
+
+/**
+ * layer/layer.ts
+ */
+
+// $ExpectError
+new AMap.Layer();
+
+// $ExpectType HTMLDivElement | undefined
+layer.getContainer();
+
+// $ExpectType [number, number]
+layer.getZooms();
+
+// $ExpectType void
+layer.setOpacity(1);
+
+// $ExpectType number
+layer.getOpacity();
+
+// $ExpectType void
+layer.show();
+
+// $ExpectType void
+layer.hide();
+
+// $ExpectType void
+layer.setMap();
+// $ExpectType void
+layer.setMap(map);
+
+// $ExpectType void
+layer.setzIndex(1);
+
+// $ExpectType number
+layer.getzIndex();
+
+/**
+ * layer/layerGroup.ts
+ */
+
+// $ExpectError
+new AMap.LayerGroup();
+
+// $ExpectType LayerGroup
+new AMap.LayerGroup(tileLayer);
+// $ExpectType LayerGroup
+const testTileLayerGroup = new AMap.LayerGroup([tileLayer]);
+// $ExpectType LayerGroup
+const testAnyLauerGroup = new AMap.LayerGroup([]);
+
+// $ExpectType LayerGroup
+testTileLayerGroup.addLayer(tileLayer);
+// $ExpectType LayerGroup
+testTileLayerGroup.addLayer([tileLayer]);
+// $ExpectError
+testTileLayerGroup.addLayer(massMarksLayer);
+
+// $ExpectType TileLayer[]
+testTileLayerGroup.getLayers();
+
+// $ExpectType TileLayer | null
+testTileLayerGroup.getLayer(function(item, index, list) {
+ // $ExpectType TileLayer
+ item;
+ // $ExpectType number
+ index;
+ // $ExpectType TileLayer[]
+ list;
+ // $ExpectType null
+ this;
+
+ return true;
+});
+
+testTileLayerGroup.hasLayer(function(item, index, list) {
+ // $ExpectType TileLayer
+ item;
+ // $ExpectType number
+ index;
+ // $ExpectType TileLayer[]
+ list;
+ // $ExpectType null
+ this;
+
+ return true;
+});
+testTileLayerGroup.hasLayer(tileLayer);
+
+// $ExpectType LayerGroup
+testTileLayerGroup.removeLayer(tileLayer);
+// $ExpectType LayerGroup
+testTileLayerGroup.removeLayer([tileLayer]);
+
+// $ExpectType LayerGroup
+testTileLayerGroup.clearLayers();
+
+testTileLayerGroup.eachLayer(function(item, index, list) {
+ // $ExpectType TileLayer
+ item;
+ // $ExpectType number
+ index;
+ // $ExpectType TileLayer[]
+ list;
+ // $ExpectType TileLayer
+ this;
+});
+testTileLayerGroup.eachLayer(function(item, index, list) {
+ // $ExpectType TileLayer
+ item;
+ // $ExpectType number
+ index;
+ // $ExpectType TileLayer[]
+ list;
+ // $ExpectType number
+ this.test;
+}, { test: 1 });
+
+// $ExpectType LayerGroup
+testTileLayerGroup.setMap(map);
+
+// $ExpectType LayerGroup
+testTileLayerGroup.hide();
+
+// $ExpectType LayerGroup
+testTileLayerGroup.show();
+
+// $ExpectType LayerGroup
+testTileLayerGroup.reload();
+
+// $ExpectType LayerGroup
+testTileLayerGroup.setOptions({});
+
+// $ExpectType LayerGroup
+testTileLayerGroup.setOptions({
+ tileSize: 256
+});
+// layerGruop.setOptions({
+// // $ExpectError
+// interval: 1
+// });
+
+testAnyLauerGroup.addLayer(tileLayer);
+
+testAnyLauerGroup.addLayer(massMarksLayer);
+
+testAnyLauerGroup.setOptions({
+ test: 1
+});
+
+/**
+ * layer/massMarks.ts
+ */
+
+const massMarksStyle1 = {
+ anchor: pixel,
+ url: '',
+ size,
+ rotation: 1
+};
+const massMarksStyle2 = {
+ anchor: pixel,
+ url: '',
+ size
+};
+const massMarksData1 = {
+ lnglat
+};
+
+interface MassMarksCustomData extends AMap.MassMarks.Data {
+ name: string;
+ id: string;
+}
+const massMarksMassMarksCustomData: MassMarksCustomData = {
+ lnglat: [1, 2],
+ style: 1,
+ name: '',
+ id: ''
+};
+
+// $ExpectError
+new AMap.MassMarks();
+// $ExpectError
+new AMap.MassMarks([], {});
+
+new AMap.MassMarks([], {
+ style: [massMarksStyle1, massMarksStyle2]
+});
+new AMap.MassMarks([massMarksData1], {
+ style: [massMarksStyle1, massMarksStyle2]
+});
+
+// $ExpectType MassMarks
+const testMassMarks = new AMap.MassMarks([massMarksMassMarksCustomData], {
+ style: [massMarksStyle1, massMarksStyle2]
+});
+
+// $ExpectType void
+testMassMarks.setStyle(massMarksStyle1);
+// $ExpectType void
+testMassMarks.setStyle([massMarksStyle1]);
+
+// $ExpectType Style | Style[]
+testMassMarks.getStyle();
+
+// $ExpectType void
+testMassMarks.setData('');
+
+// $ExpectError
+testMassMarks.setData(massMarksData1);
+// $ExpectError
+testMassMarks.setData(massMarksMassMarksCustomData);
+
+const massMarksCustomData = testMassMarks.getData()[0];
+// $ExpectType string
+massMarksCustomData.name;
+// $ExpectType string
+massMarksCustomData.id;
+// $ExpectType LngLat
+massMarksCustomData.lnglat;
+
+// $ExpectType void
+testMassMarks.clear();
+
+testMassMarks.on('click', (event: AMap.MassMarks.EventMap['click']) => {
+ // $ExpectType "click"
+ event.type;
+
+ // $ExpectType MassMarksCustomData
+ event.data;
+
+ // $ExpectType MassMarks
+ event.target;
+});
+
+/**
+ * layer/tileLayer.ts
+ */
+
+// $ExpectType TileLayer
+new AMap.TileLayer();
+
+// $ExpectType TileLayer
+new AMap.TileLayer({});
+
+// $ExpectType TileLayer
+const testTileLayer = new AMap.TileLayer({
+ map,
+ tileSize: 256,
+ tileUrl: '',
+ errorUrl: '',
+ getTileUrl: (x, y, z) => '',
+ zIndex: 1,
+ opacity: 0.1,
+ zooms: [3, 18],
+ detectRetina: true
+});
+
+// $ExpectType string[]
+testTileLayer.getTiles();
+
+// $ExpectType void
+testTileLayer.reload();
+
+// $ExpectType void
+testTileLayer.setTileUrl('');
+// $ExpectType void
+testTileLayer.setTileUrl((x, y, level) => {
+ // $ExpectType number
+ x;
+ // $ExpectType number
+ y;
+ // $ExpectType number
+ level;
+ return '';
+});
+
+// $ExpectType TileLayer
+testTileLayer.on('complete', () => { });
+
+testTileLayer.off('complete', () => { });
+
+testTileLayer.emit('complete');
+
+// $ExpectType Traffic
+const testTrafficLayer = new AMap.TileLayer.Traffic({});
+// $ExpectType Traffic
+new AMap.TileLayer.Traffic({
+ autoRefresh: true,
+ interval: 180
+});
+
+testTrafficLayer.on('complete', () => { });
+
+/**
+ * layer/videoLayer.ts
+ */
+
+// $ExpectType VideoLayer
+new AMap.VideoLayer({
+ map,
+ bounds,
+ visible: true,
+ zooms: [1, 2],
+ opacity: 1
+});
+
+// $ExpectType VideoLayer
+new AMap.VideoLayer();
+// $ExpectType VideoLayer
+new AMap.VideoLayer({});
+// $ExpectType VideoLayer
+const testVideoLayer = new AMap.VideoLayer({
+ bounds
+});
+
+// $ExpectType void
+testVideoLayer.setMap(null);
+// $ExpectType void
+testVideoLayer.setMap(map);
+
+// $ExpectType Map | null | undefined
+testVideoLayer.getMap();
+
+// $ExpectType void
+testVideoLayer.show();
+
+// $ExpectType void
+testVideoLayer.hide();
+
+// $ExpectType number
+testVideoLayer.getzIndex();
+
+// $ExpectType void
+testVideoLayer.setzIndex(10);
+
+// $ExpectType HTMLVideoElement | null
+testVideoLayer.getElement();
+
+// $ExpectType void
+testVideoLayer.setVideoUrl('url');
+
+// $ExpectType string | string[] | undefined
+testVideoLayer.getVideoUrl();
+
+/**
+ * layer/wms.ts
+ */
+
+// $ExpectType WMS
+new AMap.TileLayer.WMS({
+ url: 'url',
+ params: {}
+});
+// $ExpectType WMS
+const testWms = new AMap.TileLayer.WMS({
+ url: 'url',
+ blend: true,
+ params: {
+ VERSION: 'version',
+ LAYERS: 'layers',
+ STYLES: 'styles',
+ FORMAT: 'format',
+ TRANSPARENT: 'TRUE',
+ BGCOLOR: '#000',
+ EXCEPTIONS: 'exceptions',
+ TIME: 'time',
+ ELEVATION: 'elevation'
+ },
+ zooms: [1, 2],
+ tileSize: 256,
+ opacity: 1,
+ zIndex: 10,
+ visible: true
+});
+
+// $ExpectType void
+testWms.setMap(map);
+// $ExpectType void
+testWms.setMap(null);
+
+// $ExpectType Map | null | undefined
+testWms.getMap();
+
+// $ExpectType void
+testWms.show();
+
+// $ExpectType void
+testWms.hide();
+
+// $ExpectType void
+testWms.setzIndex(10);
+
+// $ExpectType number
+testWms.getzIndex();
+
+// $ExpectType void
+testWms.setUrl('url');
+
+// $ExpectType string
+testWms.getUrl();
+
+// $ExpectType void
+testWms.setParams({
+ VERSION: 'version',
+ LAYERS: 'layers',
+ STYLES: 'styles',
+ FORMAT: 'format',
+ TRANSPARENT: 'TRUE',
+ BGCOLOR: '#000',
+ EXCEPTIONS: 'exceptions',
+ TIME: 'time',
+ ELEVATION: 'elevation'
+});
+
+{
+ const params = testWms.getParams();
+ // $ExpectType string | undefined
+ params.VERSION;
+ // $ExpectType string | undefined
+ params.LAYERS;
+ // $ExpectType string | undefined
+ params.STYLES;
+ // $ExpectType string | undefined
+ params.FORMAT;
+ // $ExpectType "TRUE" | "FALSE" | undefined
+ params.TRANSPARENT;
+ // $ExpectType string | undefined
+ params.BGCOLOR;
+ // $ExpectType string | undefined
+ params.EXCEPTIONS;
+ // $ExpectType string | undefined
+ params.TIME;
+ // $ExpectType string | undefined
+ params.ELEVATION;
+}
+
+/**
+ * layer/wmts.ts
+ */
+
+// $ExpectType WMTS
+new AMap.TileLayer.WMTS({
+ url: 'url',
+ params: {}
+});
+// $ExpectType WMTS
+const testWmts = new AMap.TileLayer.WMTS({
+ url: 'url',
+ blend: true,
+ tileSize: 256,
+ zooms: [1, 2],
+ opacity: 1,
+ zIndex: 10,
+ visible: true,
+ params: {
+ Version: 'version',
+ Layer: 'layers',
+ Style: 'style',
+ Format: 'format'
+ }
+});
+
+// $ExpectType void
+testWmts.setMap(map);
+// $ExpectType void
+testWmts.setMap(null);
+
+// $ExpectType Map | null | undefined
+testWmts.getMap();
+
+// $ExpectType void
+testWmts.show();
+
+// $ExpectType void
+testWmts.hide();
+
+// $ExpectType void
+testWmts.setzIndex(10);
+
+// $ExpectType number
+testWmts.getzIndex();
+
+// $ExpectType void
+testWmts.setUrl('url');
+
+// $ExpectType string
+testWmts.getUrl();
+
+// $ExpectType void
+testWmts.setParams({
+ Version: 'version',
+ Layer: 'layers',
+ Style: 'style',
+ Format: 'format'
+});
+
+{
+ const params = testWmts.getParams();
+ // $ExpectType string | undefined
+ params.Version;
+ // $ExpectType string | undefined
+ params.Layer;
+ // $ExpectType string | undefined
+ params.Style;
+ // $ExpectType string | undefined
+ params.Format;
+}
+
+/**
+ * overlay/bezierCurve.ts
+ */
+
+interface BezierCurveExtraData {
+ test: number;
+}
+
+const bezierCurvePath = [
+ [1, 2, 3, 4],
+ [1, 2, 3],
+ [
+ [1, 2, 3],
+ [1, 2]
+ ],
+ [1, 2]
+];
+
+// $ExpectError
+new AMap.BezierCurve();
+// $ExpectError
+new AMap.BezierCurve({});
+// $ExpectType BezierCurve
+const testBezierCurve = new AMap.BezierCurve({
+ map,
+ path: bezierCurvePath,
+ strokeColor: '#FF0000',
+ strokeOpacity: 0.6,
+ strokeWeight: 10,
+ strokeStyle: 'dashed',
+ strokeDasharray: [1, 5],
+ zIndex: 10,
+ bubble: false,
+ showDir: true,
+ cursor: 'pointer',
+ isOutline: true,
+ outlineColor: '#00FF00',
+ borderWeight: 2
+});
+
+// $ExpectType void
+testBezierCurve.setPath(bezierCurvePath);
+
+// $ExpectType void
+testBezierCurve.setPath(bezierCurvePath);
+
+// $ExpectType void
+testBezierCurve.setOptions({});
+testBezierCurve.setOptions({
+ map,
+ path: bezierCurvePath,
+ strokeColor: '#FF0000',
+ strokeOpacity: 0.6,
+ strokeWeight: 10,
+ strokeStyle: 'dashed',
+ strokeDasharray: [1, 5],
+ zIndex: 10,
+ bubble: false,
+ showDir: true,
+ cursor: 'pointer',
+ isOutline: true,
+ outlineColor: '#00FF00',
+ borderWeight: 2
+});
+
+{
+ const options = testBezierCurve.getOptions();
+
+ // $ExpectType number | undefined
+ options.borderWeight;
+ // $ExpectType boolean | undefined
+ options.bubble;
+ // $ExpectType boolean | undefined
+ options.clickable;
+ // $ExpectType string | undefined
+ options.dirColor;
+ // $ExpectType string | undefined
+ options.dirImg;
+ // $ExpectType {} | BezierCurveExtraData | undefined
+ options.extData;
+ // $ExpectType boolean | undefined
+ options.geodesic;
+ // $ExpectType boolean | undefined
+ options.isOutline;
+ // $ExpectType "round" | "butt" | "square" | undefined
+ options.lineCap;
+ // $ExpectType "miter" | "round" | "bevel" | undefined
+ options.lineJoin;
+ // $ExpectType Map | undefined
+ options.map;
+ // $ExpectType string | undefined
+ options.outlineColor;
+ // $ExpectType (LngLat & { controlPoints: LngLat[]; })[] | undefined
+ options.path;
+ // $ExpectType boolean | undefined
+ options.showDir;
+ // $ExpectType string | undefined
+ options.strokeColor;
+ // $ExpectType number[] | undefined
+ options.strokeDasharray;
+ // $ExpectType number | undefined
+ options.strokeOpacity;
+ // $ExpectType "dashed" | "solid" | undefined
+ options.strokeStyle;
+ // $ExpectType number | undefined
+ options.strokeWeight;
+ // $ExpectType number | undefined
+ options.zIndex;
+}
+
+// $ExpectType number
+testBezierCurve.getLength();
+
+// $ExpectType Bounds | null
+testBezierCurve.getBounds();
+
+// $ExpectType void
+testBezierCurve.show();
+
+// $ExpectType void
+testBezierCurve.hide();
+
+// $ExpectType void
+testBezierCurve.setMap(null);
+testBezierCurve.setMap(map);
+
+// $ExpectType void
+testBezierCurve.setExtData({ test: 1 });
+// $ExpectError
+testBezierCurve.setExtData({ test: '123' });
+
+// $ExpectType {} | BezierCurveExtraData
+testBezierCurve.getExtData();
+
+testBezierCurve.on('click', (event: AMap.BezierCurve.EventMap['click']) => {
+ // $ExpectType "click"
+ event.type;
+ // $ExpectType LngLat
+ event.lnglat;
+ // $ExpectType BezierCurve
+ event.target;
+});
+
+testBezierCurve.on('show', (event: AMap.BezierCurve.EventMap['show']) => {
+ // $ExpectType "show"
+ event.type;
+ // $ExpectType BezierCurve
+ event.target;
+});
+
+testBezierCurve.on('options', (event: AMap.BezierCurve.EventMap['options']) => {
+ // $ExpectType "options"
+ event.type;
+ // $ExpectError
+ event.target;
+});
+
+/**
+ * overlay/circle.ts
+ */
+
+interface CircleExtraData {
+ test: number;
+}
+
+// $ExpectType Circle
+new AMap.Circle();
+new AMap.Circle({});
+// $ExpectType Circle
+const testCircle = new AMap.Circle({
+ map,
+ zIndex: 10,
+ center: lnglat,
+ bubble: true,
+ cursor: 'pointer',
+ radius: 1000,
+ strokeColor: '#FF0000',
+ strokeOpcity: 0.8,
+ strokeWeight: 3,
+ fillColor: '#00FF00',
+ fillOpacity: 0.5,
+ strokeStyle: 'dashed',
+ extData: { test: 1 },
+ strokeDasharray: [2, 4]
+});
+
+// $ExpectType void
+testCircle.setCenter(lnglat);
+// $ExpectType void
+testCircle.setCenter(lnglatTuple);
+
+// $ExpectType LngLat | undefined
+testCircle.getCenter();
+
+// $ExpectType Bounds | null
+testCircle.getBounds();
+
+// $ExpectType void
+testCircle.setRadius(100);
+
+// $ExpectType number
+testCircle.getRadius();
+
+// $ExpectType void
+testCircle.setOptions({});
+testCircle.setOptions({
+ map,
+ zIndex: 10,
+ center: lnglat,
+ bubble: true,
+ cursor: 'pointer',
+ radius: 1000,
+ strokeColor: '#FF0000',
+ strokeOpcity: 0.8,
+ strokeWeight: 3,
+ fillColor: '#00FF00',
+ fillOpacity: 0.5,
+ strokeStyle: 'dashed',
+ extData: { test: 1 },
+ strokeDasharray: [2, 4]
+});
+
+{
+ const options = testCircle.getOptions();
+ // $ExpectType boolean | undefined
+ options.bubble;
+ // $ExpectType LngLat | undefined
+ options.center;
+ // $ExpectType boolean | undefined
+ options.clickable;
+ // $ExpectType {} | CircleExtraData | undefined
+ options.extData;
+ // $ExpectType string | undefined
+ options.fillColor;
+ // $ExpectType number | undefined
+ options.fillOpacity;
+ // $ExpectType "miter" | "round" | "bevel" | undefined
+ options.lineJoin;
+ // $ExpectType Map | undefined
+ options.map;
+ // $ExpectType LngLat[] | undefined
+ options.path;
+ // $ExpectType number | undefined
+ options.radius;
+ // $ExpectType string | undefined
+ options.strokeColor;
+ // $ExpectType number[] | undefined
+ options.strokeDasharray;
+ // $ExpectType number | undefined
+ options.strokeOpacity;
+ // $ExpectType "dashed" | "solid" | undefined
+ options.strokeStyle;
+ // $ExpectType number | undefined
+ options.strokeWeight;
+ // $ExpectType string | undefined
+ options.texture;
+ // $ExpectType number | undefined
+ options.zIndex;
+}
+
+// $ExpectType Bounds | null
+testCircle.getBounds();
+
+// $ExpectType void
+testCircle.hide();
+
+// $ExpectType void
+testCircle.show();
+
+// $ExpectType void
+testCircle.setMap(null);
+// $ExpectType void
+testCircle.setMap(map);
+
+// $ExpectType void
+testCircle.setExtData({ test: 2 });
+// $ExpectError
+testCircle.setExtData({ test: '1' });
+
+// $ExpectType {} | CircleExtraData
+testCircle.getExtData();
+
+// $ExpectType boolean
+testCircle.contains(lnglat);
+// $ExpectType boolean
+testCircle.contains(lnglatTuple);
+
+testCircle.on('click', (event: AMap.Circle.EventMap['click']) => {
+ // $ExpectType "click"
+ event.type;
+ // $ExpectType Circle
+ event.target;
+});
+
+testCircle.on('setCenter', (event: AMap.Circle.EventMap['setCenter']) => {
+ // $ExpectType "setCenter"
+ event.type;
+ // $ExpectError
+ event.target;
+});
+
+testCircle.on('change', (event: AMap.Circle.EventMap['change']) => {
+ // $ExpectType "change"
+ event.type;
+ // $ExpectType Circle
+ event.target;
+});
+
+/**
+ * overlay/contextMenu.ts
+ */
+
+interface ContextMenuExtraData {
+ test: number;
+}
+// $ExpectType ContextMenu
+new AMap.ContextMenu();
+// $ExpectType ContextMenu
+new AMap.ContextMenu({});
+// $ExpectType ContextMenu
+const testContextMenu = new AMap.ContextMenu({
+ content: 'content
',
+});
+
+// $ExpectType void
+testContextMenu.addItem('item', function() {
+ // $ExpectType HTMLLIElement
+ this;
+});
+// $ExpectType void
+testContextMenu.addItem('item', () => { }, 1);
+
+// $ExpectType void
+testContextMenu.removeItem('item', () => {});
+
+// $ExpectType void
+testContextMenu.open(map, lnglatTuple);
+// $ExpectType void
+testContextMenu.open(map, lnglat);
+
+// $ExpectType void
+testContextMenu.close();
+
+testContextMenu.on('items', (event: AMap.ContextMenu.EventMap['items']) => {
+ // $ExpectType "items"
+ event.type;
+});
+
+testContextMenu.on('open', (event: AMap.ContextMenu.EventMap['open']) => {
+ // $ExpectType "open"
+ event.type;
+ // $ExpectType ContextMenu
+ event.target;
+});
+
+/**
+ * overlay/ellipse.ts
+ */
+
+interface EllipseExtraData {
+ test: number;
+}
+// $ExpectType Ellipse
+new AMap.Ellipse();
+// $ExpectType Ellipse
+new AMap.Ellipse({});
+// $ExpectType Ellipse
+const testEllipse = new AMap.Ellipse({
+ map,
+ zIndex: 10,
+ center: lnglat,
+ radius: [10000, 15000],
+ bubble: false,
+ cursor: 'pointer',
+ strokeColor: '#FF0000',
+ strokeOpacity: 0.8,
+ strokeWeight: 2,
+ fillColor: '#0000FF',
+ fillOpacity: 0.5,
+ strokeStyle: 'dashed',
+ extData: { test: 1 },
+ strokeDasharray: [1, 5]
+});
+
+// $ExpectType LngLat | undefined
+testEllipse.getCenter();
+
+// $ExpectType void
+testEllipse.setCenter(lnglat);
+// $ExpectType void
+testEllipse.setCenter(lnglatTuple);
+
+// $ExpectType Bounds | null
+testEllipse.getBounds();
+
+// $ExpectType void
+testEllipse.setOptions({
+ map,
+ zIndex: 10,
+ center: lnglat,
+ radius: [10000, 15000],
+ bubble: false,
+ cursor: 'pointer',
+ strokeColor: '#FF0000',
+ strokeOpacity: 0.8,
+ strokeWeight: 2,
+ fillColor: '#0000FF',
+ fillOpacity: 0.5,
+ strokeStyle: 'dashed',
+ extData: { test: 1 },
+ strokeDasharray: [1, 5]
+});
+
+{
+ const options = testEllipse.getOptions();
+
+ // $ExpectType boolean | undefined
+ options.bubble;
+ // $ExpectType LngLat | undefined
+ options.center;
+ // $ExpectType boolean | undefined
+ options.clickable;
+ // $ExpectType {} | EllipseExtraData | undefined
+ options.extData;
+ // $ExpectType string | undefined
+ options.fillColor;
+ // $ExpectType number | undefined
+ options.fillOpacity;
+ // $ExpectType "miter" | "round" | "bevel" | undefined
+ options.lineJoin;
+ // $ExpectType Map | undefined
+ options.map;
+ // $ExpectType LngLat[] | undefined
+ options.path;
+ // $ExpectType [number, number] | undefined
+ options.radius;
+ // $ExpectType string | undefined
+ options.strokeColor;
+ // $ExpectType number[] | undefined
+ options.strokeDasharray;
+ // $ExpectType number | undefined
+ options.strokeOpacity;
+ // $ExpectType "dashed" | "solid" | undefined
+ options.strokeStyle;
+ // $ExpectType number | undefined
+ options.strokeWeight;
+ // $ExpectType string | undefined
+ options.texture;
+ // $ExpectType number | undefined
+ options.zIndex;
+}
+
+// $ExpectType void
+testEllipse.hide();
+
+// $ExpectType void
+testEllipse.show();
+
+// $ExpectType void
+testEllipse.setMap(null);
+// $ExpectType void
+testEllipse.setMap(map);
+
+// $ExpectType void
+testEllipse.setExtData({ test: 2 });
+// $ExpectType {} | EllipseExtraData
+testEllipse.getExtData();
+
+// $ExpectType boolean
+testEllipse.contains(lnglat);
+// $ExpectType boolean
+testEllipse.contains(lnglatTuple);
+
+/**
+ * overlay/geoJSON.ts
+ */
+
+interface GeoJSONExtraData {
+ test: number;
+}
+
+const geoJSONObject: AMap.GeoJSON.GeoJSONObject[] = [
+ {
+ type: 'Feature',
+ properties: {},
+ geometry: {
+ type: 'Point',
+ coordinates: lnglatTuple
+ }
+ },
+ {
+ type: 'Feature',
+ properties: { test: 1 },
+ geometry: {
+ type: 'LineString',
+ coordinates: [lnglatTuple, lnglatTuple]
+ }
+ }
+];
+
+// $ExpectType GeoJSON
+new AMap.GeoJSON();
+// $ExpectType GeoJSON
+new AMap.GeoJSON({});
+// $ExpectType GeoJSON
+const testGeoJSON = new AMap.GeoJSON({
+ geoJSON: geoJSONObject,
+ getMarker(obj, lnglat) {
+ // $ExpectType GeoJSONObject
+ obj;
+ // $ExpectType LngLat
+ lnglat;
+ return marker;
+ },
+ getPolyline(obj, lnglats) {
+ // $ExpectType GeoJSONObject
+ obj;
+ // $ExpectType LngLat[]
+ lnglats;
+ return testPolyline;
+ },
+ getPolygon(obj, lnglats) {
+ // $ExpectType GeoJSONObject
+ obj;
+ // $ExpectType LngLat[]
+ lnglats;
+ return testPolygon;
+ },
+ coordsToLatLng(coord) {
+ // $ExpectType LngLat
+ coord;
+ return coord;
+ }
+});
+
+// $ExpectType void
+testGeoJSON.importData(geoJSONObject);
+
+// $ExpectType GeoJSON
+testGeoJSON.removeOverlay(marker);
+// $ExpectType GeoJSON
+testGeoJSON.removeOverlay([marker]);
+
+// $ExpectType boolean
+testGeoJSON.hasOverlay(marker);
+// $ExpectType boolean
+testGeoJSON.hasOverlay(m => m === marker);
+
+// $ExpectType GeoJSON
+testGeoJSON.addOverlay(marker);
+// $ExpectType GeoJSON
+testGeoJSON.addOverlay([marker]);
+
+// $ExpectType GeoJSONObject[]
+testGeoJSON.toGeoJSON();
+
+// $ExpectType GeoJSON
+testGeoJSON.setMap(null);
+// $ExpectType GeoJSON
+testGeoJSON.setMap(map);
+
+// $ExpectType GeoJSON
+testGeoJSON.hide();
+
+// $ExpectType GeoJSON
+testGeoJSON.show();
+
+testGeoJSON.on('click', (event: AMap.MapsEvent<'click', AMap.Overlay>) => {
+ // $ExpectType "click"
+ event.type;
+ // $ExpectType Overlay
+ event.target;
+});
+
+/**
+ * overlay/icon.ts
+ */
+
+// $ExpectType Icon
+new AMap.Icon();
+// $ExpectType Icon
+new AMap.Icon({});
+// $ExpectType Icon
+new AMap.Icon({
+ size,
+ imageOffset: pixel,
+ image: 'image uri',
+ imageSize: size
+});
+// $ExpectType Icon
+const testIcon = new AMap.Icon({
+ size: [1, 2],
+ imageOffset: pixel,
+ image: 'image uri',
+ imageSize: [1, 2]
+});
+
+// $ExpectType Size
+testIcon.getImageSize();
+
+// $ExpectType void
+testIcon.setImageSize(size);
+// $ExpectType void
+testIcon.setImageSize([1, 2]);
+
+/**
+ * overlay/infoWindow.ts
+ */
+
+interface InfoWindowExtraData {
+ test: number;
+}
+
+// $ExpectType InfoWindow
+new AMap.InfoWindow();
+// $ExpectType InfoWindow
+new AMap.InfoWindow({});
+// $ExpectType InfoWindow
+const testInfoWindow = new AMap.InfoWindow({
+ isCustom: false,
+ autoMove: false,
+ closeWhenClickMap: false,
+ content: 'content',
+ size: [100, 100],
+ offset: new AMap.Pixel(10, 10),
+ position: lnglat,
+ showShadow: true
+});
+
+// $ExpectType void
+testInfoWindow.open(map);
+// $ExpectType void
+testInfoWindow.open(map, lnglat);
+// $ExpectType void
+testInfoWindow.open(map, lnglatTuple);
+
+// $ExpectType void
+testInfoWindow.close();
+
+// $ExpectType boolean
+testInfoWindow.getIsOpen();
+
+// $ExpectType void
+testInfoWindow.setContent('content');
+// $ExpectType void
+testInfoWindow.setContent(div);
+
+// $ExpectType string | HTMLElement | undefined
+testInfoWindow.getContent();
+
+// $ExpectType void
+testInfoWindow.setPosition(lnglat);
+// $ExpectType void
+testInfoWindow.setPosition(lnglatTuple);
+
+// $ExpectType LngLat | undefined
+testInfoWindow.getPosition();
+
+// $ExpectType Size | undefined
+testInfoWindow.getSize();
+
+testInfoWindow.on('change', (event: AMap.InfoWindow.EventMap['change']) => {
+ // $ExpectType "change"
+ event.type;
+ // $ExpectType InfoWindow
+ event.target;
+});
+
+testInfoWindow.on('close', (event: AMap.InfoWindow.EventMap['close']) => {
+ // $ExpectType "close"
+ event.type;
+ // $ExpectType InfoWindow
+ event.target;
+});
+
+testInfoWindow.on('open', (event: AMap.InfoWindow.EventMap['open']) => {
+ // $ExpectType "open"
+ event.type;
+ // $ExpectType InfoWindow
+ event.target;
+});
+
+/**
+ * overlay/marker.ts
+ */
+
+interface MarkerExtraData {
+ test: number;
+}
+
+// $ExpectType Marker
+new AMap.Marker();
+// $ExpectType Marker
+new AMap.Marker();
+// $ExpectType Marker
+new AMap.Marker({});
+// $ExpectType Marker
+export const testMarker = new AMap.Marker({
+ map,
+ position: lnglat,
+ offset: pixel,
+ icon: 'iconUrl',
+ content: 'htmlString',
+ topWhenClick: true,
+ raiseOnDrag: true,
+ cursor: 'default',
+ visible: true,
+ zIndex: 10,
+ angle: 10,
+ autoRotation: true,
+ animation: 'AMAP_ANIMATION_BOUNCE',
+ shadow: icon,
+ title: '123',
+ clickable: true,
+ shape: markerShape,
+ extData: {
+ test: 123
+ }
+});
+
+// $ExpectType void
+testMarker.markOnAMAP({
+ name: '123',
+ position: [1, 2]
+});
+// $ExpectType void
+testMarker.markOnAMAP();
+// $ExpectType void
+testMarker.markOnAMAP({});
+// $ExpectType void
+testMarker.markOnAMAP({
+ position: [1, 2],
+ name: '123'
+});
+
+// $ExpectType Pixel
+testMarker.getOffset();
+
+// $ExpectType void
+testMarker.setOffset(pixel);
+
+// $ExpectType void
+testMarker.setAnimation('AMAP_ANIMATION_BOUNCE');
+
+// $ExpectType AnimationName
+testMarker.getAnimation();
+
+// $ExpectType void
+testMarker.setClickable(true);
+
+// $ExpectType boolean
+testMarker.getClickable();
+
+// $ExpectType LngLat | undefined
+testMarker.getPosition();
+
+// $ExpectType void
+testMarker.setPosition(lnglat);
+
+// $ExpectType void
+testMarker.setAngle(0);
+
+// $ExpectType void
+testMarker.setLabel();
+// $ExpectType void
+testMarker.setLabel({});
+// $ExpectType void
+testMarker.setLabel({
+ content: 'label content',
+ offset: pixel
+});
+
+// $ExpectType Label | undefined
+testMarker.getLabel();
+
+// $ExpectType number
+testMarker.getAngle();
+
+// $ExpectType void
+testMarker.setzIndex(100);
+
+// $ExpectType number
+testMarker.getzIndex();
+
+// $ExpectType void
+testMarker.setIcon('icon uri');
+// $ExpectType void
+testMarker.setIcon(icon);
+
+// $ExpectType string | Icon | undefined
+testMarker.getIcon();
+
+// $ExpectType void
+testMarker.setDraggable(true);
+
+// $ExpectType boolean
+testMarker.getDraggable();
+
+// $ExpectType void
+testMarker.setCursor('default');
+
+// $ExpectType void
+testMarker.setContent('content');
+// $ExpectType void
+testMarker.setContent(domEle);
+
+// $ExpectType string | HTMLElement
+testMarker.getContent();
+
+// $ExpectType void
+testMarker.moveAlong([lnglat], 100);
+// $ExpectError
+testMarker.moveAlong([[1, 2]], 100);
+// $ExpectType void
+testMarker.moveAlong([lnglat], 100, t => t, false);
+
+// $ExpectType void
+testMarker.moveTo(lnglat, 100);
+// $ExpectType void
+testMarker.moveTo([1, 2], 100);
+// $ExpectType void
+testMarker.moveTo([1, 2], 100, t => t);
+
+// $ExpectType void
+testMarker.stopMove();
+
+// $ExpectType boolean
+testMarker.pauseMove();
+
+// $ExpectType boolean
+testMarker.resumeMove();
+
+// $ExpectType void
+testMarker.setMap(map);
+
+// $ExpectType void
+testMarker.setTitle('title');
+// $ExpectError
+testMarker.setTitle();
+
+// $ExpectType string | undefined
+testMarker.getTitle();
+
+// $ExpectType void
+testMarker.setTop(true);
+
+// $ExpectType boolean
+testMarker.getTop();
+
+// $ExpectType void
+testMarker.setShadow();
+// $ExpectType void
+testMarker.setShadow(icon);
+// $ExpectType void
+testMarker.setShadow('shadow url');
+
+// $ExpectType string | Icon | undefined
+testMarker.getShadow();
+
+// $ExpectType void
+testMarker.setShape();
+// $ExpectType void
+testMarker.setShape(markerShape);
+
+// $ExpectType MarkerShape | undefined
+testMarker.getShape();
+
+testMarker.on('click', (event: AMap.Marker.EventMap['click']) => {
+ // $ExpectType {} | MarkerExtraData
+ event.target.getExtData();
+});
+
+/**
+ * overlay/markerShape.ts
+ */
+
+// $ExpectType MarkerShape
+new AMap.MarkerShape({
+ type: 'circle',
+ coords: [1, 1, 1]
+});
+// $ExpectType MarkerShape
+new AMap.MarkerShape({
+ type: 'rect',
+ coords: [1, 1, 1, 2]
+});
+// $ExpectType MarkerShape
+new AMap.MarkerShape({
+ type: 'poly',
+ coords: [1, 2, 3, 4, 5]
+});
+
+// $ExpectError
+new AMap.MarkerShape({
+ type: 'circle',
+ coords: [1, 1]
+});
+// $ExpectError
+new AMap.MarkerShape({
+ type: 'rect',
+ coords: [1, 1, 1, 2, 2]
+});
+
+/**
+ * overlay/overlay.ts
+ */
+
+interface OverlayExtraData {
+ test: number;
+}
+declare const testOverlay: AMap.Overlay;
+
+// $ExpectType void
+testOverlay.show();
+
+// $ExpectType void
+testOverlay.hide();
+
+// $ExpectType Map | null | undefined
+testOverlay.getMap();
+
+// $ExpectType void
+testOverlay.setMap(map);
+// $ExpectType void
+testOverlay.setMap(null);
+
+// $ExpectError
+testOverlay.setExtData({ any: 123 });
+
+// $ExpectError OverlayExtraData
+testOverlay.getExtData();
+
+/**
+ * overlay/overlayGroup.ts
+ */
+
+// $ExpectType OverlayGroup, any>
+const testOverlayGroup2 = new AMap.OverlayGroup();
+// $ExpectType OverlayGroup, any>
+new AMap.OverlayGroup(marker);
+// $ExpectType OverlayGroup, any>
+const testOverlayGroup = new AMap.OverlayGroup([marker]);
+
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.addOverlay(marker);
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.addOverlay([marker]);
+// $ExpectError
+testOverlayGroup.addOverlay([testCircle]);
+
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.addOverlays(marker);
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.addOverlays([marker]);
+
+// $ExpectType Marker[]
+testOverlayGroup.getOverlays();
+
+// $ExpectType boolean
+testOverlayGroup.hasOverlay(marker);
+// $ExpectType boolean
+testOverlayGroup.hasOverlay(o => o === marker);
+
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.removeOverlay(marker);
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.removeOverlay([marker]);
+
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.removeOverlays(marker);
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.removeOverlays([marker]);
+
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.clearOverlays();
+
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.eachOverlay(function(overlay, index, overlays) {
+ // $ExpectType Marker
+ overlay;
+ // $ExpectType number
+ index;
+ // $ExpectType Marker[]
+ overlays;
+ // $ExpectType Marker
+ this;
+});
+
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.setMap(null);
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.setMap(map);
+
+// $ExpectType OverlayGroup, any>
+testOverlayGroup2.setOptions({
+ test: 1
+});
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.setOptions({
+ map,
+ position: lnglat,
+ offset: pixel,
+ icon: 'iconUrl',
+ content: 'htmlString',
+ topWhenClick: true,
+ raiseOnDrag: true,
+ cursor: 'default',
+ visible: true,
+ zIndex: 10,
+ angle: 10,
+ autoRotation: true,
+ animation: 'AMAP_ANIMATION_BOUNCE',
+ shadow: icon,
+ title: '123',
+ clickable: true,
+ shape: markerShape,
+ extData: {
+ test: 123
+ }
+});
+
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.show();
+
+// $ExpectType OverlayGroup, any>
+testOverlayGroup.hide();
+
+testOverlayGroup.on('click', (event: AMap.MapsEvent<'click', AMap.Overlay>) => {
+ // $ExpectType "click"
+ event.type;
+ // $ExpectType Overlay
+ event.target;
+});
+
+/**
+ * overlay/polygon.ts
+ */
+
+interface PolygonExtraData {
+ test: number;
+}
+
+const polygonPath1 = [lnglatTuple, lnglatTuple, lnglatTuple, lnglatTuple, lnglatTuple];
+const polygonPath2 = [lnglat, lnglat, lnglat, lnglat, lnglat];
+
+// $ExpectType Polygon
+new AMap.Polygon();
+// $ExpectType Polygon
+new AMap.Polygon({});
+// $ExpectType Polygon
+const testPolygon = new AMap.Polygon({
+ map,
+ zIndex: 10,
+ bubble: true,
+ cursor: 'pointer',
+ strokeColor: '#00FF00',
+ strokeOpacity: 0.3,
+ strokeWeight: 5,
+ fillColor: '#0000FF',
+ fillOpacity: 0.5,
+ draggable: true,
+ extData: { test: 1 },
+ strokeStyle: 'dashed',
+ strokeDasharray: [2, 4],
+ path: polygonPath1
+});
+
+// $ExpectType void
+testPolygon.setPath(polygonPath1);
+// $ExpectType void
+testPolygon.setPath(polygonPath2);
+// $ExpectType void
+testPolygon.setPath([polygonPath1, polygonPath2]);
+
+// $ExpectType LngLat[] | LngLat[][]
+testPolygon.getPath();
+
+// $ExpectType void
+testPolygon.setOptions({
+ map,
+ zIndex: 10,
+ bubble: true,
+ cursor: 'pointer',
+ strokeColor: '#00FF00',
+ strokeOpacity: 0.8,
+ strokeWeight: 5,
+ fillColor: '#0000FF',
+ fillOpacity: 0.5,
+ draggable: true,
+ extData: { test: 1 },
+ strokeStyle: 'dashed',
+ strokeDasharray: [4, 2],
+ path: [polygonPath2, polygonPath1]
+});
+
+{
+ const options = testPolygon.getOptions();
+ // $ExpectType boolean | undefined
+ options.bubble;
+ // $ExpectType boolean | undefined
+ options.clickable;
+ // $ExpectType {} | PolygonExtraData | undefined
+ options.extData;
+ // $ExpectType string | undefined
+ options.fillColor;
+ // $ExpectType number | undefined
+ options.fillOpacity;
+ // $ExpectType "miter" | "round" | "bevel" | undefined
+ options.lineJoin;
+ // $ExpectType Map | undefined
+ options.map;
+ // $ExpectType LngLat[] | LngLat[][] | undefined
+ options.path;
+ // $ExpectType string | undefined
+ options.strokeColor;
+ // $ExpectType number[] | undefined
+ options.strokeDasharray;
+ // $ExpectType number | undefined
+ options.strokeOpacity;
+ // $ExpectType "dashed" | "solid" | undefined
+ options.strokeStyle;
+ // $ExpectType number | undefined
+ options.strokeWeight;
+ // $ExpectType string | undefined
+ options.texture;
+ // $ExpectType number | undefined
+ options.zIndex;
+}
+
+// $ExpectType Bounds | null
+testPolygon.getBounds();
+
+// $ExpectType number
+testPolygon.getArea();
+
+// $ExpectType void
+testPolygon.setMap(null);
+// $ExpectType void
+testPolygon.setMap(map);
+
+// $ExpectType void
+testPolygon.setExtData({ test: 1 });
+
+// $ExpectType {} | PolygonExtraData
+testPolygon.getExtData();
+
+// $ExpectType boolean
+testPolygon.contains(lnglat);
+// $ExpectType boolean
+testPolygon.contains(lnglatTuple);
+
+testPolygon.on('click', (event: AMap.Polygon.EventMap['click']) => {
+ // $ExpectType "click"
+ event.type;
+ // $ExpectType Polygon
+ event.target;
+});
+
+/**
+ * overlay/polyline.ts
+ */
+
+interface PolylineExtraData {
+ test: number;
+}
+
+// $ExpectType Polyline
+new AMap.Polyline();
+// $ExpectType Polyline
+new AMap.Polyline({});
+// $ExpectType Polyline
+const testPolyline = new AMap.Polyline({
+ map,
+ zIndex: 10,
+ bubble: true,
+ cursor: 'default',
+ geodesic: true,
+ isOutline: true,
+ borderWeight: 1,
+ outlineColor: '#AA0000',
+ path: [lnglat],
+ strokeColor: '#0000AA',
+ strokeOpacity: 0.5,
+ strokeWeight: 10,
+ strokeStyle: 'dashed',
+ strokeDasharray: [20, 10, 20],
+ lineJoin: 'bevel',
+ lineCap: 'butt',
+ draggable: true,
+ extData: { test: 1 },
+ showDir: true
+});
+// Polyline
+
+// $ExpectType void
+testPolyline.setPath([lnglat]);
+// $ExpectType void
+testPolyline.setPath([lnglatTuple]);
+
+// $ExpectType void
+testPolyline.setOptions({});
+// $ExpectType void
+testPolyline.setOptions({
+ map,
+ zIndex: 10,
+ bubble: true,
+ cursor: 'default',
+ geodesic: true,
+ isOutline: true,
+ borderWeight: 1,
+ outlineColor: '#AA0000',
+ path: [lnglat, lnglat],
+ strokeColor: '#0000AA',
+ strokeOpacity: 0.5,
+ strokeWeight: 10,
+ strokeStyle: 'dashed',
+ strokeDasharray: [20, 10, 20],
+ lineJoin: 'bevel',
+ lineCap: 'butt',
+ draggable: true,
+ extData: { test: 1 },
+ showDir: true
+});
+
+{
+ const options = testPolyline.getOptions();
+ // $ExpectType number | undefined
+ options.borderWeight;
+ // $ExpectType boolean | undefined
+ options.bubble;
+ // $ExpectType boolean | undefined
+ options.clickable;
+ // $ExpectType string | undefined
+ options.dirColor;
+ // $ExpectType string | undefined
+ options.dirImg;
+ // $ExpectType {} | PolylineExtraData | undefined
+ options.extData;
+ // $ExpectType boolean | undefined
+ options.geodesic;
+ // $ExpectType boolean | undefined
+ options.isOutline;
+ // $ExpectType "round" | "butt" | "square" | undefined
+ options.lineCap;
+ // $ExpectType "miter" | "round" | "bevel" | undefined
+ options.lineJoin;
+ // $ExpectType Map | undefined
+ options.map;
+ // $ExpectType string | undefined
+ options.outlineColor;
+ // $ExpectType LngLat[] | undefined
+ options.path;
+ // $ExpectType boolean | undefined
+ options.showDir;
+ // $ExpectType string | undefined
+ options.strokeColor;
+ // $ExpectType number[] | undefined
+ options.strokeDasharray;
+ // $ExpectType number | undefined
+ options.strokeOpacity;
+ // $ExpectType "dashed" | "solid" | undefined
+ options.strokeStyle;
+ // $ExpectType number | undefined
+ options.strokeWeight;
+ // $ExpectType number | undefined
+ options.zIndex;
+}
+
+// $ExpectType number
+testPolyline.getLength();
+
+// $ExpectType Bounds | null
+testPolyline.getBounds();
+
+// $ExpectType void
+testPolyline.hide();
+
+// $ExpectType void
+testPolyline.show();
+
+// $ExpectType void
+testPolyline.setMap(null);
+// $ExpectType void
+testPolyline.setMap(map);
+
+// $ExpectType void
+testPolyline.setExtData({ test: 1 });
+
+// $ExpectType {} | PolylineExtraData
+testPolyline.getExtData();
+
+testPolyline.on('click', (event: AMap.Polyline.EventMap['click']) => {
+ // $ExpectType "click"
+ event.type;
+ // $ExpectType Polyline
+ event.target;
+});
+
+/**
+ * overlay/rectangle.ts
+ */
+
+interface RectangleExtraData {
+ test: number;
+}
+
+// $ExpectType Rectangle
+new AMap.Rectangle();
+// $ExpectType Rectangle
+new AMap.Rectangle({});
+// $ExpectType Rectangle
+const testRectangle = new AMap.Rectangle({
+ map,
+ zIndex: 10,
+ bounds,
+ bubble: false,
+ cursor: 'pointer',
+ strokeColor: '#00FF00',
+ strokeOpacity: 0.8,
+ strokeWeight: 2,
+ fillColor: '#0000FF',
+ fillOpacity: 0.5,
+ strokeStyle: 'solid',
+ extData: { test: 1 },
+ strokeDasharray: [1, 5]
+});
+
+// $ExpectType Bounds | undefined
+testRectangle.getBounds();
+
+// $ExpectType void
+testRectangle.setBounds(bounds);
+
+// $ExpectType void
+testRectangle.setOptions({});
+// $ExpectType void
+testRectangle.setOptions({
+ map,
+ zIndex: 10,
+ bounds,
+ bubble: false,
+ cursor: 'pointer',
+ strokeColor: '#00FF00',
+ strokeOpacity: 0.8,
+ strokeWeight: 2,
+ fillColor: '#0000FF',
+ fillOpacity: 0.5,
+ strokeStyle: 'solid',
+ extData: { test: 1 },
+ strokeDasharray: [1, 5]
+});
+
+{
+ const options = testRectangle.getOptions();
+ // $ExpectType Bounds | undefined
+ options.bounds;
+ // $ExpectType boolean | undefined
+ options.bubble;
+ // $ExpectType boolean | undefined
+ options.clickable;
+ // $ExpectType {} | RectangleExtraData | undefined
+ options.extData;
+ // $ExpectType string | undefined
+ options.fillColor;
+ // $ExpectType number | undefined
+ options.fillOpacity;
+ // $ExpectType "miter" | "round" | "bevel" | undefined
+ options.lineJoin;
+ // $ExpectType Map | undefined
+ options.map;
+ // $ExpectType LngLat[] | undefined
+ options.path;
+ // $ExpectType string | undefined
+ options.strokeColor;
+ // $ExpectType number[] | undefined
+ options.strokeDasharray;
+ // $ExpectType number | undefined
+ options.strokeOpacity;
+ // $ExpectType "dashed" | "solid" | undefined
+ options.strokeStyle;
+ // $ExpectType number | undefined
+ options.strokeWeight;
+ // $ExpectType string | undefined
+ options.texture;
+ // $ExpectType number | undefined
+ options.zIndex;
+}
+
+// $ExpectType void
+testRectangle.hide();
+
+// $ExpectType void
+testRectangle.show();
+
+// $ExpectType void
+testRectangle.setExtData({test: 2});
+
+// $ExpectType {} | RectangleExtraData
+testRectangle.getExtData();
+
+// $ExpectType boolean
+testRectangle.contains(lnglat);
+// $ExpectType boolean
+testRectangle.contains(lnglatTuple);
+
+testRectangle.on('click', (event: AMap.Rectangle.EventMap['click']) => {
+ // $ExpectType "click"
+ event.type;
+ // $ExpectType Rectangle
+ event.target;
+});
+
+testRectangle.on('setBounds', (event: AMap.Rectangle.EventMap['setBounds']) => {
+ // $ExpectType "setBounds"
+ event.type;
+ // $ExpectError
+ event.target;
+});
+
+/**
+ * overlay/text.ts
+ */
+
+interface TextExtraData {
+ test: number;
+}
+
+// $ExpectType Text
+new AMap.Text();
+// $ExpectType Text
+new AMap.Text({});
+// $ExpectType Text
+const testText = new AMap.Text({
+ text: 'content',
+ textAlign: 'center',
+ verticalAlign: 'top',
+ map,
+ position: lnglat,
+ offset: pixel,
+ topWhenClick: true,
+ bubble: true,
+ draggable: true,
+ raiseOnDrag: true,
+ cursor: 'default',
+ visible: true,
+ zIndex: 100,
+ angle: 45,
+ autoRotation: true,
+ animation: 'AMAP_ANIMATION_BOUNCE',
+ shadow: 'https://webapi.amap.com/theme/v1.3/markers/0.png',
+ title: 'title',
+ clickable: true,
+ extData: { test: 1 }
+});
+
+// $ExpectType string
+testText.getText();
+
+// $ExpectType void
+testText.setText('123');
+
+// $ExpectType void
+testText.setStyle({
+ background: 'red',
+ width: '200px'
+});
+
+// $ExpectType void
+testText.markOnAMAP({
+ name: '123',
+ position: lnglatTuple
+});
+
+// $ExpectType Pixel
+testText.getOffset();
+
+// $ExpectType void
+testText.setOffset(pixel);
+
+// $ExpectType void
+testText.setAnimation('AMAP_ANIMATION_BOUNCE');
+
+// $ExpectType AnimationName
+testText.getAnimation();
+
+// $ExpectType void
+testText.setClickable(true);
+
+// $ExpectType boolean
+testText.getClickable();
+
+// $ExpectType LngLat | undefined
+testText.getPosition();
+
+// $ExpectType void
+testText.setAngle(10);
+
+// $ExpectType number
+testText.getAngle();
+
+// $ExpectType void
+testText.setzIndex(1);
+
+// $ExpectType number
+testText.getzIndex();
+
+// $ExpectType void
+testText.setDraggable(true);
+
+// $ExpectType boolean
+testText.getDraggable();
+
+// $ExpectType void
+testText.hide();
+
+// $ExpectType void
+testText.show();
+
+// $ExpectType void
+testText.setCursor('default');
+
+// $ExpectType void
+testText.moveAlong([lnglat], 100);
+
+// $ExpectType void
+testText.moveAlong([lnglat], 100);
+// $ExpectError
+testText.moveAlong([[1, 2]], 100);
+// $ExpectType void
+testText.moveAlong([lnglat], 100, t => t, false);
+
+// $ExpectType void
+testText.moveTo(lnglat, 100);
+// $ExpectType void
+testText.moveTo([1, 2], 100);
+// $ExpectType void
+testText.moveTo([1, 2], 100, t => t);
+
+// $ExpectType void
+testText.stopMove();
+
+// $ExpectType boolean
+testText.pauseMove();
+
+// $ExpectType boolean
+testText.resumeMove();
+
+// $ExpectType void
+testText.setMap(map);
+
+// $ExpectType void
+testText.setTitle('title');
+// $ExpectError
+testText.setTitle();
+
+// $ExpectType string | undefined
+testText.getTitle();
+
+// $ExpectType void
+testText.setTop(true);
+
+// $ExpectType boolean
+testText.getTop();
+
+// $ExpectType void
+testText.setShadow();
+// $ExpectType void
+testText.setShadow(icon);
+// $ExpectType void
+testText.setShadow('shadow url');
+
+// $ExpectType void
+testText.setExtData({test: 1});
+
+// $ExpectType {} | TextExtraData
+testText.getExtData();
+
+testText.on('click', (event: AMap.Text.EventMap['click']) => {
+ // $ExpectType "click"
+ event.type;
+ // $ExpectType Text
+ event.target;
+});
diff --git a/types/amap-js-api/array-bounds.d.ts b/types/amap-js-api/array-bounds.d.ts
new file mode 100644
index 0000000000..419d8e4b1d
--- /dev/null
+++ b/types/amap-js-api/array-bounds.d.ts
@@ -0,0 +1,10 @@
+declare namespace AMap {
+ class ArrayBounds {
+ constructor(bounds: LocationValue[]);
+ bounds: LngLat[];
+ contains(point: LocationValue): boolean;
+ // internal
+ toBounds(): Bounds;
+ getCenter(): LngLat;
+ }
+}
diff --git a/types/amap-js-api/bounds.d.ts b/types/amap-js-api/bounds.d.ts
new file mode 100644
index 0000000000..63e880fe65
--- /dev/null
+++ b/types/amap-js-api/bounds.d.ts
@@ -0,0 +1,12 @@
+declare namespace AMap {
+ class Bounds {
+ constructor(southWest: LngLat, northEast: LngLat);
+ contains(point: LocationValue): boolean;
+ getCenter(): LngLat;
+ getSouthWest(): LngLat;
+ getSouthEast(): LngLat;
+ getNorthEast(): LngLat;
+ getNorthWest(): LngLat;
+ toString(): string;
+ }
+}
diff --git a/types/amap-js-api/browser.d.ts b/types/amap-js-api/browser.d.ts
new file mode 100644
index 0000000000..71bfaa8fea
--- /dev/null
+++ b/types/amap-js-api/browser.d.ts
@@ -0,0 +1,51 @@
+declare namespace AMap {
+ namespace Browser {
+ const ua: string;
+ const mobile: boolean;
+ const plat: 'android' | 'ios' | 'windows' | 'mac' | 'other';
+ const mac: boolean;
+ const windows: boolean;
+ const ios: boolean;
+ const iPad: boolean;
+ const iPhone: boolean;
+ const android: boolean;
+ const android23: boolean;
+ const chrome: boolean;
+ const firefox: boolean;
+ const safari: boolean;
+ const wechat: boolean;
+ const uc: boolean;
+ const qq: boolean;
+ const ie: boolean;
+ const ie6: boolean;
+ const ie7: boolean;
+ const ie8: boolean;
+ const ie9: boolean;
+ const ie10: boolean;
+ const ie11: boolean;
+ const edge: boolean;
+ const ielt9: boolean;
+ const baidu: boolean;
+ const isLocalStorage: boolean;
+ const isGeolocation: boolean;
+ const mobileWebkit: boolean;
+ const mobileWebkit3d: boolean;
+ const mobileOpera: boolean;
+ const retina: boolean;
+ const touch: boolean;
+ const msPointer: boolean;
+ const pointer: boolean;
+ const webkit: boolean;
+ const ie3d: boolean;
+ const webkit3d: boolean;
+ const gecko3d: boolean;
+ const opera3d: boolean;
+ const any3d: boolean;
+ const isCanvas: boolean;
+ const isSvg: boolean;
+ const isVML: boolean;
+ const isWorker: boolean;
+ const isWebsocket: boolean;
+ function isWebGL(): boolean;
+ }
+}
diff --git a/types/amap-js-api/common.d.ts b/types/amap-js-api/common.d.ts
new file mode 100644
index 0000000000..3d51dc719e
--- /dev/null
+++ b/types/amap-js-api/common.d.ts
@@ -0,0 +1,22 @@
+declare namespace AMap {
+ type SizeValue = Size | [number, number];
+ type LocationValue = LngLat | [number, number];
+ type Lang = 'zh_cn' | 'en' | 'zh_en';
+
+ type Event = { type: N } &
+ (V extends HTMLElement ? { value: V }
+ : V extends object ? V
+ : V extends undefined ? {}
+ : { value: V });
+ type MapsEvent = Event;
+
+ type StrokeLineJoin = 'miter' | 'round' | 'bevel';
+ type StrokeLineCap = 'butt' | 'round' | 'square';
+ type StrokeStyle = 'dashed' | 'solid';
+
+ type AnimationName = 'AMAP_ANIMATION_NONE' | 'AMAP_ANIMATION_DROP' | 'AMAP_ANIMATION_BOUNCE';
+}
diff --git a/types/amap-js-api/convert-from.d.ts b/types/amap-js-api/convert-from.d.ts
new file mode 100644
index 0000000000..9fe1f1e76d
--- /dev/null
+++ b/types/amap-js-api/convert-from.d.ts
@@ -0,0 +1,15 @@
+declare namespace AMap {
+ namespace convertFrom {
+ interface Result {
+ info: string; // 'ok'
+ locations: LngLat[];
+ }
+ type Type = 'gps' | 'baidu' | 'mapbar';
+ type SearchStatus = 'complete' | 'error';
+ }
+ function convertFrom(
+ lnglat: LocationValue | LocationValue[],
+ type: convertFrom.Type | null,
+ callback: (status: convertFrom.SearchStatus, result: string | convertFrom.Result) => void
+ ): void;
+}
diff --git a/types/amap-js-api/dom-util.d.ts b/types/amap-js-api/dom-util.d.ts
new file mode 100644
index 0000000000..d83a2ca69a
--- /dev/null
+++ b/types/amap-js-api/dom-util.d.ts
@@ -0,0 +1,31 @@
+declare namespace AMap {
+ namespace DomUtil {
+ function getViewport(dom: HTMLElement): Size;
+
+ function getViewportOffset(dom: HTMLElement): Pixel;
+
+ function create(
+ tagName: K,
+ parent?: HTMLElement,
+ className?: string
+ ): HTMLElementTagNameMap[K];
+
+ function setClass(dom: HTMLElement, className?: string): void;
+
+ function hasClass(dom: HTMLElement, className: string): boolean;
+
+ function addClass(dom: HTMLElement, className: string): void;
+
+ function removeClass(dom: HTMLElement, className: string): void;
+
+ function setOpacity(dom: HTMLElement, opacity: number): void;
+
+ function rotate(dom: HTMLElement, deg: number, origin?: { x: number, y: number }): void;
+
+ function setCss(dom: HTMLElement | HTMLElement[], style: Partial): typeof DomUtil; // this
+
+ function empty(dom: HTMLElement): void;
+
+ function remove(dom: HTMLElement): void;
+ }
+}
diff --git a/types/amap-js-api/event.d.ts b/types/amap-js-api/event.d.ts
new file mode 100644
index 0000000000..d8ff5753c9
--- /dev/null
+++ b/types/amap-js-api/event.d.ts
@@ -0,0 +1,59 @@
+declare namespace AMap {
+ abstract class EventEmitter {
+ on(
+ eventName: string,
+ // tslint:disable-next-line:no-unnecessary-generics
+ handler: (this: C, event: E) => void,
+ context?: C,
+ once?: boolean,
+ unshift?: boolean
+ ): this;
+
+ off(
+ eventName: string,
+ // tslint:disable-next-line
+ handler: ((this: C, event: E) => void) | 'mv',
+ context?: C
+ ): this;
+
+ emit(eventName: string, data?: any): this;
+ }
+
+ namespace event {
+ interface EventListener {
+ type: T;
+ }
+
+ function addDomListener(
+ // tslint:disable-next-line: no-unnecessary-generics
+ instance: HTMLElementTagNameMap[N],
+ eventName: E,
+ handler: (this: C, event: HTMLElementEventMap[E]) => void,
+ context?: C
+ ): EventListener<0>;
+
+ function addListener(
+ // tslint:disable-next-line: no-unnecessary-generics
+ instance: I,
+ eventName: string,
+ // tslint:disable-next-line: no-unnecessary-generics
+ handler: (this: C, event: E) => void,
+ // tslint:disable-next-line: no-unnecessary-generics
+ context?: C
+ ): EventListener<1>;
+
+ function addListenerOnce(
+ // tslint:disable-next-line: no-unnecessary-generics
+ instance: I,
+ eventName: string,
+ // tslint:disable-next-line: no-unnecessary-generics
+ handler: (this: C, event: E) => void,
+ // tslint:disable-next-line: no-unnecessary-generics
+ context?: C
+ ): EventListener<1>;
+
+ function removeListener(listener: EventListener<0 | 1>): void;
+
+ function trigger(instance: EventEmitter, eventName: string, data?: any): void;
+ }
+}
diff --git a/types/amap-js-api/geometry-util.d.ts b/types/amap-js-api/geometry-util.d.ts
new file mode 100644
index 0000000000..03f6800088
--- /dev/null
+++ b/types/amap-js-api/geometry-util.d.ts
@@ -0,0 +1,122 @@
+declare namespace AMap {
+ namespace GeometryUtil {
+ function distance(
+ point1: LocationValue,
+ point2: LocationValue | LocationValue[]
+ ): number;
+
+ function ringArea(ring: LocationValue[]): number;
+
+ function isClockwise(path: LocationValue[]): boolean;
+
+ function distanceOfLine(line: LocationValue[]): number;
+
+ function ringRingClip(
+ ring1: LocationValue[],
+ ring2: LocationValue[]
+ ): Array<[number, number]>;
+
+ function doesRingRingIntersect(
+ ring1: LocationValue[],
+ ring2: LocationValue[]
+ ): boolean;
+
+ function doesLineRingIntersect(
+ line: LocationValue[],
+ ring: LocationValue[]
+ ): boolean;
+
+ function doesLineLineIntersect(
+ line1: LocationValue[],
+ line2: LocationValue[]
+ ): boolean;
+
+ function doesSegmentPolygonIntersect(
+ point1: LocationValue,
+ point2: LocationValue,
+ polygon: LocationValue[][]
+ ): boolean;
+
+ function doesSegmentRingIntersect(
+ point1: LocationValue,
+ point2: LocationValue,
+ ring: LocationValue[]
+ ): boolean;
+
+ function doesSegmentLineIntersect(
+ point1: LocationValue,
+ point2: LocationValue,
+ line: LocationValue[]
+ ): boolean;
+
+ function doesSegmentsIntersect(
+ point1: LocationValue,
+ point2: LocationValue,
+ point3: LocationValue,
+ point4: LocationValue
+ ): boolean;
+
+ function isPointInRing(point: LocationValue, ring: LocationValue[]): boolean;
+
+ function isRingInRing(ring1: LocationValue[], ring2: LocationValue[]): boolean;
+
+ function isPointInPolygon(point: LocationValue, polygon: LocationValue[][]): boolean;
+
+ function makesureClockwise(path: Array<[number, number]>): Array<[number, number]>;
+
+ function makesureAntiClockwise(path: Array<[number, number]>): Array<[number, number]>;
+
+ function closestOnSegment(
+ point1: LocationValue,
+ point2: LocationValue,
+ point3: LocationValue
+ ): [number, number];
+
+ function closestOnLine(point: LocationValue, line: LocationValue[]): [number, number];
+
+ function distanceToSegment(
+ point1: LocationValue,
+ point2: LocationValue,
+ point3: LocationValue
+ ): number;
+
+ function distanceToLine(point: LocationValue, line: LocationValue[]): number;
+
+ function isPointOnSegment(
+ point1: LocationValue,
+ point2: LocationValue,
+ point3: LocationValue,
+ tolerance?: number
+ ): boolean;
+
+ function isPointOnLine(
+ point: LocationValue,
+ line: LocationValue[],
+ tolerance?: number
+ ): boolean;
+
+ function isPointOnRing(
+ point: LocationValue,
+ ring: LocationValue[],
+ tolerance?: number
+ ): boolean;
+
+ function isPointOnPolygon(
+ point: LocationValue,
+ polygon: LocationValue[][],
+ tolerance?: number
+ ): boolean;
+
+ function doesPolygonPolygonIntersect(
+ polygon1: LocationValue[],
+ polygon2: LocationValue[]
+ ): boolean;
+
+ function distanceToPolygon(point: LocationValue, polygon: LocationValue[]): number;
+
+ function triangulateShape(
+ shape1: LngLat[] | Pixel[] | [number, number],
+ shape2: LngLat[] | Pixel[] | [number, number]
+ ): number[];
+ }
+}
diff --git a/types/amap-js-api/index.d.ts b/types/amap-js-api/index.d.ts
new file mode 100644
index 0000000000..5b8c1a5b94
--- /dev/null
+++ b/types/amap-js-api/index.d.ts
@@ -0,0 +1,48 @@
+// Type definitions for non-npm package amap-js-api 1.4
+// Project: https://lbs.amap.com/api/javascript-api/summary
+// Definitions by: breeze9527
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.8
+
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
diff --git a/types/amap-js-api/layer/building.d.ts b/types/amap-js-api/layer/building.d.ts
new file mode 100644
index 0000000000..30dd7c4092
--- /dev/null
+++ b/types/amap-js-api/layer/building.d.ts
@@ -0,0 +1,30 @@
+declare namespace AMap {
+ namespace Buildings {
+ interface Options extends Layer.Options {
+ zooms?: [number, number];
+ opacity?: number;
+ heightFactor?: number;
+ visible?: boolean;
+ zIndex?: number;
+ // inner
+ merge?: boolean;
+ sort?: boolean;
+ }
+ interface AreaStyle {
+ color1: string;
+ path: LocationValue[];
+ color2?: string;
+ visible?: boolean;
+ rejectTexture?: boolean;
+ }
+ interface Style {
+ hideWithoutStyle?: boolean;
+ areas: AreaStyle[];
+ }
+ }
+
+ class Buildings extends Layer {
+ constructor(opts?: Buildings.Options);
+ setStyle(style: Buildings.Style): void;
+ }
+}
diff --git a/types/amap-js-api/layer/flexible.d.ts b/types/amap-js-api/layer/flexible.d.ts
new file mode 100644
index 0000000000..bdb4001a7c
--- /dev/null
+++ b/types/amap-js-api/layer/flexible.d.ts
@@ -0,0 +1,20 @@
+declare namespace AMap {
+ namespace TileLayer {
+ namespace Flexible {
+ interface Options extends TileLayer.Options {
+ createTile?(
+ x: number,
+ y: number,
+ z: number,
+ success: (tile: HTMLImageElement | HTMLCanvasElement) => void,
+ fail: () => void
+ ): void;
+ cacheSize?: number;
+ visible?: boolean;
+ }
+ }
+ class Flexible extends TileLayer {
+ constructor(options?: Flexible.Options);
+ }
+ }
+}
diff --git a/types/amap-js-api/layer/layer.d.ts b/types/amap-js-api/layer/layer.d.ts
new file mode 100644
index 0000000000..8f35d949fd
--- /dev/null
+++ b/types/amap-js-api/layer/layer.d.ts
@@ -0,0 +1,20 @@
+declare namespace AMap {
+ namespace Layer {
+ interface Options {
+ map?: Map;
+ }
+ }
+
+ abstract class Layer extends EventEmitter {
+ getContainer(): HTMLDivElement | undefined;
+ getZooms(): [number, number];
+ setOpacity(alpha: number): void;
+ getOpacity(): number;
+ show(): void;
+ hide(): void;
+ setMap(map?: Map | null): void;
+ getMap(): Map | null | undefined;
+ setzIndex(index: number): void;
+ getzIndex(): number;
+ }
+}
diff --git a/types/amap-js-api/layer/layerGroup.d.ts b/types/amap-js-api/layer/layerGroup.d.ts
new file mode 100644
index 0000000000..4cc463eef7
--- /dev/null
+++ b/types/amap-js-api/layer/layerGroup.d.ts
@@ -0,0 +1,21 @@
+declare namespace AMap {
+ class LayerGroup extends Layer {
+ constructor(layers: L | L[]);
+ addLayer(layer: L | L[]): this;
+ addLayers(layers: L | L[]): this;
+ getLayers(): L[];
+ getLayer(finder: (this: null, item: L, index: number, list: L[]) => boolean): L | null;
+ hasLayer(layer: L | ((this: null, item: L, index: number, list: L[]) => boolean)): boolean;
+ removeLayer(layer: L | L[]): this;
+ removeLayers(layer: L | L[]): this;
+ clearLayers(): this;
+ eachLayer(iterator: (this: C, layer: L, index: number, list: L[]) => void, context?: C): void;
+
+ // overwrite
+ setMap(map?: Map): this;
+ hide(): this;
+ show(): this;
+ reload(): this;
+ setOptions(options: any): this;
+ }
+}
diff --git a/types/amap-js-api/layer/massMarks.d.ts b/types/amap-js-api/layer/massMarks.d.ts
new file mode 100644
index 0000000000..1ab5464a5b
--- /dev/null
+++ b/types/amap-js-api/layer/massMarks.d.ts
@@ -0,0 +1,47 @@
+declare namespace AMap {
+ namespace MassMarks {
+ interface EventMap {
+ click: UIEvent<'click', I>;
+ dblclick: UIEvent<'dblclick', I>;
+ mousedown: UIEvent<'mousedown', I>;
+ mouseup: UIEvent<'mouseup', I>;
+ mouseover: UIEvent<'mouseover', I>;
+ mouseout: UIEvent<'mouseout', I>;
+ touchstart: UIEvent<'touchstart', I>;
+ touchend: UIEvent<'touchend', I>;
+ }
+
+ interface Style {
+ anchor: Pixel;
+ url: string;
+ size: Size;
+ rotation?: number;
+ }
+
+ type UIEvent = Event ? D : Data;
+ }>;
+
+ interface Options extends Layer.Options {
+ zIndex?: number;
+ cursor?: string;
+ alwayRender?: boolean;
+ style: Style | Style[];
+ // rejectMapMask
+ }
+ interface Data {
+ lnglat: LocationValue;
+ style?: number;
+ }
+ }
+
+ class MassMarks extends Layer {
+ constructor(data: D[] | string, opts: MassMarks.Options);
+ setStyle(style: MassMarks.Style | MassMarks.Style[]): void;
+ getStyle(): MassMarks.Style | MassMarks.Style[];
+ setData(data: D[] | string): void;
+ getData(): Array> & { lnglat: LngLat }>;
+ clear(): void;
+ }
+}
diff --git a/types/amap-js-api/layer/mediaLayer.d.ts b/types/amap-js-api/layer/mediaLayer.d.ts
new file mode 100644
index 0000000000..a38f5ba025
--- /dev/null
+++ b/types/amap-js-api/layer/mediaLayer.d.ts
@@ -0,0 +1,35 @@
+declare namespace AMap {
+ namespace MediaLayer {
+ interface Options extends Layer.Options {
+ bounds?: Bounds;
+ visible?: boolean;
+ zooms?: [number, number];
+ opacity?: number;
+ }
+ }
+
+ abstract class MediaLayer extends Layer {
+ constructor(options?: MediaLayer.Options);
+ setBounds(bounds: Bounds): void;
+ getBounds(): Bounds;
+ setOptions(options: Partial): void;
+ getOptions(): Partial;
+ getElement(): E | null;
+ }
+
+ class ImageLayer extends MediaLayer {
+ setImageUrl(url: string): void;
+ getImageUrl(): string | undefined;
+ }
+
+ class VideoLayer extends MediaLayer {
+ setVideoUrl(source: string | string[]): void;
+ getVideoUrl(): string | string[] | undefined;
+ }
+
+ class CanvasLayer extends MediaLayer {
+ setCanvas(canvas: HTMLCanvasElement): void;
+ getCanvas(): HTMLCanvasElement | undefined;
+ reFresh(): void;
+ }
+}
diff --git a/types/amap-js-api/layer/tileLayer.d.ts b/types/amap-js-api/layer/tileLayer.d.ts
new file mode 100644
index 0000000000..7576a70664
--- /dev/null
+++ b/types/amap-js-api/layer/tileLayer.d.ts
@@ -0,0 +1,37 @@
+declare namespace AMap {
+ namespace TileLayer {
+ interface EventMap {
+ complete: Event<'complete'>;
+ }
+
+ interface Options extends Layer.Options {
+ tileSize?: number;
+ tileUrl?: string;
+ errorUrl?: string;
+ getTileUrl?: string | ((x: number, y: number, level: number) => string);
+ zIndex?: number;
+ opacity?: number;
+ zooms?: [number, number];
+ detectRetina?: boolean;
+ }
+ class Satellite extends TileLayer { }
+ class RoadNet extends TileLayer { }
+
+ namespace Traffic {
+ interface Options extends TileLayer.Options {
+ autoRefresh?: boolean;
+ interval?: number;
+ }
+ }
+ class Traffic extends TileLayer {
+ constructor(options?: Traffic.Options);
+ }
+ }
+
+ class TileLayer extends Layer {
+ constructor(options?: TileLayer.Options);
+ getTiles(): string[];
+ reload(): void;
+ setTileUrl(url: string | ((x: number, y: number, level: number) => string)): void;
+ }
+}
diff --git a/types/amap-js-api/layer/wms.d.ts b/types/amap-js-api/layer/wms.d.ts
new file mode 100644
index 0000000000..c4561ddf14
--- /dev/null
+++ b/types/amap-js-api/layer/wms.d.ts
@@ -0,0 +1,29 @@
+declare namespace AMap {
+ namespace TileLayer {
+ namespace WMS {
+ interface Params {
+ VERSION?: string;
+ LAYERS?: string;
+ STYLES?: string;
+ FORMAT?: string;
+ TRANSPARENT?: 'TRUE' | 'FALSE';
+ BGCOLOR?: string;
+ EXCEPTIONS?: string;
+ TIME?: string;
+ ELEVATION?: string;
+ }
+ interface Options extends Flexible.Options {
+ url: string;
+ params: Params;
+ blend?: boolean;
+ }
+ }
+ class WMS extends Flexible {
+ constructor(options: WMS.Options);
+ setUrl(url: string): void;
+ getUrl(): string;
+ setParams(params: WMS.Params): void;
+ getParams(): WMS.Params;
+ }
+ }
+}
diff --git a/types/amap-js-api/layer/wmts.d.ts b/types/amap-js-api/layer/wmts.d.ts
new file mode 100644
index 0000000000..5d85e5df48
--- /dev/null
+++ b/types/amap-js-api/layer/wmts.d.ts
@@ -0,0 +1,25 @@
+declare namespace AMap {
+ namespace TileLayer {
+ namespace WMTS {
+ interface Params {
+ Version?: string;
+ Layer?: string;
+ Style?: string;
+ Format?: string;
+ }
+ interface Options extends Flexible.Options {
+ url: string;
+ params: Params;
+ blend?: boolean;
+ }
+ }
+
+ class WMTS extends Flexible {
+ constructor(options: WMTS.Options);
+ setUrl(url: string): void;
+ getUrl(): string;
+ setParams(params: WMTS.Params): void;
+ getParams(): WMTS.Params;
+ }
+ }
+}
diff --git a/types/amap-js-api/lngLat.d.ts b/types/amap-js-api/lngLat.d.ts
new file mode 100644
index 0000000000..4247002b2b
--- /dev/null
+++ b/types/amap-js-api/lngLat.d.ts
@@ -0,0 +1,17 @@
+declare namespace AMap {
+ class LngLat {
+ constructor(lng: number, lat: number, noAutofix?: boolean);
+ offset(east: number, north: number): LngLat;
+ distance(lnglat: LngLat | LngLat[]): number;
+ getLng(): number;
+ getLat(): number;
+ equals(lnglat: LngLat): boolean;
+ toString(): string;
+
+ // internal
+ add(lnglat: LngLat, noAutofix?: boolean): LngLat;
+ subtract(lnglat: LngLat, noAutofix?: boolean): LngLat;
+ divideBy(num: number, noAutofix?: boolean): LngLat;
+ multiplyBy(num: number, noAutofix?: boolean): LngLat;
+ }
+}
diff --git a/types/amap-js-api/map.d.ts b/types/amap-js-api/map.d.ts
new file mode 100644
index 0000000000..46edc68577
--- /dev/null
+++ b/types/amap-js-api/map.d.ts
@@ -0,0 +1,187 @@
+declare namespace AMap {
+ namespace Map {
+ type Feature = 'bg' | 'point' | 'road' | 'building';
+ type ViewMode = '2D' | '3D';
+ interface Options {
+ view?: View2D;
+ layers?: Layer[];
+ zoom?: number;
+ center?: LocationValue;
+ labelzIndex?: number;
+ zooms?: [number, number];
+ lang?: Lang;
+ defaultCursor?: string;
+ crs?: 'EPSG3857' | 'EPSG3395' | 'EPSG4326';
+ animateEnable?: boolean;
+ isHotspot?: boolean;
+ defaultLayer?: TileLayer;
+ rotateEnable?: boolean;
+ resizeEnable?: boolean;
+ showIndoorMap?: boolean;
+ expandZoomRange?: boolean;
+ dragEnable?: boolean;
+ zoomEnable?: boolean;
+ doubleClickZoom?: boolean;
+ keyboardEnable?: boolean;
+ jogEnable?: boolean;
+ scrollWheel?: boolean;
+ touchZoom?: boolean;
+ touchZoomCenter?: number;
+ mapStyle?: string;
+ features?: Feature[] | 'all' | Feature;
+ showBuildingBlock?: boolean;
+ viewMode?: ViewMode;
+ pitch?: number;
+ pitchEnable?: boolean;
+ buildingAnimation?: boolean;
+ skyColor?: string;
+ preloadMode?: boolean;
+ mask?: Array<[number, number]> | Array> | Array>>;
+ maxPitch?: number;
+ rotation?: number;
+ forceVector?: boolean;
+
+ // internal
+ baseRender?: 'vw' | 'd' | 'dv' | 'v';
+ overlayRender?: 'c' | 'd';
+ showLabel?: boolean;
+ gridMapForeign?: boolean;
+ logoUrl?: string;
+ logoUrlRetina?: string;
+ copyright?: string;
+ turboMode?: boolean;
+ workerMode?: boolean;
+ // continuousZoomEnable?: boolean;
+ // showFog: boolean;
+ // yaw: number;
+ // scale: number;
+ // detectRetina: number;
+ }
+ interface Status {
+ animateEnable: boolean;
+ doubleClickZoom: boolean;
+ dragEnable: boolean;
+ isHotspot: boolean;
+ jogEnable: boolean;
+ keyboardEnable: boolean;
+ pitchEnable: boolean;
+ resizeEnable: boolean;
+ rotateEnable: boolean;
+ scrollWheel: boolean;
+ touchZoom: boolean;
+ zoomEnable: boolean;
+ }
+ type HotspotEvent = Event;
+ interface EventMap {
+ click: MapsEvent<'click', Map>;
+ dblclick: MapsEvent<'dblclick', Map>;
+ rightclick: MapsEvent<'rightclick', Map>;
+ rdblclick: MapsEvent<'rdblclick', Map>;
+ mouseup: MapsEvent<'mouseup', Map>;
+ mousedown: MapsEvent<'mousedown', Map>;
+ mousemove: MapsEvent<'mousemove', Map>;
+ mousewheel: MapsEvent<'mousewheel', Map>;
+ mouseover: MapsEvent<'mouseover', Map>;
+ mouseout: MapsEvent<'mouseout', Map>;
+ touchstart: MapsEvent<'touchstart', Map>;
+ touchmove: MapsEvent<'touchmove', Map>;
+ touchend: MapsEvent<'touchend', Map>;
+ contextmenu: MapsEvent<'contextmenu', Map>;
+
+ hotspotclick: HotspotEvent<'hotspotclick'>;
+ hotspotover: HotspotEvent<'hotspotover'>;
+ hotspotout: HotspotEvent<'hotspotout'>;
+
+ complete: Event<'complete'>;
+ mapmove: Event<'mapmove'>;
+ movestart: Event<'movestart'>;
+ moveend: Event<'moveend'>;
+ zoomchange: Event<'zoomchange'>;
+ zoomstart: Event<'zoomstart'>;
+ zoomend: Event<'zoomend'>;
+ dragstart: Event<'dragstart'>;
+ dragging: Event<'dragging'>;
+ dragend: Event<'dragend'>;
+ resize: Event<'resize'>;
+ }
+ }
+
+ class Map extends EventEmitter {
+ constructor(container: string | HTMLElement, opts?: Map.Options);
+ poiOnAMAP(obj: { id: string; location?: LocationValue; name?: string }): void;
+ detailOnAMAP(obj: { id: string; location?: LocationValue; name?: string }): void;
+ getZoom(): number;
+ getLayers(): Layer[];
+ getCenter(): LngLat;
+ getContainer(): HTMLElement | null;
+ getCity(callback: (cityData: {
+ city: string;
+ citycode: string;
+ district: string;
+ province: string | never[]; // province is empty array when getCity fail
+ }) => void): void;
+ getBounds(): Bounds;
+ getLabelzIndex(): number;
+ getLimitBounds(): Bounds;
+ getLang(): Lang;
+ getSize(): Size;
+ getRotation(): number;
+ getStatus(): Map.Status;
+ getDefaultCursor(): string;
+ getResolution(point?: LocationValue): number;
+ getScale(dpi?: number): number;
+ setZoom(level: number): void;
+ setLabelzIndex(index: number): void;
+ setLayers(layers: Layer[]): void;
+ add(overlay: Overlay | Overlay[]): void;
+ remove(overlay: Overlay | Overlay[]): void;
+ getAllOverlays(type?: 'marker' | 'circle' | 'polyline' | 'polygon'): Overlay[];
+ setCenter(center: LocationValue): void;
+ setZoomAndCenter(zoomLevel: number, center: LocationValue): void;
+ setCity(city: string, callback: (this: this, coord: [string, string], zoom: number) => void): void;
+ setBounds(bound: Bounds): Bounds;
+ setLimitBounds(bound: Bounds): void;
+ clearLimitBounds(): void;
+ setLang(lang: Lang): void;
+ setRotation(rotation: number): void;
+ setStatus(status: Partial): void;
+ setDefaultCursor(cursor: string): void;
+ zoomIn(): void;
+ zoomOut(): void;
+ panTo(position: LocationValue): void;
+ panBy(x: number, y: number): void;
+ setFitView(
+ overlayList?: Overlay | Overlay[],
+ immediately?: boolean,
+ avoid?: [number, number, number, number],
+ maxZoom?: number
+ ): Bounds | false | undefined;
+ clearMap(): void;
+ destroy(): void;
+ plugin(name: string | string[], callback: () => void): this;
+ addControl(control: {}): void; // TODO
+ removeControl(control: {}): void; // TODO
+ clearInfoWindow(): void;
+ pixelToLngLat(pixel: Pixel, level?: number): LngLat;
+ lnglatToPixel(lnglat: LocationValue, level?: number): Pixel;
+ containerToLngLat(pixel: Pixel): LngLat;
+ lngLatToContainer(lnglat: LocationValue): Pixel;
+ lnglatTocontainer(lnglat: LocationValue): Pixel;
+ setMapStyle(style: string): void;
+ getMapStyle(): string;
+ setFeatures(feature: Map.Feature | Map.Feature[] | 'all'): void;
+ getFeatures(): Map.Feature | Map.Feature[] | 'all';
+ setDefaultLayer(layer: TileLayer): void;
+ setPitch(pitch: number): void;
+ getPitch(): number;
+ getViewMode_(): Map.ViewMode;
+ lngLatToGeodeticCoord(lnglat: LocationValue): Pixel;
+ geodeticCoordToLngLat(pixel: Pixel): LngLat;
+ }
+}
diff --git a/types/amap-js-api/overlay/bezierCurve.d.ts b/types/amap-js-api/overlay/bezierCurve.d.ts
new file mode 100644
index 0000000000..5778cb72a6
--- /dev/null
+++ b/types/amap-js-api/overlay/bezierCurve.d.ts
@@ -0,0 +1,22 @@
+declare namespace AMap {
+ namespace BezierCurve {
+ interface EventMap extends Polyline.EventMap { }
+ type Options = Merge, {
+ // internal
+ path: Array>>;
+ tolerance?: number;
+ interpolateNumLimit?: [number | number];
+ }>;
+
+ interface GetOptionsResult extends Polyline.GetOptionsResult {
+ path: Array;
+ }
+ }
+ class BezierCurve extends Polyline {
+ constructor(options: BezierCurve.Options);
+ getOptions(): Partial>;
+ // internal
+ getInterpolateLngLats(): LngLat[];
+ getSerializedPath(): number[][];
+ }
+}
diff --git a/types/amap-js-api/overlay/circle.d.ts b/types/amap-js-api/overlay/circle.d.ts
new file mode 100644
index 0000000000..2a1cbd9020
--- /dev/null
+++ b/types/amap-js-api/overlay/circle.d.ts
@@ -0,0 +1,49 @@
+declare namespace AMap {
+ namespace Circle {
+ interface EventMap extends ShapeOverlay.EventMap {
+ setCenter: Event<'setCenter'>;
+ setRadius: Event<'setRadius'>;
+ }
+
+ interface Options {
+ map?: Map;
+ zIndex?: number;
+ center?: LocationValue;
+ bubble?: boolean;
+ cursor?: string;
+ radius?: number;
+ strokeColor?: string;
+ strokeOpcity?: number;
+ strokeWeight?: number;
+ fillColor?: string;
+ fillOpacity?: number;
+ strokeStyle?: StrokeStyle;
+ extData?: ExtraData;
+ strokeDasharray?: number[];
+
+ // internal
+ visible?: boolean;
+ unit?: 'meter' | 'px'; // 'might be typo'
+ }
+
+ type GetOptionsResult = Merge, {
+ path: LngLat[];
+ center: LngLat;
+ radius: number;
+ }>;
+ }
+
+ class Circle extends ShapeOverlay {
+ constructor(options?: Circle.Options);
+ setCenter(center: LocationValue, preventEvent?: boolean): void;
+ getCenter(): LngLat | undefined;
+ getBounds(): Bounds | null;
+ setRadius(radius: number, preventEvent?: boolean): void;
+ getRadius(): number;
+ setOptions(options?: Circle.Options): void;
+ getOptions(): Partial>;
+ contains(point: LocationValue): boolean;
+ // internal
+ getPath(count?: number): LngLat[];
+ }
+}
diff --git a/types/amap-js-api/overlay/circleMarker.d.ts b/types/amap-js-api/overlay/circleMarker.d.ts
new file mode 100644
index 0000000000..13e4162f46
--- /dev/null
+++ b/types/amap-js-api/overlay/circleMarker.d.ts
@@ -0,0 +1,4 @@
+declare namespace AMap {
+ // tslint:disable-next-line;
+ class CircleMarker extends Circle {}
+}
diff --git a/types/amap-js-api/overlay/contextMenu.d.ts b/types/amap-js-api/overlay/contextMenu.d.ts
new file mode 100644
index 0000000000..72c7fc2852
--- /dev/null
+++ b/types/amap-js-api/overlay/contextMenu.d.ts
@@ -0,0 +1,23 @@
+declare namespace AMap {
+ namespace ContextMenu {
+ interface Options {
+ content?: string | HTMLElement;
+ // internal
+ visible?: boolean;
+ }
+
+ interface EventMap {
+ items: Event<'items'>;
+ open: Event<'open', { target: I }>;
+ close: Event<'close', { target: I }>;
+ }
+ }
+
+ class ContextMenu extends Overlay {
+ constructor(options?: ContextMenu.Options);
+ addItem(text: string, fn: (this: HTMLLIElement) => void, num?: number): void;
+ removeItem(test: string, fn: (this: HTMLLIElement) => void): void;
+ open(map: Map, position: LocationValue): void;
+ close(): void;
+ }
+}
diff --git a/types/amap-js-api/overlay/ellipse.d.ts b/types/amap-js-api/overlay/ellipse.d.ts
new file mode 100644
index 0000000000..55feaf3112
--- /dev/null
+++ b/types/amap-js-api/overlay/ellipse.d.ts
@@ -0,0 +1,27 @@
+declare namespace AMap {
+ namespace Ellipse {
+ interface EventMap extends ShapeOverlay.EventMap {
+ setPath: Event<'setPath'>;
+ setCenter: Event<'setCenter'>;
+ }
+
+ interface Options extends Polygon.Options {
+ center?: LocationValue;
+ radius?: [number, number];
+ }
+ type GetOptionsResult = Merge, {
+ radius: [number, number];
+ }>;
+ }
+
+ class Ellipse extends Polygon {
+ constructor(options?: Ellipse.Options);
+ getCenter(): LngLat | undefined;
+ setCenter(center: LocationValue, preventEvent?: boolean): void;
+ setOptions(options: Ellipse.Options): void;
+
+ // internal
+ setRadius(radius: [number, number], preventEvent?: boolean): void;
+ getRadius(): [number, number];
+ }
+}
diff --git a/types/amap-js-api/overlay/geoJSON.d.ts b/types/amap-js-api/overlay/geoJSON.d.ts
new file mode 100644
index 0000000000..75098a59f0
--- /dev/null
+++ b/types/amap-js-api/overlay/geoJSON.d.ts
@@ -0,0 +1,43 @@
+declare namespace AMap {
+ namespace GeoJSON {
+ type Geometry = {
+ type: 'Point';
+ coordinates: [number, number];
+ } | {
+ type: 'MultiPoint' | 'LineString' | 'Polygon';
+ coordinates: Array<[number, number]>;
+ } | {
+ type: 'MultiLineString' | 'MultiPolygon';
+ coordinates: Array>;
+ } | {
+ type: 'GeometryCollection';
+ geometries: Geometry[];
+ };
+
+ type GeoJSONObject = {
+ type: 'Feature';
+ properties: any;
+ geometry: Geometry;
+ } | {
+ type: 'FeatureCollection',
+ properties: any;
+ features: GeoJSONObject[];
+ };
+ interface Options {
+ geoJSON?: GeoJSONObject | GeoJSONObject[];
+ getMarker?(obj: GeoJSONObject, lnglat: LngLat): Marker;
+ getPolyline?(obj: GeoJSONObject, lnglats: LngLat[]): Polyline;
+ getPolygon?(obj: GeoJSONObject, lnglats: LngLat[]): Polygon;
+ coordsToLatLng?(lnglat: LngLat): LngLat;
+
+ // internal
+ coordsToLatLngs?(lnglats: LngLat[]): LngLat[];
+ }
+ }
+
+ class GeoJSON extends OverlayGroup {
+ constructor(options?: GeoJSON.Options);
+ importData(obj: GeoJSON.GeoJSONObject | GeoJSON.GeoJSONObject[]): void;
+ toGeoJSON(): GeoJSON.GeoJSONObject[];
+ }
+}
diff --git a/types/amap-js-api/overlay/icon.d.ts b/types/amap-js-api/overlay/icon.d.ts
new file mode 100644
index 0000000000..be300feef3
--- /dev/null
+++ b/types/amap-js-api/overlay/icon.d.ts
@@ -0,0 +1,16 @@
+declare namespace AMap {
+ namespace Icon {
+ interface Options {
+ size?: SizeValue;
+ imageOffset?: Pixel;
+ image?: string;
+ imageSize?: SizeValue;
+ }
+ }
+
+ class Icon extends EventEmitter {
+ constructor(options?: Icon.Options);
+ setImageSize(size: SizeValue): void;
+ getImageSize(): Size;
+ }
+}
diff --git a/types/amap-js-api/overlay/infoWindow.d.ts b/types/amap-js-api/overlay/infoWindow.d.ts
new file mode 100644
index 0000000000..54bedd95a8
--- /dev/null
+++ b/types/amap-js-api/overlay/infoWindow.d.ts
@@ -0,0 +1,37 @@
+declare namespace AMap {
+ namespace InfoWindow {
+ interface EventMap {
+ change: Event<'change', { target: I }>;
+ open: Event<'open', { target: I }>;
+ close: Event<'close', { target: I }>;
+ }
+
+ interface Options extends Overlay.Options {
+ isCustom?: boolean;
+ autoMove?: boolean;
+ closeWhenClickMap?: boolean;
+ content?: string | HTMLElement;
+ size?: SizeValue;
+ offset?: Pixel;
+ position?: LocationValue;
+ showShadow?: boolean;
+ // internal
+ height?: number;
+ }
+ }
+
+ class InfoWindow extends Overlay {
+ constructor(options?: InfoWindow.Options);
+ open(map: Map, position?: LocationValue): void;
+ close(): void;
+ getIsOpen(): boolean;
+ setContent(content: string | HTMLElement): void;
+ getContent(): string | HTMLElement | undefined;
+ setPosition(lnglat: LocationValue): void;
+ getPosition(): LngLat | undefined;
+ setSize(size: SizeValue): void;
+ getSize(): Size | undefined;
+ // internal
+ setOffset(offset: Pixel): void;
+ }
+}
diff --git a/types/amap-js-api/overlay/marker.d.ts b/types/amap-js-api/overlay/marker.d.ts
new file mode 100644
index 0000000000..e24ce7be8f
--- /dev/null
+++ b/types/amap-js-api/overlay/marker.d.ts
@@ -0,0 +1,103 @@
+declare namespace AMap {
+ namespace Marker {
+ interface EventMap {
+ click: MapsEvent<'click', I>;
+ dblclick: MapsEvent<'dblclick', I>;
+ rightclick: MapsEvent<'rightclick', I>;
+ mousemove: MapsEvent<'mousemove', I>;
+ mouseover: MapsEvent<'mouseover', I>;
+ mouseout: MapsEvent<'mouseout', I>;
+ mousedown: MapsEvent<'mousedown', I>;
+ mouseup: MapsEvent<'mouseup', I>;
+ dragstart: MapsEvent<'dragstart', I>;
+ dragging: MapsEvent<'dragging', I>;
+ dragend: MapsEvent<'dragend', I>;
+ moving: Event<'moving', { passwdPath: LngLat[]; }>;
+ moveend: Event<'moveend'>;
+ movealong: Event<'movealong'>;
+ touchstart: MapsEvent<'touchstart', I>;
+ touchmove: MapsEvent<'touchmove', I>;
+ touchend: MapsEvent<'touchend', I>;
+ }
+
+ interface Label {
+ content?: string;
+ offset?: Pixel;
+ }
+
+ interface Options extends Overlay.Options {
+ position?: LocationValue;
+ offset?: Pixel;
+ icon?: string | Icon;
+ content?: string | HTMLElement;
+ topWhenClick?: boolean;
+ bubble?: boolean;
+ draggable?: boolean;
+ raiseOnDrag?: boolean;
+ cursor?: string;
+ visible?: boolean;
+ zIndex?: number;
+ angle?: number;
+ autoRotation?: boolean;
+ animation?: AnimationName;
+ shadow?: Icon | string;
+ title?: string;
+ shape?: MarkerShape;
+ label?: Label;
+ zooms?: [number, number];
+
+ // internal
+ topWhenMouseOver?: boolean;
+ height?: number;
+ }
+ }
+
+ class Marker extends Overlay {
+ constructor(options?: Marker.Options);
+ markOnAMAP(obj?: { name?: string, position?: LocationValue }): void;
+ getOffset(): Pixel;
+ setOffset(offset: Pixel): void;
+ setAnimation(animate: AnimationName, prevent?: boolean): void;
+ getAnimation(): AnimationName;
+ setClickable(cilckable: boolean): void;
+ getClickable(): boolean;
+ getPosition(): LngLat | undefined;
+ setPosition(position: LocationValue): void;
+ setAngle(angle: number): void;
+ setLabel(label?: Marker.Label): void;
+ getLabel(): Marker.Label | undefined;
+ getAngle(): number;
+ setzIndex(index: number): void;
+ getzIndex(): number;
+ setIcon(content: string | Icon): void;
+ getIcon(): string | Icon | undefined;
+ setDraggable(draggable: boolean): void;
+ getDraggable(): boolean;
+ setCursor(cursor: string): void;
+ setContent(content: string | HTMLElement): void;
+ getContent(): string | HTMLElement;
+ moveAlong(
+ path: LngLat[],
+ speed: number,
+ timingFunction?: (t: number) => number,
+ circleable?: boolean
+ ): void;
+ moveTo(
+ path: LocationValue,
+ speed: number,
+ timingFunction?: (t: number) => number
+ ): void;
+ stopMove(): void;
+ pauseMove(): boolean;
+ resumeMove(): boolean;
+ setMap(map: null | Map): void;
+ setTitle(title: string): void;
+ getTitle(): string | undefined;
+ setTop(isTop: boolean): void;
+ getTop(): boolean;
+ setShadow(icon?: Icon | string): void;
+ getShadow(): Icon | undefined | string;
+ setShape(shape?: MarkerShape): void;
+ getShape(): MarkerShape | undefined;
+ }
+}
diff --git a/types/amap-js-api/overlay/markerShape.d.ts b/types/amap-js-api/overlay/markerShape.d.ts
new file mode 100644
index 0000000000..f0d6c39bac
--- /dev/null
+++ b/types/amap-js-api/overlay/markerShape.d.ts
@@ -0,0 +1,21 @@
+declare namespace AMap {
+ namespace MarkerShape {
+ interface CircleOptions {
+ type: 'circle';
+ coords: [number, number, number];
+ }
+ interface PolyOptions {
+ type: 'poly';
+ coords: number[];
+ }
+ interface RectOptions {
+ type: 'rect';
+ coords: [number, number, number, number];
+ }
+ type Options = CircleOptions | PolyOptions | RectOptions;
+ }
+
+ class MarkerShape extends EventEmitter {
+ constructor(options: MarkerShape.Options);
+ }
+}
diff --git a/types/amap-js-api/overlay/overlay.d.ts b/types/amap-js-api/overlay/overlay.d.ts
new file mode 100644
index 0000000000..1726b39c3e
--- /dev/null
+++ b/types/amap-js-api/overlay/overlay.d.ts
@@ -0,0 +1,37 @@
+declare namespace AMap {
+ namespace Overlay {
+ interface EventMap {
+ touchstart: MapsEvent<'touchstart', I>;
+ touchmove: MapsEvent<'touchmove', I>;
+ touchend: MapsEvent<'touchend', I>;
+ click: MapsEvent<'click', I>;
+ rightclick: MapsEvent<'rightclick', I>;
+ dblclick: MapsEvent<'dblclick', I>;
+ mousemove: MapsEvent<'mousemove', I>;
+ mouseover: MapsEvent<'mouseover', I>;
+ mousedown: MapsEvent<'mousedown', I>;
+ mouseup: MapsEvent<'mouseup', I>;
+ }
+ interface Options {
+ map?: Map;
+ cursor?: string;
+ extData?: ExtraData;
+ bubble?: boolean;
+ clickable?: boolean;
+ draggable?: boolean;
+ }
+ }
+ abstract class Overlay extends EventEmitter {
+ constructor(options?: Overlay.Options);
+ show(): void;
+ hide(): void;
+ getMap(): Map | null | undefined;
+ setMap(map: Map | null): void;
+ setExtData(extData: ExtraData): void;
+ getExtData(): ExtraData | {};
+
+ // internal
+ setHeight(height?: number | string): void;
+ getHeight(): number | string;
+ }
+}
diff --git a/types/amap-js-api/overlay/overlayGroup.d.ts b/types/amap-js-api/overlay/overlayGroup.d.ts
new file mode 100644
index 0000000000..d397505b04
--- /dev/null
+++ b/types/amap-js-api/overlay/overlayGroup.d.ts
@@ -0,0 +1,30 @@
+type ReferOverlayOptions =
+ O extends AMap.BezierCurve ? AMap.BezierCurve.Options
+ : O extends AMap.Polyline ? AMap.Polyline.Options
+ : O extends AMap.Circle ? AMap.Circle.Options
+ : O extends AMap.Ellipse ? AMap.Ellipse.Options
+ : O extends AMap.Polygon ? AMap.Polygon.Options
+ : O extends AMap.Text ? AMap.Text.Options
+ : O extends AMap.Marker ? AMap.Marker.Options
+ : O extends AMap.Rectangle ? AMap.Rectangle.Options
+ : any;
+
+declare namespace AMap {
+ class OverlayGroup extends Overlay {
+ constructor(overlays?: O | O[]);
+ addOverlay(overlay: O | O[]): this;
+ addOverlays(overlay: O | O[]): this;
+ getOverlays(): O[];
+ hasOverlay(overlay: O | ((this: null, item: O, index: number, list: O[]) => boolean)): boolean;
+ removeOverlay(overlay: O | O[]): this;
+ removeOverlays(overlay: O | O[]): this;
+ clearOverlays(): this;
+ eachOverlay(iterator: (this: C, overlay: O, index: number, overlays: O[]) => void, context?: C): this;
+ setMap(map: null | Map): this;
+ setOptions(options: ReferOverlayOptions): this;
+ show(): this;
+ hide(): this;
+
+ getOverlay(finder: ((this: null, item: O, index: number, list: O[]) => boolean) | O): O | null;
+ }
+}
diff --git a/types/amap-js-api/overlay/pathOverlay.d.ts b/types/amap-js-api/overlay/pathOverlay.d.ts
new file mode 100644
index 0000000000..de21aa35a7
--- /dev/null
+++ b/types/amap-js-api/overlay/pathOverlay.d.ts
@@ -0,0 +1,20 @@
+declare namespace AMap {
+ namespace PathOverlay {
+ interface EventMap extends ShapeOverlay.EventMap { }
+ interface Options extends Overlay.Options {
+ visible?: boolean;
+ zIndex?: number;
+ strokeColor?: string;
+ strokeOpacity?: number;
+ strokeWeight?: number;
+ strokeStyle?: StrokeStyle;
+ strokeDasharray?: number[];
+ lineJoin?: StrokeLineJoin;
+ lineCap?: StrokeLineCap;
+ }
+ }
+ abstract class PathOverlay extends ShapeOverlay {
+ constructor(options?: PathOverlay.Options);
+ getBounds(): Bounds | (this extends Rectangle ? undefined : null);
+ }
+}
diff --git a/types/amap-js-api/overlay/polygon.d.ts b/types/amap-js-api/overlay/polygon.d.ts
new file mode 100644
index 0000000000..8792e0e135
--- /dev/null
+++ b/types/amap-js-api/overlay/polygon.d.ts
@@ -0,0 +1,32 @@
+declare namespace AMap {
+ namespace Polygon {
+ interface EventMap extends PathOverlay.EventMap { }
+ interface Options extends PathOverlay.Options {
+ path?: LocationValue[] | LocationValue[][];
+ fillColor?: string;
+ fillOpacity?: number;
+ }
+
+ interface GetOptionsResult extends ShapeOverlay.GetOptionsResult {
+ fillColor: string;
+ fillOpacity: number;
+ path: LngLat[] | LngLat[][];
+ lineJoin: StrokeLineJoin;
+ texture: string;
+ }
+ }
+
+ class Polygon extends PathOverlay {
+ constructor(options?: Polygon.Options);
+ setPath(path: LocationValue[] | LocationValue[][]): void;
+ getPath(): LngLat[] | LngLat[][];
+ setOptions(options: Polygon.Options): void;
+ getOptions(): Partial<
+ this extends Omit ? Ellipse.GetOptionsResult :
+ this extends Omit ? Rectangle.GetOptionsResult :
+ Polygon.GetOptionsResult
+ >;
+ getArea(): number;
+ contains(point: LocationValue): boolean;
+ }
+}
diff --git a/types/amap-js-api/overlay/polyline.d.ts b/types/amap-js-api/overlay/polyline.d.ts
new file mode 100644
index 0000000000..207279b208
--- /dev/null
+++ b/types/amap-js-api/overlay/polyline.d.ts
@@ -0,0 +1,46 @@
+declare namespace AMap {
+ namespace Polyline {
+ interface EventMap extends PathOverlay.EventMap { }
+ interface GetOptionsResult