diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 6477b03f07..81913375f9 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 @redlickigrzegorz
+/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
@@ -371,10 +375,11 @@
/types/bindings/ @unindented
/types/bintrees/ @CjS77
/types/bip21/ @stefanhuber
-/types/bip32/ @me
+/types/bip32/ @eduhenke
/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
@@ -434,11 +440,10 @@
/types/bootstrap3-dialog/ @nakupanda @cnboland
/types/bounce.js/ @cherrry
/types/box2d/ @jbaldwin
-/types/boxen/ @BendingBender
/types/bpmn-moddle/ @haydos89
/types/brace-expansion/ @BendingBender
/types/braces/ @vemoo
-/types/braft-editor/ @me
+/types/braft-editor/ @petitspois
/types/braintree-web/ @chlela
/types/breeze/ @borisyankov
/types/bricks.js/ @kondi
@@ -453,11 +458,11 @@
/types/browser-resolve/ @marionebl
/types/browser-sync/ @joeskeen @aznnomness
/types/browserify/ @AndrewGaspar @jvilk @leonard-thieu @LinusU
-/types/browserslist/ @davecardwell
+/types/browserslist/ @davecardwell @AndrewLeedham
/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 +474,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 +486,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 +507,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,18 +519,27 @@
/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/carlo/ @adierkens
/types/case-sensitive-paths-webpack-plugin/ @r3nya
-/types/caseless/ @downace @mastermatt
+/types/caseless/ @downace @mastermatt @forivall
/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/centra/ @twooster
/types/cesium/ @Zuzon @hnipps @szechyjs @golyalpha
/types/cfn-response/ @ivoisbelongtous
/types/chai/ @jedmao @Bartvds @AGBrown @olivr70 @mwistrand @joshuakgoldberg @shaunluttin @Naktibalda @micksatana @ErikSchierboom
@@ -535,10 +552,10 @@
/types/chai-enzyme/ @asvetliakov
/types/chai-fs/ @dimitardanailov
/types/chai-fuzzy/ @Bartvds
-/types/chai-http/ @Nemo157 @G1itcher @CaselIT @bas-l
/types/chai-jest-snapshot/ @mattvperry
/types/chai-jquery/ @kazimanzurrashid
/types/chai-json-schema/ @ulrichheiniger
+/types/chai-moment/ @chrisgodsey
/types/chai-oequal/ @mizunashi-mana
/types/chai-roughly/ @swist
/types/chai-spies/ @kuzn-ilya @harm-less @jounisuo
@@ -561,11 +578,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 +592,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
@@ -591,7 +608,6 @@
/types/clean-css/v3/ @tkrotoff
/types/clean-regexp/ @BendingBender
/types/clean-stack/ @BendingBender
-/types/clean-webpack-plugin/ @j-f1
/types/clear-require/ @dan-j
/types/clearbladejs-client/ @ClearBlade
/types/clearbladejs-node/ @ClearBlade
@@ -618,6 +634,7 @@
/types/clmtrackr/ @hellochar
/types/clndr/ @jasperjn
/types/clockpicker/ @jfcere
+/types/clone-deep/ @tanfonto
/types/cloneable-readable/ @qlonik
/types/cloner/ @matrumz
/types/closure-compiler/ @mprobst
@@ -627,6 +644,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 +655,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 +665,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 +674,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 +692,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,27 +702,26 @@
/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
+/types/config-yaml/ @Arylo
/types/configstore/ @ArcticLight
/types/configurable/ @jewbre
/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
@@ -730,7 +750,6 @@
/types/cookies/ @WangZishi @jkeylu @BendingBender
/types/copy/ @ffflorian
/types/copy-paste/ @SrTobi
-/types/copy-text-to-clipboard/ @BendingBender
/types/copy-webpack-plugin/ @flying-sheep
/types/copyfiles/ @ffflorian
/types/cordova-ionic/ @hendrikmaus
@@ -773,9 +792,7 @@
/types/country-select-js/ @humrochagf
/types/countup.js/ @shermendev
/types/coverup/ @bevalorous
-/types/cp-file/ @BendingBender
/types/cpx/ @alan-agius4
-/types/cpy/ @mhegazy @BendingBender
/types/cqrs-domain/ @blissi
/types/cradle/ @panuhorsmalahti
/types/crc/ @YuJianrong
@@ -785,6 +802,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
@@ -811,9 +829,11 @@
/types/css/ @ilich
/types/css-font-loading-module/ @slikts
/types/css-modules/ @NeekSandhu
+/types/css-modules-loader-core/ @skovy
/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 +865,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 +875,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 +914,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 +925,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,14 +939,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/decamelize/ @samverschueren
+/types/debug/ @swook @galtalmor @zamb3zi @brasten @npenin
/types/decay/ @enaeseth
/types/decode-entities/ @waspothegreat
/types/decode-uri-component/ @BendingBender
@@ -934,6 +955,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 +968,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 +983,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
@@ -993,11 +1012,12 @@
/types/diffie-hellman/ @BendingBender
/types/digibyte/ @lautarodragan @werewolfe
/types/dinero.js/ @BendingBender
+/types/dingtalk-robot-sender/ @bangbang93
/types/dir-glob/ @BendingBender
/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
@@ -1022,9 +1042,12 @@
/types/dom-mediacapture-record/ @eliasmeire
/types/dom-to-image/ @JipSterk
/types/dom4/ @adidahiya @giladgray
+/types/domelementtype/ @johandavidson
+/types/domhandler/ @johandavidson
/types/domo/ @Steve-Fenton
/types/dompurify/ @bazuzi @FlowCrypt
/types/domready/ @dotnetnerd
+/types/domutils/ @johandavidson
/types/donna/ @vvakame
/types/dookie/ @swanest
/types/dot/ @ZombieHunter
@@ -1049,8 +1072,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 +1089,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
@@ -1082,8 +1108,9 @@
/types/easy-table/ @nikeee
/types/easy-xapi/ @DeadAlready
/types/easy-xapi-utils/ @DeadAlready
+/types/easydate/ @satyarohith
/types/ebongarde-root/ @Ebongarde
-/types/echarts/ @xieisabug @AntiMoron @liveangela @Ovilia @iRON5
+/types/echarts/ @xieisabug @AntiMoron @liveangela @Ovilia @iRON5 @bilalucar @tmtron @dwhitney
/types/ecma-proposal-math-extensions/ @ksm2
/types/ecurve/ @mhegazy
/types/ed25519/ @erikma
@@ -1151,7 +1178,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 +1206,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 +1247,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,16 +1280,19 @@
/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/v30/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo
+/types/expo/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo @levansuper @ihmpavel @burtek @jkillian @satya164 @vinitsood @mattiassamskar @jaulz
+/types/expo/v31/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo @levansuper @ihmpavel @burtek @jkillian @satya164 @mattiassamskar
+/types/expo/v30/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo @mattiassamskar
/types/expo/v27/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo
/types/expo/v26/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @tinaroh
/types/expo/v25/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov
/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 +1343,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,13 +1363,14 @@
/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
/types/factory-girl/ @stackbuilders @sestrella @elcuy
/types/faker/ @bensw @basp @Kuniwak @mattbishop
/types/faker/v3/ @Kuniwak
+/types/falafel/ @delprzemo
/types/falcor/ @Quramy
/types/falcor-express/ @Quramy
/types/falcor-http-datasource/ @Quramy
@@ -1346,7 +1378,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 +1387,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 +1403,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
@@ -1401,11 +1429,10 @@
/types/figures/ @BendingBender
/types/file-exists/ @BendingBender
/types/file-saver/ @cyrilschumacher @DaIgeb @chrismbarr
-/types/file-type/ @tcaesvk @BendingBender
/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 +1494,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 +1713,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
@@ -1695,6 +1723,7 @@
/types/get-node-dimensions/ @vincekovacs
/types/get-port/ @plantain-00 @BendingBender
/types/get-range/ @BendingBender
+/types/get-res/ @satyarohith
/types/get-stdin/ @DanielRosenwasser
/types/get-stream/ @douglasduteil @BendingBender
/types/get-urls/ @BendingBender
@@ -1708,7 +1737,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 +1765,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 +1784,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 +1812,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 +1824,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
@@ -1809,7 +1841,8 @@
/types/grasp/ @agnoster
/types/gravatar/ @denis-sokolov
/types/gravatar-url/ @ivangabriele
-/types/greasemonkey/ @kotas
+/types/greasemonkey/ @kotas @nikolay-borzov
+/types/greasemonkey/v3/ @kotas
/types/grecaptcha/ @DethAriel @rafaeltavares
/types/grecaptcha/v0/ @brentj73
/types/gregorian-calendar/ @cwalv
@@ -1817,7 +1850,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 +1878,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 +1932,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 +1941,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,17 +1983,18 @@
/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
/types/hexo-util/ @segayuu
-/types/highcharts/ @damianog @baltie @AlbertOzimek @hanssens
+/types/highcharts/ @damianog @baltie @AlbertOzimek @hanssens @jgresham
/types/highcharts-ng/ @scatcher
/types/highland/ @Bartvds @hgwood @iwllyu @alvis @notbobthebuilder
/types/highlight.js/ @nikeee @sourrust @joshuakgoldberg
@@ -1969,15 +2005,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 +2022,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 +2040,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,11 +2048,11 @@
/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
/types/humanparser/ @MichalPodeszwa
/types/humps/ @nikeee
@@ -2028,13 +2067,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
@@ -2054,7 +2090,6 @@
/types/ignore-styles/ @tai2
/types/iltorb/ @Alorel @reconbot
/types/image-size/ @elisee
-/types/image-type/ @ffflorian
/types/imagemagick/ @soywiz
/types/imagemagick-native/ @horiuchi
/types/imagemapster/ @delphinus35
@@ -2075,6 +2110,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 +2121,13 @@
/types/iniparser/ @chrootsu
/types/init-package-json/ @kfarnung
/types/ink/ @cprecioso
+/types/ink-spinner/ @lukostry
+/types/ink-table/ @lukostry
+/types/ink-testing-library/ @MancunianSam
+/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 +2138,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 +2174,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 +2193,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
@@ -2176,7 +2218,6 @@
/types/is-running/ @danwbyrne
/types/is-scoped/ @postcrafter
/types/is-stream/ @me
-/types/is-svg/ @BendingBender
/types/is-text-path/ @mhegazy
/types/is-touch-device/ @screendriver
/types/is-trademarked/ @BendingBender
@@ -2196,11 +2237,11 @@
/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
-/types/istanbul-lib-coverage/ @jason0x43
+/types/istanbul-lib-coverage/ @jason0x43 @loryman
/types/istanbul-lib-hook/ @jason0x43
/types/istanbul-lib-instrument/ @jason0x43
/types/istanbul-lib-report/ @jason0x43
@@ -2240,14 +2281,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 +2308,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 +2464,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 +2495,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 +2516,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
@@ -2480,8 +2524,8 @@
/types/jsrender/ @zakki
/types/jsreport-core/ @taoqf
/types/jsreport-html-embedded-in-docx/ @taoqf
-/types/jsreport-html-to-xlsx/ @me
-/types/jsreport-html-to-xlsx/v1/ @me
+/types/jsreport-html-to-xlsx/ @taoqf
+/types/jsreport-html-to-xlsx/v1/ @taoqf
/types/jsreport-jsrender/ @taoqf
/types/jsreport-phantom-pdf/ @taoqf
/types/jsreport-xlsx/ @taoqf
@@ -2515,7 +2559,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 +2570,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 +2585,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 +2593,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 +2625,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 +2639,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 +2665,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 +2704,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 +2758,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
@@ -2721,11 +2769,12 @@
/types/lingui__macro/ @huan086
/types/lingui__react/ @huan086
/types/linkify-issues/ @BendingBender
-/types/linkify-it/ @praxxis
+/types/linkify-it/ @praxxis @alexplumb
/types/linkify-urls/ @BendingBender
/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 +3086,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 +3093,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 +3107,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 +3126,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 +3140,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 +3158,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 +3226,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 +3266,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
@@ -3248,6 +3298,7 @@
/types/mixto/ @vvakame
/types/mjml/ @aahoughton @marpstar
/types/mjml-react/ @henrinormak
+/types/mkcert/ @asachin96
/types/mkdirp/ @Bartvds @mrmlnc
/types/mkdirp-promise/ @pluma
/types/mkpath/ @optical
@@ -3279,19 +3330,20 @@
/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/mongo-sanitize/ @CedricCazin @penumbra1
+/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/v4/ @simonxca @horiuchi @lukasz-zak
+/types/mongoose/ @horiuchi @lukasz-zak @Alorel @jendrikw @ethanresnick @vologab @jussikinnula @ondratra @alfirin @idandrd @various89 @Fazendaaa @NormanPerrin @danmana @stablio @emmanuelgautier @frontendmonster @mingchen @penumbra1 @orblazer
+/types/mongoose/v4/ @simonxca @horiuchi @lukasz-zak @murbanowicz
/types/mongoose-auto-increment/ @AyaMorisawa
/types/mongoose-deep-populate/ @AyaMorisawa
/types/mongoose-geojson-schema/ @bondz
@@ -3315,8 +3367,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
@@ -3330,7 +3381,7 @@
/types/msportalfx-test/ @julioct
/types/mssql/ @jaminfarr @buzinas @mrrichar @elhaard @pkeuter @mcdado
/types/mu2/ @jedigo
-/types/mui-datatables/ @favna
+/types/mui-datatables/ @favna @ankithkonda
/types/muicss/ @samuelneff
/types/multer/ @jt000 @DavidBR-SW @mxl @hyunseob
/types/multer-gridfs-storage/ @devconcept
@@ -3344,6 +3395,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 +3421,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 +3491,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 +3513,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,12 +3527,13 @@
/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
/types/node-memwatch/ @Kroisse
/types/node-mysql-wrapper/ @kataras
-/types/node-notifier/ @tkQubo
+/types/node-notifier/ @tkQubo @loryman
/types/node-polyglot/ @timjk @liamross
/types/node-powershell/ @rodrigoff
/types/node-pushnotifications/ @menushka
@@ -3485,6 +3542,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 +3564,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 +3581,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,17 +3594,18 @@
/types/npm-email/ @BendingBender
/types/npm-keyword/ @BendingBender
/types/npm-license-crawler/ @ffflorian
-/types/npm-name/ @BendingBender
+/types/npm-list-author-packages/ @ffflorian
/types/npm-package-arg/ @mgroenhoff @OiYouYeahYou
/types/npm-packlist/ @ajafff
/types/npm-paths/ @BendingBender
-/types/npm-run-path/ @BendingBender
+/types/npm-registry-package-info/ @ffflorian
/types/npm-user/ @BendingBender
/types/npm-user-packages/ @BendingBender
/types/npmlog/ @DanielMSchmidt @littlepiggy03
/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 +3618,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 +3649,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 +3663,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
@@ -3619,7 +3682,7 @@
/types/openlayers/ @osechet @wb14123 @ailrun @mylen @iamthechad @danmana @yairtawil @pierremarc @hauke96 @gberaudo
/types/openlayers/v3/ @osechet @matthiasdailey-ccri
/types/openlayers/v2/ @bolhovsky
-/types/openpgp/ @errietta @damonpam @po5i @ecamellini
+/types/openpgp/ @errietta @damonpam @po5i @ecamellini @SardineFish
/types/openstack-wrapper/ @sanjaymadane
/types/opentok/ @westy92 @CatGuardian
/types/opentype.js/ @danmarshall @edzis
@@ -3628,9 +3691,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,33 +3719,25 @@
/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
/types/p-series/ @BendingBender
/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 +3746,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 +3768,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
@@ -3782,7 +3834,6 @@
/types/path-exists/v1/ @shiwano
/types/path-is-absolute/ @mhegazy
/types/path-is-inside/ @aomarks
-/types/path-key/ @BendingBender
/types/path-regex/ @BendingBender
/types/path-type/ @BendingBender
/types/pathfinding/ @BNedry
@@ -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/pet-finder-api/ @ncipollina
/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,8 @@
/types/phantom/ @horiuchi @llRandom
/types/phantomcss/ @abauzac
/types/phantomjs/ @jedhunsaker @keesey
-/types/phoenix/ @mciastek
+/types/phin/ @twooster
+/types/phoenix/ @mciastek @John-Goff @princemaple
/types/phone/ @DxCx
/types/phone-formatter/ @westy92
/types/phonegap/ @borisyankov @DickvdBrink
@@ -3839,7 +3893,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 +3907,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 +3918,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 +3953,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
@@ -3923,17 +3979,20 @@
/types/power-assert/ @vvakame
/types/power-assert-formatter/ @vvakame
/types/powerbi-visuals-tools/ @zBritva @Microsoft
+/types/preact-i18n/ @ltetzlaff
/types/precise/ @codeanimal
/types/precond/ @olsio
/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 +4001,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 +4029,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,8 +4046,11 @@
/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/protoc-plugin/ @jonnyreeves
+/types/protocol-buffers-schema/ @claasahl
/types/proton-native/ @khanhas @ltetzlaff
/types/protractor-browser-logs/ @rokadias
/types/protractor-helpers/ @johncant
@@ -3997,14 +4060,13 @@
/types/proxy-lists/ @BehindTheMath
/types/proxy-verifier/ @BehindTheMath
/types/proxyquire/ @jt000
-/types/ps-list/ @BendingBender
/types/ps-tree/ @alessiopcc
/types/pseudo-audio-param/ @kirbysayshi
/types/psl/ @BendingBender
/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
@@ -4012,7 +4074,7 @@
/types/pumpify/ @JustinBeckwith @aoberoi
/types/punycode/ @yavanosta
/types/pupa/ @nju33
-/types/puppeteer/ @marvinhagemeister @cdeutsch @ksm2 @SimonSchick
+/types/puppeteer/ @marvinhagemeister @cdeutsch @ksm2 @SimonSchick @SerbanGhita
/types/puppeteer/v0/ @marvinhagemeister @cdeutsch
/types/puppeteer-core/ @mtsmfm
/types/pure-render-decorator/ @seansfkelley
@@ -4035,10 +4097,7 @@
/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
/types/quill/ @sumitkm @guillaume-ro-fr @43081j @AnielloFalcone @mhamri
/types/quixote/ @greybax
/types/qunit/ @waratuman @mike-north
@@ -4053,7 +4112,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 +4150,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 +4161,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 @saranshkataria
/types/react/v15/ @bbenezech @pzavolinsky @digiguru @ericanderson @tkrotoff @DovydasNavickas @onigoetz
/types/react-adal/ @dkorolev1
/types/react-albus/ @sseppola @conradreuter @kuirak
@@ -4116,18 +4175,18 @@
/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-beautiful-dnd/ @varHarrie @bradleyayers @paustint @marknelissen @enricoboccadifuoco @lonyele
+/types/react-avatar-editor/ @diogocorrea @gabsprates @lsenta @davidspiess
+/types/react-beautiful-dnd/ @varHarrie @bradleyayers @paustint @marknelissen @enricoboccadifuoco @lonyele @lukyth
/types/react-better-password/ @mhuynh1
-/types/react-big-calendar/ @piotrwitek @paustint @pikpok @eps1lon @strongpauly @janb87
-/types/react-blessed/ @me
+/types/react-big-calendar/ @piotrwitek @paustint @pikpok @eps1lon @strongpauly @janb87 @ldthorne @siavelis
+/types/react-blessed/ @guoshencheng
/types/react-body-classname/ @mhegazy
/types/react-bootstrap/ @walkerburgin @vsiao @danilojrr @Batbold-Gansukh @octatone @chengsieuly @mretolaza @katbusch @vitosamson @LKay @aaronbeall @jrakotoharisoa @r3nya @t49tran @bes
/types/react-bootstrap-date-picker/ @LKay @ssi-hu-antal-bodnar
/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,23 +4196,24 @@
/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
/types/react-collapse/ @Kimahriman
/types/react-collapsible/ @knegusen
-/types/react-color/ @LKay @markspolakovs @mntdn @nkgrnkgr
+/types/react-color/ @LKay @markspolakovs @mntdn @nkgrnkgr @0815Strohhut
/types/react-confirm/ @santiagodoldan @marknelissen
/types/react-content-loader/ @alaatm @samwalshnz
/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
@@ -4162,19 +4222,20 @@
/types/react-data-grid/v1/ @SupernaviX
/types/react-datagrid/ @stephenjelfs
/types/react-date-range/ @Junbong
-/types/react-datepicker/ @radziksh @andrewBalekha @smrq @Rogach @royxue @KoalaHuman @seansfkelley @justingrant @jakeboone02
+/types/react-datepicker/ @radziksh @andrewBalekha @smrq @Rogach @royxue @KoalaHuman @seansfkelley @justingrant @jakeboone02 @Ky6uk @aviklai
/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
@@ -4205,7 +4266,8 @@
/types/react-google-login-component/ @koss-lebedev
/types/react-google-maps-loader/ @vasilysn
/types/react-google-places-suggest/ @vasilysn
-/types/react-google-recaptcha/ @KoalaHuman @tomsturge
+/types/react-google-recaptcha/ @KoalaHuman @tomsturge @MaxwellBo
+/types/react-google-recaptcha/v0/ @KoalaHuman @tomsturge
/types/react-gravatar/ @invliD
/types/react-grid-layout/ @abirkholz @alitaheri @ZheyangSong @andrewhathaway @manav-m
/types/react-hamburger-menu/ @grzesie2k
@@ -4224,7 +4286,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 +4301,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
@@ -4254,11 +4315,13 @@
/types/react-json/ @spielc
/types/react-json-pretty/ @LKay
/types/react-json-tree/ @gnestor @zainafzal08
-/types/react-jsonschema-form/ @iamdanfox @iplus26 @phbou72 @LucianBuzzo @sthenault @sbusch
+/types/react-jsonschema-form/ @iamdanfox @iplus26 @phbou72 @LucianBuzzo @sthenault @sbusch @medfreeman
/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,16 +4332,19 @@
/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
+/types/react-medium-image-zoom/ @james-ff
/types/react-mentions/ @activescott @efedorenko
/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 @saranshkataria
/types/react-native-android-taskdescription/ @christianchown
/types/react-native-auth0/ @ascariandrea @marknelissen
/types/react-native-autocomplete-input/ @ifiokjr
@@ -4318,10 +4384,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 +4406,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 +4417,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 +4426,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
@@ -4366,14 +4435,14 @@
/types/react-notification-system-redux/ @LKay
/types/react-notify-toast/ @klaascuvelier
/types/react-numeric-input/ @heatherbooker @akx
-/types/react-onclickoutside/ @LKay @surgeboris
+/types/react-onclickoutside/ @LKay @surgeboris @NilSet
/types/react-onclickoutside/v5/ @LKay
/types/react-onsenui/ @salim7 @jemmyw @lirbank
/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 +4460,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 +4468,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 +4491,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 +4523,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,19 +4563,18 @@
/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
/types/read/ @timjk
-/types/read-chunk/ @crispybee
/types/read-package-tree/ @mgroenhoff
/types/read-pkg/ @jdxcode
/types/read-pkg-up/ @dudeofawesome @jdxcode
@@ -4513,11 +4584,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
@@ -4528,7 +4599,7 @@
/types/recursive-readdir/ @elisee @MicahZoltu
/types/recursive-readdir/v1/ @elisee
/types/redent/ @BendingBender
-/types/redis/ @soywiz @CodeAnimal @MugeSo @UppaJung @Rokt33r @43081j @barnski @1pete @blablapolicja @ferrantejake
+/types/redis/ @soywiz @CodeAnimal @MugeSo @UppaJung @Rokt33r @43081j @barnski @1pete @blablapolicja @ferrantejake @OpesanyaAdebayo
/types/redis-errors/ @43081j
/types/redis-mock/ @BendingBender
/types/redis-rate-limiter/ @westy92 @nodify-at
@@ -4553,7 +4624,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 +4680,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
@@ -4628,8 +4702,10 @@
/types/requirejs-domready/ @lefb766
/types/requires-port/ @BendingBender
/types/resemblejs/ @pimterry
+/types/reserved-words/ @skovy
/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 +4728,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
@@ -4681,9 +4758,11 @@
/types/rn-fetch-blob/ @pengcao1
/types/roads/ @dancespiele
/types/roads-server/ @dancespiele
+/types/roarr/ @psaxton
/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
@@ -4699,6 +4778,7 @@
/types/round-to/ @seangenabe
/types/route-parser/ @ianks @bobbuehler
/types/routie/ @Adilson
+/types/rox-react-native/ @ahanriat
/types/royalslider/ @csrakowski @sKopheK
/types/rpio/ @DominikPalo @Pencl
/types/rrc/ @DeividasBakanas
@@ -4707,6 +4787,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 +4857,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 +4881,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 +4921,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 +4931,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 +4939,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 +4951,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 +4967,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
@@ -4924,12 +5009,11 @@
/types/sindresorhus__df/ @whatknight
/types/sindresorhus__djb2a/ @BendingBender
/types/sindresorhus__fnv1a/ @BendingBender
-/types/sindresorhus__slugify/ @cprecioso
/types/sindresorhus__string-hash/ @BendingBender
/types/sindresorhus__to-milliseconds/ @BendingBender
/types/single-line-log/ @ffflorian
/types/single-spa-react/ @Garrett-Smith-iq @chrisdopuch
-/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j @joshuakgoldberg @gjednaszewski @johnjesse @alecf @SimonSchick
+/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j @joshuakgoldberg @gjednaszewski @johnjesse @alecf @SimonSchick @bergundy
/types/sinon-as-promised/ @igrayson
/types/sinon-chai/ @kazimanzurrashid @jedmao @elpdpt
/types/sinon-chai/v2/ @kazimanzurrashid @jedmao
@@ -4944,7 +5028,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 +5038,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 +5067,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 +5085,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 +5095,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 +5111,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 +5135,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,17 +5173,19 @@
/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
+/types/storybook__vue/ @pntgupta @jurgisrudaks
/types/strange/ @wanganjun
/types/stream-array/ @Tyler-Murphy
/types/stream-buffers/ @Jason3S
@@ -5133,7 +5224,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 @adamduren @saranshkataria @0xJoKe @delianides
/types/stripe-checkout/ @cgwrench
/types/stripe-v2/ @ejsmith @amritk @adamcmiel @jleider @galuszkak
/types/stripe-v3/ @ejsmith @amritk @adamcmiel @jleider @galuszkak @slangeder
@@ -5144,11 +5235,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 +5256,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 +5317,19 @@
/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/tampermonkey/ @silverwzw @nikolay-borzov
/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 +5349,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 +5368,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
@@ -5290,7 +5384,6 @@
/types/tildify/ @BendingBender
/types/tile-reduce/ @DenisCarriere
/types/tilebelt/ @DenisCarriere
-/types/time-span/ @BendingBender @mdvorscak
/types/timelinejs/ @rolandzwaga
/types/timelinejs3/ @MikeMatusz
/types/timer-machine/ @dolanmiu
@@ -5305,13 +5398,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 +5415,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
@@ -5341,7 +5436,6 @@
/types/transducers-js/ @colinkahn @dphilipson @NaridaL
/types/transducers.js/ @dphilipson
/types/transliteration/ @tony19
-/types/trash/ @matthew-matvei @hoishin @BendingBender
/types/traverse/ @newclear
/types/traverson/ @marcinporebski
/types/travis-fold/ @andy-ms
@@ -5352,8 +5446,10 @@
/types/trianglify/ @unindented
/types/trie-prefix-tree/ @jlismore
/types/trim/ @skysteve
+/types/trim-newlines/ @djcsdy
/types/triple-beam/ @danwbyrne
/types/triplesec/ @threesquared
+/types/trouter/ @stahlstift
/types/trunk8/ @niemyjski
/types/trusted-types/ @vrana
/types/tryer/ @bengry
@@ -5361,6 +5457,8 @@
/types/tspromise/ @soywiz
/types/ttf2woff2/ @ThomasdenH
/types/tunnel/ @BendingBender
+/types/turbolinks/ @evankim390
+/types/turndown/ @sergey-zhidkov
/types/tus-js-client/ @kevhiggins @Acconut
/types/tv4/ @Bartvds @psnider
/types/tween.js/ @Amos47 @sunetos @jzarnikov @alexburner
@@ -5370,8 +5468,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 +5525,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 +5557,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,14 +5599,15 @@
/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 @stackbuilders @ibarrae
/types/video.js/ @vbortone @scleriot @SWBennett06 @IgelCampus @giofreitas @gjanblaszczyk @sroucheray @AkxeOne @meikidd
/types/viewability-helper/ @lironzluf
/types/viewerjs/ @lrh3321
+/types/viewport-list/ @satyarohith
/types/viewport-mercator-project/ @fnberta
/types/viewporter/ @borisyankov
/types/vimeo/ @DazWilkin
@@ -5529,8 +5633,11 @@
/types/voronoi-diagram/ @michaelneu
/types/vorpal/ @danwbyrne
/types/vortex-web-client/ @Pro
+/types/voucher-code-generator/ @JWebCoder
/types/voximplant-websdk/ @aylarov
-/types/vue-color/ @me
+/types/vscode/ @Microsoft
+/types/vue-chartkick/ @cnsmedia
+/types/vue-color/ @mildful
/types/vue-markdown/ @neodon
/types/vue-resource/ @kaorun343
/types/vue-scrollto/ @vincekovacs
@@ -5544,8 +5651,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 +5679,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 +5700,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 +5717,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 +5768,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 +5834,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,10 +5846,10 @@
/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
-/types/zapier-platform-core/ @bradleyayers
/types/zeit__next-typescript/ @icopp
/types/zen-observable/ @aicest @JounQin @itomtom
/types/zen-push/ @daprahamian
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/README.md b/README.md
index 746d9d9f3e..b50272dbf4 100644
--- a/README.md
+++ b/README.md
@@ -57,7 +57,7 @@ You may need to add manual [references](http://www.typescriptlang.org/docs/handb
## How can I contribute?
-DefinitelyTyped only works because of contributions by users like you!
+Definitely Typed only works because of contributions by users like you!
### Test
@@ -89,7 +89,7 @@ then follow the instructions to [edit an existing package](#edit-an-existing-pac
### Make a pull request
-Once you've tested your package, you can share it on DefinitelyTyped.
+Once you've tested your package, you can share it on Definitely Typed.
First, [fork](https://guides.github.com/activities/forking/) this repository, install [node](https://nodejs.org/), and run `npm install`.
@@ -117,7 +117,7 @@ If it doesn't, you can do so yourself in the comment associated with the PR.
#### Create a new package
-If you are the library author and your package is written in TypeScript, [bundle the autogenerated declaration files](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) in your package instead of publishing to DefinitelyTyped.
+If you are the library author and your package is written in TypeScript, [bundle the autogenerated declaration files](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) in your package instead of publishing to Definitely Typed.
If you are adding typings for an NPM package, create a directory with the same name.
If the package you are adding typings for is not on NPM, make sure the name you choose for it does not conflict with the name of a package on NPM.
@@ -137,7 +137,7 @@ See all options at [dts-gen](https://github.com/Microsoft/dts-gen).
You may edit the `tsconfig.json` to add new files, to add `"target": "es6"` (needed for async functions), to add to `"lib"`, or to add the `"jsx"` compiler option.
-DefinitelyTyped members routinely monitor for new PRs, though keep in mind that the number of other PRs may slow things down.
+Definitely Typed members routinely monitor for new PRs, though keep in mind that the number of other PRs may slow things down.
For a good example package, see [base64-js](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/base64-js).
@@ -165,18 +165,31 @@ For a good example package, see [base64-js](https://github.com/DefinitelyTyped/D
#### Removing a package
-When a package [bundles](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) its own types, types should be removed from DefinitelyTyped to avoid confusion.
+When a package [bundles](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) its own types, types should be removed from Definitely Typed to avoid confusion.
You can remove it by running `npm run not-needed -- typingsPackageName asOfVersion sourceRepoURL [libraryName]`.
- `typingsPackageName`: This is the name of the directory to delete.
- `asOfVersion`: A stub will be published to `@types/foo` with this version. Should be higher than any currently published version.
- `sourceRepoURL`: This should point to the repository that contains the typings.
-- `libraryName`: Descriptive name of the library, e.g. "Angular 2" instead of "angular2". (If ommitted, will be identical to "typingsPackageName".)
+- `libraryName`: Name of npm package that replaces the Definitely Typed types. Usually this is identical to "typingsPackageName", in which case you can omit it.
-Any other packages in DefinitelyTyped that referenced the deleted package should be updated to reference the bundled types. To do this, add a `package.json` with `"dependencies": { "foo": "x.y.z" }`.
+Any other packages in Definitely Typed that referenced the deleted package should be updated to reference the bundled types.
+You can get this list by looking at the errors from `npm run test`.
+To fix the errors, add a `package.json` with `"dependencies": { "foo": "x.y.z" }`.
+For example:
-If a package was never on DefinitelyTyped, it does not need to be added to `notNeededPackages.json`.
+```json
+{
+ "private": true,
+ "dependencies": {
+ "foo": "^2.6.0"
+ }
+}
+```
+When you add a `package.json` to dependents of `foo`, you will also need to open a PR to add `foo` [to dependenciesWhitelist.txt in types-publisher](https://github.com/Microsoft/types-publisher/blob/master/dependenciesWhitelist.txt).
+
+If a package was never on Definitely Typed, it does not need to be added to `notNeededPackages.json`.
#### Lint
@@ -225,11 +238,11 @@ The `master` branch is automatically published to the `@types` scope on NPM than
#### I've submitted a pull request. How long until it is merged?
-It depends, but most pull requests will be merged within a week. PRs that have been approved by an author listed in the definition's header are usually merged more quickly; PRs for new definitions will take more time as they require more review from maintainers. Each PR is reviewed by a TypeScript or DefinitelyTyped team member before being merged, so please be patient as human factors may cause delays. Check the [PR Burndown Board](https://github.com/DefinitelyTyped/DefinitelyTyped/projects/3?card_filter_query=is%3Aopen) to see progress as maintainers work through the open PRs.
+It depends, but most pull requests will be merged within a week. PRs that have been approved by an author listed in the definition's header are usually merged more quickly; PRs for new definitions will take more time as they require more review from maintainers. Each PR is reviewed by a TypeScript or Definitely Typed team member before being merged, so please be patient as human factors may cause delays. Check the [PR Burndown Board](https://github.com/DefinitelyTyped/DefinitelyTyped/projects/3?card_filter_query=is%3Aopen) to see progress as maintainers work through the open PRs.
#### My PR is merged; when will the `@types` NPM package be updated?
-NPM packages should update within a few minutes. If it's been more than an hour, mention the PR number on [the DefinitelyTyped Gitter channel](https://gitter.im/DefinitelyTyped/DefinitelyTyped) and the current maintainer will get the correct team member to investigate.
+NPM packages should update within a few minutes. If it's been more than an hour, mention the PR number on [the Definitely Typed Gitter channel](https://gitter.im/DefinitelyTyped/DefinitelyTyped) and the current maintainer will get the correct team member to investigate.
#### I'm writing a definition that depends on another definition. Should I use `` or an import?
@@ -325,13 +338,13 @@ You can look [here](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/mast
This may belong in [TSJS-Lib-Generator](https://github.com/Microsoft/TSJS-lib-generator#readme). See the guidelines there.
If the standard is still a draft, it belongs here.
Use a name beginning with `dom-` and include a link to the standard as the "Project" link in the header.
-When it graduates draft mode, we may remove it from DefinitelyTyped and deprecate the associated `@types` package.
+When it graduates draft mode, we may remove it from Definitely Typed and deprecate the associated `@types` package.
-#### How do DefinitelyTyped package versions relate to versions of the corresponding library?
+#### How do Definitely Typed package versions relate to versions of the corresponding library?
_NOTE: The discussion in this section assumes familiarity with [Semantic versioning](https://semver.org/)_
-Each DefinitelyTyped package is versioned when published to NPM.
+Each Definitely Typed package is versioned when published to NPM.
The [types-publisher](https://github.com/Microsoft/types-publisher) (the tool that publishes `@types` packages to npm) will set the declaration package's version by using the `major.minor` version number listed in the first line of its `index.d.ts` file.
For example, here are the first few lines of [Node's type declarations](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/1253faabf5e0d2c5470db6ea87795d7f96fef7e2/types/node/index.d.ts) for version `10.12.x` at the time of writing:
@@ -339,24 +352,24 @@ For example, here are the first few lines of [Node's type declarations](https://
// Type definitions for Node.js 10.12
// Project: http://nodejs.org/
// Definitions by: Microsoft TypeScript
-// DefinitelyTyped
+// Definitely Typed
// Alberto Schiabel
```
Because `10.12` is at the end the first line, the npm version of the `@types/node` package will also be `10.12.x`.
Note that the first-line comment in the `index.d.ts` file should only contain the `major.minor` version (e.g. `10.12`) and should not contain a patch version (e.g. `10.12.4`).
This is because only the major and minor release numbers are aligned between library packages and type declaration packages.
-The patch release number of the type declaration package (e.g. `.0` in `10.12.0`) is initialized to zero by DefinitelyTyped and is incremented each time a new `@types/node` package is published to NPM for the same major/minor version of the corresponding library.
+The patch release number of the type declaration package (e.g. `.0` in `10.12.0`) is initialized to zero by Definitely Typed and is incremented each time a new `@types/node` package is published to NPM for the same major/minor version of the corresponding library.
Sometimes type declaration package versions and library package versions can get out of sync.
Below are a few common reasons why, in order of how much they inconvenience users of a library.
Only the last case is typically problematic.
* As noted above, the patch version of the type declaration package is unrelated to the library patch version.
- This allows DefinitelyTyped to safely update type declarations for the same major/minor version of a library.
+ This allows Definitely Typed to safely update type declarations for the same major/minor version of a library.
* If updating a package for new functionality, don't forget to update the version number to line up with that version of the library.
If users make sure versions correspond between JavaScript packages and their respective `@types` packages, then `npm update` should typically just work.
-* It's common for type declaration package updates to lag behind library updates because it's often library users, not maintainers, who update DefinitelyTyped when new library features are released.
+* It's common for type declaration package updates to lag behind library updates because it's often library users, not maintainers, who update Definitely Typed when new library features are released.
So there may be a lag of days, weeks, or even months before a helpful community member sends a PR to update the type declaration package for a new library release.
If you're impacted by this, you can be the change you want to see in the world and you can be that helpful community member!
@@ -366,7 +379,7 @@ Only the last case is typically problematic.
[Semantic versioning](https://semver.org/) requires that versions with breaking changes must increment the major version number.
For example, a library that removes a publicly exported function after its `3.5.8` release must bump its version to `4.0.0` in its next release.
-Furthermore, when the library's `4.0.0` release is out, its DefinitelyTyped type declaration package should also be updated to `4.0.0`, including any breaking changes to the library's API.
+Furthermore, when the library's `4.0.0` release is out, its Definitely Typed type declaration package should also be updated to `4.0.0`, including any breaking changes to the library's API.
Many libraries have a large installed base of developers (including maintainers of other packages using that library as a dependency) who won't move right away to a new version that has breaking changes, because it might be months until a maintainer has time to rewrite code to adapt to the new version.
In the meantime, users of old library versions still may want to update type declarations for older versions.
@@ -398,7 +411,7 @@ At the time of writing, the [history v2 `tsconfig.json`](https://github.com/Defi
}
```
-If there are other packages in DefinitelyTyped that are incompatible with the new version, you will need to add path mappings to the old version.
+If there are other packages in Definitely Typed that are incompatible with the new version, you will need to add path mappings to the old version.
You will also need to do this recursively for packages depending on packages depending on the old version.
For example, `react-router` depends on `history@2`, so [react-router `tsconfig.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-router/v2/tsconfig.json) has a path mapping to `"history": [ "history/v2" ]`.
diff --git a/notNeededPackages.json b/notNeededPackages.json
index 4289393363..cf61daf58d 100644
--- a/notNeededPackages.json
+++ b/notNeededPackages.json
@@ -18,6 +18,12 @@
"sourceRepoURL": "https://github.com/ceolter/ag-grid",
"asOfVersion": "3.2.0"
},
+ {
+ "libraryName": "aggregate-error",
+ "typingsPackageName": "aggregate-error",
+ "sourceRepoURL": "https://github.com/sindresorhus/aggregate-error",
+ "asOfVersion": "2.2.0"
+ },
{
"libraryName": "ajv",
"typingsPackageName": "ajv",
@@ -198,6 +204,12 @@
"sourceRepoURL": "https://github.com/ded/bowser",
"asOfVersion": "1.1.1"
},
+ {
+ "libraryName": "boxen",
+ "typingsPackageName": "boxen",
+ "sourceRepoURL": "https://github.com/sindresorhus/boxen",
+ "asOfVersion": "3.0.1"
+ },
{
"libraryName": "Bugsnag Browser",
"typingsPackageName": "bugsnag-js",
@@ -216,12 +228,24 @@
"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",
"sourceRepoURL": "https://github.com/interactivethings/catalog",
"asOfVersion": "3.5.0"
},
+ {
+ "libraryName": "chai-http",
+ "typingsPackageName": "chai-http",
+ "sourceRepoURL": "https://github.com/chaijs/chai-http",
+ "asOfVersion": "4.2.0"
+ },
{
"libraryName": "chalk",
"typingsPackageName": "chalk",
@@ -240,12 +264,24 @@
"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",
"sourceRepoURL": "https://github.com/saltyrtc/chunked-dc-js",
"asOfVersion": "0.2.2"
},
+ {
+ "libraryName": "clean-webpack-plugin",
+ "typingsPackageName": "clean-webpack-plugin",
+ "sourceRepoURL": "https://github.com/johnagan/clean-webpack-plugin",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "colors.js (colors)",
"typingsPackageName": "colors",
@@ -258,6 +294,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",
@@ -270,6 +312,12 @@
"sourceRepoURL": "https://github.com/blakeembrey/constant-case",
"asOfVersion": "1.1.2"
},
+ {
+ "libraryName": "copy-text-to-clipboard",
+ "typingsPackageName": "copy-text-to-clipboard",
+ "sourceRepoURL": "https://github.com/sindresorhus/copy-text-to-clipboard",
+ "asOfVersion": "2.0.1"
+ },
{
"libraryName": "cordova-plugin-battery-status",
"typingsPackageName": "cordova-plugin-battery-status",
@@ -384,6 +432,18 @@
"sourceRepoURL": "https://github.com/jayphelps/core-decorators.js",
"asOfVersion": "0.20.0"
},
+ {
+ "libraryName": "cp-file",
+ "typingsPackageName": "cp-file",
+ "sourceRepoURL": "https://github.com/sindresorhus/cp-file",
+ "asOfVersion": "6.1.1"
+ },
+ {
+ "libraryName": "cpy",
+ "typingsPackageName": "cpy",
+ "sourceRepoURL": "https://github.com/sindresorhus/cpy",
+ "asOfVersion": "7.1.1"
+ },
{
"libraryName": "cypress",
"typingsPackageName": "cypress",
@@ -402,18 +462,36 @@
"sourceRepoURL": "https://github.com/DataDog/dd-trace-js",
"asOfVersion": "0.9.0"
},
+ {
+ "libraryName": "decamelize",
+ "typingsPackageName": "decamelize",
+ "sourceRepoURL": "https://github.com/sindresorhus/decamelize",
+ "asOfVersion": "3.0.1"
+ },
{
"libraryName": "decimal.js",
"typingsPackageName": "decimal.js",
"sourceRepoURL": "https://github.com/MikeMcl/decimal.js",
"asOfVersion": "7.4.0"
},
+ {
+ "libraryName": "decompress-response",
+ "typingsPackageName": "decompress-response",
+ "sourceRepoURL": "https://github.com/sindresorhus/decompress-response",
+ "asOfVersion": "4.1.0"
+ },
{
"libraryName": "deepmerge",
"typingsPackageName": "deepmerge",
"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",
@@ -444,6 +522,12 @@
"sourceRepoURL": "https://github.com/joyent/docker-file-parser",
"asOfVersion": "1.0.3"
},
+ {
+ "libraryName": "dom-loaded",
+ "typingsPackageName": "dom-loaded",
+ "sourceRepoURL": "https://github.com/sindresorhus/dom-loaded",
+ "asOfVersion": "1.1.0"
+ },
{
"libraryName": "dot-case",
"typingsPackageName": "dot-case",
@@ -498,6 +582,12 @@
"sourceRepoURL": "https://github.com/loopline-systems/electron-builder",
"asOfVersion": "2.8.0"
},
+ {
+ "libraryName": "element-ready",
+ "typingsPackageName": "element-ready",
+ "sourceRepoURL": "https://github.com/sindresorhus/element-ready",
+ "asOfVersion": "3.1.0"
+ },
{
"libraryName": "email-addresses",
"typingsPackageName": "email-addresses",
@@ -510,6 +600,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",
@@ -606,6 +702,24 @@
"sourceRepoURL": "https://github.com/taylorhakes/fecha",
"asOfVersion": "2.3.1"
},
+ {
+ "libraryName": "file-type",
+ "typingsPackageName": "file-type",
+ "sourceRepoURL": "https://github.com/sindresorhus/file-type",
+ "asOfVersion": "10.9.1"
+ },
+ {
+ "libraryName": "filenamify",
+ "typingsPackageName": "filenamify",
+ "sourceRepoURL": "https://github.com/sindresorhus/filenamify",
+ "asOfVersion": "3.0.0"
+ },
+ {
+ "libraryName": "filenamify-url",
+ "typingsPackageName": "filenamify-url",
+ "sourceRepoURL": "https://github.com/sindresorhus/filenamify-url",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "FineUploader",
"typingsPackageName": "fine-uploader",
@@ -618,6 +732,12 @@
"sourceRepoURL": "https://www.firebase.com/docs/javascript/firebase",
"asOfVersion": "3.2.1"
},
+ {
+ "libraryName": "fkill",
+ "typingsPackageName": "fkill",
+ "sourceRepoURL": "https://github.com/sindresorhus/fkill",
+ "asOfVersion": "6.0.0"
+ },
{
"libraryName": "flatpickr",
"typingsPackageName": "flatpickr",
@@ -666,6 +786,12 @@
"sourceRepoURL": "https://github.com/manuelbieh/Geolib",
"asOfVersion": "2.0.23"
},
+ {
+ "libraryName": "get-stream",
+ "typingsPackageName": "get-stream",
+ "sourceRepoURL": "https://github.com/sindresorhus/get-stream",
+ "asOfVersion": "5.0.0"
+ },
{
"libraryName": "github",
"typingsPackageName": "github",
@@ -678,6 +804,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,12 +846,30 @@
"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",
"sourceRepoURL": "https://handsontable.com/",
"asOfVersion": "0.35.0"
},
+ {
+ "libraryName": "has-yarn",
+ "typingsPackageName": "has-yarn",
+ "sourceRepoURL": "https://github.com/sindresorhus/has-yarn",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "hasha",
+ "typingsPackageName": "hasha",
+ "sourceRepoURL": "https://github.com/sindresorhus/hasha",
+ "asOfVersion": "4.0.0"
+ },
{
"libraryName": "hibp",
"typingsPackageName": "hibp",
@@ -738,6 +888,12 @@
"sourceRepoURL": "https://github.com/prettymuchbryce/node-http-status",
"asOfVersion": "1.2.0"
},
+ {
+ "libraryName": "humanize-string",
+ "typingsPackageName": "humanize-string",
+ "sourceRepoURL": "https://github.com/sindresorhus/humanize-string",
+ "asOfVersion": "2.0.1"
+ },
{
"libraryName": "i18next-browser-languagedetector",
"typingsPackageName": "i18next-browser-languagedetector",
@@ -762,6 +918,12 @@
"sourceRepoURL": "https://github.com/bpmn-io/ids",
"asOfVersion": "0.2.2"
},
+ {
+ "libraryName": "image-type",
+ "typingsPackageName": "image-type",
+ "sourceRepoURL": "https://github.com/sindresorhus/image-type",
+ "asOfVersion": "4.0.1"
+ },
{
"libraryName": "immutability-helper",
"typingsPackageName": "immutability-helper",
@@ -786,6 +948,12 @@
"sourceRepoURL": "https://github.com/sindresorhus/internal-ip",
"asOfVersion": "4.1.0"
},
+ {
+ "libraryName": "into-stream",
+ "typingsPackageName": "into-stream",
+ "sourceRepoURL": "https://github.com/sindresorhus/into-stream",
+ "asOfVersion": "5.0.0"
+ },
{
"libraryName": "inversify",
"typingsPackageName": "inversify",
@@ -834,12 +1002,30 @@
"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",
"sourceRepoURL": "https://github.com/jonschlinkert/is-plain-object",
"asOfVersion": "2.0.4"
},
+ {
+ "libraryName": "is-scoped",
+ "typingsPackageName": "is-scoped",
+ "sourceRepoURL": "https://github.com/sindresorhus/is-scoped",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "is-svg",
+ "typingsPackageName": "is-svg",
+ "sourceRepoURL": "https://github.com/sindresorhus/is-svg",
+ "asOfVersion": "4.0.1"
+ },
{
"libraryName": "is-upper-case",
"typingsPackageName": "is-upper-case",
@@ -918,6 +1104,12 @@
"sourceRepoURL": "https://github.com/keycloak/keycloak",
"asOfVersion": "3.4.1"
},
+ {
+ "libraryName": "knex",
+ "typingsPackageName": "knex",
+ "sourceRepoURL": "https://github.com/tgriesser/knex",
+ "asOfVersion": "0.16.1"
+ },
{
"libraryName": "knockout-paging",
"typingsPackageName": "knockout-paging",
@@ -942,6 +1134,12 @@
"sourceRepoURL": "https://github.com/elitechance/lambda-phi",
"asOfVersion": "1.0.1"
},
+ {
+ "libraryName": "latest-version",
+ "typingsPackageName": "latest-version",
+ "sourceRepoURL": "https://github.com/sindresorhus/latest-version",
+ "asOfVersion": "5.0.0"
+ },
{
"libraryName": "ldclient-js",
"typingsPackageName": "ldclient-js",
@@ -954,6 +1152,12 @@
"sourceRepoURL": "https://github.com/stevemao/left-pad",
"asOfVersion": "1.2.0"
},
+ {
+ "libraryName": "leven",
+ "typingsPackageName": "leven",
+ "sourceRepoURL": "https://github.com/sindresorhus/leven",
+ "asOfVersion": "3.0.0"
+ },
{
"libraryName": "Linq.JS",
"typingsPackageName": "linq",
@@ -990,6 +1194,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 +1224,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",
@@ -1032,6 +1248,12 @@
"sourceRepoURL": "https://github.com/runk/node-maxmind",
"asOfVersion": "2.0.5"
},
+ {
+ "libraryName": "mem",
+ "typingsPackageName": "mem",
+ "sourceRepoURL": "https://github.com/sindresorhus/mem",
+ "asOfVersion": "4.2.0"
+ },
{
"libraryName": "mendixmodelsdk",
"typingsPackageName": "mendixmodelsdk",
@@ -1086,6 +1308,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",
@@ -1128,6 +1356,36 @@
"sourceRepoURL": "https://github.com/paularmstrong/normalizr",
"asOfVersion": "2.0.18"
},
+ {
+ "libraryName": "npm-email",
+ "typingsPackageName": "npm-email",
+ "sourceRepoURL": "https://github.com/sindresorhus/npm-email",
+ "asOfVersion": "3.1.0"
+ },
+ {
+ "libraryName": "npm-keyword",
+ "typingsPackageName": "npm-keyword",
+ "sourceRepoURL": "https://github.com/sindresorhus/npm-keyword",
+ "asOfVersion": "6.0.0"
+ },
+ {
+ "libraryName": "npm-name",
+ "typingsPackageName": "npm-name",
+ "sourceRepoURL": "https://github.com/sindresorhus/npm-name",
+ "asOfVersion": "5.2.1"
+ },
+ {
+ "libraryName": "npm-run-path",
+ "typingsPackageName": "npm-run-path",
+ "sourceRepoURL": "https://github.com/sindresorhus/npm-run-path",
+ "asOfVersion": "3.0.1"
+ },
+ {
+ "libraryName": "npm-user",
+ "typingsPackageName": "npm-user",
+ "sourceRepoURL": "https://github.com/sindresorhus/npm-user",
+ "asOfVersion": "4.0.0"
+ },
{
"libraryName": "Nuka Carousel",
"typingsPackageName": "nuka-carousel",
@@ -1140,30 +1398,180 @@
"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-any",
+ "typingsPackageName": "p-any",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-any",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-cancelable",
+ "typingsPackageName": "p-cancelable",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-cancelable",
+ "asOfVersion": "1.1.0"
+ },
+ {
+ "libraryName": "p-catch-if",
+ "typingsPackageName": "p-catch-if",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-catch-if",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-debounce",
+ "typingsPackageName": "p-debounce",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-debounce",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-each-series",
+ "typingsPackageName": "p-each-series",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-each-series",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-event",
+ "typingsPackageName": "p-event",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-event",
+ "asOfVersion": "3.0.0"
+ },
+ {
+ "libraryName": "p-every",
+ "typingsPackageName": "p-every",
+ "sourceRepoURL": "https://github.com/kevva/p-every",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-limit",
+ "typingsPackageName": "p-limit",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-limit",
+ "asOfVersion": "2.2.0"
+ },
+ {
+ "libraryName": "p-locate",
+ "typingsPackageName": "p-locate",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-locate",
+ "asOfVersion": "4.0.0"
+ },
+ {
+ "libraryName": "p-log",
+ "typingsPackageName": "p-log",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-log",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "p-map",
"typingsPackageName": "p-map",
"sourceRepoURL": "https://github.com/sindresorhus/p-map",
"asOfVersion": "2.0.0"
},
+ {
+ "libraryName": "p-map-series",
+ "typingsPackageName": "p-map-series",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-map-series",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-memoize",
+ "typingsPackageName": "p-memoize",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-memoize",
+ "asOfVersion": "3.0.0"
+ },
+ {
+ "libraryName": "p-one",
+ "typingsPackageName": "p-one",
+ "sourceRepoURL": "https://github.com/kevva/p-one",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "p-pipe",
"typingsPackageName": "p-pipe",
"sourceRepoURL": "https://github.com/sindresorhus/p-pipe",
"asOfVersion": "2.0.1"
},
+ {
+ "libraryName": "p-progress",
+ "typingsPackageName": "p-progress",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-progress",
+ "asOfVersion": "0.3.0"
+ },
+ {
+ "libraryName": "p-props",
+ "typingsPackageName": "p-props",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-props",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-queue",
+ "typingsPackageName": "p-queue",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-queue",
+ "asOfVersion": "3.2.1"
+ },
+ {
+ "libraryName": "p-reduce",
+ "typingsPackageName": "p-reduce",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-reduce",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-retry",
+ "typingsPackageName": "p-retry",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-retry",
+ "asOfVersion": "4.0.0"
+ },
+ {
+ "libraryName": "p-series",
+ "typingsPackageName": "p-series",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-series",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-some",
+ "typingsPackageName": "p-some",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-some",
+ "asOfVersion": "4.0.1"
+ },
+ {
+ "libraryName": "p-tap",
+ "typingsPackageName": "p-tap",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-tap",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "p-throttle",
"typingsPackageName": "p-throttle",
"sourceRepoURL": "https://github.com/sindresorhus/p-throttle",
"asOfVersion": "2.1.0"
},
+ {
+ "libraryName": "p-timeout",
+ "typingsPackageName": "p-timeout",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-timeout",
+ "asOfVersion": "3.0.0"
+ },
+ {
+ "libraryName": "package-json",
+ "typingsPackageName": "package-json",
+ "sourceRepoURL": "https://github.com/sindresorhus/package-json",
+ "asOfVersion": "6.1.0"
+ },
{
"libraryName": "param-case",
"typingsPackageName": "param-case",
@@ -1188,12 +1596,24 @@
"sourceRepoURL": "https://github.com/blakeembrey/path-case",
"asOfVersion": "1.1.2"
},
+ {
+ "libraryName": "path-key",
+ "typingsPackageName": "path-key",
+ "sourceRepoURL": "https://github.com/sindresorhus/path-key",
+ "asOfVersion": "3.0.1"
+ },
{
"libraryName": "path-to-regexp",
"typingsPackageName": "path-to-regexp",
"sourceRepoURL": "https://github.com/pillarjs/path-to-regexp",
"asOfVersion": "1.7.0"
},
+ {
+ "libraryName": "path-type",
+ "typingsPackageName": "path-type",
+ "sourceRepoURL": "https://github.com/sindresorhus/path-type",
+ "asOfVersion": "4.0.0"
+ },
{
"libraryName": "perfect-scrollbar",
"typingsPackageName": "perfect-scrollbar",
@@ -1230,12 +1650,36 @@
"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": "pkg-dir",
+ "typingsPackageName": "pkg-dir",
+ "sourceRepoURL": "https://github.com/sindresorhus/pkg-dir",
+ "asOfVersion": "4.0.0"
+ },
+ {
+ "libraryName": "pkg-versions",
+ "typingsPackageName": "pkg-versions",
+ "sourceRepoURL": "https://github.com/sindresorhus/pkg-versions",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "plottable",
"typingsPackageName": "plottable",
"sourceRepoURL": "http://plottablejs.org/",
"asOfVersion": "3.7.0"
},
+ {
+ "libraryName": "png-async",
+ "typingsPackageName": "png-async",
+ "sourceRepoURL": "https://github.com/kanreisa/node-png-async",
+ "asOfVersion": "0.9.4"
+ },
{
"libraryName": "poly2tri.js",
"typingsPackageName": "poly2tri",
@@ -1266,6 +1710,12 @@
"sourceRepoURL": "https://github.com/angular/protractor",
"asOfVersion": "4.0.0"
},
+ {
+ "libraryName": "ps-list",
+ "typingsPackageName": "ps-list",
+ "sourceRepoURL": "https://github.com/sindresorhus/ps-list",
+ "asOfVersion": "6.2.1"
+ },
{
"libraryName": "qiniu",
"typingsPackageName": "qiniu",
@@ -1278,6 +1728,18 @@
"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": "quick-lru",
+ "typingsPackageName": "quick-lru",
+ "sourceRepoURL": "https://github.com/sindresorhus/quick-lru",
+ "asOfVersion": "3.0.0"
+ },
{
"libraryName": "Raven JS",
"typingsPackageName": "raven-js",
@@ -1404,6 +1866,12 @@
"sourceRepoURL": "https://github.com/tanem/react-svg",
"asOfVersion": "5.0.0"
},
+ {
+ "libraryName": "read-chunk",
+ "typingsPackageName": "read-chunk",
+ "sourceRepoURL": "https://github.com/sindresorhus/read-chunk",
+ "asOfVersion": "3.1.0"
+ },
{
"libraryName": "realm",
"typingsPackageName": "realm",
@@ -1542,6 +2010,12 @@
"sourceRepoURL": "https://github.com/Lellansin/node-scanf",
"asOfVersion": "0.7.3"
},
+ {
+ "libraryName": "screenfull",
+ "typingsPackageName": "screenfull",
+ "sourceRepoURL": "https://github.com/sindresorhus/screenfull.js",
+ "asOfVersion": "4.1.0"
+ },
{
"libraryName": "sendgrid",
"typingsPackageName": "sendgrid",
@@ -1578,6 +2052,18 @@
"sourceRepoURL": "https://github.com/zeh/simplesignal",
"asOfVersion": "1.0.0"
},
+ {
+ "libraryName": "@sindresorhus/df",
+ "typingsPackageName": "sindresorhus__df",
+ "sourceRepoURL": "https://github.com/sindresorhus/df",
+ "asOfVersion": "3.0.0"
+ },
+ {
+ "libraryName": "@sindresorhus/slugify",
+ "typingsPackageName": "sindresorhus__slugify",
+ "sourceRepoURL": "https://github.com/sindresorhus/slugify",
+ "asOfVersion": "0.9.1"
+ },
{
"libraryName": "sip.js",
"typingsPackageName": "sip.js",
@@ -1686,6 +2172,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",
@@ -1698,6 +2190,12 @@
"sourceRepoURL": "https://github.com/terser-js/terser",
"asOfVersion": "3.12.0"
},
+ {
+ "libraryName": "time-span",
+ "typingsPackageName": "time-span",
+ "sourceRepoURL": "https://github.com/sindresorhus/time-span",
+ "asOfVersion": "3.0.1"
+ },
{
"libraryName": "timezonecomplete",
"typingsPackageName": "timezonecomplete",
@@ -1710,6 +2208,12 @@
"sourceRepoURL": "https://github.com/blakeembrey/title-case",
"asOfVersion": "1.1.2"
},
+ {
+ "libraryName": "trash",
+ "typingsPackageName": "trash",
+ "sourceRepoURL": "https://github.com/sindresorhus/trash",
+ "asOfVersion": "5.0.1"
+ },
{
"libraryName": "TsMonad",
"typingsPackageName": "tsmonad",
@@ -1758,6 +2262,12 @@
"sourceRepoURL": "https://github.com/kriasoft/universal-router",
"asOfVersion": "8.0.0"
},
+ {
+ "libraryName": "unused-filename",
+ "typingsPackageName": "unused-filename",
+ "sourceRepoURL": "https://github.com/sindresorhus/unused-filename",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "upper-case",
"typingsPackageName": "upper-case",
@@ -1818,6 +2328,12 @@
"sourceRepoURL": "https://github.com/sindresorhus/wait-for-localhost",
"asOfVersion": "3.1.0"
},
+ {
+ "libraryName": "wallpaper",
+ "typingsPackageName": "wallpaper",
+ "sourceRepoURL": "https://github.com/sindresorhus/wallpaper",
+ "asOfVersion": "4.3.0"
+ },
{
"libraryName": "webcola",
"typingsPackageName": "webcola",
@@ -1898,9 +2414,9 @@
},
{
"libraryName": "@xmpp/jid",
- "typingsPackageName": "xmpp-jid",
+ "typingsPackageName": "xmpp__jid",
"sourceRepoURL": "github.com/node-xmpp/node-xmpp/",
- "asOfVersion": "1.2.0"
+ "asOfVersion": "1.2.1"
},
{
"libraryName": "xterm.js",
@@ -1914,6 +2430,12 @@
"sourceRepoURL": "none",
"asOfVersion": "2.1.0"
},
+ {
+ "libraryName": "zapier-platform-core",
+ "typingsPackageName": "zapier-platform-core",
+ "sourceRepoURL": "https://github.com/zapier/zapier-platform-core",
+ "asOfVersion": "6.1.1"
+ },
{
"libraryName": "zetapush-js",
"typingsPackageName": "zetapush-js",
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/absolute/tslint.json b/types/absolute/tslint.json
index a41bf5d19a..3d59f55fda 100644
--- a/types/absolute/tslint.json
+++ b/types/absolute/tslint.json
@@ -8,6 +8,7 @@
"callable-types": false,
"comment-format": false,
"dt-header": false,
+ "npm-naming": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
diff --git a/types/acc-wizard/tslint.json b/types/acc-wizard/tslint.json
index a41bf5d19a..3d59f55fda 100644
--- a/types/acc-wizard/tslint.json
+++ b/types/acc-wizard/tslint.json
@@ -8,6 +8,7 @@
"callable-types": false,
"comment-format": false,
"dt-header": false,
+ "npm-naming": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
diff --git a/types/ace/tslint.json b/types/ace/tslint.json
index a41bf5d19a..3d59f55fda 100644
--- a/types/ace/tslint.json
+++ b/types/ace/tslint.json
@@ -8,6 +8,7 @@
"callable-types": false,
"comment-format": false,
"dt-header": false,
+ "npm-naming": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
diff --git a/types/actioncable/tslint.json b/types/actioncable/tslint.json
index a41bf5d19a..3d59f55fda 100644
--- a/types/actioncable/tslint.json
+++ b/types/actioncable/tslint.json
@@ -8,6 +8,7 @@
"callable-types": false,
"comment-format": false,
"dt-header": false,
+ "npm-naming": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
diff --git a/types/add-zero/add-zero-tests.ts b/types/add-zero/add-zero-tests.ts
index ac0509d26d..852f1eddb9 100644
--- a/types/add-zero/add-zero-tests.ts
+++ b/types/add-zero/add-zero-tests.ts
@@ -1,3 +1,3 @@
-import addZero from "add-zero";
+import addZero = require("add-zero");
addZero(5, 2);
diff --git a/types/add-zero/index.d.ts b/types/add-zero/index.d.ts
index 907364a62d..15c21d4d11 100644
--- a/types/add-zero/index.d.ts
+++ b/types/add-zero/index.d.ts
@@ -3,4 +3,5 @@
// Definitions by: Giles Roadnight
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-export default function addZero(value: string | number, digits?: number): string;
+export = addZero;
+declare function addZero(value: string | number, digits?: number): string;
diff --git a/types/add2home/tslint.json b/types/add2home/tslint.json
index a41bf5d19a..3d59f55fda 100644
--- a/types/add2home/tslint.json
+++ b/types/add2home/tslint.json
@@ -8,6 +8,7 @@
"callable-types": false,
"comment-format": false,
"dt-header": false,
+ "npm-naming": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
diff --git a/types/adone/glosses/collections/buffer_list.d.ts b/types/adone/glosses/collections/buffer_list.d.ts
index b2a4157385..482055fecc 100644
--- a/types/adone/glosses/collections/buffer_list.d.ts
+++ b/types/adone/glosses/collections/buffer_list.d.ts
@@ -30,7 +30,7 @@ declare namespace adone.collection {
/**
* Ends the stream
*/
- end(chunk?: Buffer): void;
+ end(chunk?: Buffer | string): void;
end(chunk?: () => void): void;
/**
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 8c265eebb4..177bd33372 100644
--- a/types/adone/tslint.json
+++ b/types/adone/tslint.json
@@ -13,6 +13,7 @@
"no-unnecessary-qualifier": false,
"unified-signatures": false,
"space-before-function-paren": false,
- "await-promise": false
+ "await-promise": false,
+ "no-restricted-globals": false
}
-}
\ No newline at end of file
+}
diff --git a/types/agenda/tslint.json b/types/agenda/tslint.json
index a41bf5d19a..3d59f55fda 100644
--- a/types/agenda/tslint.json
+++ b/types/agenda/tslint.json
@@ -8,6 +8,7 @@
"callable-types": false,
"comment-format": false,
"dt-header": false,
+ "npm-naming": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
diff --git a/types/aggregate-error/aggregate-error-tests.ts b/types/aggregate-error/aggregate-error-tests.ts
deleted file mode 100644
index 69e544f9ee..0000000000
--- a/types/aggregate-error/aggregate-error-tests.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import AggregateError = require('aggregate-error');
-
-const err = new AggregateError([new Error('foo'), 'bar']);
-
-for (const el of Array.from(err)) {
- const err: Error = el;
-}
-
-throw err;
diff --git a/types/aggregate-error/index.d.ts b/types/aggregate-error/index.d.ts
deleted file mode 100644
index 8c8c4cd3b2..0000000000
--- a/types/aggregate-error/index.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-// Type definitions for aggregate-error 1.0
-// Project: https://github.com/sindresorhus/aggregate-error#readme
-// Definitions by: BendingBender
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-export = AggregateError;
-
-declare class AggregateError extends Error implements Iterable {
- constructor(errors: Iterable);
-
- [Symbol.iterator](): Iterator;
-}
diff --git a/types/aggregate-error/tsconfig.json b/types/aggregate-error/tsconfig.json
deleted file mode 100644
index f092ab1c3e..0000000000
--- a/types/aggregate-error/tsconfig.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "compilerOptions": {
- "module": "commonjs",
- "lib": [
- "es6"
- ],
- "noImplicitAny": true,
- "noImplicitThis": true,
- "strictNullChecks": true,
- "strictFunctionTypes": true,
- "baseUrl": "../",
- "typeRoots": [
- "../"
- ],
- "types": [],
- "noEmit": true,
- "forceConsistentCasingInFileNames": true
- },
- "files": [
- "index.d.ts",
- "aggregate-error-tests.ts"
- ]
-}
\ No newline at end of file
diff --git a/types/alertify/tslint.json b/types/alertify/tslint.json
index a41bf5d19a..3d59f55fda 100644
--- a/types/alertify/tslint.json
+++ b/types/alertify/tslint.json
@@ -8,6 +8,7 @@
"callable-types": false,
"comment-format": false,
"dt-header": false,
+ "npm-naming": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
diff --git a/types/algoliasearch/algoliasearch-tests.ts b/types/algoliasearch/algoliasearch-tests.ts
index fdd0f395fe..fa6e29dbab 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 = {
@@ -147,6 +148,7 @@ let _algoliaQueryParameters: QueryParameters = {
tagFilters: [''],
facetFilters: [''],
analytics: false,
+ clickAnalytics: true,
analyticsTags: [''],
synonyms: true,
replaceSynonymsInHighlight: false,
diff --git a/types/algoliasearch/index.d.ts b/types/algoliasearch/index.d.ts
index 8e3ba4c5ab..86cedc9b93 100644
--- a/types/algoliasearch/index.d.ts
+++ b/types/algoliasearch/index.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for algoliasearch-client-js 3.30.0
+// Type definitions for algoliasearch-client-js 3.30.1
// Project: https://github.com/algolia/algoliasearch-client-js
// Definitions by: Baptiste Coquelle
// Haroen Viaene
@@ -6,6 +6,7 @@
// Samuel Vaillant
// Kai Eichinger
// Nery Ortez
+// Antoine Rousseau
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
@@ -1425,6 +1426,12 @@ declare namespace algoliasearch {
* https://www.algolia.com/doc/api-reference/api-parameters/analytics/
*/
analytics?: boolean;
+ /**
+ * If set to true, enables the Click Analytics feature
+ * default false
+ * https://www.algolia.com/doc/api-reference/api-parameters/clickAnalytics/
+ */
+ clickAnalytics?: boolean;
/**
* If set, tag your query with the specified identifiers
* default: []
@@ -1778,12 +1785,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..2fd13ec2d0 100644
--- a/types/algoliasearch/lite/index.d.ts
+++ b/types/algoliasearch/lite/index.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for algoliasearch-client-js 3.30.0
+// Type definitions for algoliasearch-client-js 3.30.1
// Project: https://github.com/algolia/algoliasearch-client-js
// Definitions by: Baptiste Coquelle
// Haroen Viaene
@@ -7,6 +7,7 @@
// Claas Brüggemann
// Kai Eichinger
// Nery Ortez
+// Antoine Rousseau
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
@@ -505,6 +506,12 @@ declare namespace algoliasearch {
* https://www.algolia.com/doc/api-reference/api-parameters/analytics/
*/
analytics?: boolean;
+ /**
+ * If set to true, enables the Click Analytics feature
+ * default false
+ * https://www.algolia.com/doc/api-reference/api-parameters/clickAnalytics/
+ */
+ clickAnalytics?: boolean;
/**
* If set, tag your query with the specified identifiers
* default: []
@@ -534,9 +541,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/algoliasearch/tslint.json b/types/algoliasearch/tslint.json
index 886f1a8b6c..4ef1833aa4 100644
--- a/types/algoliasearch/tslint.json
+++ b/types/algoliasearch/tslint.json
@@ -8,6 +8,7 @@
"callable-types": false,
"comment-format": false,
"dt-header": false,
+ "npm-naming": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
diff --git a/types/alt/tslint.json b/types/alt/tslint.json
index d67ffb3a73..6c7fd03ccd 100644
--- a/types/alt/tslint.json
+++ b/types/alt/tslint.json
@@ -8,6 +8,7 @@
"callable-types": false,
"comment-format": false,
"dt-header": false,
+ "npm-naming": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
diff --git a/types/amap-js-api-indoor-map/amap-js-api-indoor-map-tests.ts b/types/amap-js-api-indoor-map/amap-js-api-indoor-map-tests.ts
new file mode 100644
index 0000000000..f6efc2dc54
--- /dev/null
+++ b/types/amap-js-api-indoor-map/amap-js-api-indoor-map-tests.ts
@@ -0,0 +1,114 @@
+// $ExpectType IndoorMap
+new AMap.IndoorMap();
+// $ExpectType IndoorMap
+new AMap.IndoorMap({});
+// $ExpectType IndoorMap
+const indoorMap = new AMap.IndoorMap({
+ zIndex: 1,
+ opacity: 0.5,
+ cursor: 'cursor',
+ hideFloorBar: false,
+ alaysShow: true
+});
+
+// $ExpectType void
+indoorMap.showIndoorMap('indoorMapId');
+// $ExpectType void
+indoorMap.showIndoorMap('indoorMapId', (error, result) => {
+ // $ExpectType Error | null
+ error;
+ // $ExpectType SearchResult
+ result;
+ // $ExpectType string
+ result.id;
+ // $ExpectType 0 | 1
+ result.status;
+ if (result.status === 0) {
+ // $ExpectType Building
+ const building = result.building;
+ {
+ // $ExpectType number
+ building.floor;
+ // $ExpectType FloorDetails
+ const floorDetails = building.floor_details;
+ {
+ // $ExpectType number[]
+ floorDetails.floor_indexs;
+ // $ExpectType string[]
+ floorDetails.floor_names;
+ // $ExpectType string[]
+ floorDetails.floor_nonas;
+ }
+ // $ExpectType string
+ building.id;
+ // $ExpectType LngLat
+ building.lnglat;
+ // $ExpectType string
+ building.name;
+ }
+ } else {
+ // $ExpectType Error
+ result.error;
+ }
+});
+// $ExpectType void
+indoorMap.showIndoorMap('indoorMapId', 1);
+// $ExpectType void
+indoorMap.showIndoorMap('indoorMapId', 1, () => { });
+// $ExpectType void
+indoorMap.showIndoorMap('indoorMapId', 1, 'shopId');
+// $ExpectType void
+indoorMap.showIndoorMap('indoorMapId', 1, 'shopId', () => { });
+// $ExpectType void
+indoorMap.showIndoorMap('indoorMapId', 1, 'shopId', true);
+// $ExpectType void
+indoorMap.showIndoorMap('indoorMapId', 1, 'shopId', true, () => { });
+
+let floor: undefined | false;
+floor = indoorMap.showFloor(1);
+floor = indoorMap.showFloor(1, true);
+
+// $ExpectType void
+indoorMap.showFloorBar();
+
+// $ExpectType void
+indoorMap.hideFloorBar();
+
+// $ExpectType void
+indoorMap.hideLabels();
+
+// $ExpectType string | null
+indoorMap.getSelectedBuildingId();
+
+// $ExpectType Building | null
+const building = indoorMap.getSelectedBuilding();
+if (building) {
+ // $ExpectType number
+ building.floor;
+ // $ExpectType FloorDetails
+ building.floor_details;
+ // $ExpectType string
+ building.id;
+ // $ExpectType LngLat
+ building.lnglat;
+ // $ExpectType string
+ building.name;
+}
+
+indoorMap.on('complete', (event: AMap.IndoorMap.EventMap['complete']) => {
+ // $ExpectType "complete"
+ event.type;
+});
+
+indoorMap.on('click', (event: AMap.IndoorMap.EventMap['click']) => {
+ // $ExpectType string
+ event.building_id;
+ // $ExpectType number
+ event.floor;
+ // $ExpectType LngLat
+ event.lnglat;
+ // $ExpectType Shop
+ event.shop;
+ // $ExpectType "click"
+ event.type;
+});
diff --git a/types/amap-js-api-indoor-map/index.d.ts b/types/amap-js-api-indoor-map/index.d.ts
new file mode 100644
index 0000000000..9b30ea1722
--- /dev/null
+++ b/types/amap-js-api-indoor-map/index.d.ts
@@ -0,0 +1,239 @@
+// Type definitions for non-npm package amap-js-api-indoor-map 1.4
+// Project: https://lbs.amap.com/api/javascript-api/reference/indoormap
+// Definitions by: breeze9527
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.8
+
+///
+
+declare namespace AMap {
+ namespace IndoorMap {
+ interface EventMap {
+ complete: Event<'complete'>;
+ click: MouseEvent<'click'>;
+
+ floor_complete: Event<'floor_complete', SearchResult>;
+ mouseover: MouseEvent<'mouseover'>;
+ mouseout: MouseEvent<'mouseout'>;
+ }
+ type MouseEvent = Event;
+ interface Options extends Layer.Options {
+ /**
+ * 图层叠加的顺序值
+ */
+ zIndex?: number;
+ /**
+ * 图层的透明度
+ */
+ opacity?: number;
+ /**
+ * 鼠标悬停到店铺面时的鼠标样式
+ */
+ cursor?: string;
+ /**
+ * 是否隐藏楼层切换控件
+ */
+ hideFloorBar?: boolean;
+ /**
+ * 是否持续显示
+ */
+ alaysShow?: boolean;
+
+ // internal
+ visible?: boolean;
+ featurezIndex?: number;
+ zooms?: [number, number];
+ disableIconRender?: boolean;
+ disableLabelRender?: boolean;
+ disableHoverMarker?: boolean;
+ autoLoadBuildingsInTile?: boolean;
+ }
+ interface FloorDetails {
+ /**
+ * 各楼层索引
+ */
+ floor_indexs: number[];
+ /**
+ * 各楼层英文
+ */
+ floor_nonas: string[];
+ /**
+ * 各楼层名字
+ */
+ floor_names: string[];
+ }
+ type ShopCategory = 'public' | 'connection' | 'shop';
+ interface Shop {
+ /**
+ * 店铺的id
+ */
+ id: string;
+ /**
+ * 兴趣点ID
+ */
+ poiId: string;
+ /**
+ * 店铺所属楼宇ID
+ */
+ building_id: string;
+ /**
+ * 店铺名称
+ */
+ name: string;
+ /**
+ * 店铺的经纬度
+ */
+ lnglat: LngLat;
+ /**
+ * 分类
+ */
+ category: ShopCategory;
+ }
+ interface Building {
+ /**
+ * 所属楼宇ID
+ */
+ id: string;
+ /**
+ * 楼层名称
+ */
+ name: string;
+ /**
+ * 楼层的经纬度
+ */
+ lnglat: LngLat;
+ /**
+ * 所在楼层
+ */
+ floor: number;
+ floor_details: FloorDetails;
+ }
+ interface SearchSuccessResult {
+ /**
+ * 楼层的id
+ */
+ id: string;
+ status: 0;
+ /**
+ * 建筑信息
+ */
+ building: Building;
+ }
+ interface SearchErrorResult {
+ /**
+ * 楼宇id
+ */
+ id: string;
+ status: 1;
+ error: Error;
+ }
+ type SearchResult = SearchSuccessResult | SearchErrorResult;
+ }
+
+ class IndoorMap extends Layer {
+ /**
+ * 室内地图
+ * @param options 选项
+ */
+ constructor(options?: IndoorMap.Options);
+ /**
+ * 显示指定室内地图信息
+ * @param indoorId 建筑物ID
+ * @param callback 回调
+ */
+ showIndoorMap(
+ indoorId: string,
+ callback?: (error: null | Error, result: IndoorMap.SearchResult) => void
+ ): void;
+ /**
+ * 显示指定室内地图信息
+ * @param indoorId 建筑物ID
+ * @param floor 楼层
+ * @param callback 回调
+ */
+ showIndoorMap(
+ indoorId: string,
+ floor?: number,
+ callback?: (error: null | Error, result: IndoorMap.SearchResult) => void
+ ): void;
+ /**
+ * 显示指定室内地图信息
+ * @param indoorId 建筑物ID
+ * @param floor 楼层
+ * @param shopId 商铺ID
+ * @param callback 回调
+ */
+ showIndoorMap(
+ indoorId: string,
+ floor?: number,
+ shopId?: string,
+ callback?: (error: null | Error, result: IndoorMap.SearchResult) => void
+ ): void;
+ /**
+ * 显示指定室内地图信息
+ * @param indoorId 建筑物ID
+ * @param floor 楼层
+ * @param shopId 商铺ID
+ * @param noMove 阻止移动
+ * @param callback 回调
+ */
+ showIndoorMap(
+ indoorId: string,
+ floor?: number,
+ shopId?: string,
+ noMove?: boolean,
+ callback?: (error: null | Error, result: IndoorMap.SearchResult) => void
+ ): void;
+ /**
+ * 显示指定的楼层
+ * @param floor 楼层
+ * @param noMove 禁止移动
+ */
+ showFloor(floor: number, noMove?: boolean): false | undefined;
+ /**
+ * 显示楼层切换控件
+ */
+ showFloorBar(): void;
+ /**
+ * 隐藏楼层切换控件
+ */
+ hideFloorBar(): void;
+ /**
+ * 显示室内地图标注
+ */
+ showLabels(): void;
+ /**
+ * 隐藏室内地图标注
+ */
+ hideLabels(): void;
+ /**
+ * 获取处于被选中状态的室内地图的ID
+ */
+ getSelectedBuildingId(): string | null;
+ /**
+ * 获取处于被选中状态的室内地图的一些基本信息
+ */
+ getSelectedBuilding(): IndoorMap.Building | null;
+
+ // internal
+ getFloorBar(): void;
+ setSelectedBuildingId(id: string): void;
+ }
+}
diff --git a/types/amap-js-api-indoor-map/tsconfig.json b/types/amap-js-api-indoor-map/tsconfig.json
new file mode 100644
index 0000000000..da736c3c7b
--- /dev/null
+++ b/types/amap-js-api-indoor-map/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es6",
+ "dom"
+ ],
+ "noEmit": true,
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "strictFunctionTypes": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.d.ts",
+ "amap-js-api-indoor-map-tests.ts"
+ ]
+}
diff --git a/types/filenamify/tslint.json b/types/amap-js-api-indoor-map/tslint.json
similarity index 100%
rename from types/filenamify/tslint.json
rename to types/amap-js-api-indoor-map/tslint.json
diff --git a/types/amap-js-api-map3d/amap-js-api-map3d-tests.ts b/types/amap-js-api-map3d/amap-js-api-map3d-tests.ts
new file mode 100644
index 0000000000..ec89b74476
--- /dev/null
+++ b/types/amap-js-api-map3d/amap-js-api-map3d-tests.ts
@@ -0,0 +1,489 @@
+/**
+ * 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 layer: AMap.Layer;
+declare const ambientLight: AMap.Lights.AmbientLight;
+declare const directionLight: AMap.Lights.DirectionLight;
+declare const line: AMap.Object3D.Line;
+declare const mesh: AMap.Object3D.Mesh;
+declare const object3d: AMap.Object3D;
+declare const geometry: AMap.Geometry3D.Mesh;
+
+/**
+ * lights.ts
+ */
+
+// $ExpectType AmbientLight
+const testAmbientLight = new AMap.Lights.AmbientLight([0.1, 0, 0.1], 1);
+
+// $ExpectType void
+testAmbientLight.setColor([0.1, 1, 0.5]);
+
+// $ExpectType void
+testAmbientLight.setIntensity(1);
+
+// $ExpectType DirectionLight
+const testDirectionLight = new AMap.Lights.DirectionLight([1, 2, 3], [1, 2, 3], 1);
+
+// $ExpectType void
+testDirectionLight.setColor([1, 2, 3]);
+
+// $ExpectType void
+testDirectionLight.setIntensity(1);
+
+// $ExpectType void
+testDirectionLight.setDirection([1, 2, 3]);
+
+/**
+ * map3d.ts
+ */
+
+// $ExpectType Object3DResult | null
+map.getObject3DByContainerPos(pixel);
+
+// $ExpectType Object3DResult | null
+const containserPos = map.getObject3DByContainerPos(pixel, [layer], true);
+if (containserPos) {
+ // $ExpectType number
+ containserPos.index;
+ // $ExpectType Vector3
+ containserPos.point;
+ // $ExpectType number
+ containserPos.distance;
+ // $ExpectType Object3D
+ containserPos.object;
+} else {
+ // $ExpectType null
+ containserPos;
+}
+
+map.AmbientLight = ambientLight;
+map.AmbientLight = undefined;
+
+map.DirectionLight = directionLight;
+map.DirectionLight = undefined;
+
+/**
+ * object3d-group.ts
+ */
+
+// $ExpectType Object3DGroup
+const testObject3dGroup1 = new AMap.Object3DGroup();
+// $ExpectType Object3DGroup
+const testObject3dGroup2 = new AMap.Object3DGroup();
+
+// $ExpectType Object3D[]
+testObject3dGroup1.children;
+// $ExpectType Mesh[]
+testObject3dGroup2.children;
+
+// $ExoectType void
+testObject3dGroup1.add(line);
+// $ExoectType void
+testObject3dGroup1.add(mesh);
+// $ExoectType void
+testObject3dGroup2.add(mesh);
+// $ExpectError
+testObject3dGroup2.add(line);
+
+// $ExoectType void
+testObject3dGroup1.remove(line);
+// $ExoectType void
+testObject3dGroup1.remove(mesh);
+// $ExoectType void
+testObject3dGroup2.remove(mesh);
+// $ExpectError
+testObject3dGroup2.remove(line);
+
+/**
+ * object3d-Layer.ts
+ */
+
+// $ExpectType Object3DLayer
+new AMap.Object3DLayer();
+// $ExpectType Object3DLayer
+new AMap.Object3DLayer({});
+// $ExpectType Object3DLayer
+const testObject3DLayer = new AMap.Object3DLayer({
+ map,
+ visible: true,
+ opacity: 0.1,
+ zIndex: 2,
+ zooms: [1, 2]
+});
+
+// $ExpectType void
+testObject3DLayer.setMap(null);
+// $ExpectType void
+testObject3DLayer.setMap(map);
+
+// $ExpectType Map | null | undefined
+testObject3DLayer.getMap();
+
+// $ExpectType void
+testObject3DLayer.hide();
+
+// $ExpectType void
+testObject3DLayer.show();
+
+// $ExpectType void
+testObject3DLayer.setOpacity(1);
+
+// $ExpectType number
+testObject3DLayer.getOpacity();
+
+// $ExpectType void
+testObject3DLayer.setzIndex(1);
+
+// $ExpectType number
+testObject3DLayer.getzIndex();
+
+// $ExpectType [number, number]
+testObject3DLayer.getZooms();
+
+// $ExpectType void
+testObject3DLayer.add(object3d);
+
+// $ExpectType void
+testObject3DLayer.remove(object3d);
+
+// $ExpectType void
+testObject3DLayer.clear();
+
+// $ExpectType void
+testObject3DLayer.reDraw();
+
+/**
+ * vector3.ts
+ */
+
+// $ExpectType Vector3
+const testVector = new AMap.Vector3([1, 2, 3]);
+// $ExpectType Vector3
+new AMap.Vector3(testVector);
+
+// $ExpectType [number, number, number]
+testVector.elements;
+
+// $ExpectType void
+testVector.set(1, 2, 3);
+
+// $ExpectType number
+testVector.dot();
+
+// $ExpectType Vector3
+testVector.clone();
+
+// $ExpectType Vector3
+testVector.add(testVector);
+// $ExpectType Vector3
+testVector.add([1, 2, 3]);
+
+// $ExpectType Vector3
+testVector.sub(testVector);
+// $ExpectType Vector3
+testVector.sub([1, 2, 3]);
+
+// $ExpectType Vector3
+testVector.addVectors(testVector, testVector);
+
+// $ExpectType Vector3
+testVector.subVectors(testVector, testVector);
+
+// $ExpectType Vector3
+testVector.crossVectors(testVector, testVector);
+
+// $ExpectType Vector3
+testVector.normalize();
+
+// $ExpectType number
+testVector.length();
+
+/**
+ * object3d/mesh.ts
+ */
+
+// $ExpectType Mesh
+const testMesh = new AMap.Object3D.Mesh();
+
+// $ExpectError
+testMesh.geometry = geometry;
+
+// $ExpectType number[]
+testMesh.geometry.vertices;
+// $ExpectError
+testMesh.geometry.vertices = [];
+testMesh.geometry.vertices.shift();
+
+// $ExpectType number[]
+testMesh.geometry.vertexColors;
+// $ExpectError
+testMesh.geometry.vertexColors = [];
+testMesh.geometry.vertexColors.shift();
+
+// $ExpectType number[]
+testMesh.geometry.vertexUVs;
+// $ExpectError
+testMesh.geometry.vertexUVs = [];
+testMesh.geometry.vertexUVs.shift();
+
+// $ExpectType number[]
+testMesh.geometry.faces;
+// $ExpectError
+testMesh.geometry.faces = [];
+testMesh.geometry.faces.shift();
+
+// $ExpectType number[]
+testMesh.geometry.textureIndices;
+// $ExpectError
+testMesh.geometry.textureIndices = [];
+testMesh.geometry.textureIndices.shift();
+
+// $ExpectType (string | HTMLCanvasElement)[]
+testMesh.textures;
+
+// $ExpectType boolean
+testMesh.needUpdate;
+
+// $ExpectType boolean
+testMesh.transparent;
+
+// $ExpectType boolean
+testMesh.DEPTH_TEST;
+
+// $ExpectType void
+testMesh.reDraw();
+
+/**
+ * object3d/meshAcceptLights.ts
+ */
+
+// $ExpectType MeshAcceptLights
+const testMeshAcceptLights = new AMap.Object3D.MeshAcceptLights();
+
+// $ExpectError
+testMeshAcceptLights.geometry = geometry;
+
+// $ExpectType number[]
+testMeshAcceptLights.geometry.vertices;
+// $ExpectError
+testMeshAcceptLights.geometry.vertices = [];
+testMeshAcceptLights.geometry.vertices.shift();
+
+// $ExpectType number[]
+testMeshAcceptLights.geometry.vertexColors;
+// $ExpectError
+testMeshAcceptLights.geometry.vertexColors = [];
+testMeshAcceptLights.geometry.vertexColors.shift();
+
+// $ExpectType number[]
+testMeshAcceptLights.geometry.vertexUVs;
+// $ExpectError
+testMeshAcceptLights.geometry.vertexUVs = [];
+testMeshAcceptLights.geometry.vertexUVs.shift();
+
+// $ExpectType number[]
+testMeshAcceptLights.geometry.faces;
+// $ExpectError
+testMeshAcceptLights.geometry.faces = [];
+testMeshAcceptLights.geometry.faces.shift();
+
+// $ExpectType number[]
+testMeshAcceptLights.geometry.textureIndices;
+// $ExpectError
+testMeshAcceptLights.geometry.textureIndices = [];
+testMeshAcceptLights.geometry.textureIndices.shift();
+
+// $ExpectType number[]
+testMeshAcceptLights.geometry.vertexNormals;
+// $ExpectError
+testMeshAcceptLights.geometry.vertexNormals = [];
+testMeshAcceptLights.geometry.vertexNormals.shift();
+
+// $ExpectType (string | HTMLCanvasElement)[]
+testMeshAcceptLights.textures;
+
+// $ExpectType boolean
+testMeshAcceptLights.needUpdate;
+
+// $ExpectType boolean
+testMeshAcceptLights.transparent;
+
+// $ExpectType boolean
+testMeshAcceptLights.DEPTH_TEST;
+
+// $ExpectType void
+testMeshAcceptLights.reDraw();
+
+/**
+ * object3d/meshLine.ts
+ */
+
+// $ExpectError
+new AMap.Object3D.MeshLine();
+// $ExpectError
+new AMap.Object3D.MeshLine({});
+// $ExpectType MeshLine
+const testMeshLine = new AMap.Object3D.MeshLine({
+ path: [lnglat],
+ width: 1,
+ height: 1,
+ color: 'red'
+});
+// $ExpectType MeshLine
+new AMap.Object3D.MeshLine({
+ path: [lnglat],
+ color: [0, 0, 1, 1]
+});
+// $ExpectType MeshLine
+new AMap.Object3D.MeshLine({
+ path: [[1, 2]]
+});
+// $ExpectType MeshLine
+new AMap.Object3D.MeshLine({
+ path: [lnglat],
+ unit: 'meter'
+});
+// $ExpectType MeshLine
+new AMap.Object3D.MeshLine({
+ path: [pixel],
+ unit: 'px'
+});
+// $ExpectError
+new AMap.Object3D.MeshLine({
+ path: [lnglat],
+ unit: 'px'
+});
+// $ExpectError
+new AMap.Object3D.MeshLine({
+ path: [pixel],
+ unit: 'meter'
+});
+
+// $ExpectType number[]
+testMeshLine.geometry.vertices;
+// $ExpectError
+testMeshLine.geometry.vertices = [];
+testMeshLine.geometry.vertices.shift();
+
+// $ExpectType number[]
+testMeshLine.geometry.vertexUVs;
+// $ExpectError
+testMeshLine.geometry.vertexUVs = [];
+testMeshLine.geometry.vertexUVs.shift();
+
+// $ExpectType number[]
+testMeshLine.geometry.vertexColors;
+// $ExpectError
+testMeshLine.geometry.vertexColors = [];
+testMeshLine.geometry.vertexColors.shift();
+
+// $ExpectType number[]
+testMeshLine.geometry.vertexColors;
+// $ExpectError
+testMeshLine.geometry.vertexColors = [];
+testMeshLine.geometry.vertexColors.shift();
+
+// $ExpectType number[]
+testMeshLine.geometry.vertexIndices;
+// $ExpectError
+testMeshLine.geometry.vertexIndices = [];
+testMeshLine.geometry.vertexIndices.shift();
+
+// $ExpectType number[]
+testMeshLine.geometry.directions;
+// $ExpectError
+testMeshLine.geometry.directions = [];
+testMeshLine.geometry.directions.shift();
+
+// $ExpectType number[]
+testMeshLine.geometry.textureIndices;
+// $ExpectError
+testMeshLine.geometry.textureIndices = [];
+testMeshLine.geometry.textureIndices.shift();
+
+// $ExpectType number
+testMeshLine.width;
+
+// $ExpectType void
+testMeshLine.setPath([lnglat]);
+// $ExpectType void
+testMeshLine.setPath([lnglatTuple]);
+// $ExpectType void
+testMeshLine.setPath([pixel]);
+
+// $ExpectType void
+testMeshLine.setWidth(10);
+
+// $ExpectType void
+testMeshLine.setHeight(10);
+
+// $ExpectType void
+testMeshLine.setColor('red');
+
+/**
+ * object3d/prism.ts
+ */
+
+// $ExpectError
+new AMap.Object3D.Prism();
+// $ExpectError
+new AMap.Object3D.Prism({});
+// $ExpectType Prism
+new AMap.Object3D.Prism({
+ path: [lnglat],
+ color: 'red'
+});
+// $ExpectType Prism
+new AMap.Object3D.Prism({
+ path: [lnglat],
+ color: 'red',
+ height: 1,
+ color2: 'blue'
+});
+// $ExpectType Prism
+new AMap.Object3D.Prism({
+ path: [pixel],
+ color: 'red'
+});
+// $ExpectType Prism
+new AMap.Object3D.Prism({
+ path: [lnglat],
+ color: 'red'
+});
+// $ExpectType Prism
+new AMap.Object3D.Prism({
+ path: [[lnglat]],
+ color: 'red'
+});
+// $ExpectType Prism
+new AMap.Object3D.Prism({
+ path: [[pixel]],
+ color: 'red'
+});
+// $ExpectType Prism
+new AMap.Object3D.Prism({
+ path: [[lnglatTuple]],
+ color: 'red'
+});
+// $ExpectType Prism
+new AMap.Object3D.Prism({
+ path: [lnglat],
+ color: ['red']
+});
+// $ExpectType Prism
+new AMap.Object3D.Prism({
+ path: [lnglat],
+ color: [1, 1, 1, 1]
+});
+// $ExpectType Prism
+new AMap.Object3D.Prism({
+ path: [lnglat],
+ color: [[1, 1, 1, 1]]
+});
diff --git a/types/amap-js-api-map3d/geometry-3d.d.ts b/types/amap-js-api-map3d/geometry-3d.d.ts
new file mode 100644
index 0000000000..edb4fd2a85
--- /dev/null
+++ b/types/amap-js-api-map3d/geometry-3d.d.ts
@@ -0,0 +1,28 @@
+declare namespace AMap {
+ abstract class Geometry3D {
+ readonly vertices: number[];
+ readonly vertexUVs: number[];
+ readonly vertexColors: number[];
+ }
+
+ namespace Geometry3D {
+ class Mesh extends Geometry3D {
+ readonly type: 'mesh';
+ readonly faces: number[];
+ readonly textureIndices: number[];
+ }
+
+ class Line extends Geometry3D {
+ readonly type: 'line';
+ readonly segments: number[];
+ readonly textureIndices: number[];
+ }
+
+ class Points extends Geometry3D {
+ readonly type: 'points';
+ readonly pointSizes: number[];
+ readonly pointAreas: number[];
+ readonly textureIndices: number[];
+ }
+ }
+}
diff --git a/types/amap-js-api-map3d/index.d.ts b/types/amap-js-api-map3d/index.d.ts
new file mode 100644
index 0000000000..43be45eb13
--- /dev/null
+++ b/types/amap-js-api-map3d/index.d.ts
@@ -0,0 +1,15 @@
+// Type definitions for non-npm package amap-js-api-map3d 1.4
+// Project: https://lbs.amap.com/api/javascript-api/reference/maps-3d
+// Definitions by: breeze9527
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.8
+
+///
+
+///
+///
+///
+///
+///
+///
+///
diff --git a/types/amap-js-api-map3d/lights.d.ts b/types/amap-js-api-map3d/lights.d.ts
new file mode 100644
index 0000000000..b637ee79ef
--- /dev/null
+++ b/types/amap-js-api-map3d/lights.d.ts
@@ -0,0 +1,17 @@
+declare namespace AMap {
+ namespace Lights {
+ class AmbientLight {
+ constructor(color: [number, number, number], intensity: number);
+ setColor(color: [number, number, number]): void;
+ setIntensity(intensity: number): void;
+ }
+
+ class DirectionLight {
+ constructor(direction: [number, number, number], color: [number, number, number], intensity: number);
+ update(): void;
+ setDirection(direction: [number, number, number]): void;
+ setColor(direction: [number, number, number]): void;
+ setIntensity(intensity: number): void;
+ }
+ }
+}
diff --git a/types/amap-js-api-map3d/map3d.d.ts b/types/amap-js-api-map3d/map3d.d.ts
new file mode 100644
index 0000000000..f2345f1a30
--- /dev/null
+++ b/types/amap-js-api-map3d/map3d.d.ts
@@ -0,0 +1,15 @@
+declare namespace AMap {
+ namespace Map {
+ interface Object3DResult {
+ index: number;
+ point: Vector3;
+ distance: number;
+ object: Object3D;
+ }
+ }
+ interface Map {
+ AmbientLight?: Lights.AmbientLight;
+ DirectionLight?: Lights.DirectionLight;
+ getObject3DByContainerPos(pixel: Pixel, layers?: Layer[], all?: boolean): Map.Object3DResult | null;
+ }
+}
diff --git a/types/amap-js-api-map3d/object3d-group.d.ts b/types/amap-js-api-map3d/object3d-group.d.ts
new file mode 100644
index 0000000000..4c1f4d90d3
--- /dev/null
+++ b/types/amap-js-api-map3d/object3d-group.d.ts
@@ -0,0 +1,8 @@
+declare namespace AMap {
+ class Object3DGroup extends Object3D {
+ constructor();
+ children: C[];
+ add(object3d: C): void;
+ remove(object3d: C): void;
+ }
+}
diff --git a/types/amap-js-api-map3d/object3d-layer.d.ts b/types/amap-js-api-map3d/object3d-layer.d.ts
new file mode 100644
index 0000000000..de29a0bfd9
--- /dev/null
+++ b/types/amap-js-api-map3d/object3d-layer.d.ts
@@ -0,0 +1,27 @@
+declare namespace AMap {
+ namespace Object3DLayer {
+ interface Options {
+ map?: Map;
+ visible?: boolean;
+ opacity?: number;
+ zIndex?: number;
+ zooms?: [number, number];
+ }
+ }
+
+ class Object3DLayer extends Layer {
+ constructor(options?: Object3DLayer.Options)
+ add(object3d: Object3D): void;
+ remove(object3d: Object3D): void;
+ clear(): void;
+ reDraw(): void;
+
+ // internal
+ setOption(options: {
+ position?: number;
+ scale?: number;
+ height?: number;
+ scene?: number;
+ }): void;
+ }
+}
diff --git a/types/amap-js-api-map3d/object3d.d.ts b/types/amap-js-api-map3d/object3d.d.ts
new file mode 100644
index 0000000000..32f63e2378
--- /dev/null
+++ b/types/amap-js-api-map3d/object3d.d.ts
@@ -0,0 +1,92 @@
+declare namespace AMap {
+ class Object3D {
+ readonly geometry: Geometry3D;
+ transparent: boolean;
+ DEPTH_TEST: boolean;
+ textures: Array;
+ needUpdate: boolean;
+ reDraw(): void;
+
+ // internal
+ reset(): void;
+ }
+
+ namespace Object3D {
+ class Mesh extends Object3D {
+ readonly geometry: Geometry3D.Mesh;
+ }
+
+ class MeshAcceptLights extends Mesh {
+ readonly geometry: Geometry3D.Mesh & { readonly vertexNormals: number[] };
+ }
+
+ namespace Prism {
+ interface Options {
+ path: LngLat[] | Pixel[] | Array>;
+ color: string | number[] | Array;
+ height?: number;
+ color2?: string | number[] | Array;
+ }
+ }
+ class Prism extends MeshAcceptLights {
+ constructor(options: Prism.Options);
+ }
+
+ // tslint:disable-next-line
+ class Wall extends Prism { }
+
+ class Line extends Object3D {
+ readonly geometry: Geometry3D.Line;
+ }
+
+ namespace ThinLine {
+ interface Options {
+ path: Array<[number, number]>;
+ color: string;
+ altitude?: number;
+ dashArray?: number[];
+ }
+ }
+ class ThinLine extends Line {
+ constructor(options: ThinLine.Options);
+ }
+
+ class Points extends Object3D {
+ readonly geometry: Geometry3D.Points;
+ borderColor: string;
+ borderWeight: number;
+ }
+
+ class RoundPoints extends Points {
+ merge: boolean;
+ }
+
+ namespace MeshLine {
+ type Options = {
+ width?: number;
+ height?: number | number[];
+ color?: string | number[];
+ } & ({
+ unit?: 'meter';
+ path: Array<[number, number]> | LngLat[];
+ } | {
+ unit: 'px';
+ path: Array<[number, number]> | Pixel[];
+ });
+ }
+ // inherit from WideLine
+ class MeshLine extends Object3D {
+ constructor(options: MeshLine.Options);
+ readonly geometry: Geometry3D & {
+ readonly vertexIndices: number[];
+ readonly directions: number[];
+ readonly textureIndices: number[];
+ };
+ width: number;
+ setPath(path: LngLat[] | Pixel[] | Array<[number, number]>): void;
+ setWidth(width: number): void;
+ setHeight(height: number | number[]): void;
+ setColor(color: string): void;
+ }
+ }
+}
diff --git a/types/amap-js-api-map3d/tsconfig.json b/types/amap-js-api-map3d/tsconfig.json
new file mode 100644
index 0000000000..e28735d963
--- /dev/null
+++ b/types/amap-js-api-map3d/tsconfig.json
@@ -0,0 +1,31 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es6",
+ "dom"
+ ],
+ "noEmit": true,
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "strictFunctionTypes": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "geometry-3d.d.ts",
+ "index.d.ts",
+ "lights.d.ts",
+ "map3d.d.ts",
+ "object3d-group.d.ts",
+ "object3d-layer.d.ts",
+ "object3d.d.ts",
+ "vector3.d.ts",
+ "amap-js-api-map3d-tests.ts"
+ ]
+}
diff --git a/types/make-dir/tslint.json b/types/amap-js-api-map3d/tslint.json
similarity index 100%
rename from types/make-dir/tslint.json
rename to types/amap-js-api-map3d/tslint.json
diff --git a/types/amap-js-api-map3d/vector3.d.ts b/types/amap-js-api-map3d/vector3.d.ts
new file mode 100644
index 0000000000..1cb02fe9b0
--- /dev/null
+++ b/types/amap-js-api-map3d/vector3.d.ts
@@ -0,0 +1,16 @@
+declare namespace AMap {
+ class Vector3 {
+ readonly elements: [number, number, number];
+ constructor(elements: [number, number, number] | Vector3);
+ set(x: number, y: number, z: number): void;
+ dot(): number;
+ clone(): Vector3;
+ add(elements: [number, number, number] | Vector3): this;
+ sub(elements: [number, number, number] | Vector3): this;
+ addVectors(a: Vector3, b: Vector3): this;
+ subVectors(a: Vector3, b: Vector3): this;
+ crossVectors(a: Vector3, b: Vector3): this;
+ normalize(): this;
+ length(): number;
+ }
+}
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..3e0145e049
--- /dev/null
+++ b/types/amap-js-api/array-bounds.d.ts
@@ -0,0 +1,15 @@
+declare namespace AMap {
+ class ArrayBounds {
+ constructor(bounds: LocationValue[]);
+ bounds: LngLat[];
+ /**
+ * 判断传入的点是否在ArrayBounds内
+ * @param point 目标点
+ */
+ 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..f594969292
--- /dev/null
+++ b/types/amap-js-api/bounds.d.ts
@@ -0,0 +1,39 @@
+declare namespace AMap {
+ class Bounds {
+ /**
+ * 地物对象的经纬度矩形范围。
+ * @param southWest 西南角经纬度
+ * @param northEast 东北角经纬度
+ */
+ constructor(southWest: LngLat, northEast: LngLat);
+ /**
+ * 指定点坐标是否在矩形范围内
+ * @param point 制定坐标
+ */
+ contains(point: LocationValue): boolean;
+ /**
+ * 获取当前Bounds的中心点经纬度坐标
+ */
+ 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..26b3956aa1
--- /dev/null
+++ b/types/amap-js-api/browser.d.ts
@@ -0,0 +1,192 @@
+declare namespace AMap {
+ namespace Browser {
+ /**
+ * 当前浏览器userAgent
+ */
+ const ua: string;
+ /**
+ * 是否移动设备
+ */
+ const mobile: boolean;
+ /**
+ * 平台类型,如:'windows'、'mac'、'ios'、'android'、'other'
+ */
+ const plat: 'android' | 'ios' | 'windows' | 'mac' | 'other';
+ /**
+ * 是否mac设备
+ */
+ const mac: boolean;
+ /**
+ * 是否windows设备
+ */
+ const windows: boolean;
+ /**
+ * 是否iOS设备
+ */
+ const ios: boolean;
+ /**
+ * 是否iPad
+ */
+ const iPad: boolean;
+ /**
+ * 是否iPhone
+ */
+ const iPhone: boolean;
+ /**
+ * 是否安卓设备
+ */
+ const android: boolean;
+ /**
+ * 是否安卓4以下系统
+ */
+ const android23: boolean;
+ /**
+ * 是否Chrome浏览器
+ */
+ const chrome: boolean;
+ /**
+ * 是否火狐浏览器
+ */
+ const firefox: boolean;
+ /**
+ * 是否Safari浏览器
+ */
+ const safari: boolean;
+ /**
+ * 是否微信
+ */
+ const wechat: boolean;
+ /**
+ * 是否UC浏览器
+ */
+ const uc: boolean;
+ /**
+ * 是否QQ或者QQ浏览器
+ */
+ const qq: boolean;
+ /**
+ * 是否IE
+ */
+ const ie: boolean;
+ /**
+ * 是否IE6
+ */
+ const ie6: boolean;
+ /**
+ * 是否IE7
+ */
+ const ie7: boolean;
+ /**
+ * 是否IE8
+ */
+ const ie8: boolean;
+ /**
+ * 是否IE9
+ */
+ const ie9: boolean;
+ /**
+ * 是否IE10
+ */
+ const ie10: boolean;
+ /**
+ * 是否IE11
+ */
+ const ie11: boolean;
+ /**
+ * 是否Edge浏览器
+ */
+ const edge: boolean;
+ /**
+ * 是否IE9以下
+ */
+ const ielt9: boolean;
+ /**
+ * 是否百度浏览器
+ */
+ const baidu: boolean;
+ /**
+ * 是否支持LocaStorage
+ */
+ const isLocalStorage: boolean;
+ /**
+ * 是否支持Geolocation
+ */
+ const isGeolocation: boolean;
+ /**
+ * 是否Webkit移动浏览器
+ */
+ const mobileWebkit: boolean;
+ /**
+ * 是否支持Css3D的Webkit移动端浏览器
+ */
+ const mobileWebkit3d: boolean;
+ /**
+ * 是否Opera移动浏览器
+ */
+ const mobileOpera: boolean;
+ /**
+ * 是否高清屏幕,devicePixelRatio>1
+ */
+ const retina: boolean;
+ /**
+ * 是否触屏
+ */
+ const touch: boolean;
+ /**
+ * 是否msPointer设备
+ */
+ const msPointer: boolean;
+ /**
+ * 是否pointer设备
+ */
+ const pointer: boolean;
+ /**
+ * 是否webkit浏览器
+ */
+ const webkit: boolean;
+ /**
+ * 是否支持Css3D的ie浏览器
+ */
+ const ie3d: boolean;
+ /**
+ * 是否支持Css3D的Webkit浏览器
+ */
+ const webkit3d: boolean;
+ /**
+ * 是否支持Css3D的gecko浏览器
+ */
+ const gecko3d: boolean;
+ /**
+ * 是否支持Css3D的opera浏览器
+ */
+ const opera3d: boolean;
+ /**
+ * 是否支持Css3D的浏览器
+ */
+ const any3d: boolean;
+ /**
+ * 是否支持canvas
+ */
+ const isCanvas: boolean;
+ /**
+ * 是否支持svg
+ */
+ const isSvg: boolean;
+ /**
+ * 是否支持vml
+ */
+ const isVML: boolean;
+ /**
+ * 是否支持WebWorker
+ */
+ const isWorker: boolean;
+ /**
+ * 是否支持WebSocket
+ */
+ const isWebsocket: boolean;
+ /**
+ * 判断是否支持webgl
+ */
+ 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..8b442ad0a3
--- /dev/null
+++ b/types/amap-js-api/common.d.ts
@@ -0,0 +1,31 @@
+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..61f83f9b94
--- /dev/null
+++ b/types/amap-js-api/convert-from.d.ts
@@ -0,0 +1,27 @@
+declare namespace AMap {
+ namespace convertFrom {
+ interface Result {
+ /**
+ * 成功状态文字描述
+ */
+ info: string; // 'ok'
+ /**
+ * 高德坐标集合
+ */
+ locations: LngLat[];
+ }
+ type Type = 'gps' | 'baidu' | 'mapbar';
+ type SearchStatus = 'complete' | 'error';
+ }
+ /**
+ * 为坐标转换类,支持将其他坐标系的坐标点转换为高德坐标系。
+ * @param lnglat 待转换坐标
+ * @param type 用于说明是哪个服务商的坐标
+ * @param callback 转换完成后的回调函数
+ */
+ 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..e39793f006
--- /dev/null
+++ b/types/amap-js-api/dom-util.d.ts
@@ -0,0 +1,78 @@
+declare namespace AMap {
+ namespace DomUtil {
+ /**
+ * 获取DOM元素的大小
+ * @param dom DOM元素
+ */
+ function getViewport(dom: HTMLElement): Size;
+ /**
+ * 获取DOM元素距离窗口左上角的距离
+ * @param dom DOM元素
+ */
+ function getViewportOffset(dom: HTMLElement): Pixel;
+ /**
+ * 在parentNode内部创建一个className类名的tagName元素
+ * @param tagName 标签名称
+ * @param parent 父节点
+ * @param className 类名
+ */
+ function create(
+ tagName: K,
+ parent?: HTMLElement,
+ className?: string
+ ): HTMLElementTagNameMap[K];
+ /**
+ * 给DOM元素设置为className样式
+ * @param dom DOM元素
+ * @param className 类名
+ */
+ function setClass(dom: HTMLElement, className?: string): void;
+ /**
+ * DOM元素是否包含className
+ * @param dom DOM元素
+ * @param className 类名
+ */
+ function hasClass(dom: HTMLElement, className: string): boolean;
+ /**
+ * 给DOM元素添加一个className
+ * @param dom DOM元素
+ * @param className 类名
+ */
+ function addClass(dom: HTMLElement, className: string): void;
+ /**
+ * 给DOM元素删除一个className
+ * @param dom DOM元素
+ * @param className 类名
+ */
+ function removeClass(dom: HTMLElement, className: string): void;
+ /**
+ * 给DOM元素设定一个透明度
+ * @param dom DOM元素
+ * @param opacity 透明度(0-1)
+ */
+ function setOpacity(dom: HTMLElement, opacity: number): void;
+ /**
+ * 给DOM元素旋转一个角度,以center为中心,center以元素左上角为坐标原点
+ * @param dom DOM元素
+ * @param deg 旋转角度
+ * @param origin 旋转中心
+ */
+ function rotate(dom: HTMLElement, deg: number, origin?: { x: number, y: number }): void;
+ /**
+ * 给DOM元素删除一组样式,Object同样式表
+ * @param dom DOM元素
+ * @param style 样式
+ */
+ function setCss(dom: HTMLElement | HTMLElement[], style: Partial): typeof DomUtil; // this
+ /**
+ * 清空DOM元素
+ * @param dom DOM元素
+ */
+ function empty(dom: HTMLElement): void;
+ /**
+ * 将DOM元素从父节点删除
+ * @param dom DOM元素
+ */
+ 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..d90ee4c720
--- /dev/null
+++ b/types/amap-js-api/event.d.ts
@@ -0,0 +1,102 @@
+declare namespace AMap {
+ abstract class EventEmitter {
+ /**
+ * 注册事件
+ * @param eventName 事件名称
+ * @param handler 事件回调函数
+ * @param context 事件回调中的上下文
+ * @param once 触发一次
+ * @param unshift 更改事件顺序
+ */
+ on(
+ eventName: string,
+ // tslint:disable-next-line:no-unnecessary-generics
+ handler: (this: C, event: E) => void,
+ context?: C,
+ once?: boolean,
+ unshift?: boolean
+ ): this;
+ /**
+ * 移除事件绑定
+ * @param eventName 事件名称
+ * @param handler 事件功能函数
+ * @param context 事件上下文
+ */
+ off(
+ eventName: string,
+ // tslint:disable-next-line
+ handler: ((this: C, event: E) => void) | 'mv',
+ context?: C
+ ): this;
+ /**
+ * 触发事件
+ * @param eventName 事件名称
+ * @param data 事件数据
+ */
+ emit(eventName: string, data?: any): this;
+ }
+
+ namespace event {
+ interface EventListener {
+ type: T;
+ }
+ /**
+ * 注册DOM对象事件
+ * @param instance 需注册事件的DOM对象
+ * @param eventName 事件名称
+ * @param handler 事件功能函数
+ * @param context 事件上下文
+ */
+ 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>;
+ /**
+ * 给对象注册事件
+ * @param instance 需注册事件的对象
+ * @param eventName 事件名称
+ * @param handler 事件功能函数
+ * @param context 事件上下文
+ */
+ 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>;
+ /**
+ * 给对象注册一次性事件
+ * @param instance 需注册事件的对象
+ * @param eventName 事件名称
+ * @param handler 事件功能函数
+ * @param context 事件上下文
+ */
+ 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>;
+ /**
+ * 删除事件
+ * @param listener 侦听器
+ */
+ function removeListener(listener: EventListener<0 | 1>): void;
+ /**
+ * 触发非DOM事件
+ * @param instance 触发对象
+ * @param eventName 事件名称
+ * @param data 事件数据
+ */
+ 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..c8a5eae2e9
--- /dev/null
+++ b/types/amap-js-api/geometry-util.d.ts
@@ -0,0 +1,192 @@
+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]>;
+ /**
+ * 计算P2P3上距离P1最近的点
+ * @param point1 P1
+ * @param point2 P2
+ * @param point3 P3
+ */
+ function closestOnSegment(
+ point1: LocationValue,
+ point2: LocationValue,
+ point3: LocationValue
+ ): [number, number];
+ /**
+ * 计算line上距离P最近的点
+ */
+ function closestOnLine(point: LocationValue, line: LocationValue[]): [number, number];
+ /**
+ * 计算P2P3到P1的距离
+ * @param point1 P1
+ * @param point2 P2
+ * @param point3 P3
+ */
+ function distanceToSegment(
+ point1: LocationValue,
+ point2: LocationValue,
+ point3: LocationValue
+ ): number;
+ /**
+ * 计算P到line的距离
+ */
+ function distanceToLine(point: LocationValue, line: LocationValue[]): number;
+ /**
+ * 判断P1是否在P2P3上
+ * @param point1 P1
+ * @param point2 P2
+ * @param point3 P3
+ * @param tolerance 误差范围
+ */
+ function isPointOnSegment(
+ point1: LocationValue,
+ point2: LocationValue,
+ point3: LocationValue,
+ tolerance?: number
+ ): boolean;
+ /**
+ * 判断P是否在line上
+ * @param point 点P
+ * @param line 线
+ * @param tolerance 误差范围
+ */
+ function isPointOnLine(
+ point: LocationValue,
+ line: LocationValue[],
+ tolerance?: number
+ ): boolean;
+ /**
+ * 判断P是否在ring的边上
+ * @param point 点P
+ * @param ring 环
+ * @param tolerance 误差范围
+ */
+ function isPointOnRing(
+ point: LocationValue,
+ ring: LocationValue[],
+ tolerance?: number
+ ): boolean;
+ /**
+ * 判断P是否在多个ring的边上
+ * @param point 点P
+ * @param polygon 多边形
+ * @param tolerance 误差范围
+ */
+ 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..1b7426e28d
--- /dev/null
+++ b/types/amap-js-api/layer/building.d.ts
@@ -0,0 +1,54 @@
+declare namespace AMap {
+ namespace Buildings {
+ interface Options extends Layer.Options {
+ /**
+ * 可见级别范围
+ */
+ zooms?: [number, number];
+ /**
+ * 不透明度
+ */
+ opacity?: number;
+ /**
+ * 高度比例系数,可控制3D视图下的楼块高度
+ */
+ 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 {
+ /**
+ * 楼块图层,单独展示矢量化的楼块图层
+ * @param opts 图层选项
+ */
+ constructor(opts?: Buildings.Options);
+ /**
+ * 按区域设置楼块的颜色
+ * @param style 颜色设置
+ */
+ 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..d91970dc31
--- /dev/null
+++ b/types/amap-js-api/layer/flexible.d.ts
@@ -0,0 +1,38 @@
+declare namespace AMap {
+ namespace TileLayer {
+ namespace Flexible {
+ interface Options extends TileLayer.Options {
+ /**
+ * 创建切片回调
+ * @param x 横坐标
+ * @param y 纵坐标
+ * @param z 层级
+ * @param success 成功回调
+ * @param fail 失败回调
+ */
+ createTile?(
+ x: number,
+ y: number,
+ z: number,
+ success: (tile: HTMLImageElement | HTMLCanvasElement) => void,
+ fail: () => void
+ ): void;
+ /**
+ * 内存中缓存的切片的数量上限
+ */
+ cacheSize?: number;
+ /**
+ * 是否显示
+ */
+ visible?: boolean;
+ }
+ }
+ class Flexible extends TileLayer {
+ /**
+ * 灵活切片图层
+ * @param options 图层选项
+ */
+ 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..64714bc68f
--- /dev/null
+++ b/types/amap-js-api/layer/layer.d.ts
@@ -0,0 +1,56 @@
+declare namespace AMap {
+ namespace Layer {
+ interface Options {
+ /**
+ * 所属的地图对象
+ */
+ map?: Map;
+ }
+ }
+
+ abstract class Layer extends EventEmitter {
+ /**
+ * 图层获取DOM节点
+ */
+ getContainer(): HTMLDivElement | undefined;
+ /**
+ * 获取图层缩放范围
+ */
+ getZooms(): [number, number];
+ /**
+ * 设置透明度
+ * @param alpha 透明度
+ */
+ setOpacity(alpha: number): void;
+ /**
+ * 设置透明度
+ */
+ getOpacity(): number;
+ /**
+ * 显示图层
+ */
+ show(): void;
+ /**
+ * 隐藏图层
+ */
+ hide(): void;
+ /**
+ * 设置图层所属地图
+ * @param map map对象
+ */
+ setMap(map?: Map | null): void;
+ /**
+ * 获取图层所属地图
+ */
+ getMap(): Map | null | undefined;
+ /**
+ * 设置图层的层级
+ * @param index 层级
+ */
+ 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..6a07c8fc72
--- /dev/null
+++ b/types/amap-js-api/layer/layerGroup.d.ts
@@ -0,0 +1,56 @@
+declare namespace AMap {
+ class LayerGroup extends Layer {
+ /**
+ * 图层集合
+ * @param layers 集合中的图层
+ */
+ constructor(layers: L | L[]);
+ /**
+ * 添加单个图层到集合中,不支持添加重复的图层
+ * @param layer 图层
+ */
+ addLayer(layer: L | L[]): this;
+ /**
+ * 添加图层数组到集合中,不支持添加重复的图层
+ * @param layers 图层数组
+ */
+ addLayers(layers: L | L[]): this;
+ /**
+ * 返回当前集合中所有的图层
+ */
+ getLayers(): L[];
+ getLayer(finder: (this: null, item: L, index: number, list: L[]) => boolean): L | null;
+ /**
+ * 判断传入的图层实例是否在集合中
+ * @param layer 目标图层
+ */
+ hasLayer(layer: L | ((this: null, item: L, index: number, list: L[]) => boolean)): boolean;
+ /**
+ * 从集合中删除传入的图层实例
+ * @param layer 图层
+ */
+ removeLayer(layer: L | L[]): this;
+ /**
+ * 从集合中删除传入的图层实例数组
+ * @param layers 图层数组
+ */
+ removeLayers(layers: L | L[]): this;
+ /**
+ * 清空集合
+ */
+ clearLayers(): this;
+ /**
+ * 对集合中的图层做迭代操作
+ * @param iterator 迭代回调
+ * @param context 执行上下文
+ */
+ 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..963f7e2ec6
--- /dev/null
+++ b/types/amap-js-api/layer/massMarks.d.ts
@@ -0,0 +1,99 @@
+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 {
+ /**
+ * 图标显示位置偏移量,以图标的左上角为基准点(0,0)点
+ */
+ 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 {
+ /**
+ * 海量点类,利用该类可同时在地图上展示万级别的点
+ * @param data 点对象数组或url
+ * @param opts 选项
+ */
+ constructor(data: D[] | string, opts: MassMarks.Options);
+ /**
+ * 设置显示样式
+ * @param style 样式设置
+ */
+ setStyle(style: MassMarks.Style | MassMarks.Style[]): void;
+ /**
+ * 获取显示样式
+ */
+ getStyle(): MassMarks.Style | MassMarks.Style[];
+ /**
+ * 设置数据集
+ * @param data 数据集
+ */
+ 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..43fee214bb
--- /dev/null
+++ b/types/amap-js-api/layer/mediaLayer.d.ts
@@ -0,0 +1,94 @@
+declare namespace AMap {
+ namespace MediaLayer {
+ interface Options extends Layer.Options {
+ /**
+ * 显示范围
+ */
+ bounds?: Bounds;
+ /**
+ * 是否可见
+ */
+ visible?: boolean;
+ /**
+ * 缩放范围
+ */
+ zooms?: [number, number];
+ /**
+ * 透明度
+ */
+ opacity?: number;
+ }
+ }
+
+ abstract class MediaLayer extends Layer {
+ /**
+ * @param options 图层选项
+ */
+ constructor(options?: MediaLayer.Options);
+ /**
+ * 设置显示范围
+ * @param bounds 显示范围
+ */
+ setBounds(bounds: Bounds): void;
+ /**
+ * 获取显示的范围
+ */
+ getBounds(): Bounds;
+ /**
+ * 设置图层选项
+ * @param options 图层选项
+ */
+ setOptions(options: Partial): void;
+ /**
+ * 获取图层选项
+ */
+ getOptions(): Partial;
+ /**
+ * 获取元素
+ */
+ getElement(): E | null;
+ }
+
+ /**
+ * 图片图层
+ */
+ class ImageLayer extends MediaLayer {
+ /**
+ * 修改Image的Url
+ * @param url url
+ */
+ setImageUrl(url: string): void;
+ /**
+ * 返回Image的Url
+ */
+ getImageUrl(): string | undefined;
+ }
+
+ class VideoLayer extends MediaLayer {
+ /**
+ * 修改Video的Url
+ * @param source url
+ */
+ setVideoUrl(source: string | string[]): void;
+ /**
+ * 返回Video的Url
+ */
+ getVideoUrl(): string | string[] | undefined;
+ }
+
+ class CanvasLayer extends MediaLayer {
+ /**
+ * 修改显示的Canvas
+ * @param canvas Canvas对象
+ */
+ setCanvas(canvas: HTMLCanvasElement): void;
+ /**
+ * 返回Canvas对象
+ */
+ getCanvas(): HTMLCanvasElement | undefined;
+ /**
+ * 当canvas的内容发生改变是用于刷新图层
+ */
+ 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..1a146b964c
--- /dev/null
+++ b/types/amap-js-api/layer/tileLayer.d.ts
@@ -0,0 +1,91 @@
+declare namespace AMap {
+ namespace TileLayer {
+ interface EventMap {
+ complete: Event<'complete'>;
+ }
+
+ interface Options extends Layer.Options {
+ /**
+ * 切片大小
+ */
+ tileSize?: number;
+ /**
+ * 切片取图地址(自1.3版本起,该属性与getTileUrl属性合并)
+ */
+ 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 {
+ /**
+ * 实时交通图层
+ * @param options 图层选项
+ */
+ constructor(options?: Traffic.Options);
+ }
+ }
+
+ class TileLayer extends Layer {
+ /**
+ * 切片图层
+ * @param options 图层选项
+ */
+ constructor(options?: TileLayer.Options);
+ /**
+ * 获取当前图层所有切片号
+ */
+ getTiles(): string[];
+ /**
+ * 重新加载此图层
+ */
+ reload(): void;
+ /**
+ * 设置图层的取图地址
+ * @param url 取图地址
+ */
+ 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..043975d856
--- /dev/null
+++ b/types/amap-js-api/layer/wms.d.ts
@@ -0,0 +1,56 @@
+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 {
+ /**
+ * wms服务的url地址
+ */
+ url: string;
+ /**
+ * OGC标准的WMS地图服务的GetMap接口的参数
+ */
+ params: Params;
+ /**
+ * 地图级别切换时,不同级别的图片是否进行混合
+ */
+ blend?: boolean;
+ }
+ }
+ class WMS extends Flexible {
+ /**
+ * WMS图层
+ * @param options 图层选项
+ */
+ constructor(options: WMS.Options);
+ /**
+ * 设置wms服务地址
+ * @param url 服务地址
+ */
+ setUrl(url: string): void;
+ /**
+ * 返回wms服务地址
+ */
+ getUrl(): string;
+ /**
+ * 设置OGC标准的WMS getMap接口的参数
+ * @param params 接口参数
+ */
+ setParams(params: WMS.Params): void;
+ /**
+ * 返回OGC标准的WMS getMap接口的参数
+ */
+ 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..7a122dd6b9
--- /dev/null
+++ b/types/amap-js-api/layer/wmts.d.ts
@@ -0,0 +1,52 @@
+declare namespace AMap {
+ namespace TileLayer {
+ namespace WMTS {
+ interface Params {
+ Version?: string;
+ Layer?: string;
+ Style?: string;
+ Format?: string;
+ }
+ interface Options extends Flexible.Options {
+ /**
+ * wmts服务的url地址
+ */
+ url: string;
+ /**
+ * OGC标准的WMTS地图服务的GetTile接口的参数
+ */
+ params: Params;
+ /**
+ * 地图级别切换时,不同级别的图片是否进行混合
+ */
+ blend?: boolean;
+ }
+ }
+
+ class WMTS extends Flexible {
+ /**
+ * WMTS图层
+ * @param options 图层选项
+ */
+ constructor(options: WMTS.Options);
+ /**
+ * 设置wmts服务地址
+ * @param url 服务地址
+ */
+ setUrl(url: string): void;
+ /**
+ * 返回wmts服务地址
+ */
+ getUrl(): string;
+ /**
+ * 设置OGC标准的WMTS getTile接口的参数
+ * @param params 接口参数
+ */
+ setParams(params: WMTS.Params): void;
+ /**
+ * 返回OGC标准的WMTS getTile接口的参数
+ */
+ 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..f649a78de8
--- /dev/null
+++ b/types/amap-js-api/lngLat.d.ts
@@ -0,0 +1,45 @@
+declare namespace AMap {
+ class LngLat {
+ /**
+ * 构造一个地理坐标对象
+ * @param lng 经度
+ * @param lat 纬度
+ * @param noAutofix 是否自动修正
+ */
+ constructor(lng: number, lat: number, noAutofix?: boolean);
+ /**
+ * 移动当前经纬度坐标得到新的坐标
+ * @param east 移动经度,向右为正值
+ * @param north 移动维度,向上为正值
+ */
+ offset(east: number, north: number): LngLat;
+ /**
+ * 当前经纬度和传入经纬度或者经纬度数组连线之间的地面距离,单位为米
+ * @param lnglat 对比目标
+ */
+ distance(lnglat: LngLat | LngLat[]): number;
+ /**
+ * 获取经度值
+ */
+ getLng(): number;
+ /**
+ * 获取纬度值
+ */
+ getLat(): number;
+ /**
+ * 判断当前坐标对象与传入坐标对象是否相等
+ * @param lnglat 判断目标
+ */
+ 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..e7937966b1
--- /dev/null
+++ b/types/amap-js-api/map.d.ts
@@ -0,0 +1,568 @@
+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;
+ /**
+ * 是否开启地图热点和标注的hover效果
+ */
+ isHotspot?: boolean;
+ /**
+ * 当前地图中默认显示的图层
+ */
+ defaultLayer?: TileLayer;
+ /**
+ * 地图是否可旋转
+ */
+ rotateEnable?: boolean;
+ /**
+ * 是否监控地图容器尺寸变化
+ */
+ resizeEnable?: boolean;
+ /**
+ * 是否在有矢量底图的时候自动展示室内地图
+ */
+ showIndoorMap?: boolean;
+ /**
+ * 在展示矢量图的时候自动展示室内地图图层
+ */
+ // indoorMap?: IndorMap
+ /**
+ * 是否支持可以扩展最大缩放级别
+ */
+ expandZoomRange?: boolean;
+ /**
+ * 地图是否可通过鼠标拖拽平移
+ */
+ dragEnable?: boolean;
+ /**
+ * 地图是否可缩放
+ */
+ zoomEnable?: boolean;
+ /**
+ * 地图是否可通过双击鼠标放大地图
+ */
+ doubleClickZoom?: boolean;
+ /**
+ * 地图是否可通过键盘控制
+ */
+ keyboardEnable?: boolean;
+ /**
+ * 地图是否使用缓动效果
+ */
+ jogEnable?: boolean;
+ /**
+ * 地图是否可通过鼠标滚轮缩放浏览
+ */
+ scrollWheel?: boolean;
+ /**
+ * 地图在移动终端上是否可通过多点触控缩放浏览地图
+ */
+ touchZoom?: boolean;
+ /**
+ * 当touchZoomCenter=1的时候,手机端双指缩放的以地图中心为中心,否则默认以双指中间点为中心
+ */
+ touchZoomCenter?: number;
+ /**
+ * 设置地图的显示样式
+ */
+ mapStyle?: string;
+ /**
+ * 设置地图上显示的元素种类
+ */
+ features?: Feature[] | 'all' | Feature;
+ /**
+ * 设置地图显示3D楼块效果
+ */
+ showBuildingBlock?: boolean;
+ /**
+ * 视图模式
+ */
+ viewMode?: ViewMode;
+ /**
+ * 俯仰角度
+ */
+ pitch?: number;
+ /**
+ * 是否允许设置俯仰角度
+ */
+ pitchEnable?: boolean;
+ /**
+ * 楼块出现和消失的时候是否显示动画过程
+ */
+ buildingAnimation?: boolean;
+ /**
+ * 调整天空颜色
+ */
+ skyColor?: string;
+ /**
+ * 设置地图的预加载模式
+ */
+ preloadMode?: boolean;
+ /**
+ * 为 Map 实例指定掩模的路径,各图层将只显示路径范围内图像
+ */
+ 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 {
+ /**
+ * 构造一个地图对象
+ * @param container 地图容器的id或者是DOM元素
+ * @param opts 选项
+ */
+ constructor(container: string | HTMLElement, opts?: Map.Options);
+ /**
+ * 唤起高德地图客户端marker页
+ * @param obj 唤起参数
+ */
+ poiOnAMAP(obj: { id: string; location?: LocationValue; name?: string }): void;
+ /**
+ * 唤起高德地图客户端marker详情页
+ * @param obj 唤起参数
+ */
+ 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;
+ /**
+ * 获取Map的限制区域
+ */
+ getLimitBounds(): Bounds;
+ /**
+ * 获取地图语言类型
+ */
+ getLang(): Lang;
+ /**
+ * 获取地图容器像素大小
+ */
+ getSize(): Size;
+ /**
+ * 获取地图顺时针旋转角度
+ */
+ getRotation(): number;
+ /**
+ * 获取当前地图状态信息
+ */
+ getStatus(): Map.Status;
+ /**
+ * 获取地图默认鼠标指针样式
+ */
+ getDefaultCursor(): string;
+ /**
+ * 获取指定位置的地图分辨率
+ * @param point 指定经纬度
+ */
+ getResolution(point?: LocationValue): number;
+ /**
+ * 获取当前地图比例尺
+ * @param dpi dpi
+ */
+ getScale(dpi?: number): number;
+ /**
+ * 设置地图显示的缩放级别
+ * @param level 缩放级别
+ */
+ setZoom(level: number): void;
+ /**
+ * 设置地图标注显示的顺序
+ * @param index 显示顺序
+ */
+ setLabelzIndex(index: number): void;
+ /**
+ * 设置地图图层数组
+ * @param layers 图层数组
+ */
+ setLayers(layers: Layer[]): void;
+ /**
+ * 添加覆盖物/图层
+ * @param overlay 覆盖物/图层
+ */
+ add(overlay: Overlay | Overlay[]): void;
+ /**
+ * 删除覆盖物/图层
+ * @param overlay 覆盖物/图层
+ */
+ remove(overlay: Overlay | Overlay[]): void;
+ /**
+ * 返回添加的覆盖物对象
+ * @param type 覆盖物类型
+ */
+ getAllOverlays(type?: 'marker' | 'circle' | 'polyline' | 'polygon'): Overlay[];
+ /**
+ * 设置地图显示的中心点
+ * @param center 中心点经纬度
+ */
+ setCenter(center: LocationValue): void;
+ /**
+ * 地图缩放至指定级别并以指定点为地图显示中心点
+ * @param zoomLevel 缩放等级
+ * @param center 缩放中心
+ */
+ setZoomAndCenter(zoomLevel: number, center: LocationValue): void;
+ /**
+ * 按照行政区名称或adcode来设置地图显示的中心点。
+ * @param city 城市名称或城市编码
+ * @param callback 回调
+ */
+ setCity(city: string, callback: (this: this, coord: [string, string], zoom: number) => void): void;
+ /**
+ * 指定当前地图显示范围
+ * @param bound 显示范围
+ */
+ setBounds(bound: Bounds): Bounds;
+ /**
+ * 设置Map的限制区域
+ * @param bound 限制区域
+ */
+ setLimitBounds(bound: Bounds): void;
+ /**
+ * 清除限制区域
+ */
+ clearLimitBounds(): void;
+ /**
+ * 设置地图语言类型
+ * @param lang 语言类型
+ */
+ setLang(lang: Lang): void;
+ /**
+ * 设置地图顺时针旋转角度,旋转原点为地图容器中心点
+ * @param rotation 旋转角度
+ */
+ setRotation(rotation: number): void;
+ /**
+ * 设置当前地图显示状态
+ * @param status 状态
+ */
+ setStatus(status: Partial): void;
+ /**
+ * 设置鼠标指针默认样式
+ * @param cursor 指针样式
+ */
+ setDefaultCursor(cursor: string): void;
+ /**
+ * 地图放大一级显示
+ */
+ zoomIn(): void;
+ /**
+ * 地图缩小一级显示
+ */
+ zoomOut(): void;
+ /**
+ * 地图中心点平移至指定点位置
+ * @param position 目标位置经纬度
+ */
+ panTo(position: LocationValue): void;
+ /**
+ * 以像素为单位,沿x方向和y方向移动地图
+ * @param x 横向移动像素,向右为正
+ * @param y 纵向移动像素,向下为正
+ */
+ panBy(x: number, y: number): void;
+ /**
+ * 根据地图上添加的覆盖物分布情况,自动缩放地图到合适的视野级别
+ * @param overlayList 覆盖物数组
+ * @param immediately 是否需要动画过程
+ * @param avoid 上下左右的像素避让宽度
+ * @param maxZoom 最大缩放级别
+ */
+ setFitView(
+ overlayList?: Overlay | Overlay[],
+ immediately?: boolean,
+ avoid?: [number, number, number, number],
+ maxZoom?: number
+ ): Bounds | false | undefined;
+ /**
+ * 删除地图上所有的覆盖物
+ */
+ clearMap(): void;
+ /**
+ * 注销地图对象,并清空地图容器
+ */
+ destroy(): void;
+ /**
+ * 加载插件,
+ * tips: 插件的类型定义不在本类型定义中给出,需要另行安装例如
+ * 3d地图:@types/amap-js-api-map3d
+ * 地区搜索:@types/amap-js-api-place-search
+ * @param name 插件名称
+ * @param callback 插件加载完成后的回调函数
+ */
+ plugin(name: string | string[], callback: () => void): this;
+ /**
+ * 添加控件
+ * @param control 控件
+ */
+ addControl(control: {}): void; // TODO
+ /**
+ * 移除控件
+ * @param control 控件
+ */
+ removeControl(control: {}): void; // TODO
+ /**
+ * 清除地图上的信息窗体。
+ */
+ clearInfoWindow(): void;
+ /**
+ * 平面地图像素坐标转换为地图经纬度坐标
+ * @param pixel 像素坐标
+ * @param level 缩放等级
+ */
+ pixelToLngLat(pixel: Pixel, level?: number): LngLat;
+ /**
+ * 地图经纬度坐标转换为平面地图像素坐标
+ * @param lnglat 经纬度坐标
+ * @param level 缩放等级
+ */
+ lnglatToPixel(lnglat: LocationValue, level?: number): Pixel;
+ /**
+ * 地图容器像素坐标转为地图经纬度坐标
+ * @param pixel 地图像素坐标
+ */
+ containerToLngLat(pixel: Pixel): LngLat;
+ /**
+ * 地图经纬度坐标转为地图容器像素坐标
+ * @param lnglat 经纬度坐标
+ */
+ lngLatToContainer(lnglat: LocationValue): Pixel;
+ /**
+ * 地图经纬度坐标转为地图容器像素坐标
+ * @param lnglat 经纬度坐标
+ */
+ lnglatTocontainer(lnglat: LocationValue): Pixel;
+ /**
+ * 设置地图的显示样式
+ * @param style 地图样式
+ */
+ setMapStyle(style: string): void;
+ /**
+ * 获取地图显示样式
+ */
+ getMapStyle(): string;
+ /**
+ * 设置地图上显示的元素种类
+ * @param feature 元素
+ */
+ setFeatures(feature: Map.Feature | Map.Feature[] | 'all'): void;
+ /**
+ * 获取地图显示元素种类
+ */
+ getFeatures(): Map.Feature | Map.Feature[] | 'all';
+ /**
+ * 修改底图图层
+ * @param layer 图层
+ */
+ setDefaultLayer(layer: TileLayer): void;
+ /**
+ * 设置俯仰角
+ * @param pitch 俯仰角
+ */
+ 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..b861440a92
--- /dev/null
+++ b/types/amap-js-api/overlay/bezierCurve.d.ts
@@ -0,0 +1,35 @@
+declare namespace AMap {
+ namespace BezierCurve {
+ interface EventMap extends Polyline.EventMap { }
+ type Options = Merge, {
+ /**
+ * 贝瑟尔曲线的路径
+ */
+ path: Array>>;
+ // internal
+ tolerance?: number;
+ interpolateNumLimit?: [number | number];
+ }>;
+
+ interface GetOptionsResult extends Polyline.GetOptionsResult {
+ /**
+ * 贝瑟尔曲线的路径
+ */
+ path: Array;
+ }
+ }
+ class BezierCurve extends Polyline {
+ /**
+ * 贝瑟尔曲线
+ * @param options 覆盖物选项
+ */
+ 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..c718119e5a
--- /dev/null
+++ b/types/amap-js-api/overlay/circle.d.ts
@@ -0,0 +1,84 @@
+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 {
+ /**
+ * 圆形覆盖物
+ * @param options 覆盖物选项
+ */
+ constructor(options?: Circle.Options);
+ /**
+ * 设置圆中心点
+ * @param center 中心点经纬度
+ * @param preventEvent 阻止触发事件
+ */
+ setCenter(center: LocationValue, preventEvent?: boolean): void;
+ /**
+ * 获取圆中心点
+ */
+ getCenter(): LngLat | undefined;
+ /**
+ * 获取圆外切矩形范围
+ */
+ getBounds(): Bounds | null;
+ /**
+ * 设置圆形的半径
+ * @param radius 半径
+ * @param preventEvent 阻止触发事件
+ */
+ setRadius(radius: number, preventEvent?: boolean): void;
+ /**
+ * 获取圆形的半径
+ */
+ getRadius(): number;
+ /**
+ * 修改选项
+ * @param options 选项
+ */
+ setOptions(options?: Circle.Options): void;
+ /**
+ * 获取选项
+ */
+ getOptions(): Partial>;
+ /**
+ * 判断指定点坐标是否在圆内
+ * @param point 坐标
+ */
+ 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..0b67d7f13e
--- /dev/null
+++ b/types/amap-js-api/overlay/circleMarker.d.ts
@@ -0,0 +1,7 @@
+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..eacb6673c8
--- /dev/null
+++ b/types/amap-js-api/overlay/contextMenu.d.ts
@@ -0,0 +1,50 @@
+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 {
+ /**
+ * 地图右键菜单
+ * @param options 选项
+ */
+ constructor(options?: ContextMenu.Options);
+ /**
+ * 右键菜单中添加菜单项
+ * @param text 菜单显示内容
+ * @param fn 该菜单下需进行的操作
+ * @param num 当前菜单项在右键菜单中的排序位置,以0开始
+ */
+ addItem(text: string, fn: (this: HTMLLIElement) => void, num?: number): void;
+ /**
+ * 删除一个菜单项
+ * @param text 菜单显示内容
+ * @param fn 该菜单下需进行的操作
+ */
+ removeItem(text: string, fn: (this: HTMLLIElement) => void): void;
+ /**
+ * 在地图的指定位置打开右键菜单。
+ * @param map 目标地图
+ * @param position 打开位置经纬度
+ */
+ 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..de9da22e0c
--- /dev/null
+++ b/types/amap-js-api/overlay/ellipse.d.ts
@@ -0,0 +1,49 @@
+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 {
+ /**
+ * 椭圆
+ * @param options 选项
+ */
+ constructor(options?: Ellipse.Options);
+ /**
+ * 获取椭圆的中心点
+ */
+ getCenter(): LngLat | undefined;
+ /**
+ * 设置椭圆的中心点
+ * @param center 中心点
+ * @param preventEvent 阻止触发事件
+ */
+ setCenter(center: LocationValue, preventEvent?: boolean): void;
+ /**
+ * 修改椭圆属性
+ * @param options 属性
+ */
+ 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..aa3554cb04
--- /dev/null
+++ b/types/amap-js-api/overlay/geoJSON.d.ts
@@ -0,0 +1,72 @@
+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对象
+ */
+ geoJSON?: GeoJSONObject | GeoJSONObject[];
+ /**
+ * 指定点要素的绘制方式
+ * @param obj GeoJSON对象
+ * @param lnglat 点的位置
+ */
+ getMarker?(obj: GeoJSONObject, lnglat: LngLat): Marker;
+ /**
+ * 指定线要素的绘制方式
+ * @param obj GeoJSON对象
+ * @param lnglats 线的路径
+ */
+ getPolyline?(obj: GeoJSONObject, lnglats: LngLat[]): Polyline;
+ /**
+ * 指定面要素的绘制方式
+ * @param obj GeoJSON对象
+ * @param lnglats 面的路径
+ */
+ getPolygon?(obj: GeoJSONObject, lnglats: LngLat[]): Polygon;
+ coordsToLatLng?(lnglat: LngLat): LngLat;
+
+ // internal
+ coordsToLatLngs?(lnglats: LngLat[]): LngLat[];
+ }
+ }
+
+ class GeoJSON extends OverlayGroup {
+ /**
+ * GeoJSON
+ * @param options 选项
+ */
+ constructor(options?: GeoJSON.Options);
+ /**
+ * 加载新的GeoJSON对象,转化为覆盖物,旧的覆盖物将移除
+ * @param obj GeoJSON对象
+ */
+ importData(obj: GeoJSON.GeoJSONObject | GeoJSON.GeoJSONObject[]): void;
+ /**
+ * 将当前对象包含的覆盖物转换为GeoJSON对象
+ */
+ 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..18d75921bf
--- /dev/null
+++ b/types/amap-js-api/overlay/icon.d.ts
@@ -0,0 +1,39 @@
+declare namespace AMap {
+ namespace Icon {
+ interface Options {
+ /**
+ * 图标尺寸
+ */
+ size?: SizeValue;
+ /**
+ * 图标取图偏移量
+ */
+ imageOffset?: Pixel;
+ /**
+ * 图标的取图地址
+ */
+ image?: string;
+ /**
+ * 图标所用图片大小
+ */
+ imageSize?: SizeValue;
+ }
+ }
+
+ class Icon extends EventEmitter {
+ /**
+ * 点标记的图标
+ * @param options 选项
+ */
+ constructor(options?: Icon.Options);
+ /**
+ * 设置图标图片大小
+ * @param size 大小
+ */
+ 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..1c9b69a9a3
--- /dev/null
+++ b/types/amap-js-api/overlay/infoWindow.d.ts
@@ -0,0 +1,98 @@
+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 {
+ /**
+ * 信息展示窗体
+ * @param options 选项
+ */
+ constructor(options?: InfoWindow.Options);
+ /**
+ * 在地图的指定位置打开信息窗体
+ * @param map 地图
+ * @param position 打开的位置
+ */
+ open(map: Map, position?: LocationValue): void;
+ /**
+ * 关闭信息窗体
+ */
+ close(): void;
+ /**
+ * 获取信息窗体是否打开
+ */
+ getIsOpen(): boolean;
+ /**
+ * 设置信息窗体内容
+ * @param content 窗体内容
+ */
+ setContent(content: string | HTMLElement): void;
+ /**
+ * 获取信息窗体内容
+ */
+ getContent(): string | HTMLElement | undefined;
+ /**
+ * 设置信息窗体显示基点位置
+ * @param lnglat 位置经纬度
+ */
+ setPosition(lnglat: LocationValue): void;
+ /**
+ * 获取信息窗体显示基点位置
+ */
+ getPosition(): LngLat | undefined;
+ /**
+ * 设置信息窗体大小
+ * @param size 大小
+ */
+ 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..42dddf394a
--- /dev/null
+++ b/types/amap-js-api/overlay/marker.d.ts
@@ -0,0 +1,293 @@
+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;
+ /**
+ * 鼠标点击时marker是否置顶
+ */
+ topWhenClick?: boolean;
+ /**
+ * 是否将覆盖物的鼠标或touch等事件冒泡到地图上
+ */
+ 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;
+
+ // internal
+ zooms?: [number, number];
+ topWhenMouseOver?: boolean;
+ height?: number;
+ }
+ }
+
+ class Marker extends Overlay {
+ /**
+ * 点标记
+ * @param options 选项
+ */
+ constructor(options?: Marker.Options);
+ /**
+ * 唤起高德地图客户端标注页
+ * @param obj 唤起参数
+ */
+ markOnAMAP(obj?: { name?: string, position?: LocationValue }): void;
+ /**
+ * 获取偏移量
+ */
+ getOffset(): Pixel;
+ /**
+ * 设置偏移量
+ * @param offset 偏移量
+ */
+ setOffset(offset: Pixel): void;
+ /**
+ * 设置点标记的动画效果
+ * @param animate 动画效果类型
+ */
+ setAnimation(animate: AnimationName, prevent?: boolean): void;
+ /**
+ * 获取点标记的动画效果类型
+ */
+ getAnimation(): AnimationName;
+ /**
+ * 设置点标记是支持鼠标单击事件
+ * @param cilckable 是否支持点击
+ */
+ setClickable(cilckable: boolean): void;
+ /**
+ * 获取点标记是否支持鼠标单击事件
+ */
+ getClickable(): boolean;
+ /**
+ * 获取点标记的位置
+ */
+ getPosition(): LngLat | undefined;
+ /**
+ * 设置点标记位置
+ * @param position 位置经纬度
+ */
+ setPosition(position: LocationValue): void;
+ /**
+ * 设置点标记的旋转角度
+ * @param angle 旋转角度
+ */
+ setAngle(angle: number): void;
+ /**
+ * 设置点标记文本标签内容
+ * @param label 标签内容
+ */
+ setLabel(label?: Marker.Label): void;
+ /**
+ * 获取点标记文本标签内容
+ */
+ getLabel(): Marker.Label | undefined;
+ /**
+ * 获取点标记的旋转角度
+ */
+ getAngle(): number;
+ /**
+ * 设置点标记的叠加顺序
+ * @param index 层级
+ */
+ setzIndex(index: number): void;
+ /**
+ * 获取点标记的叠加顺序
+ */
+ getzIndex(): number;
+ /**
+ * 设置点标记的显示图标
+ * @param content 图标
+ */
+ setIcon(content: string | Icon): void;
+ /**
+ * 获取Icon内容
+ */
+ getIcon(): string | Icon | undefined;
+ /**
+ * 设置点标记对象是否可拖拽移动
+ * @param draggable 是否可拖拽移动
+ */
+ setDraggable(draggable: boolean): void;
+ /**
+ * 获取点标记对象是否可拖拽移动
+ */
+ getDraggable(): boolean;
+ /**
+ * 设置鼠标悬停时的光标
+ * @param cursor 光标
+ */
+ setCursor(cursor: string): void;
+ /**
+ * 设置点标记显示内容,可以是HTML要素字符串或者HTML DOM对象
+ * @param content 显示内容
+ */
+ setContent(content: string | HTMLElement): void;
+ /**
+ * 获取点标记内容
+ */
+ getContent(): string | HTMLElement;
+ /**
+ * 以指定的速度,点标记沿指定的路径移动
+ * @param path 移动轨迹
+ * @param speed 速度
+ * @param timingFunction 缓动函数
+ * @param circleable 是否循环
+ */
+ moveAlong(
+ path: LngLat[],
+ speed: number,
+ timingFunction?: (t: number) => number,
+ circleable?: boolean
+ ): void;
+ /**
+ * 以给定速度移动点标记到指定位置
+ * @param lnglat 目标位置
+ * @param speed 速度
+ * @param timingFunction 缓动函数
+ */
+ moveTo(
+ lnglat: LocationValue,
+ speed: number,
+ timingFunction?: (t: number) => number
+ ): void;
+ /**
+ * 点标记停止动画
+ */
+ stopMove(): void;
+ /**
+ * 暂定点标记的动画效果
+ */
+ pauseMove(): boolean;
+ /**
+ * 重新开始点标记的动画效果
+ */
+ resumeMove(): boolean;
+ /**
+ * 指定目标显示地图
+ * @param map 地图
+ */
+ setMap(map: null | Map): void;
+ /**
+ * 鼠标滑过点标时的文字提示
+ * @param title 提示文字
+ */
+ setTitle(title: string): void;
+ /**
+ * 获取点标记的文字提示
+ */
+ getTitle(): string | undefined;
+ /**
+ * 设置是否展示在最顶层
+ * @param isTop 是否展示在最顶层
+ */
+ setTop(isTop: boolean): void;
+ /**
+ * 获取是否展示在最顶层
+ */
+ getTop(): boolean;
+ /**
+ * 设置阴影效果
+ * @param icon 阴影效果
+ */
+ setShadow(icon?: Icon | string): void;
+ /**
+ * 获取阴影图标
+ */
+ getShadow(): Icon | undefined | string;
+ /**
+ * 设置可点击区域
+ * @param shape 可点击区域
+ */
+ 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..19264f26cf
--- /dev/null
+++ b/types/amap-js-api/overlay/markerShape.d.ts
@@ -0,0 +1,25 @@
+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 {
+ /**
+ * Marker点击范围
+ * @param options 选项
+ */
+ 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..f90bdb57ed
--- /dev/null
+++ b/types/amap-js-api/overlay/overlay.d.ts
@@ -0,0 +1,75 @@
+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;
+ /**
+ * 设置所属地图
+ * @param map 地图
+ */
+ setMap(map: Map | null): void;
+ /**
+ * 设置自定义数据
+ * @param extData 自定义数据
+ */
+ 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..a219e38fcd
--- /dev/null
+++ b/types/amap-js-api/overlay/overlayGroup.d.ts
@@ -0,0 +1,82 @@
+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 {
+ /**
+ * 覆盖物集合
+ * @param overlays 覆盖物
+ */
+ constructor(overlays?: O | O[]);
+ /**
+ * 添加单个覆盖物到集合中,不支持添加重复的覆盖物
+ * @param overlay 覆盖物
+ */
+ addOverlay(overlay: O | O[]): this;
+ /**
+ * 添加覆盖物数组到集合中,不支持添加重复的覆盖物
+ * @param overlay 覆盖物数组
+ */
+ addOverlays(overlay: O | O[]): this;
+ /**
+ * 返回当前集合中所有的覆盖物
+ */
+ getOverlays(): O[];
+ /**
+ * 判断传入的覆盖物实例是否在集合中
+ * @param overlay 覆盖物
+ */
+ hasOverlay(overlay: O | ((this: null, item: O, index: number, list: O[]) => boolean)): boolean;
+ /**
+ * 从集合中删除传入的覆盖物实例
+ * @param overlay 覆盖物
+ */
+ removeOverlay(overlay: O | O[]): this;
+ /**
+ * 从集合中删除传入的覆盖物实例数组
+ * @param overlay 覆盖物数组
+ */
+ removeOverlays(overlay: O | O[]): this;
+ /**
+ * 清空集合
+ */
+ clearOverlays(): this;
+ /**
+ * 对集合中的覆盖物做迭代操作
+ * @param iterator 迭代回调
+ * @param context 执行上下文
+ */
+ eachOverlay(iterator: (this: C, overlay: O, index: number, overlays: O[]) => void, context?: C): this;
+ /**
+ * 指定集合中里覆盖物的显示地图
+ * @param map 地图
+ */
+ setMap(map: null | Map): this;
+ /**
+ * 修改覆盖物属性
+ * @param options 属性
+ */
+ setOptions(options: ReferOverlayOptions