diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index a03915a264..a769c20dfc 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,5 +1,4 @@
/types/abbrev/ @BendingBender
-/types/ably/ @ably
/types/abs/ @AyaMorisawa
/types/absolute/ @AyaMorisawa
/types/acc-wizard/ @cyrilschumacher
@@ -14,8 +13,11 @@
/types/activex-access/ @zspitz
/types/activex-adodb/ @zspitz
/types/activex-dao/ @zspitz
+/types/activex-diskquota/ @zspitz
/types/activex-excel/ @zspitz
+/types/activex-faxcomexlib/ @zspitz
/types/activex-infopath/ @zspitz
+/types/activex-iwshruntimelibrary/ @zspitz
/types/activex-libreoffice/ @zspitz
/types/activex-msforms/ @zspitz
/types/activex-mshtml/ @zspitz
@@ -24,6 +26,8 @@
/types/activex-outlook/ @zspitz
/types/activex-powerpoint/ @zspitz
/types/activex-scripting/ @zspitz
+/types/activex-shdocvw/ @zspitz
+/types/activex-shell/ @zspitz
/types/activex-stdole/ @zspitz
/types/activex-vbide/ @zspitz
/types/activex-wia/ @zspitz
@@ -36,7 +40,7 @@
/types/agenda/ @meirgottlieb
/types/aggregate-error/ @BendingBender
/types/alertify/ @jjeffery
-/types/alexa-sdk/ @petebeegle @hoo29 @pascalwhoop @blforce @rk-7
+/types/alexa-sdk/ @petebeegle @hoo29 @pascalwhoop @blforce @rk-7 @alexmalcoci
/types/alexa-voice-service/ @dolanmiu
/types/algebra.js/ @CaselIT
/types/algoliasearch/ @cbaptiste @haroenv @aherve
@@ -49,7 +53,7 @@
/types/amqp/ @seikho @jonnysparkplugs
/types/amqp-rpc/ @wokim
/types/amqplib/ @mnahkies @abreits @nfantone
-/types/analytics-node/ @fongandrew
+/types/analytics-node/ @fongandrew @thomasthiebaud
/types/angular/ @diegovilar @thorn0 @calebstdenis @leonard-thieu
/types/angular-agility/ @rolandzwaga
/types/angular-animate/ @michelsalib @adidahiya @rasch @codyschaaf
@@ -136,12 +140,14 @@
/types/api-error-handler/ @tkrotoff
/types/apigee-access/ @CasperSkydt
/types/apollo-codegen/ @bradleyayers
+/types/app-root-dir/ @chenyang-biu
/types/app-root-path/ @shantmarouti
/types/appdmg/ @unindented
/types/appframework/ @kyo-ago
/types/applepayjs/ @martincostello
/types/appletvjs/ @brainded
/types/applicationinsights-js/ @kamilszostak
+/types/aqb/ @Athenkosi-Mase
/types/arbiter/ @arash16
/types/arcgis-js-api/v3/ @Esri
/types/arcgis-js-api/ @Esri
@@ -167,15 +173,16 @@
/types/aspnet-identity-pw/ @jt000
/types/assert-equal-jsx/ @seryl
/types/assert-plus/ @KostyaTretyak
-/types/assertion-error/ @Bartvds
/types/assertsharp/ @brunolm
/types/assets-webpack-plugin/ @kryops
/types/async/ @borisyankov @kern0 @Penryn @fenying @pascalmartin
/types/async-cache/ @BendingBender
-/types/async-lock/ @elisee
+/types/async-lock/ @elisee @afharo @rhymmor
/types/async-polling/ @Goldsmith42
+/types/async-retry/ @albertywu
/types/async.nexttick/ @pyrho
/types/asynciterator/ @rubensworks
+/types/atlaskit__button/ @dijimsta
/types/atmosphere.js/ @toedter @Mory1879
/types/atom/ @GlenCFL @smhxx @lierdakil
/types/atom-keymap/ @GlenCFL
@@ -186,7 +193,7 @@
/types/auth0-angular/ @homesar
/types/auth0-js/v7/ @advancedrei
/types/auth0-js/ @adrianchia @mdurrant @peterblazejewicz
-/types/auth0-lock/ @carusology @goldcaddy77
+/types/auth0-lock/ @carusology @goldcaddy77 @lfaudreejr
/types/auth0.widget/ @advancedrei
/types/auto-launch/ @rhysd @unindented
/types/auto-sni/ @janwo
@@ -194,10 +201,11 @@
/types/autolinker/ @leonyu
/types/autoprefixer/ @odnamrataizem
/types/autosize/ @kingdango @keika299 @NeekSandhu
+/types/autosuggest-highlight/ @senukartur
/types/awesomplete/ @webbiesdk @bmdixon @tbekolay
/types/aws-iot-device-sdk/ @niik @mlamp
-/types/aws-lambda/ @skarum @tobyhede @buggy @y13i @wwwy3y3 @OrthoDex @MichaelMarner @daniel-cottone @kostya-misura @coderbyheart
-/types/aws-serverless-express/ @threesquared @jcaffey @mattmeye
+/types/aws-lambda/ @skarum @tobyhede @buggy @y13i @wwwy3y3 @OrthoDex @MichaelMarner @daniel-cottone @kostya-misura @coderbyheart @palmithor @daniloraisi @simonbuchan @Haydabase
+/types/aws-serverless-express/ @threesquared @jcaffey @mattmeye @albertovasquez
/types/aws4/ @ajcrites
/types/axel/ @ruslan-molodyko
/types/azure/ @AndrewGaspar @antiveeranna @SomaticIT
@@ -237,6 +245,7 @@
/types/base-x/ @chrootsu
/types/base16/ @alechill
/types/base64-js/ @pe8ter
+/types/base64topdf/ @lucasriondel
/types/bases/ @harikv
/types/bash-glob/ @mrmlnc
/types/basic-auth/ @moonpyk @vesse
@@ -267,6 +276,7 @@
/types/bip39/ @micksatana
/types/bit-array/ @mudkipme
/types/bitcoinjs-lib/ @mhegazy @dlebrecht @rbuckton @micksatana @youssefgh
+/types/bitcore-lib/ @lautarodragan
/types/bittorrent-protocol/ @feross @tlaziuk
/types/bitwise-xor/ @rogierschouten
/types/bl/ @Bartvds
@@ -295,8 +305,10 @@
/types/bootbox/ @vbortone @konpikwastaken @kanup @icereed @trodi @stannynuytkens @renjfk
/types/bootpag/ @rdeneau
/types/bootstrap/ @borisyankov
+/types/bootstrap-3-typeahead/ @AndersonFriaca
/types/bootstrap-datepicker/ @borisyankov
/types/bootstrap-fileinput/ @CheCoxshall
+/types/bootstrap-growl-ifightcrime/ @AndersonFriaca
/types/bootstrap-maxlength/ @danmana
/types/bootstrap-notify/ @niemyjski @mouse0270 @robert-voica
/types/bootstrap-select/ @LKay
@@ -334,8 +346,9 @@
/types/buffer-equal/ @Bartvds
/types/buffers/ @rhencke
/types/bufferstream/ @Bartvds
+/types/builtin-modules/ @ajafff
/types/bull/v2/ @bgrieder @JProgrammer
-/types/bull/ @bgrieder @JProgrammer @marshall007 @weeco
+/types/bull/ @bgrieder @JProgrammer @marshall007 @weeco @blaugold
/types/bump-regex/ @silkentrance
/types/bunnymq/ @cyrilschumacher
/types/bunyan/ @amikhalev
@@ -351,27 +364,31 @@
/types/byline/ @reppners
/types/bytebuffer/ @cappellin
/types/bytes/ @danny8002
-/types/c3/ @mcliment @gerinjacob @denyo
+/types/c3/ @mcliment @gerinjacob @denyo @dmitryshindin
/types/cache-manager/ @GausSim
/types/cal-heatmap/ @RetroChrisB
/types/callsite/ @newclear
/types/callsites/ @BendingBender
/types/calq/ @eirikhm
+/types/camaro/ @tuananh
/types/camelcase/ @samverschueren
/types/camelcase-keys/ @mhegazy
/types/camo/ @lucasmciruzzi
/types/cancan/ @Vincent-Pang
/types/cannon/ @clark-stevenson @Gelio
+/types/canvas-confetti/ @matracey
/types/canvas-gauges/ @Mikhus
/types/canvasjs/ @brutalimp
/types/capitalize/ @frederickfogerty
/types/card-validator/ @ChanceM
/types/case-sensitive-paths-webpack-plugin/ @r3nya
-/types/caseless/ @downace
+/types/caseless/ @downace @mastermatt
/types/cash/ @akvlko
/types/casperjs/ @jedmao @urielch
/types/cassandra-driver/ @Svjard
-/types/catbox/ @jasonswearingen @AJamesPhillips
+/types/catalog/ @grossbart @wereHamster
+/types/catbox/v7/ @jasonswearingen @AJamesPhillips
+/types/catbox/ @jasonswearingen @AJamesPhillips @saboya
/types/cbor/ @pushplay
/types/ccap/ @taoqf
/types/chai/v2/ @Bartvds @AGBrown
@@ -382,7 +399,7 @@
/types/chai-dom/ @mattlewis92
/types/chai-enzyme/ @asvetliakov
/types/chai-fuzzy/ @Bartvds
-/types/chai-http/ @Nemo157 @G1itcher @CaselIT
+/types/chai-http/ @Nemo157 @G1itcher @CaselIT @bas-l
/types/chai-jest-snapshot/ @mattvperry
/types/chai-jquery/ @kazimanzurrashid
/types/chai-json-schema/ @ulrichheiniger
@@ -395,7 +412,8 @@
/types/chance/ @cbowdon @brikou
/types/change-emitter/ @iskandersierra
/types/charm/ @Xananax
-/types/chart.js/ @anuti @FabienLavocat @KentarouTakeda @larrybahr @mernen @josefpaij @danmana
+/types/charset/ @cspotcode
+/types/chart.js/ @anuti @FabienLavocat @KentarouTakeda @larrybahr @mernen @josefpaij @danmana @guillaume-ro-fr @chicoxyzzy
/types/chartist/ @mtgibbs @psimonski @clottman
/types/chayns/ @HenningKuehl
/types/check-sum/ @BendingBender
@@ -403,6 +421,7 @@
/types/checkstyle-formatter/ @mhegazy
/types/checksum/ @rogierschouten
/types/cheerio/ @blittle @wmaurer @umarniz @LiJinyao
+/types/chessboardjs/ @sliverb @davidmpaz
/types/chmodr/ @BendingBender
/types/chokidar/ @reppners @felixfbecker @bayssmekanique
/types/chosen-js/ @borisyankov @denisname
@@ -420,7 +439,7 @@
/types/clean-stack/ @BendingBender
/types/clean-webpack-plugin/ @j-f1
/types/clear-require/ @dan-j
-/types/cleave.js/ @clentfort @jasongi-at-sportsbet
+/types/cleave.js/ @clentfort @jasongi-at-sportsbet @sashashakun
/types/cli/ @kayahr
/types/cli-color/ @ChaosinaCan
/types/cli-spinner/ @janslow
@@ -449,9 +468,11 @@
/types/collections/ @scarabedore
/types/color/v0/ @LKay
/types/color/v1/ @LKay
-/types/color/ @Airlun
+/types/color/v2/ @Airlun
+/types/color/ @Airlun @jameswlane
/types/color-convert/ @Airlun
/types/color-name/ @Ailrun
+/types/color-namer/ @in19farkt
/types/color-string/ @BendingBender @danmarshall
/types/colorbrewer/ @mtraynham
/types/colors/ @Bartvds @staeke
@@ -479,7 +500,7 @@
/types/conf/v0/ @SamVerschueren
/types/conf/ @SamVerschueren @BendingBender
/types/confidence/ @jppellerin
-/types/config/ @RWander @forrestbice @jndonald3
+/types/config/ @RWander @forrestbice @jndonald3 @albertovasquez
/types/configstore/ @ArcticLight
/types/confit/ @ethanresnick
/types/connect/ @SomaticIT
@@ -561,6 +582,7 @@
/types/cron/ @horiuchi
/types/cropperjs/ @stepancar
/types/croppie/ @connor4312 @dklmuc @sarunint
+/types/cross-spawn/ @Alorel
/types/crossfilter/ @schmuli @iebaker @nordfjord
/types/crossroads/ @diullei
/types/cryptiles/ @awendland
@@ -579,6 +601,7 @@
/types/csvrow/ @codeanimal
/types/csvtojson/ @EricByers @wcarson
/types/cucumber/v1/ @abraaoalves @jan-molak @isoung @BendingBender
+/types/cucumber/v3/ @abraaoalves @jan-molak @isoung @BendingBender @ErikSchierboom
/types/cucumber/ @abraaoalves @jan-molak @isoung @BendingBender @ErikSchierboom
/types/currency-formatter/ @mhegazy @davidmpaz
/types/custom-error-generator/ @thmiceli
@@ -586,8 +609,9 @@
/types/cwise-compiler/ @taoqf
/types/cwise-parser/ @taoqf
/types/cybozulabs-md5/ @pine613
-/types/cytoscape/ @phreed @wy193777 @ypconstante
+/types/cytoscape/ @phreed @wy193777 @ypconstante @janniclas
/types/d3/v3/ @gustavderdrache @borisyankov @MatthiasJobst
+/types/d3/v4/ @tomwanzek @gustavderdrache @borisyankov
/types/d3/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-array/ @gustavderdrache @borisyankov @tomwanzek
/types/d3-axis/ @tomwanzek @gustavderdrache @borisyankov
@@ -601,6 +625,7 @@
/types/d3-drag/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-dsv/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-ease/ @tomwanzek @gustavderdrache @borisyankov
+/types/d3-fetch/ @ledragon
/types/d3-force/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-format/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-geo/ @Ledragon @tomwanzek @gustavderdrache @borisyankov
@@ -615,6 +640,7 @@
/types/d3-random/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-request/ @Ledragon @gustavderdrache @borisyankov @tomwanzek
/types/d3-sankey/ @tomwanzek @gustavderdrache
+/types/d3-scale/v1/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-scale/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-scale-chromatic/ @Ledragon @gustavderdrache @borisyankov @henriquefm
/types/d3-selection/ @tomwanzek @gustavderdrache @borisyankov
@@ -635,12 +661,14 @@
/types/dagre-d3/ @markwongsk
/types/dagre-layout/ @qinfchen @Frankrike @vilterp
/types/dargs/ @BendingBender
-/types/dat-gui/ @gyohk @sonic3d @rroylance
+/types/dashify/ @rokt33r
+/types/dat.gui/ @gyohk @sonic3d @rroylance
/types/data-driven/ @mrhen
/types/datadog-metrics/ @pushplay
/types/datatables.net/ @Silver-Connection @omidkrad @pragmatrix @CNBoland
/types/datatables.net-buttons/ @Silver-Connection @SammyG4Free @jimhartford
/types/datatables.net-fixedheader/ @szechyjs @Silver-Connection
+/types/datatables.net-rowgroup/ @maixiu
/types/datatables.net-rowreorder/ @baywet
/types/datatables.net-select/ @szechyjs
/types/date-arithmetic/ @HeeL
@@ -659,6 +687,7 @@
/types/decamelize/ @samverschueren
/types/decay/ @enaeseth
/types/decompress/ @plantain-00
+/types/decompress-response/ @DanielRosenwasser
/types/decorum/ @dflor003
/types/dedent/ @douglasduteil
/types/deep-assign/ @souldreamer
@@ -706,7 +735,7 @@
/types/discontinuous-range/ @OiCMudkips
/types/disposable-email-domains/ @geoffreak
/types/doccookies/ @jonegerton
-/types/dockerode/ @seikho @nlaplante @isac322 @lazarusx @meisenzahl
+/types/dockerode/ @seikho @nlaplante @isac322 @lazarusx @meisenzahl @thegecko
/types/docopt/ @giggio
/types/doctrine/ @rictic
/types/documentdb/ @NoelAbrahams @brettferdosi @ctstone @yifanwu
@@ -761,6 +790,7 @@
/types/dynatable/ @francoismassart
/types/dynogels/ @SpartanLabs
/types/each/ @misak113
+/types/earcut/ @NaridaL
/types/easeljs/ @evilangelist
/types/easy-api-request/ @DeadAlready
/types/easy-jsend/ @DeadAlready
@@ -772,6 +802,7 @@
/types/echarts/ @xieisabug @AntiMoron
/types/ecurve/ @mhegazy
/types/ed25519/ @erikma
+/types/ed2curve/ @ffflorian
/types/egg-mock/ @sheperdwind
/types/egg.js/ @ToastHawaii
/types/egjs__axes/ @naver
@@ -788,11 +819,11 @@
/types/electron-json-storage/ @stpettersens @nrlquaker @jbw91
/types/electron-notifications/ @djpereira
/types/electron-notify/ @djpereira
-/types/electron-packager/ @SomaticIT @cortopy
+/types/electron-packager/ @SomaticIT @cortopy @jkleinsc
/types/electron-settings/v2/ @leonard-thieu
/types/electron-settings/ @icopp @nrlquaker
/types/electron-spellchecker/ @unindented
-/types/electron-store/ @unindented
+/types/electron-store/ @unindented @jsynowiec
/types/electron-util/ @kputh
/types/electron-window-state/ @rhysd
/types/electron-winstaller/ @shiftkey @unindented
@@ -803,7 +834,7 @@
/types/email-templates/ @cyrilschumacher @gurisko @blankstar85
/types/ember/v1/ @jedmao
/types/ember/ @jedmao @bttf @dwickern @chriskrycho @theroncross @mfeckie
-/types/ember-data/ @dwickern @mike-north
+/types/ember-data/ @dwickern @mike-north @chriskrycho
/types/ember-feature-flags/ @tansongyang
/types/ember-mocha/ @dwickern
/types/ember-modal-dialog/ @tansongyang
@@ -827,6 +858,7 @@
/types/envify/ @tkQubo
/types/enzyme/ @MarianPalkus @NoHomey @jwbay @huhuanming @MartynasZilinskas @thovden
/types/enzyme-adapter-react-15/ @tkrotoff
+/types/enzyme-adapter-react-15.4/ @nali
/types/enzyme-adapter-react-16/ @tkrotoff
/types/enzyme-to-json/ @joscha
/types/eonasdan-bootstrap-datetimepicker/ @ToastHawaii
@@ -836,14 +868,17 @@
/types/eq.js/ @stephenlautier
/types/errorhandler/ @santialbo
/types/es6-collections/ @rbuckton
-/types/es6-promisify/ @harryshipton
+/types/es6-promisify/ @harryshipton @bschlenk
/types/es6-shim/ @rbuckton
/types/es6-weak-map/ @pine
/types/escape-html/ @elisee
/types/escape-latex/ @olsio
/types/escape-string-regexp/ @kruncher @faergeek
/types/escodegen/ @simondel
+/types/eslint/ @pmdartus @j-f1
/types/eslint-plugin-prettier/ @ikatyang
+/types/eslint-scope/ @mysticatea
+/types/eslint-visitor-keys/ @mysticatea
/types/esprima/v2/ @teppeis @RReverser
/types/esprima/ @teppeis @RReverser @peter-scott
/types/esprima-walk/ @tswaters
@@ -872,8 +907,9 @@
/types/expect.js/ @teppeis
/types/expectations/ @vvakame
/types/expo/v23/ @KonstantinKai
-/types/expo/ @KonstantinKai @martynaskadisa
-/types/expr-eval/ @connor4312
+/types/expo/v24/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger
+/types/expo/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger
+/types/expo__vector-icons/ @incleaf
/types/express/ @borisyankov
/types/express-brute/ @cyrilschumacher
/types/express-brute-memcached/ @cyrilschumacher
@@ -889,7 +925,7 @@
/types/express-flash-2/ @mathsalmi
/types/express-flash-notification/ @Mister4Eyes
/types/express-formidable/ @tdolsen @evanshortiss
-/types/express-graphql/ @isman-usoh @nitintutlani @hubel
+/types/express-graphql/ @isman-usoh @nitintutlani @hubel @zya
/types/express-handlebars/ @stpettersens @yhaskell
/types/express-jwt/ @wokim @kacepe @Sl1MBoy
/types/express-less/ @xieyubo
@@ -905,8 +941,9 @@
/types/express-rate-limit/ @cyrilschumacher @makepost
/types/express-route-fs/ @kripod
/types/express-sanitized/ @cjbarth
-/types/express-serve-static-core/ @borisyankov @19majkel94 @kacepe @micksatana
-/types/express-session/ @horiuchi @jacobbogers
+/types/express-serve-static-core/ @borisyankov @19majkel94 @kacepe @micksatana @samijaber
+/types/express-session/ @horiuchi @jacobbogers @builtinnya @ry7n
+/types/express-to-koa/ @xiaohanzhang
/types/express-unless/ @wokim
/types/express-winston/ @bricka
/types/extend/ @reppners
@@ -916,7 +953,7 @@
/types/extract-zip/ @mizunashi-mana
/types/eyes/ @brynbellomy
/types/f1/ @neolwc
-/types/fabric/ @oklemencic @joewashear007 @mrand01
+/types/fabric/ @oklemencic @joewashear007 @mrand01 @NotWoods
/types/facebook-js-sdk/ @amritk
/types/facebook-pixel/ @noctishsu
/types/faker/v3/ @Kuniwak
@@ -939,6 +976,22 @@
/types/fb/ @JoshStrobl
/types/fbemitter/ @kmxz
/types/featherlight/ @xStrom
+/types/feathersjs__authentication/ @AbraaoAlves @j2L4e
+/types/feathersjs__authentication-client/ @AbraaoAlves @j2L4e
+/types/feathersjs__authentication-jwt/ @j2L4e
+/types/feathersjs__authentication-local/ @j2L4e
+/types/feathersjs__authentication-oauth1/ @j2L4e
+/types/feathersjs__authentication-oauth2/ @j2L4e
+/types/feathersjs__configuration/ @j2L4e
+/types/feathersjs__errors/ @j2L4e
+/types/feathersjs__express/ @j2L4e
+/types/feathersjs__feathers/ @j2L4e @AbraaoAlves
+/types/feathersjs__primus/ @j2L4e
+/types/feathersjs__primus-client/ @j2L4e
+/types/feathersjs__rest-client/ @j2L4e
+/types/feathersjs__socket-commons/ @j2L4e
+/types/feathersjs__socketio/ @j2L4e
+/types/feathersjs__socketio-client/ @j2L4e
/types/feedme/ @codeanimal
/types/feedparser/ @cortopy
/types/fetch-jsonp/ @tkrotoff
@@ -954,11 +1007,12 @@
/types/file-type/ @tcaesvk @BendingBender
/types/file-url/ @coderslagoon
/types/filenamify/ @rokt33r
-/types/filesize/ @GiedriusGrabauskas
+/types/filesize/ @GiedriusGrabauskas @renchap
/types/fill-pdf/ @westy92
/types/finalhandler/ @chrootsu
/types/finch/ @DavidSichau
/types/find/ @andypyrope
+/types/find-root/ @Alorel
/types/find-up/ @BendingBender
/types/findup-sync/ @Bartvds @ngbrown
/types/fingerprintjs/ @zaneli
@@ -986,6 +1040,7 @@
/types/fm-websync/ @markusmauch
/types/fontfaceobserver/ @RandScullard
/types/fontoxml/ @rolandzwaga
+/types/forever-agent/ @yavanosta
/types/forever-monitor/ @shuntksh
/types/forge-di/ @adamcarr
/types/form-data/ @soywiz @leonyu @BendingBender
@@ -995,6 +1050,7 @@
/types/format-io/ @amitbeck
/types/format-unicorn/ @kruncher
/types/formidable/ @Nemo157
+/types/forms/ @suXinjke
/types/forwarded/ @BendingBender
/types/fossil-delta/ @endel
/types/foundation/ @borisyankov
@@ -1028,12 +1084,11 @@
/types/ftpd/ @rogierschouten
/types/fullname/ @kayahr
/types/fullpage.js/ @jodiwarren
-/types/fuse/ @smrq
/types/fusioncharts/ @rohitkr @shivarajkv
/types/fuzzaldrin/ @mhegazy
/types/fuzzaldrin-plus/ @jeancroy @jkillian
-/types/fuzzyset/ @lgrignon
-/types/fuzzyset.js/ @lgrignon
+/types/fuzzyset/ @lgrignon @narainsagar
+/types/fuzzyset.js/ @lgrignon @narainsagar
/types/fxn/ @charrondev
/types/gae.channel.api/ @vvakame
/types/gamequery/ @Laubi
@@ -1176,6 +1231,7 @@
/types/gapi.youtube/ @sgtfrankieboy
/types/gapi.youtubeanalytics/ @sgtfrankieboy
/types/gaussian/ @scttcper
+/types/geetest/ @plantain-00
/types/gen-readlines/ @CodeAnimal
/types/generic-functions/ @stpettersens
/types/generic-pool/ @jerray
@@ -1186,9 +1242,12 @@
/types/geokdbush/ @DenisCarriere
/types/geometry-dom/ @nakakura
/types/geopattern/ @Gaelan
+/types/get-caller-file/ @ajafff
/types/get-node-dimensions/ @vincekovacs
/types/get-stdin/ @DanielRosenwasser
/types/get-stream/ @douglasduteil @BendingBender
+/types/get-value/ @DanielRosenwasser
+/types/getopts/ @azasypkin
/types/getos/ @BendingBender
/types/gettext.js/ @jucrouzet
/types/gifffer/ @gatimus
@@ -1214,7 +1273,7 @@
/types/gm/ @ChaosinaCan @maartenvanvliet
/types/go/ @NorthwoodsSoftware
/types/google-adwords-scripts/ @jafaircl
-/types/google-apps-script/ @motemen
+/types/google-apps-script/ @motemen @grant
/types/google-apps-script-oauth2/ @dhayab
/types/google-cloud__datastore/ @beaulac
/types/google-cloud__pubsub/ @pheromonez
@@ -1238,9 +1297,11 @@
/types/graceful-fs/ @Bartvds @BendingBender
/types/graham_scan/ @hberntsen
/types/graphite-udp/ @EricByers
-/types/graphql/ @TonyPythoneer @calebmer @intellix @firede @kepennar @freiksenet @IvanGoncharov @DxCx @rportugal
+/types/graphql/ @TonyPythoneer @calebmer @intellix @firede @kepennar @freiksenet @IvanGoncharov @DxCx @rportugal @tgriesser @dyst5422 @adnsio
/types/graphql-date/ @enaeseth
+/types/graphql-iso-date/ @jwaldrip
/types/graphql-relay/ @arvitaly @nitintutlani @Grelinfo
+/types/graphql-resolve-batch/ @nayni
/types/graphql-type-json/ @schfkt
/types/graphviz/ @mhfrantz
/types/grasp/ @agnoster
@@ -1250,10 +1311,11 @@
/types/grecaptcha/v0/ @brentj73
/types/grecaptcha/ @DethAriel
/types/gregorian-calendar/ @cwalv
+/types/grid-styled/ @antonvasin
/types/gridfs-stream/ @liorm
/types/gridstack/ @PascalSenn @ZoolWay @Sl1MBoy
/types/grunt/ @jeffmay @basarat
-/types/gsap/ @codebelt @ProbablePrime
+/types/gsap/ @codebelt @ProbablePrime @philipbulley
/types/guid/ @maroy1986
/types/gulp/ @GiedriusGrabauskas
/types/gulp-angular-templatecache/ @amanmahajan7
@@ -1331,7 +1393,8 @@
/types/hapi/v8/ @jasonswearingen
/types/hapi/v12/ @jasonswearingen
/types/hapi/v15/ @jasonswearingen
-/types/hapi/ @jasonswearingen @AJamesPhillips
+/types/hapi/v16/ @jasonswearingen @AJamesPhillips
+/types/hapi/ @BorntraegerMarc @rafaelsouzaf @jhsimms
/types/hapi-auth-basic/ @AJamesPhillips @saboya
/types/hapi-auth-jwt2/ @warrenseymour
/types/hapi-decorators/ @kenhowardpdx
@@ -1346,13 +1409,14 @@
/types/hashids/ @pocesar
/types/hashmap/ @outring
/types/haversine/ @screendriver
+/types/hbs/ @davidm77
/types/he/ @sedwards2009
/types/headroom/ @hakubo
/types/heap/ @ryan10132
/types/heapdump/ @weekens
/types/heatmap.js/ @lookuptable @rhys-vdw
/types/hedron/ @dborysov
-/types/hellojs/ @PavelPZ @vuorinem
+/types/hellojs/ @PavelPZ @vuorinem @baywet
/types/hellosign-embedded/ @xt0rted
/types/helmet/ @cyrilschumacher @EvanHahn @bluehatbrit
/types/heredatalens/ @denyo
@@ -1395,7 +1459,7 @@
/types/http-codes/ @mhegazy
/types/http-context/ @mtraynham
/types/http-errors/ @tkrotoff @BendingBender
-/types/http-proxy/ @SomaticIT
+/types/http-proxy/ @SomaticIT @Raigen
/types/http-proxy-agent/ @mrmlnc
/types/http-proxy-middleware/ @zebMcCorkle @BendingBender
/types/http-server/ @plantain-00
@@ -1406,6 +1470,7 @@
/types/hubspot-pace/ @borislavjivkov
/types/humane/ @jmvrbanac
/types/humanize-plus/ @DenisCarriere
+/types/humanize-string/ @ragnarok56
/types/humanparser/ @MichalPodeszwa
/types/humps/ @nikeee
/types/hyco-ws/ @mrcabellom
@@ -1443,12 +1508,12 @@
/types/imap/ @psnider
/types/imap-simple/ @pushplay
/types/imgur-rest-api/ @lukewestby
-/types/immutability-helper/ @seansfkelley
/types/impress/ @borisyankov
/types/in-range/ @DanielRosenwasser
/types/incremental-dom/ @basarat @lanthaler @vvakame
/types/indent-string/ @mhegazy
-/types/inert/ @nycdotnet @AJamesPhillips
+/types/inert/v4/ @nycdotnet @AJamesPhillips
+/types/inert/ @nycdotnet @AJamesPhillips @lenovouser
/types/inflected/ @dsci
/types/inflection/ @shiwano
/types/inherits/ @chrootsu
@@ -1477,6 +1542,7 @@
/types/iota.lib.js/ @fogsh
/types/ip/ @codeanimal
/types/ip-regex/ @unindented
+/types/ipcheck/ @bengry
/types/irc/ @phillips1012
/types/iron/ @simonschick @rafaelsouzaf
/types/is/ @cabralRodrigo
@@ -1488,6 +1554,7 @@
/types/is-compressed/ @mhegazy
/types/is-finite/ @mhegazy
/types/is-glob/ @mrmlnc
+/types/is-hotkey/ @petester42
/types/is-ip/ @coderslagoon
/types/is-my-json-valid/ @kruncher
/types/is-negated-glob/ @ajafff
@@ -1508,6 +1575,7 @@
/types/is-windows/ @mizunashi-mana
/types/isbn-utils/ @elhaard
/types/iscroll/ @csrakowski
+/types/ismobilejs/ @Ty3uK
/types/iso-3166-2/ @sicilica
/types/iso8601-localizer/ @avielfedida
/types/isomorphic-fetch/ @toddlucas
@@ -1525,7 +1593,7 @@
/types/jade/ @panuhorsmalahti
/types/jalaali-js/ @alitaheri
/types/japanese-holidays/ @syamatoo
-/types/jasmine/ @borisyankov @theodorejb @davidparsson @gmoothart @lukas-zech-software
+/types/jasmine/ @borisyankov @theodorejb @davidparsson @gmoothart @lukas-zech-software @Engineer2B
/types/jasmine-ajax/ @lgrignon
/types/jasmine-data_driven_tests/ @AnthonyMacKinnon
/types/jasmine-enzyme/ @bolatovumar
@@ -1549,7 +1617,7 @@
/types/jdataview/ @RReverser
/types/jdenticon/ @mtr
/types/jest/v16/ @NoHomey @jwbay
-/types/jest/ @NoHomey @jwbay @asvetliakov @alexjoverm @epicallan @ikatyang @wsmd @JamieMason @douglasduteil
+/types/jest/ @NoHomey @jwbay @asvetliakov @alexjoverm @epicallan @ikatyang @wsmd @JamieMason @douglasduteil @AhnpGit
/types/jest-diff/ @myabc
/types/jest-docblock/ @ikatyang
/types/jest-get-type/ @myabc
@@ -1562,11 +1630,12 @@
/types/jjv/ @Nemo157
/types/jjve/ @Nemo157
/types/jmespath/ @pushplay
-/types/johnny-five/ @nakakura
+/types/johnny-five/ @nakakura @ujvzolee @workshop2
/types/joi/v6/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW
/types/joi/v10/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku
-/types/joi/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus
+/types/joi/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus @wanganjun
/types/joigoose/ @boothwhack
+/types/josa/ @vichyssoise
/types/jpeg-js/ @DanielRosenwasser
/types/jpm/ @github-account-because-they-want-it
/types/jqgrid/ @lokeshpeta
@@ -1576,7 +1645,9 @@
/types/jquery/ @leonard-thieu @borisyankov @choffmeister @Steve-Fenton @Diullei @tasoili @jasons-novaleaf @seanski @Guuz @ksummerlin @basarat @nwolverson @derekcicerone @AndrewGaspar @seikichi @benjaminjackman @s093294 @JoshStrobl @johnnyreilly @DickvdBrink @King2500
/types/jquery-ajax-chain/ @humana-fragilitas
/types/jquery-alertable/ @stever
+/types/jquery-awesome-cursor/ @zskovacs
/types/jquery-backstretch/ @dkulyk
+/types/jquery-countdown/ @AndersonFriaca
/types/jquery-cropbox/ @PerKastman
/types/jquery-deparam/ @patsissons
/types/jquery-easy-loading/ @delphinus35
@@ -1587,7 +1658,9 @@
/types/jquery-jcrop/ @joeskeen
/types/jquery-jsonrpcclient/ @Ty3uK
/types/jquery-knob/ @iain8
-/types/jquery-mask-plugin/ @avidenic
+/types/jquery-lazyload/ @AndersonFriaca
+/types/jquery-mask-plugin/ @avidenic @AndersonFriaca
+/types/jquery-maskmoney/ @AndersonFriaca
/types/jquery-match-height/ @kbytesys
/types/jquery-mockjax/ @laszlojakab @vladeck
/types/jquery-mousewheel/ @xt0rted
@@ -1595,6 +1668,8 @@
/types/jquery-param/ @patsissons
/types/jquery-sortable/ @Seltzer
/types/jquery-steps/ @jblank @nickwph
+/types/jquery-sticky/ @maixiu
+/types/jquery-tags-input/ @AndersonFriaca
/types/jquery-timeentry/ @marknadig
/types/jquery-toastmessage-plugin/ @joeskeen
/types/jquery-truncate-html/ @abraaoalves
@@ -1649,6 +1724,7 @@
/types/jquery.slimscroll/ @Promact
/types/jquery.soap/ @tigerxy
/types/jquery.sortelements/ @tbureck
+/types/jquery.stickem/ @davidmpaz
/types/jquery.superlink/ @niemyjski
/types/jquery.tagsmanager/ @vbortone
/types/jquery.tile/ @zaneli
@@ -1679,6 +1755,7 @@
/types/js-quantities/ @wrummler
/types/js-schema/ @marcinporebski @roblabat
/types/js-search/ @guoyunhe
+/types/js-sha512/ @nicojs
/types/js-to-java/ @skyitachi
/types/js-url/ @pine613
/types/js-yaml/ @Bartvds @sclausen
@@ -1696,7 +1773,9 @@
/types/jshamcrest/ @dharkness
/types/jsmockito/ @shiver-me-timbers
/types/jsnox/ @stkb @DovydasNavickas
+/types/json-js/ @NN---
/types/json-merge-patch/ @senyaarseniy
+/types/json-parse-better-errors/ @DanielRosenwasser
/types/json-patch/ @vvakame
/types/json-pointer/ @Bartvds
/types/json-query/ @mtraynham
@@ -1714,12 +1793,14 @@
/types/jsonnet/ @hookclaw
/types/jsonp/ @surenkov
/types/jsonpath/ @horiuchi @ikatyang
-/types/jsonrpc-serializer/ @Akim95
+/types/jsonrpc-serializer/ @Akim95 @many20
/types/jsonstream/ @Bartvds
+/types/jsontoxml/ @benstevens48
/types/jsonwebtoken/ @SomaticIT @danielheim @brikou
/types/jspdf/ @amberjs
/types/jsqrcode/ @lordazzi
/types/jsrender/ @zakki
+/types/jsreport-core/ @taoqf
/types/jsrp/ @harryshipton
/types/jss/ @appsforartists @kof
/types/jssha/ @randombk @SrTobi
@@ -1737,7 +1818,7 @@
/types/jui-core/ @easylogic
/types/jui-grid/ @easylogic
/types/jweixin/ @taoqf @gomydodo
-/types/jwplayer/ @martinduparc @kutomer
+/types/jwplayer/ @martinduparc @kutomer @philippguertler
/types/jws/ @JustinBeckwith
/types/jwt-client/ @timoteoponce
/types/jwt-decode/v1/ @QuatroDevOfficial
@@ -1767,6 +1848,7 @@
/types/klaw/v1/ @mceachen
/types/klaw/ @mceachen
/types/klaw-sync/ @shiftkey
+/types/kms-json/ @sunnyone
/types/knex/ @tkQubo @baronfel @MeLlamoPablo @mastermatt @micksatana
/types/knex-postgis/ @vesse
/types/knockback/ @borisyankov
@@ -1807,7 +1889,8 @@
/types/koa-logger/ @geoffreak @tlaziuk
/types/koa-logger-winston/ @stevehipwell
/types/koa-morgan/ @vesse
-/types/koa-mount/ @amirsaber
+/types/koa-mount/ @amirsaber @tlaziuk
+/types/koa-multer/ @benstevens48
/types/koa-passport/ @horiuchi @tlaziuk @brendtumi
/types/koa-pino-logger/ @khell
/types/koa-pug/ @Xstoudi
@@ -1816,7 +1899,7 @@
/types/koa-route/ @migstopheles
/types/koa-router/ @hellopao @schfkt
/types/koa-send/ @pe8ter @tlaziuk
-/types/koa-session/ @kerol2r20
+/types/koa-session/ @kerol2r20 @tlaziuk
/types/koa-session-minimal/ @longztian
/types/koa-sslify/ @wingsbob
/types/koa-static/ @hellopao @tlaziuk
@@ -1855,6 +1938,7 @@
/types/leaflet-gpx/ @soucekv
/types/leaflet-imageoverlay-rotated/ @tkleinke
/types/leaflet-label/ @Nemo157
+/types/leaflet-mouse-position/ @Hanyon
/types/leaflet-polylinedecorator/ @soucekv
/types/leaflet-providers/ @BendingBender
/types/leaflet-rotatedmarker/ @robert-prib-polestar
@@ -1866,7 +1950,6 @@
/types/leaflet.locatecontrol/ @DenisCarriere
/types/leaflet.markercluster/ @rimig
/types/leaflet.markercluster.layersupport/ @AsamK
-/types/leaflet.mouseposition/ @Hanyon
/types/leaflet.pancontrol/ @Brictarus
/types/leaflet.pm/ @tkleinke
/types/leaflet.polylinemeasure/ @RiON69
@@ -1890,7 +1973,6 @@
/types/line-by-line/ @etomsen
/types/line-reader/ @stpettersens
/types/linkify-it/ @praxxis
-/types/linq4js/ @morrisjdev
/types/lls/ @borislavjivkov
/types/load-json-file/ @SamVerschueren
/types/loader-runner/ @e-cloud
@@ -1898,7 +1980,6 @@
/types/loadware/ @ALyman
/types/lobibox/ @itboy87
/types/local-dynamo/ @Sicilica
-/types/localforage-cordovasqlitedriver/ @thgreasi
/types/localized-countries/ @coderslagoon
/types/localizejs-library/ @salbahra
/types/locate-path/ @me
@@ -1907,7 +1988,7 @@
/types/lockr/ @droritos
/types/locutus/ @hookclaw
/types/lodash/v3/ @bczengel @chrootsu
-/types/lodash/ @bczengel @chrootsu @stepancar @ericanderson @aj-r @ailrun @e-cloud @thorn0 @jtmthf
+/types/lodash/ @bczengel @chrootsu @stepancar @aj-r @ailrun @e-cloud @thorn0 @jtmthf @DomiR
/types/lodash-es/ @stephenlautier @e-cloud
/types/lodash-webpack-plugin/ @bumbleblym
/types/lodash.add/ @bczengel @chrootsu @stepancar
@@ -2197,11 +2278,12 @@
/types/log-symbols/ @BendingBender
/types/log-update/ @BendingBender
/types/logat/ @krvikash35
+/types/logform/ @DABH
/types/logg/ @blittle
/types/loggly/ @rmartone @geoffreak
/types/loglevel/ @Pro @szmeti @screendriver
/types/logrotate-stream/ @rogierschouten
-/types/lokijs/ @TeamworkGuy2
+/types/lokijs/ @TeamworkGuy2 @thomasconner
/types/lolex/ @Nemo157 @joshuakgoldberg @rogierschouten
/types/long/ @peterkooijmans
/types/loopback/ @kattsushi @enko @sequoia @drmikecrowe
@@ -2220,7 +2302,7 @@
/types/lunr/v0/ @sebastian-lenz
/types/lunr/ @seantanly
/types/lusca/ @crutchcorn
-/types/luxon/ @colbydehart @FourwingsY
+/types/luxon/ @colbydehart @FourwingsY @jsiebern
/types/lwip/ @AyaMorisawa
/types/lz-string/ @M0ns1gn0r
/types/magic-number/ @stpettersens
@@ -2255,15 +2337,36 @@
/types/massive/v3/ @swissspidy @clarenceh
/types/massive/ @swissspidy @clarenceh @AmazingTurtle
/types/match-media-mock/ @asvetliakov
+/types/material-components-web/ @BrentDouglas
/types/material-design-lite/ @bradzacher
/types/material-ui/ @ngbrown @theigor @alitaheri @herrmanno @DaIgeb @allienna @schlesingermatthias @InsidersByte @artyomsv @dan-j @minodisk
/types/material-ui-datatables/ @coding2012
-/types/materialize-css/v0/ @eriklieben @leonyu @SinghSukhdeep @jfcere @scote
+/types/material__animation/ @BrentDouglas
+/types/material__auto-init/ @BrentDouglas
+/types/material__base/ @BrentDouglas
+/types/material__checkbox/ @BrentDouglas
+/types/material__dialog/ @BrentDouglas
+/types/material__drawer/ @BrentDouglas
+/types/material__form-field/ @BrentDouglas
+/types/material__grid-list/ @BrentDouglas
+/types/material__icon-toggle/ @BrentDouglas
+/types/material__linear-progress/ @BrentDouglas
+/types/material__menu/ @BrentDouglas
+/types/material__radio/ @BrentDouglas
+/types/material__ripple/ @BrentDouglas
+/types/material__select/ @BrentDouglas
+/types/material__selection-control/ @BrentDouglas
+/types/material__slider/ @BrentDouglas
+/types/material__snackbar/ @BrentDouglas
+/types/material__tabs/ @BrentDouglas
+/types/material__textfield/ @BrentDouglas
+/types/material__toolbar/ @BrentDouglas
+/types/materialize-css/v0/ @eriklieben @leonyu @SinghSukhdeep @jfcere @scote @LiadIdan
/types/materialize-css/ @huww98
/types/math3d/ @laszlojakab @jimsmart
/types/mathjax/ @rolandzwaga
/types/mathjs/ @siavol
-/types/matter-js/ @piranha771
+/types/matter-js/ @piranha771 @hasparus
/types/maxmind/ @geoffreak
/types/mcustomscrollbar/ @flurg
/types/md5/ @arcdev1 @jprogrammer
@@ -2277,10 +2380,11 @@
/types/memory-cache/ @jedigo @thieman
/types/memory-fs/ @e-cloud
/types/memwatch-next/ @cyrilschumacher
-/types/meow/ @KnisterPeter
+/types/meow/ @KnisterPeter @praxxis
/types/merge-descriptors/ @danny8002
/types/merge-stream/ @k-kagurazaka @daniel-zazula
/types/merge2/ @tkrotoff @smac89
+/types/merkle/ @kerol2r20
/types/mersenne-twister/ @KentarouTakeda
/types/meshblu/ @fnipo
/types/mess/ @Nemo157
@@ -2315,6 +2419,7 @@
/types/minimatch/ @vvakame @shantmarouti
/types/minimist/ @Bartvds @Necroskillz @kamranayub
/types/minimist-options/ @ikatyang
+/types/minio/ @barinbritva
/types/minipass/ @BendingBender
/types/mirrorx/ @aaronphy
/types/mithril/ @spacejack @andraaspar @isiahmeadows
@@ -2326,7 +2431,9 @@
/types/mkpath/ @optical
/types/mobx-apollo/ @pselden
/types/mocha/ @kazimanzurrashid @otiai10 @jt000 @enlight
+/types/mocha-each/ @magnostherobot
/types/mocha-phantomjs/ @ErikSchierboom
+/types/mocha-steps/ @Arylo
/types/mochaccino/ @thomas-p
/types/mock-aws-s3/ @bluehatbrit
/types/mock-fs/ @Nemo157 @tkqubo
@@ -2340,15 +2447,18 @@
/types/moji/ @yasupeke
/types/moment-business/ @wonbyte
/types/moment-business-time/ @swist
-/types/moment-duration-format/ @SwintDC @TwoStone @leonard-thieu
+/types/moment-duration-format/ @SwintDC @TwoStone @leonard-thieu @bendykowski
/types/moment-holiday/ @rwdalpe
/types/moment-jalaali/ @alitaheri
/types/moment-range/ @Burgov @wilgert @franjuan @MartynasZilinskas
/types/moment-round/ @jacobbaskin
/types/moment-strftime2/ @dex4er
/types/moment-timezone/ @michelsalib @alanblins
+/types/mongo-sanitize/ @CedricCazin
+/types/mongodb/v2/ @CaselIT @alanmarcell @kikar @bitjson @dante-101 @mcortesi
/types/mongodb/ @CaselIT @alanmarcell @kikar @bitjson @dante-101 @mcortesi
-/types/mongoose/ @simonxca @horiuchi @sindrenm @lukasz-zak
+/types/mongoose/v4/ @simonxca @horiuchi @sindrenm @lukasz-zak
+/types/mongoose/ @simonxca @horiuchi @sindrenm @lukasz-zak @Alorel @jendrikw @ethanresnick
/types/mongoose-auto-increment/ @AyaMorisawa
/types/mongoose-deep-populate/ @AyaMorisawa
/types/mongoose-geojson-schema/ @bondz
@@ -2367,6 +2477,7 @@
/types/move-concurrently/ @mgroenhoff
/types/moviedb/ @basarat @0x6368656174
/types/moxios/ @itoasuka
+/types/mozilla-readability/ @charlesvdv
/types/mpromise/ @sgkim126
/types/mri/ @shiftkey @j-f1
/types/ms/ @danny8002
@@ -2385,7 +2496,7 @@
/types/multiparty/ @kenfdev
/types/multiplexjs/ @KamyarNazeri
/types/multisort/ @CzBuCHi
-/types/multistream/ @mrmlnc
+/types/multistream/ @mrmlnc @kenzierocks
/types/murmurhash-js/ @cvle
/types/murmurhash3js/ @dlee-nvisia
/types/musicmetadata/ @Xstoudi
@@ -2396,6 +2507,7 @@
/types/n3/ @phreed
/types/nano/ @timjacobi @vincekovacs
/types/nanoajax/ @nathancahill
+/types/nanoid/ @bash
/types/nanomsg/ @titan
/types/nanoscroller/ @zihark17
/types/nanp/ @karn
@@ -2405,7 +2517,7 @@
/types/natural-sort/ @a-morales
/types/navigation/ @grahammendick
/types/navigation-react/ @grahammendick
-/types/navigo/ @aersamkull
+/types/navigo/ @aersamkull @dancespiele
/types/nblas/ @erikgerrits
/types/nconf/ @jedigo @jmthibault
/types/ncp/ @bartvds
@@ -2421,6 +2533,9 @@
/types/nes/ @NoHomey @saboya
/types/net-keepalive/ @hertzg
/types/netmask/ @mhfrantz
+/types/new-relic-browser/ @renehamburger @piotrkubisa
+/types/newline-remove/ @OpenByteDev
+/types/newrelic/ @mastermatt
/types/nexpect/ @vvakame
/types/next/ @dru89 @brikou
/types/next-redux-wrapper/ @stevegeek
@@ -2447,19 +2562,20 @@
/types/nightmare/ @horiuchi @samyang-au
/types/nightwatch/ @rkavalap @schlesiger
/types/noble/ @swook @wind-rider @shantanubhadoria @lukel99 @bioball @keton
-/types/nock/ @bonnici @horiuchi @afharo @mastermatt
+/types/nock/ @bonnici @horiuchi @afharo @mastermatt @damour
/types/nodal/ @charrondev
/types/node/v4/ @eps1lon
-/types/node/v6/ @WilcoBakker @inlined @eps1lon
+/types/node/v6/ @WilcoBakker @inlined @eps1lon @Alorel
/types/node/v7/ @parambirs @tellnes @WilcoBakker @eps1lon
-/types/node/v8/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @OliverJAsh @eps1lon @Hannes-Magnusson-CK @jkomyno
-/types/node/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @OliverJAsh @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff
+/types/node/v8/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @OliverJAsh @eps1lon @Hannes-Magnusson-CK @jkomyno @hoo29
+/types/node/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @OliverJAsh @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff @hoo29
/types/node-7z/ @erkie
/types/node-array-ext/ @Beng89
/types/node-cache/ @chrootsu @dthunell @useltmann
/types/node-calendar/ @luzianz
/types/node-cleanup/ @agadar
/types/node-common-errors/ @icopp
+/types/node-cron/ @maximelkin
/types/node-dir/ @panuhorsmalahti
/types/node-dogstatsd/ @chrisbobo
/types/node-emoji/ @jonestristand @styu
@@ -2478,7 +2594,6 @@
/types/node-json-db/ @kuzn-ilya
/types/node-mysql-wrapper/ @kataras
/types/node-notifier/ @tkQubo
-/types/node-pg-migrate/ @bradleyayers
/types/node-polyglot/ @timjk
/types/node-powershell/ @rodrigoff
/types/node-ral/ @ssddi456
@@ -2494,7 +2609,6 @@
/types/node-uuid/ @jeffmay
/types/node-validator/ @kengorab
/types/node-vault/ @YuJianrong
-/types/node-waves/ @stephenlautier
/types/node-wit/ @julienduf
/types/node-xmpp-client/ @PJakcson
/types/node-xmpp-core/ @PJakcson
@@ -2527,6 +2641,7 @@
/types/novnc-core/ @smithkl42 @BendingBender
/types/npm/ @SomaticIT
/types/npm-package-arg/ @mgroenhoff
+/types/npm-packlist/ @ajafff
/types/ns-api/ @Archcry
/types/nslog/ @unindented
/types/nsqjs/ @cezaryrk
@@ -2549,6 +2664,7 @@
/types/object-hash/ @misak113
/types/object-inspect/ @demurgos
/types/object-map/ @wolfgang42
+/types/object-merge/ @OpenByteDev
/types/object-path/ @pocesar
/types/object-refs/ @3fd
/types/oblo-util/ @Oblosys
@@ -2557,10 +2673,11 @@
/types/oclazyload/ @rolandzwaga
/types/odata/ @janhommes @jcchalte
/types/ofe/ @Morfent
-/types/office-js/ @OfficeDev @LanceEA
+/types/office-js/ @OfficeDev @LanceEA @Zlatkovsky @kbrandl @Rick-Kirkham
/types/offline-js/ @cgwrench
/types/oibackoff/ @geoffreak
/types/oidc-token-manager/ @rosieks
+/types/ol/ @yairtawil
/types/on-finished/ @czechboy0 @BendingBender
/types/on-headers/ @jjeffery @BendingBender
/types/once/ @denis-sokolov @BendingBender
@@ -2574,16 +2691,16 @@
/types/openjscad/ @danmarshall
/types/openlayers/v2/ @bolhovsky
/types/openlayers/v3/ @osechet @matthiasdailey-ccri
-/types/openlayers/ @osechet @wb14123 @ailrun @mylen @iamthechad @danmana
+/types/openlayers/ @osechet @wb14123 @ailrun @mylen @iamthechad @danmana @yairtawil @pierremarc
/types/openstack-wrapper/ @sanjaymadane
/types/opentok/ @westy92 @CatGuardian
-/types/opentype.js/ @danmarshall
+/types/opentype.js/ @danmarshall @edzis
/types/opn/ @shinnn @SomaticIT @tlent
/types/optics-agent/ @crevil
/types/optimist/ @soywiz @chbrown
/types/optimize-css-assets-webpack-plugin/ @odnamrataizem
/types/ora/v0/ @screendriver
-/types/ora/ @basarat @screendriver @BendingBender
+/types/ora/ @basarat @screendriver @BendingBender @azasypkin
/types/oracledb/ @Bigous
/types/orchestrator/ @tkQubo @TeamworkGuy2
/types/orderedmap/ @bradleyayers
@@ -2593,7 +2710,7 @@
/types/os-locale/ @AyaMorisawa @BendingBender
/types/os-name/ @BendingBender
/types/os-tmpdir/ @mhegazy
-/types/osmosis/ @jurajkocan
+/types/osmosis/ @jurajkocan @evanshortiss
/types/osmtogeojson/ @tkqubo
/types/osrm/ @DenisCarriere
/types/otplib/ @renjfk
@@ -2611,6 +2728,7 @@
/types/p-every/ @BendingBender
/types/p-lazy/ @BendingBender
/types/p-limit/ @BendingBender
+/types/p-loading/ @renjfk
/types/p-locate/ @BendingBender
/types/p-log/ @BendingBender
/types/p-map/ @BendingBender
@@ -2641,7 +2759,10 @@
/types/paper/ @clark-stevenson @Xakaloz
/types/paralleljs/ @jbaldwin
/types/parent-package-json/ @sgmccli
-/types/parse/ @dpoetzsch @jaeggerr @flavionegrao
+/types/parity-pmd/ @leovujanic @jewbre
+/types/parity-pmr/ @leovujanic
+/types/parity-poe/ @leovujanic
+/types/parse/ @dpoetzsch @jaeggerr @flavionegrao @wesleygrimes
/types/parse-git-config/ @leonard-thieu
/types/parse-glob/ @glen-84
/types/parse-json/ @mrmlnc
@@ -2653,7 +2774,7 @@
/types/parse-unit/ @Jack-Works
/types/parseurl/ @bomret
/types/parsimmon/ @Bartvds @mizunashi-mana @bcherny @bvanreeven @leonard-thieu
-/types/passport/ @horiuchi @enaeseth @theigor @tlaziuk
+/types/passport/ @horiuchi @enaeseth @theigor @tlaziuk @danielpa9708
/types/passport-anonymous/ @0x6368656174
/types/passport-beam/ @AtlasDev
/types/passport-discord/ @kzay
@@ -2663,10 +2784,13 @@
/types/passport-github2/ @yasupeke @mthmulders
/types/passport-google-oauth/ @staticfunction
/types/passport-google-oauth2/ @bluehatbrit
-/types/passport-http/ @krizalys
+/types/passport-http/ @krizalys @tlaziuk @cjbarth
/types/passport-http-bearer/ @isman-usoh
+/types/passport-jwt/ @jindev
+/types/passport-kakao/ @Park9eon
/types/passport-local/ @SomaticIT
/types/passport-local-mongoose/ @linusbrolin
+/types/passport-naver/ @Park9eon
/types/passport-oauth2/ @pasieronen
/types/passport-oauth2-client-password/ @akaNightmare
/types/passport-saml/ @cjbarth
@@ -2741,7 +2865,7 @@
/types/playcanvas/ @Neoflash1979
/types/playerframework/ @ricardosabino
/types/pleasejs/ @nakakura
-/types/plotly.js/ @chrisgervang @martinduparc @frederikaalund @taoqf
+/types/plotly.js/ @chrisgervang @martinduparc @frederikaalund @taoqf @Dadstart
/types/plugapi/ @BNedry
/types/plugin-error/ @rogierschouten
/types/plupload/ @patrickbussmann
@@ -2802,6 +2926,7 @@
/types/promise-pg/ @coldacid
/types/promise-polyfill/ @skysteve
/types/promise-pool/ @vilic
+/types/promise-queue/ @LachlanStuart
/types/promise-retry/ @shirakaba
/types/promise.prototype.finally/ @slavik57 @BendingBender
/types/promised-temp/ @rokadias
@@ -2820,7 +2945,7 @@
/types/prosemirror-keymap/ @bradleyayers @davidka @timjb
/types/prosemirror-markdown/ @bradleyayers @davidka @timjb
/types/prosemirror-menu/ @bradleyayers @davidka @timjb
-/types/prosemirror-model/ @bradleyayers @davidka @timjb
+/types/prosemirror-model/ @bradleyayers @davidka @timjb @neknalb
/types/prosemirror-schema-basic/ @bradleyayers @davidka @timjb
/types/prosemirror-schema-list/ @bradleyayers @davidka @timjb
/types/prosemirror-state/ @bradleyayers @davidka @timjb
@@ -2835,18 +2960,19 @@
/types/proxyquire/ @jt000
/types/pty.js/ @enlight
/types/public-ip/ @BendingBender
-/types/pubnub/ @bitbankinc @rollymaduk
+/types/pubnub/ @bitbankinc @rollymaduk @vitosamson
/types/pubsub-js/ @borisyankov
/types/pug/ @TonyPythoneer @19majkel94
-/types/pulltorefreshjs/ @DanielRosenwasser
+/types/pulltorefreshjs/ @DanielRosenwasser @humpedli
/types/pump/ @tlaziuk
/types/pupa/ @nju33
-/types/puppeteer/ @marvinhagemeister @cdeutsch
+/types/puppeteer/v0/ @marvinhagemeister @cdeutsch
+/types/puppeteer/ @marvinhagemeister @cdeutsch @jwbay
/types/pure-render-decorator/ @seansfkelley
/types/purl/ @danfma
/types/pusher-js/ @tkqubo
/types/pvutils/ @microshine
-/types/python-shell/ @dolanmiu
+/types/python-shell/ @dolanmiu @WORMSS
/types/q/v0/ @bnemetchek @johnnyreilly
/types/q/ @bnemetchek @AndrewGaspar @johnnyreilly @mboudreau
/types/q-io/ @Bartvds
@@ -2859,7 +2985,7 @@
/types/qrcode.react/ @mleko
/types/qs/ @RWander @leonyu @tehbelinda @zyml @artursvonda @CarlosBonetti
/types/qtip2/ @Seltzer @leonard-thieu
-/types/query-string/ @SamVerschueren @tkrotoff @huhuanming
+/types/query-string/ @SamVerschueren @tkrotoff @huhuanming @MadaraUchiha
/types/quick-lru/ @BendingBender
/types/quill/ @sumitkm @guillaume-ro-fr @43081j
/types/quixote/ @greybax
@@ -2871,8 +2997,9 @@
/types/rabbit.js/ @wokim
/types/radium/ @alexgorbatchev @nupplaphil @asvetliakov @mihe
/types/radius/ @codeanimal
-/types/ramda/ @donnut @mdekrey @mrdziuban @sbking @afharo @teves-castro @1M0reBug @hojberg @charlespwd @samsonkeung @angeloocana @raynerd @googol @moshensky
+/types/ramda/ @donnut @mdekrey @mrdziuban @sbking @afharo @teves-castro @1M0reBug @hojberg @charlespwd @samsonkeung @angeloocana @raynerd @googol @moshensky @ethanresnick
/types/random-js/ @pistacchio
+/types/random-number/ @OpenByteDev
/types/random-seed/ @endel
/types/random-string/ @stpettersens
/types/randomcolor/ @feitzi @BradyLiles
@@ -2882,7 +3009,14 @@
/types/rappid/ @DenEwout
/types/raspi/ @nebrius
/types/raspi-board/ @nebrius
+/types/raspi-gpio/ @nebrius
+/types/raspi-i2c/ @nebrius
+/types/raspi-led/ @nebrius
+/types/raspi-onewire/ @nebrius
/types/raspi-peripheral/ @nebrius
+/types/raspi-pwm/ @nebrius
+/types/raspi-serial/ @nebrius
+/types/raspi-soft-pwm/ @nebrius
/types/ratelimiter/ @AyaMorisawa
/types/raty/ @terrawheat
/types/raven/ @scttcper @1999
@@ -2904,13 +3038,14 @@
/types/react-aria-menubutton/ @forabi @crohlfs
/types/react-autosuggest/ @nicolas-schmitt @pjo256 @robessog @tbayne @cdeutsch @rosskevin
/types/react-beautiful-dnd/ @varHarrie @bradleyayers
+/types/react-big-calendar/ @piotrwitek @paustint @pikpok
/types/react-body-classname/ @mhegazy
/types/react-bootstrap/ @walkerburgin @vsiao @danilojrr @Batbold-Gansukh @octatone @chengsieuly @mretolaza @katbusch @vitosamson @LKay @aaronbeall
/types/react-bootstrap-date-picker/ @LKay @ssi-hu-antal-bodnar
/types/react-bootstrap-daterangepicker/ @ianks
/types/react-bootstrap-table/v2/ @flaub @alelode @UJosue10
/types/react-bootstrap-table/ @flaub @alelode @UJosue10 @dawnmist @Ogglas
-/types/react-bootstrap-typeahead/ @Guymestef
+/types/react-bootstrap-typeahead/ @Guymestef @radziksh
/types/react-breadcrumbs/ @KostyaEsmukov
/types/react-breadcrumbs-dynamic/ @mitsuruog
/types/react-broadcast/ @kandros
@@ -2918,12 +3053,13 @@
/types/react-calendar-heatmap/ @9renpoto
/types/react-calendar-timeline/ @radziksh
/types/react-cartographer/ @trevonmckay
+/types/react-click-outside/ @screendriver
/types/react-codemirror/ @velveret @rudi-c
/types/react-collapse/ @Kimahriman
/types/react-color/ @LKay @markspolakovs @mntdn
/types/react-confirm/ @santiagodoldan
/types/react-content-loader/ @alaatm
-/types/react-copy-to-clipboard/ @mabels
+/types/react-copy-to-clipboard/ @mabels @BernabeFelix
/types/react-cropper/ @stepancar
/types/react-css-modules/ @KostyaEsmukov @skirsdeda
/types/react-css-transition-replace/ @LKay
@@ -2933,7 +3069,7 @@
/types/react-data-grid/ @SupernaviX @KieranPeat @martinnov92
/types/react-datagrid/ @stephenjelfs
/types/react-date-range/ @Junbong
-/types/react-datepicker/ @radziksh @andrewBalekha @smrq @Rogach @royxue
+/types/react-datepicker/ @radziksh @andrewBalekha @smrq @Rogach @royxue @KoalaHuman
/types/react-daterange-picker/ @uncovertruth @MartynasZilinskas
/types/react-dates/ @Artur-A
/types/react-daum-postcode/ @Sa-ryong
@@ -2948,13 +3084,15 @@
/types/react-dropzone/v2/ @matdube @LynxEyes @goblindegook @benbayard
/types/react-dropzone/v3/ @matdube @LynxEyes @goblindegook @benbayard @LKay
/types/react-dropzone/ @matdube @LynxEyes @goblindegook @benbayard @LKay @codeaid @jurosh
+/types/react-dynamic-number/ @eugrdn
/types/react-easy-chart/ @danzel
/types/react-event-listener/ @asvetliakov
/types/react-fa/ @flaub @patsissons @LKay
/types/react-facebook-login/ @apare @jankarres
-/types/react-faux-dom/ @alitaheri @cleverguy25
+/types/react-faux-dom/ @alitaheri @cleverguy25 @deviousm
/types/react-file-input/ @dmitryrogozhny
/types/react-file-reader-input/ @dmitryrogozhny @alitaheri
+/types/react-flags-select/ @senukartur
/types/react-flatpickr/ @begincalendar
/types/react-flex/ @pushplay
/types/react-flexr/ @pushplay
@@ -2969,6 +3107,7 @@
/types/react-hamburger-menu/ @grzesie2k
/types/react-helmet/v4/ @evanbb @isman-usoh
/types/react-helmet/ @evanbb @isman-usoh @lith-light-g @sammkj @yuit
+/types/react-helmet-async/ @forabi
/types/react-highlight-words/ @mhegazy
/types/react-highlighter/ @oizie
/types/react-holder/ @isman-usoh
@@ -2986,7 +3125,7 @@
/types/react-input-calendar/ @stepancar
/types/react-input-mask/ @apare
/types/react-intl/v1/ @bgrieder
-/types/react-intl/ @bgrieder @cdroulers @gyzerok @tillwolff @LKay @bhouser @kristerkari
+/types/react-intl/ @bgrieder @cdroulers @gyzerok @tillwolff @LKay @bhouser @kristerkari @formatlos
/types/react-intl-redux/ @LKay
/types/react-is-deprecated/ @seansfkelley
/types/react-joyride/ @DanielRosenwasser @bendxn
@@ -2997,7 +3136,7 @@
/types/react-lazyload/ @m0a
/types/react-leaflet/ @danzel @davschne @yuit
/types/react-list/ @buptyyf @tomshen
-/types/react-loadable/ @Kovensky @odensc
+/types/react-loadable/ @Kovensky @odensc @ianks @tlaziuk
/types/react-loader/ @artfuldev
/types/react-maskedinput/ @LKay @lavoaster @CarlosBonetti
/types/react-mce/ @morphologue
@@ -3006,7 +3145,7 @@
/types/react-mixin/ @tkqubo
/types/react-modal/ @radziksh @drewnoakes @homburg @ttamminen @hallowatcher @peterblazejewicz
/types/react-monaco-editor/ @jnetterf
-/types/react-motion/ @stepancar @asvetliakov
+/types/react-motion/ @stepancar @asvetliakov @dimitarnestorov
/types/react-motion-slider/ @asvetliakov
/types/react-native/ @alloy @huhuanming @iRoachie @timwangdev @kamal @nelyousfi
/types/react-native-collapsible/ @iRoachie
@@ -3023,19 +3162,21 @@
/types/react-native-google-signin/ @j-fro
/types/react-native-keep-awake/ @huhuanming
/types/react-native-linear-gradient/ @j-fro
+/types/react-native-loading-spinner-overlay/ @fhelwanger
/types/react-native-material-design-searchbar/ @iRoachie
/types/react-native-material-kit/ @iRoachie @timwangdev
/types/react-native-material-ui/ @iRoachie
/types/react-native-mixpanel/ @r3nya
/types/react-native-modalbox/ @iRoachie
+/types/react-native-navigation/ @egorshulga
/types/react-native-orientation/ @MoLow
/types/react-native-popup-dialog/ @PaitoAnderson @connectdotz
-/types/react-native-push-notification/ @PaitoAnderson
+/types/react-native-push-notification/ @PaitoAnderson @tomSawkins
/types/react-native-qrcode/ @plantain-00
/types/react-native-safari-view/ @mrand01
-/types/react-native-scrollable-tab-view/ @CaiHuan
+/types/react-native-scrollable-tab-view/ @CaiHuan @egorshulga
/types/react-native-sensor-manager/ @SahinVardar
-/types/react-native-snap-carousel/ @jnbt
+/types/react-native-snap-carousel/ @jnbt @j-fro
/types/react-native-sortable-grid/ @j-fro
/types/react-native-sortable-list/ @sivolobov
/types/react-native-svg-uri/ @iRoachie
@@ -3045,12 +3186,13 @@
/types/react-native-touch-id/ @huhuanming
/types/react-native-vector-icons/ @iRoachie @timwangdev
/types/react-native-video/ @huhuanming @abrahambotros
-/types/react-navigation/ @huhuanming @mhcgrq @fangpenlin @abrahambotros @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko
+/types/react-navigation/ @huhuanming @mhcgrq @fangpenlin @abrahambotros @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @robertohuertasm @YourGamesBeOver
/types/react-notification-system/ @GiedriusGrabauskas @DeividasBakanas @LKay @sztobar
/types/react-notification-system-redux/ @LKay
/types/react-numeric-input/ @heatherbooker
/types/react-onclickoutside/v5/ @LKay
/types/react-onclickoutside/ @LKay
+/types/react-onsenui/ @salim7 @jemmyw
/types/react-overlays/ @aaronbeall @vitosamson
/types/react-paginate/ @deevus @wouterhardeman @pegel03 @archy-bold
/types/react-pointable/ @istefo @mdibyo
@@ -3058,29 +3200,32 @@
/types/react-props-decorators/ @tkqubo
/types/react-recaptcha/ @mhegazy @zzanol
/types/react-redux/ @tkqubo @thasner @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva
+/types/react-redux-epic/ @forabi
/types/react-redux-i18n/ @clementdevos
/types/react-redux-toastr/ @Smiche @artyomsv @kulmajaba
-/types/react-relay/ @graphcool @voxmatt @alloy
+/types/react-relay/ @graphcool @voxmatt @alloy @npirotte
/types/react-resolver/ @forabi
/types/react-responsive/v1/ @asvetliakov
/types/react-responsive/ @asvetliakov @alechill @xaviergonz
/types/react-router/v2/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov
/types/react-router/v3/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @ssorallen
-/types/react-router/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @tkrotoff @huy-nguyen @grmiade @DaIgeb @egorshulga
+/types/react-router/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @tkrotoff @huy-nguyen @grmiade @DaIgeb @egorshulga @neuoy
/types/react-router-bootstrap/ @vlesierse @LKay @olmobrutall
/types/react-router-config/ @lith-light-g
/types/react-router-dom/ @tkrotoff @huy-nguyen
/types/react-router-native/ @ezintz
+/types/react-router-navigation/ @kaoDev
+/types/react-router-navigation-core/ @kaoDev
/types/react-router-redux/v3/ @isman-usoh @noah79 @rosendi
/types/react-router-redux/v4/ @isman-usoh @noah79 @rosendi @LKay @DovydasNavickas
/types/react-router-redux/ @huy-nguyen @8398a7
/types/react-s-alert/ @mitsuruog
/types/react-scroll/ @sudoplz @GiedriusGrabauskas
/types/react-scrollbar/ @stephenjelfs
-/types/react-select/ @Hesquibet @giladgray @iebaker @skirsdeda @vujevits @devrelm @MartynasZilinskas @onatm @ninjaferret @tehbi4
+/types/react-select/ @Hesquibet @giladgray @iebaker @skirsdeda @vujevits @devrelm @MartynasZilinskas @onatm @ninjaferret @tehbi4 @misantronic
/types/react-side-effect/ @remojansen
/types/react-sidebar/ @jeroenvervaeke
-/types/react-sketchapp/ @ricokahler
+/types/react-sketchapp/ @ricokahler @DomiR
/types/react-slick/ @andrewBalekha @GiedriusGrabauskas @r3nya
/types/react-smooth-scrollbar/ @asvetliakov
/types/react-sortable-hoc/ @NoHomey @charlesrey
@@ -3105,6 +3250,7 @@
/types/react-test-renderer/v15/ @arvitaly @lochbrunner @lochbrunner @johnnyreilly
/types/react-test-renderer/ @arvitaly @lochbrunner @johnnyreilly @jgoz
/types/react-tether/ @ryprice
+/types/react-text-mask/ @guilhermehubner
/types/react-textarea-autosize/ @asvetliakov @zry656565
/types/react-toastr/ @shssoichiro
/types/react-toggle/v2/ @LKay
@@ -3116,28 +3262,31 @@
/types/react-transition-group/ @LKay
/types/react-treeview/ @janslow
/types/react-truncate/ @mattvperry
+/types/react-twitter-auth/ @paulfasola
/types/react-user-tour/ @ccancellieri
/types/react-virtual-keyboard/ @bsurai
/types/react-virtualized/ @kaoDev @guntherjh @wasd171 @szabolcsx @kraenhansen
/types/react-virtualized-select/ @seansfkelley
/types/react-weui/ @tairan
-/types/react-widgets/ @rogierschouten @sanyatuning @frodehansen2
+/types/react-widgets/ @rogierschouten @sanyatuning @frodehansen2 @r3nya
/types/react-widgets-moment/ @dawnmist
/types/react-youtube/ @kgtkr
/types/reactable/ @spielc
/types/reactcss/ @chrisgervang @LKay
/types/reactstrap/v4/ @alihammad @mfal @danilobjr @fabiopaiva
-/types/reactstrap/ @alihammad @mfal @danilobjr @fabiopaiva @FaithForHumans @KurtPreston
+/types/reactstrap/ @alihammad @mfal @danilobjr @fabiopaiva @FaithForHumans @KurtPreston @kraenhansen @timc13
/types/read/ @timjk
/types/read-chunk/ @crispybee
/types/read-package-tree/ @mgroenhoff
/types/read-pkg/ @jdxcode
/types/read-pkg-up/ @dudeofawesome @jdxcode
+/types/readdir-enhanced/ @mrmlnc
/types/readdir-stream/ @Bartvds
/types/readline-sync/ @jonestristand
+/types/readline-transform/ @dex4er
/types/reapop/ @Barrokgl
/types/recase/ @18steps
-/types/recharts/ @mthmulders @rapmue @royxue @ZheyangSong
+/types/recharts/ @mthmulders @rapmue @royxue @ZheyangSong @richbai90
/types/recompose/ @iskandersierra @mrapogee @clayne11
/types/reconnectingwebsocket/ @nguarracino
/types/recursive-readdir/v1/ @elisee
@@ -3171,6 +3320,7 @@
/types/redux-immutable-state-invariant/ @remojansen @highflying
/types/redux-infinite-scroll/ @silkyfray
/types/redux-injectable-store/ @unindented
+/types/redux-little-router/ @priecint
/types/redux-localstorage/ @LKay
/types/redux-localstorage-debounce/ @LKay
/types/redux-localstorage-filter/ @LKay
@@ -3184,6 +3334,7 @@
/types/redux-promise-middleware/ @ianks
/types/redux-recycle/ @LKay
/types/redux-router/ @stepancar
+/types/redux-socket.io/ @snakeego
/types/redux-storage/ @asvetliakov
/types/redux-storage-engine-jsurl/ @screendriver
/types/redux-storage-engine-localstorage/ @screendriver
@@ -3196,20 +3347,23 @@
/types/relateurl/ @tkrotoff
/types/relaxed-json/ @18steps
/types/relay-runtime/ @voxmatt @alloy
+/types/remarkable/ @makepost
/types/remote-redux-devtools/ @ColinEberhardt @unindented
/types/remove-markdown/ @RagibHasin
/types/replace-ext/ @DeividasBakanas
/types/request/ @soywiz @bonnici @Bartvds @joeskeen @ccurrens @lookfirst @mastermatt
/types/request-ip/ @mrhen
-/types/request-promise/ @cglantschnig @joeskeen @AyaMorisawa
-/types/request-promise-native/ @gustavohenke
+/types/request-promise/ @cglantschnig @joeskeen @AyaMorisawa @mastermatt
+/types/request-promise-native/ @gustavohenke @mastermatt
/types/requestretry/ @EricByers @trainerbill
/types/require-dir/ @weekens
/types/require-directory/ @Igmat
/types/require-from-string/ @ikatyang
+/types/require-relative/ @MattiasBuelens
/types/requirejs/ @jbaldwin
/types/requirejs-domready/ @lefb766
/types/resemblejs/ @pimterry
+/types/reservoir/ @danvk
/types/resolve/ @marionebl @ajafff
/types/resolve-from/ @unional
/types/resourcejs/ @shaunluttin
@@ -3228,12 +3382,14 @@
/types/resumablejs/ @DanielMcAssey
/types/rethinkdb/ @alexgorbatchev
/types/retry/ @krenor
+/types/retry-as-promised/ @Raigen
/types/rev-hash/ @ikatyang
/types/revalidate/ @alex3165
/types/revalidator/ @brewsoftware
/types/reveal/ @robertop87 @Nava2
/types/rewire/ @borislavjivkov @CaselIT
/types/rfc2047/ @mugifly
+/types/rgrove__parse-xml/ @petejohanson
/types/rheostat/ @SashaBayan @kourge
/types/rickshaw/ @niemyjski
/types/rimraf/ @soywiz @e-cloud @bash
@@ -3244,16 +3400,16 @@
/types/riotjs/ @vvakame
/types/rison/ @impworks
/types/rivets/ @TrevorDev @matjanos
-/types/rollup/ @flying-sheep @csvn
+/types/roads/ @dancespiele
/types/rollup-plugin-json/ @asmockler
/types/ronomon__crypto-async/ @BendingBender
/types/rosie/ @abner @subvertallchris
-/types/roslib/ @Pro @skycoop
+/types/roslib/ @Pro @skycoop @dgorobopec
/types/rot-js/ @atiaxi
/types/route-parser/ @ianks @bobbuehler
/types/routie/ @Adilson
/types/royalslider/ @csrakowski
-/types/rpio/ @DominikPalo
+/types/rpio/ @DominikPalo @Pencl
/types/rrc/ @DeividasBakanas
/types/rrule/ @waratuman
/types/rsmq/ @MugeSo
@@ -3280,6 +3436,7 @@
/types/rx-lite-time/ @Igorbek
/types/rx-lite-virtualtime/ @Igorbek
/types/rx.wamp/ @darkl
+/types/s3-download-stream/ @everettcaleb
/types/s3-upload-stream/ @geoffreak
/types/safari-extension/ @luukd
/types/safari-extension-content/ @luukd
@@ -3298,6 +3455,7 @@
/types/sanitize-html/ @rogierschouten @afshin @BehindTheMath
/types/sap__xsenv/ @mad-mike
/types/sass-graph/ @marvinhagemeister
+/types/sass-webpack-plugin/ @AepKill
/types/sat/ @omni360
/types/satnav/ @DotNetNerd
/types/saywhen/ @SeanSobey
@@ -3310,7 +3468,7 @@
/types/scroller/ @haskellcamargo
/types/scrollreveal/ @Davidblkx
/types/scrolltofixed/ @bmdixon
-/types/scrypt-async/ @xStrom
+/types/scrypt-async/ @xStrom @stesix
/types/scryptsy/ @micksatana
/types/seamless/ @danmana
/types/seamless-immutable/ @alex3165 @xsburg @geirsagberg
@@ -3350,7 +3508,7 @@
/types/send/ @MikeJerred
/types/seneca/ @psnider
/types/sequelize/v3/ @samuelneff @codeanimal @drinchev @morpheusxaut @torhal
-/types/sequelize/ @samuelneff @codeanimal @drinchev @babolivier @kukoo1 @oktapodia @morpheusxaut @TitaneBoy @zjy01
+/types/sequelize/ @samuelneff @codeanimal @drinchev @babolivier @kukoo1 @oktapodia @morpheusxaut @TitaneBoy @zjy01 @nidzov @Raigen @todd
/types/sequelize-fixtures/ @cschwarz
/types/sequencify/ @npenin
/types/sequester/ @Strate
@@ -3363,6 +3521,7 @@
/types/server-destroy/ @gyszalai
/types/session-file-store/ @blendsdk @rokt33r
/types/set-cookie-parser/ @nickp10
+/types/set-value/ @DanielRosenwasser
/types/sha1/ @arcdev1
/types/shallowequal/ @seansfkelley
/types/shapefile/ @DenisCarriere
@@ -3379,6 +3538,7 @@
/types/shopify-buy/ @openminder
/types/shortid/ @stpettersens @despairblue
/types/shot/ @AJamesPhillips
+/types/should-sinon/ @Arylo
/types/showdown/ @cbowdon @tan9
/types/shrink-ray/ @forabi
/types/siema/ @Irmiz @0x6368656174 @samnau
@@ -3391,33 +3551,37 @@
/types/signature_pad/ @AbubakerB @jrmihalick
/types/simple-assign/ @NoHomey
/types/simple-cw-node/ @vvakame
+/types/simple-lru/ @NN---
/types/simple-mock/ @leonyu
/types/simple-oauth2/ @mad-mike
/types/simple-peer/ @tlaziuk
/types/simple-url-cache/ @a-lucas
/types/simple-xml/ @notVitaliy
/types/simplebar/v1/ @gregonnet @leonard-thieu
-/types/simplebar/ @leonard-thieu
+/types/simplebar/ @gregonnet @leonard-thieu
/types/simplemde/ @Scalesoft
/types/simplesmtp/ @rogierschouten
/types/simplestorage.js/ @axelcostaspena @mxl
+/types/single-line-log/ @ffflorian
/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j
/types/sinon-as-promised/ @igrayson
/types/sinon-chai/ @kazimanzurrashid @jedmao
-/types/sinon-chrome/ @pimterry
+/types/sinon-chrome/ @pimterry @crimx
/types/sinon-express-mock/ @jpchip @tlaziuk
/types/sinon-mongoose/ @stevehipwell
-/types/sinon-stub-promise/ @vintem
+/types/sinon-stub-promise/ @vintem @tstackhouse
/types/sinon-test/ @mummybot
/types/sip.js/ @decyrus
/types/sipml/ @chookies
/types/sitemap2/ @shundy
/types/sizzle/ @leonard-thieu
/types/sjcl/ @Evgenus
+/types/skatejs/ @Hotell
/types/ski/ @AyaMorisawa
/types/skyway/ @nakakura
/types/slack-node/ @geoffreak
/types/slack-winston/ @BlueHatbRit
+/types/slackdown/ @nju33
/types/slackify-html/ @hypexr
/types/slate-irc/ @elisee
/types/sleep/ @rajarz
@@ -3439,8 +3603,9 @@
/types/socket.io/ @progre @divillysausages @florentpoujol @KentarouTakeda @gigi
/types/socket.io-client/ @progre @divillysausages @florentpoujol
/types/socket.io-parser/ @plantain-00
-/types/socket.io-redis/ @nupplaphil
+/types/socket.io-redis/ @nupplaphil @seeLuck
/types/socket.io.users/ @kataras
+/types/socketio-jwt-auth/ @codeanimal
/types/socketio-wildcard/ @BendingBender
/types/socketty/ @Nax
/types/sockjs/ @pmccloghrylaing
@@ -3461,7 +3626,7 @@
/types/spdx-correct/ @jinwoo
/types/spdx-satisfies/ @jinwoo
/types/spdy/ @tony19
-/types/speakeasy/ @legendecas @mrOlorin
+/types/speakeasy/ @legendecas @mrOlorin @xeoneux
/types/speakingurl/ @Goldsmith42
/types/spectacle/ @zmaybury
/types/spectrum/ @M-Zuber
@@ -3469,7 +3634,7 @@
/types/split.js/ @icholy
/types/split2/ @mugeso
/types/spotify-api/ @skovmand
-/types/spotify-web-playback-sdk/ @Festify
+/types/spotify-web-playback-sdk/ @Festify @mraerino @NeoLegends
/types/sprintf/ @soywiz @BendingBender
/types/sprintf-js/ @jasonswearingen @BendingBender
/types/sql.js/ @Hozuki
@@ -3493,21 +3658,24 @@
/types/stats.js/ @gregolai @hberntsen @danvk
/types/statsd-client/ @peterkooijmans @chrisleck
/types/statuses/ @tkrotoff @BendingBender
+/types/std-mocks/ @jdxcode
/types/steam/ @kant2002
/types/steed/ @Paul-Isache
/types/stemmer/ @will-ockmore
/types/sticky-cluster/ @paustint
-/types/stompjs/ @jimic
+/types/stompjs/ @jimic @Dr4k4n
/types/stoppable/ @EricByers
/types/storejs/ @vbortone @harry0000
+/types/storybook__addon-a11y/ @hyunseob
/types/storybook__addon-actions/ @joscha
/types/storybook__addon-backgrounds/ @hyunseob
/types/storybook__addon-info/ @mkornblum @fyrkant
/types/storybook__addon-knobs/ @joscha @martynaskadisa
-/types/storybook__addon-links/ @joscha
+/types/storybook__addon-links/ @joscha @jessepinho
/types/storybook__addon-notes/ @joscha
/types/storybook__addon-options/ @joscha
/types/storybook__react/ @joscha @wapgear
+/types/storybook__vue/ @pntgupta
/types/stream-buffers/ @Jason3S
/types/stream-meter/ @mugeso
/types/stream-series/ @k-kagurazaka
@@ -3530,7 +3698,9 @@
/types/stripe-v2/ @ejsmith @amritk @adamcmiel @jleider @galuszkak
/types/stripe-v3/ @ejsmith @amritk @adamcmiel @jleider @galuszkak
/types/strong-cluster-control/ @shuntksh
+/types/strong-log-transformer/ @azasypkin
/types/strophe/ @DavidKDeutsch
+/types/structured-source/ @azu
/types/styled-jsx/ @R1ZZU
/types/stylelint/ @alan-agius4
/types/stylelint-webpack-plugin/ @bahlo
@@ -3541,7 +3711,7 @@
/types/suitescript/ @darrenhillconsulting
/types/sumo-logger/ @forabi
/types/superagent/v2/ @varju @NicoZelaya @mxl
-/types/superagent/ @NicoZelaya @mxl @paplorinc
+/types/superagent/ @NicoZelaya @mxl @paplorinc @shreyjain1994
/types/superagent-no-cache/ @mxl
/types/superagent-prefix/ @mxl
/types/supercluster/ @DenisCarriere
@@ -3555,7 +3725,7 @@
/types/svg4everybody/ @BendingBender
/types/svgjs.draggable/ @LiFeleSs
/types/svgjs.resize/ @jkevingutierrez
-/types/svgo/ @bradleyayers
+/types/svgo/ @bradleyayers @giladgray
/types/swag/ @shiwano
/types/swagger-express-middleware/ @alexandreroba
/types/swagger-express-mw/ @micmro
@@ -3588,6 +3758,7 @@
/types/tapable/ @e-cloud
/types/tape/ @Bartvds @sodatea @DennisSchwartz @mikehenrty
/types/tar/ @SomaticIT @connor4312
+/types/tar-fs/ @Umoxfo
/types/tcp-ping/ @stegano
/types/tedious/ @rogierschouten @cjthompson
/types/tedious-connection-pool/ @sandorfr
@@ -3604,7 +3775,7 @@
/types/text-buffer/ @GlenCFL
/types/text-encoding/ @pine613
/types/text-encoding-utf-8/ @trxcllnt
-/types/three/ @gyohk @florentpoujol @SereznoKot @omni360 @ivoisbelongtous @piranha771 @qszhusightp @nakakura @s093294 @Pro @efokschaner @PsychoSTS @dhritzkiv
+/types/three/ @gyohk @florentpoujol @SereznoKot @omni360 @ivoisbelongtous @piranha771 @qszhusightp @nakakura @s093294 @Pro @efokschaner @PsychoSTS @dhritzkiv @apurvaojas
/types/thrift/ @kamek-pf @kevin-greene-ck @jessezhang91
/types/throng/ @cyrilschumacher @tatethurston
/types/throttle/ @BendingBender
@@ -3623,7 +3794,7 @@
/types/tinder/ @pingec
/types/tinycolor2/ @M-Zuber @geertjansen @nvh
/types/tinycopy/ @vvatanabe
-/types/tinymce/ @martinduparc @ipoul
+/types/tinymce/ @martinduparc @ipoul @nicohartto
/types/titanium/ @cyounkins
/types/title/ @fa7ad
/types/tldjs/ @geoffreak
@@ -3660,17 +3831,19 @@
/types/tweezer.js/ @praxxis
/types/twig/ @soywiz @enko
/types/twilio/ @nickiannone @ashleybrener
-/types/twit/ @Volox @lostfictions
+/types/twit/ @Volox @lostfictions @sapphiredev
/types/twitter/ @chitoku-k
/types/twitter-stream-channels/ @adrianbardan
/types/twitter-text/ @rhysd
/types/twix/ @j3ko
/types/type-check/ @hansrwindhoff
+/types/type-detect/v0/ @Bartvds
/types/type-detect/ @Bartvds
/types/type-is/ @BendingBender
/types/type-name/ @armorik83
/types/typeahead/ @igochkov @gjunge
/types/typedarray-pool/ @pawsong
+/types/typeof/ @OpenByteDev
/types/typescript-deferred/ @DirtyHairy
/types/tz-format/ @samverschueren
/types/ua-parser-js/ @superduper @legendecas @MeLlamoPablo
@@ -3703,26 +3876,31 @@
/types/untildify/ @BendingBender
/types/unused-filename/ @BendingBender
/types/unzip/ @coding2012
+/types/unzipper/ @s73obrien
+/types/update-notifier/v1/ @vvakame @nchen63
/types/update-notifier/ @vvakame @nchen63
+/types/upng-js/ @plantain-00
/types/uppercamelcase/ @plantain-00
/types/urbanairship-cordova/ @Justin-Credible
/types/uri-templates/ @Bartvds
-/types/urijs/ @RodneyJT @xt0rted
+/types/urijs/ @RodneyJT @xt0rted @petejohanson
/types/uritemplate/ @teyc @rubensworks
/types/url-assembler/ @wolfgang42
/types/url-join/ @rogierschouten @devrelm
/types/url-metadata/ @mrkmg
/types/url-parse/ @ChernenkoPaul
/types/url-regex/ @unindented
-/types/url-search-params/ @nick121212
+/types/url-search-params/ @nick121212 @nrathi
/types/url-template/ @marcinporebski
+/types/urllib/ @sorayama
+/types/urlparser/ @OpenByteDev
/types/urlrouter/ @soywiz
/types/urlsafe-base64/ @tkrotoff
/types/usage/ @pvomhoff
-/types/usb/ @underscorebrody
+/types/usb/ @underscorebrody @thegecko
/types/user-home/ @mhegazy
/types/useragent/ @geoffreak
-/types/username/ @kayahr
+/types/username/ @kayahr @krivachy
/types/utf8/ @zelein
/types/util-deprecate/ @BendingBender
/types/util.promisify/ @adamvoss
@@ -3752,13 +3930,14 @@
/types/vex-js/ @gdcohan
/types/vexflow/ @rquiring @sebastianhaas @bohoffi
/types/vfile/ @bizen241 @rokt33r
+/types/vfile-location/ @ikatyang
/types/victory/ @asvetliakov @snerks @Havret
/types/video.js/ @vbortone @scleriot @SWBennett06 @IgelCampus
/types/viewability-helper/ @lironzluf
/types/viewerjs/ @lrh3321
/types/viewporter/ @borisyankov
/types/vimeo/ @DazWilkin
-/types/vimeo__player/ @denisyilmaz
+/types/vimeo__player/ @denisyilmaz @timc13
/types/vinyl/v0/ @jedmao
/types/vinyl/ @vvakame @jedmao @thorn0
/types/vinyl-buffer/ @tkQubo
@@ -3767,11 +3946,14 @@
/types/virtual-dom/ @chbrown
/types/virtual-keyboard/ @bsurai
/types/vis/ @MichaelBitard @macleodbroad-wf @adripanico @seveves @kaktus40 @mmaitre314 @supercargo @takato1314
-/types/vision/ @jasonswearingen @AJamesPhillips
+/types/vision/v4/ @jasonswearingen @AJamesPhillips
+/types/vision/ @jasonswearingen @AJamesPhillips @lenovouser
/types/vitalsigns/ @cyrilschumacher
/types/vivus/ @DanielRosenwasser @lekhmanrus
/types/vkbeautify/ @sch3lp
+/types/vnu-jar/ @Umoxfo
/types/voca/ @pine
+/types/void-elements/ @ajafff
/types/voronoi-diagram/ @michaelneu
/types/vortex-web-client/ @Pro
/types/voximplant-websdk/ @aylarov
@@ -3794,7 +3976,7 @@
/types/watchpack/ @e-cloud
/types/waterline/ @arvitaly
/types/watson-developer-cloud/ @waldo000000 @Naktibalda
-/types/waypoints/ @dominikbulaj @Koloto
+/types/waypoints/ @dominikbulaj @Koloto @evil-shrike
/types/wcwidth/ @rokt33r
/types/weak/ @int0h
/types/weapp-api/ @vargeek
@@ -3809,9 +3991,8 @@
/types/webfontloader/ @doskallemaskin
/types/webgl-ext/ @zenmumbler
/types/webgl2/ @nkemnitz
-/types/webix/ @mkozhukh
/types/webmidi/ @lostfictions
-/types/webpack/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @ahmed-taj @alan-agius4
+/types/webpack/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @ahmed-taj @alan-agius4 @elliottsj @jason0x43
/types/webpack-bundle-analyzer/ @kryops
/types/webpack-chain/ @eirikurn @psachs21
/types/webpack-chunk-hash/ @mtraynham
@@ -3832,7 +4013,7 @@
/types/webpack-stream/ @iclanton @bumbleblym
/types/webpack-validator/ @deevus
/types/webrtc/ @nakakura
-/types/websocket/ @loyd @flynetworks @zhaoleimxd
+/types/websocket/ @loyd @flynetworks @zhaoleimxd @jdneo
/types/webspeechapi/ @saschanaz
/types/websql/ @TeamworkGuy2
/types/webtorrent/ @niieani @tlaziuk
@@ -3869,7 +4050,8 @@
/types/wrench/ @soywiz
/types/write-file-atomic/ @BendingBender
/types/write-json-file/ @DenisCarriere
-/types/ws/ @loyd @elithrar @mlamp
+/types/write-pkg/ @azasypkin
+/types/ws/ @loyd @elithrar @mlamp @TitaneBoy
/types/wtfnode/ @dex4er
/types/wu/ @phiresky
/types/wx-js-sdk-dt/ @agasbzj
@@ -3878,13 +4060,12 @@
/types/x-ray-crawler/ @mtraynham
/types/xdate/ @yamada28go
/types/xdg-basedir/ @tlaziuk
-/types/xhr-mock/ @joscha
/types/xml/ @YuJianrong
/types/xml-parser/ @mhfrantz
/types/xml2js/ @michelsalib @jasonrm @ccurrens @edwardhinkle @BehindTheMath
/types/xml2json/ @dolanmiu
/types/xmlbuilder/ @wallymathieu
-/types/xmldoc/ @Xstoudi @ajsheehan
+/types/xmldoc/ @Xstoudi @ajsheehan @notlaforge
/types/xmldom/ @tkqubo
/types/xmlpoke/ @garthk
/types/xmltojson/ @traviscrowe
@@ -3895,18 +4076,19 @@
/types/xrm/ @6ix4our @mattngan @markusmauch @daryllabar @clownwilleatme @scottdurow
/types/xsd-schema-validator/ @Goldsmith42
/types/xsockets/ @pushplay
-/types/xterm/ @blink1073 @LucianBuzzo
/types/xxhashjs/ @mDibyo
/types/yallist/ @BendingBender
/types/yandex-maps/ @Delagen
/types/yandex-money-sdk/ @chrootsu
+/types/yar/ @SimonSchick
/types/yargs/v8/ @poelstra @mizunashi-mana @pushplay @jeffkenney
+/types/yargs/v10/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC
/types/yargs/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC
+/types/yauzl/ @ffflorian
/types/yayson/ @Codesleuth
/types/ydn-db/ @yathit @gabrielmaldi
/types/yeoman-generator/ @armorik83 @janslow @ikatyang
/types/yeoman-test/ @ikatyang
-/types/yfiles/ @yGuy
/types/yog-bigpipe/ @ssddi456
/types/yog-log/ @ssddi456
/types/yog2-kernel/ @ssddi456
@@ -3914,7 +4096,7 @@
/types/youtube/ @DazWilkin @JoshuaKGoldberg @eliotfallon213
/types/youtube-dl/ @bsurai
/types/yui/ @giabao
-/types/yup/ @dhardtke @vtserman
+/types/yup/ @dhardtke @vtserman @MoretonBayRC
/types/z-schema/ @pgonzal
/types/zapier-platform-core/ @bradleyayers
/types/zen-observable/ @aicest
@@ -3923,9 +4105,13 @@
/types/zepto/ @jbaldwin
/types/zeroclipboard/v1/ @ejsmith @niemyjski @balassy @leonyu
/types/zeroclipboard/ @ejsmith @niemyjski @balassy @leonyu
-/types/zeromq/ @davemckeown @erikma
+/types/zeromq/ @davemckeown @erikma @TitaneBoy
/types/zip.js/ @lgrignon
/types/zipcodes/ @headdetect
+/types/zipkin-context-cls/ @plantain-00
+/types/zipkin-instrumentation-express/ @plantain-00
+/types/zipkin-instrumentation-fetch/ @plantain-00
+/types/zipkin-transport-http/ @plantain-00
/types/zmq/ @davemckeown
/types/zookeeper/ @xialeistudio
/types/zui/ @yuanxu
diff --git a/README.es.md b/README.es.md
new file mode 100644
index 0000000000..ce94bb0298
--- /dev/null
+++ b/README.es.md
@@ -0,0 +1,335 @@
+# DefinitelyTyped [](https://travis-ci.org/DefinitelyTyped/DefinitelyTyped)
+
+[](https://gitter.im/borisyankov/DefinitelyTyped?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
+> El repositorio de definiciones de TypeScript de alta calidad.
+
+Vea también el sitio web [definitelytyped.org](http://definitelytyped.org), aunque la información en este README está más actualizada.
+
+
+## ¿Qué son los `declaration files`?
+
+Vea el [Manual de TypeScript](http://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html).
+
+
+## ¿Cómo los obtengo?
+
+### npm
+
+Este es el método preferido. Solo está disponible para usuarios TypeScript 2.0+. Por ejemplo:
+
+```sh
+npm install --save-dev @types/node
+```
+
+Los types deberían ser incluidos automaticamente por el compilador.
+Vea más en el [manual](http://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html).
+
+Para un paquete NPM "foo", Estos `typings` estarán en "@types/foo".
+Si no puedes encontrar tu paquete, búscalo en [TypeSearch](https://microsoft.github.io/TypeSearch/).
+
+Si aún no puedes encontrarlo, comprueba si el paquete ya [incluye](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) los typings.
+Esto es provisto usualmente en el campo `"types"` o `"typings"` en el `package.json`,
+o solo busca por cualquier archivo ".d.ts" en el paquete e incluyelo manualmente con un `/// `.
+
+
+### Otros métodos
+
+Estos pueden ser utilizados por TypeScript 1.0.
+
+* [Typings](https://github.com/typings/typings)
+* ~~[NuGet](http://nuget.org/packages?q=DefinitelyTyped)~~ (use las alternativas preferidas, la publicación DT type de nuget ha sido desactivada)
+* Descarguelo manualmente desde la `master` branch de este repositorio
+
+Tal vez debas añadir manualmente las [referencias](http://www.typescriptlang.org/docs/handbook/triple-slash-directives.html).
+
+
+## ¿Cómo puedo contribuir?
+
+¡DefinitelyTyped solo trabaja gracias a contribuidores como tú!
+
+### Prueba
+
+Antes de compartir tu mejora con el mundo, úselo usted mismo.
+
+#### Prueba editando un paquete existente
+
+Para agregar nuevas funciones puedes usar el [module augmentation](http://www.typescriptlang.org/docs/handbook/declaration-merging.html).
+También puedes editar directamente los types en `node_modules/@types/foo/index.d.ts`, o copiarlos de ahí y seguir los pasos explicados a continuación.
+
+
+#### Prueba un nuevo paquete
+
+Añade a tu `tsconfig.json`:
+
+```json
+"baseUrl": "types",
+"typeRoots": ["types"],
+```
+
+(También puedes usar `src/types`.)
+Crea un `types/foo/index.d.ts` que contenga declaraciones del módulo "foo".
+Ahora deberías poder importar desde `"foo"` a tu código y te enviara a un nuevo tipo de definición.
+Entonces compila *y* ejecuta el código para asegurarte que el tipo de definición en realidad corresponde a lo que suceda en el momento de la ejecución.
+Una vez que hayas probado tus definiciones con el código real, haz un [PR](#make-a-pull-request)
+luego sigue las instrucciones para [editar un paquete existente](#edit-an-existing-package) o
+[crear un nuevo paquete](#create-a-new-package).
+
+
+### Haz un pull request
+
+Una vez que hayas probado tu paquete, podrás compartirlo en DefinitelyTyped.
+
+Primero, haz un [fork](https://guides.github.com/activities/forking/) en este repositorio, instala [node](https://nodejs.org/), y luego ejecuta la `npm install`.
+
+
+#### Editar un paquete existente
+
+* `cd types/my-package-to-edit`
+* Haz cambios. Recuerda editar las pruebas.
+* También puede que quieras añadirte la sección "Definitions by" en el encabezado del paquete.
+ - Esto hará que seas notificado (a través de tu nombre de usuario en GitHub) cada vez que alguien haga un pull request o issue sobre el paquete.
+ - Haz esto añadiendo tu nombre al final de la línea, así como en `// Definitions by: Alice , Bob `.
+ - O si hay más personas, puede ser multiline
+ ```typescript
+ // Definitions by: Alice
+ // Bob
+ // Steve
+ // John
+ ```
+* Si hay un `tslint.json`, ejecuta `npm run lint package-name`. De lo contrario, ejecuta `tsc` en el directorio del paquete.
+
+Cuando hagas un PR para editar un paquete existente, `dt-bot` deberá @-mencionar a los autores previos.
+Si no lo hace, puedes hacerlo en el comentario asociado con el PR.
+
+
+#### Crear un nuevo paquete
+
+Si eres el autor de la librería, o puedes hacer un pull request a la biblioteca, [bundle types](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) en vez de publicarlo en DefinitelyTyped.
+
+Si estás agregando typings para un paquete NPM, crea un directorio con el mismo nombre.
+Si el paquete al que le estás agregando typings no es para NPM, asegurate de que el nombre que escojas no genere problemas con el nombre del paquete en NPM.
+(Puedes usar `npm info foo` para verificar la existencia del paquete `foo`.)
+
+Tu paquete debería tener esta estructura:
+
+| Archivo | Propósito |
+| --- | --- |
+| index.d.ts | Este contiene los typings del paquete. |
+| foo-tests.ts | Este contiene una muestra del código con el que se realiza la prueba de escritura. Este código *no* es ejecutable, pero sí es type-checked. |
+| tsconfig.json | Este permite ejecutar `tsc` dentro del paquete. |
+| tslint.json | Permite linting. |
+
+Generalas ejecutando `npm install -g dts-gen` y `dts-gen --dt --name my-package-name --template module`.
+Ve todas las opciones en [dts-gen](https://github.com/Microsoft/dts-gen).
+
+También puedes configurar el `tsconfig.json` para añadir nuevos archivos, para agregar un `"target": "es6"` (necesitado por las funciones asíncronas), para agregar a la `"lib"`, o para agregar la opción de compilación `"jsx"`.
+
+Los miembros de DefinitelyTyped frecuentemente monitorean nuevos PRs, pero ten en mente que la cantidad de PRs podrian ralentizar el proceso.
+
+Para un buen paquete de ejemplo, vea [base64-js](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/base64-js).
+
+
+#### Errores comunes
+
+* Primero, sigue el consejo del [manual](http://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html).
+* Formatear: Ya sea utilizar todo en tabs, o siempre utiliza 4 espacios.
+* `function sum(nums: number[]): number`: Utiliza `ReadonlyArray` si una funcion no escribe a sus parámetros.
+* `interface Foo { new(): Foo; }`:
+ Este define el tipo de objeto que esten nuevos. Probablemente quieras `declare class Foo { constructor(); }`.
+* `const Class: { new(): IClass; }`:
+ Prefiere usar una declaración de clase `class Class { constructor(); }` En vez de una nueva constante.
+* `getMeAT(): T`:
+ Si un tipo de parámetro no aparece en los tipos de ningún parámetro, no tienes una función genérica, solo tienes un afirmación del tipo disfrazado.
+ Prefiera utilizar una afirmación de tipo real, p.ej. `getMeAT() as number`.
+ Un ejemplo donde un tipo de parámetro es aceptable: `function id(value: T): T;`.
+ Un ejemplo donde no es aceptable: `function parseJson(json: string): T;`.
+ Una excepción: `new Map()` está bien.
+* Utilizando los tipos `Function` y `Object` casi nunca es una buena idea. En 99% de los casos es posible especificar un tipo más especifico. Los ejemplos son `(x: number) => number` para [funciones](http://www.typescriptlang.org/docs/handbook/functions.html#function-types) y `{ x: number, y: number }` para objetos. Si no hay certeza en lo absoluto del tipo, [`any`](http://www.typescriptlang.org/docs/handbook/basic-types.html#any) es la opción correcta, no `Object`. Si el único hecho conocido sobre el tipo es que es un objecto, usa el tipo [`object`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#object-type), no `Object` o `{ [key: string]: any }`.
+* `var foo: string | any`:
+ Cuando es usado `any` en un tipo de unión, el tipo resultante todavía es `any`. Así que mientras la porción `string` de este tipo de anotación puede _verse_ útil, de hecho, no ofrece ningún typechecking adicional más que un simple `any`.
+ Dependiendo de la intención, una alternativa aceptable puede ser `any`, `string`, o `string | object`.
+
+
+#### Remover un paquete
+
+Cuando un paquete [bundles](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) sus propios tipos, estos tipos deberán ser removidos de DefinitelyTyped para evitar que generen confusión.
+
+Se puede remover ejecutando `npm run not-needed -- typingsPackageName asOfVersion sourceRepoURL [libraryName]`.
+- `typingsPackageName`: Este es el nombre del directorio que tienes que eliminar.
+- `asOfVersion`: Un stub será publicado a `@types/foo` con esta versión. Debería ser más grande que cualquier versión publicada actualmente.
+- `sourceRepoURL`: Esto debería señalar el repositorio que contiene los typings.
+- `libraryName`: Un nombre descriptivo de la librería, p.ej. "Angular 2" en vez de "angular2". (Si es omitido, será idéntico a "typingsPackageName".)
+
+Cualquier otro paquete en DefinitelyTyped que referencie el paquete eliminado deberá ser actualizado para referenciar los tipos bundled. para hacer esto, añade `package.json` con `"dependencies": { "foo": "x.y.z" }`.
+
+Si un paquete nunca estuvo en DefinitelyTyped, no será necesario añadirlo a `notNeededPackages.json`.
+
+
+#### Lint
+
+Para realizar el lint a un paquete, solo añade `tslint.json` al paquete que contiene `{ "extends": "dtslint/dt.json" }`. Todos los paquetes nuevos deberán pasar por el proceso de linted.
+Si el `tslint.json` deshabilita algunas reglas esto se debe a que aún no se ha acomodado. Por ejemplo:
+
+```js
+{
+ "extends": "dtslint/dt.json",
+ "rules": {
+ // This package uses the Function type, and it will take effort to fix.
+ "ban-types": false
+ }
+}
+```
+
+(Para indicar que la regla lint realmente no es utilizada, usa `// tslint:disable rule-name` o mejor, `//tslint:disable-next-line rule-name`.)
+
+Para afirmar que una expresión es de un tipo dado, utilice `$ExpectType`. Para afirmar que una expresión causa un error de compilación, utilice `$ExpectError`.
+
+```js
+// $ExpectType void
+f(1);
+
+// $ExpectError
+f("one");
+```
+
+Para más detalles, vea el [dtslint](https://github.com/Microsoft/dtslint#write-tests) readme.
+
+Realiza una prueba ejecutando `npm run lint package-name` donde `package-name` es el nombre de tu paquete.
+Este script utiliza [dtslint](https://github.com/Microsoft/dtslint).
+
+
+## FAQ
+
+#### ¿Cuál es exactamente la relación entre este repositorio y los paquetes de `@types` en NPM?
+
+La `master` branch es automaticamente publicada en el alcance de los `@types` en NPM gracias a los [types-publisher](https://github.com/Microsoft/types-publisher).
+
+#### He enviado un pull request. ¿Cuánto tardará en ser merged?
+
+Esto depende, pero la mayoría de los pull requests serán merged en alrededor de una semana. PRs que hayan sido aprovados por un autor listado en el encabezado de las definiciones usualmente son merged más rápidamente; PRs para nuevas definiciones tomarán más tiempo ya que requieren más revisiones de los mantenedores. Cada PR es revisado por un miembro de TypeScript o DefinitelyTyped antes de ser merged, por favor se paciente debido a que factores humanos pueden causar retrasos. Revisa el [PR Burndown Board](https://github.com/DefinitelyTyped/DefinitelyTyped/projects/3?card_filter_query=is%3Aopen) para ver el progreso mientras los mantenedores trabajan on los PRs abiertos.
+
+#### Mi PR ha sido merged; ¿cuándo será actualizado el paquete de `@types` NPM?
+
+Los paquetes NPM deberán ser actualizados en unas cuantas horas. Si ha pasado más de 24 horas, menciona a @RyanCavanaugh y/o a @andy-ms en el PR para investigar.
+
+#### Estoy escribiendo una definición que depende de otra definición. Debería utilizar `` o una import?
+
+Si el modulo al cual te estás refiriendo es un módulo externo (utiliza `export`), utilice una import.
+Si el módulo al cual te refieres es un módulo ambiente (utiliza `declare module`, o simplemente declara las globales), utilice ``.
+
+#### He notado que algunos paquetes aquí tienen `package.json`.
+
+Normalmente no lo necesitaras. Cuando publicas un paquete normalmente nosotros automáticamente crearemos un `package.json` para eso.
+Un `package.json` puede ser incluido por el bien de especificar dependencias. Aquí tienen un [ejemplo](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/pikaday/package.json).
+No aceptamos otros campos, tales como `"description"`, para que sean definidos manualmente.
+Además, si necesitas referencia a una versión anterior de typings, debes hacerlo añadiendo `"dependencies": { "@types/foo": "x.y.z" }` al package.json.
+
+#### Algunos paquetes no tienen `tslint.json`, y algunos `tsconfig.json` no contienen `"noImplicitAny": true`, `"noImplicitThis": true`, o `"strictNullChecks": true`.
+
+Entonces están equivocados. Puedes ayudar enviando un pull request para arreglarlos.
+
+#### Puedo pedir una definition?
+
+Aquí están las [definiciones solicitadas actualmente](https://github.com/DefinitelyTyped/DefinitelyTyped/labels/Definition%3ARequest).
+
+#### ¿Qué pasa con las type definitions para el DOM?
+
+Si las types son parte de los estándares web, estas deberán ser contribuidas a [TSJS-lib-generator](https://github.com/Microsoft/TSJS-lib-generator) para que se hagan parte de la librería predeterminada `lib.dom.d.ts`.
+
+#### Un paquete utiliza `export =`, pero prefiero utilizar las import predeterminadas. ¿Puedo cambiar `export =` por `export default`?
+
+Si la import predeterminada trabaja en tu ambiente, considera hacer un cambio en la opción de compilación [`--allowSyntheticDefaultImports`](http://www.typescriptlang.org/docs/handbook/compiler-options.html) opción compilar.
+No cambies la type definition si es preciso.
+Para un paquete NPM, `export =` es exacto si `node -p 'require("foo")'` es la export, y `export default` es exacto si `node -p 'require("foo").default'` es el export.
+
+#### Quiero usar las características de TypeScript 2.1 o superior.
+
+Entonces deberás añadir un comentario a la última línea de la definición en el encabezado (despues de `// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped`): `// TypeScript Version: 2.1`.
+
+#### Quiero añadir un DOM API que no está presente en TypeScript por defecto.
+
+Esto puede pertenecer a [TSJS-Lib-Generator](https://github.com/Microsoft/TSJS-lib-generator#readme). Vea las guías allí.
+Si el estándar sigue siendo un borrador, este pertenece aquí.
+Utilice un nombre que empiece con `dom-` e incluya un link al estándar como el "Project" con el link en el encabezado.
+Cuando ya no sea un borrador, lo podremos eliminar desde DefinitelyType y hacer obsoleto el paquete `@types` asociado.
+
+#### Quiero actualizar un paquete a una nueva versión principal
+
+Si planeas continuar actualizando la versión anterior del paquete, puedes crear una subcarpeta con la versión actual p.ej. `v2`, y copia los archivos existentes. Si es así, necesitarás:
+
+1. Actualiza las rutas relativas en `tsconfig.json` al igual que `tslint.json`.
+2. Añadir reglas de mapeo de rutas para asegurart de que la prueba se está ejecutando contra la versión prevista.
+
+Por ejemplo [history v2 `tsconfig.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/history/v2/tsconfig.json) se ve así:
+
+```json
+{
+ "compilerOptions": {
+ "baseUrl": "../../",
+ "typeRoots": ["../../"],
+ "paths": {
+ "history": [ "history/v2" ]
+ },
+ },
+ "files": [
+ "index.d.ts",
+ "history-tests.ts"
+ ]
+}
+```
+
+Si hay otros paquetes en DefinitelyTyped que son incompatibles con la nueva versión, necesitaras mapear las rutas a la versión anterior. También deberá hacer esto para los paquetes que dependen de paquetes que dependen de una version anterior.
+
+Por ejemplo, `react-router` depende de `history@2`, así que [react-router `tsconfig.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-router/tsconfig.json) tiene una ruta mapeada a "history": `[ "history/v2" ]`;
+transitivo así mismo, `react-router-bootstrap` (que depende de `react-router`) también añade una ruta mapeada en su [tsconfig.json](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-router-bootstrap/tsconfig.json).
+
+Además, `/// ` no trabajara con rutas mapeadas, así que las dependencias deberán utilizar `import`.
+
+#### ¿Cómo escribo definitions para paquetes que pueden ser usados globalmente y como un módulo?
+
+El manual de TypeScript contiene excelente [información general para escribir definiciones](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html), ademas [este archivo de definiciones de ejemplo](https://www.typescriptlang.org/docs/handbook/declaration-files/templates/global-modifying-module-d-ts.html) el cual muestra como crear una definición utilizando la sintaxis de módulo en ES6, asi como también especificando objetos que son disponibles en el alcance global. Esta técnica es demostrada practicamente en la [definición para big.js](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/big.js/index.d.ts), el cual es una librería que puede ser cargada globalmente a travéz de una etiqueta script en una página web, o importada via require o imports estilo ES6.
+
+Para probar como puede ser usada tu definición cuando se refieren globalmente o como un módulo importado, crea una carpeta `test`, y coloca dos archivos de prueba en él. nombra uno `YourLibraryName-global.test.ts` y el otro `YourLibraryName-module.test.ts`. El archivo de prueba _global_ debe ejercer la definición de acuerdo como va a ser usado en un script cargado en una página web donde la librería estará disponible en el alcance global - en este escenario no debes de especificar la sentencia de import. El archivo _módulo_ de prueba debe de ejercer la definición de acuerdo a como va a ser utilizado cuando sea importado (incluyendo las sentencias `import`). Si especificas un propiedad `files` en tu archivo tsconfig.json, asegurate de incluir ambos archivos de prueba. Un [ejemplo práctico de esto](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/big.js/test) es también disponible en la definición de big.js.
+
+Por favor tenga en cuenta que no es necesario para ejercer plenamente la definición en cada archivo de prueba - Es suficiente con probar solo los elementos globalmente accesibles en la prueba de archivos globales y ejercer la definición en el módulo del archivo de prueba, o viceversa.
+
+#### ¿Qué pasa con paquetes scoped?
+
+Types para un paquete scoped `@foo/bar` deberán ir en `types/foo__bar`. tenga en cuenta el doble guion bajo.
+
+Cuando `dts-gen` es utilizado como scaffold en un paquete scoped, las propiedades `paths` deberán ser adaptadas manualmente en el paquete generado
+`tsconfig.json` para referenciar correctamente el paquete scoped:
+
+```json
+{
+ "paths":{
+ "@foo/bar": ["foo__bar"]
+ }
+}
+```
+
+#### El historial de archivos en GitHub parece incompleto.
+
+GitHub no le hace [support](http://stackoverflow.com/questions/5646174/how-to-make-github-follow-directory-history-after-renames) historial de archivos para archivos renombrados. Utilice [`git log --follow`](https://www.git-scm.com/docs/git-log) en su lugar.
+
+#### Debería añadir un namespace que no exporte un módulo que utilice que utilice imports estilo ES6?
+
+Algunos paquetes, como [chai-http](https://github.com/chaijs/chai-http), exportan una función.
+
+importar este módulo con un ES6 style import de forma `import * as foo from "foo";` conduce al error:
+
+> error ts2497: El módulo 'foo' se resuelve en una entidad que no es un módulo y no se puede importar mediante esta construcción
+
+Este error puede ser suprimido al unir la declaración de una función con un namespace vacío del mismo nombre pero esta práctica no es recomendable.
+Esto es un citado común [Respuestas de Stack Overflow](https://stackoverflow.com/questions/39415661/what-does-resolves-to-a-non-module-entity-and-cannot-be-imported-using-this) con respecto a este asunto.
+
+Es más apropiado importar este módulo utilizando la sintaxis `import foo = require("foo");`, o utilizando una importación predeterminada como `import foo from "foo";` si usas la bandera `--allowSyntheticDefaultImports` si la ejecución de tu módulo soporta un esquema de interoperación para módulos no ECMAScript como tal.
+
+## Licencia
+
+Este proyecto es licenciado bajo la licencia MIT.
+
+Los derechos de autor de cada archivo de definición son respectivos de cada contribuidor listado al comienzo de cada archivo de definición.
+
+[](https://github.com/igrigorik/ga-beacon)
diff --git a/README.md b/README.md
index c50d026338..cc59284394 100644
--- a/README.md
+++ b/README.md
@@ -6,12 +6,12 @@
Also see the [definitelytyped.org](http://definitelytyped.org) website, although information in this README is more up-to-date.
+*[You can also read this README in Spanish!](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/README.es.md)*
## What are declaration files?
See the [TypeScript handbook](http://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html).
-
## How do I get them?
### npm
diff --git a/notNeededPackages.json b/notNeededPackages.json
index 3abaa12d26..a3423d479c 100644
--- a/notNeededPackages.json
+++ b/notNeededPackages.json
@@ -24,6 +24,12 @@
"sourceRepoURL": "https://github.com/epoberezkin/ajv",
"asOfVersion": "1.0.0"
},
+ {
+ "libraryName": "angular-touchspin",
+ "typingsPackageName": "angular-touchspin",
+ "sourceRepoURL": "https://github.com/nkovacic/angular-touchspin",
+ "asOfVersion": "1.8.2"
+ },
{
"libraryName": "angular-ui-router-default",
"typingsPackageName": "angular-ui-router-default",
diff --git a/types/activex-wia/activex-wia-tests.ts b/types/activex-wia/activex-wia-tests.ts
index d8046ef319..c33385af14 100644
--- a/types/activex-wia/activex-wia-tests.ts
+++ b/types/activex-wia/activex-wia-tests.ts
@@ -1,79 +1,505 @@
+// Note -- running these tests under cscript requires some ES5 polyfills
+
+const collectionToArray = (col: { Item(key: any): T }): T[] => {
+ const results: T[] = [];
+ const enumerator = new Enumerator(col);
+ enumerator.moveFirst();
+ while (!enumerator.atEnd()) {
+ results.push(enumerator.item());
+ enumerator.moveNext();
+ }
+ return results;
+};
+
// source -- https://msdn.microsoft.com/en-us/library/windows/desktop/ms630826(v=vs.85).aspx
+{
+ const cd = new ActiveXObject('WIA.CommonDialog');
+ const dm = new ActiveXObject('WIA.DeviceManager');
-// Convert a file
-let commonDialog = new ActiveXObject('WIA.CommonDialog');
-let img = commonDialog.ShowAcquireImage();
+ // Download new items as they are created
+ {
+ dm.RegisterEvent(WIA.EventID.wiaEventItemCreated, WIA.Miscellaneous.wiaAnyDeviceID);
+ ActiveXObject.on(dm, 'OnEvent', ['EventID', 'DeviceID', 'ItemID'], x => {
+ const dev = dm.DeviceInfos(x.DeviceID).Connect();
+ const itm = dev.GetItem(x.ItemID);
+ const img = cd.ShowTransfer(itm);
+ const v = img.FileData;
+ // Picture type not available in Javascript
+ });
+ }
-// when DefinitelyTyped supports Typescript 2.4 -- end of July 2017, replace these:
-let jpegFormatID = '{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}';
-if (img.FormatID !== jpegFormatID) {
- const ip = new ActiveXObject('WIA.ImageProcess');
- ip.Filters.Add(ip.FilterInfos.Item('Convert').FilterID);
- ip.Filters.Item(1).Properties.Item('FormatID').Value = jpegFormatID;
- img = ip.Apply(img);
-}
-// with this:
-/*if (img.FormatID !== WIA.FormatID.wiaFormatJPEG) {
- let ip = new ActiveXObject('WIA.ImageProcess');
- ip.Filters.Add(ip.FilterInfos.Item('Convert').FilterID);
- ip.Filters.Item(1).Properties.Item('FormatID').Value = WIA.FormatID.wiaFormatJPEG;
- img = ip.Apply(img);
-}*/
-
-// Take a picture
-let dev = commonDialog.ShowSelectDevice();
-if (dev.Type === WIA.WiaDeviceType.CameraDeviceType) {
- // when DefinitelyTyped supports Typescript 2.4 -- end of July 2017, replace these:
- const commandID = '{AF933CAC-ACAD-11D2-A093-00C04F72DC3C}';
- const itm = dev.ExecuteCommand(commandID);
-
- // with this:
- // let itm = dev.ExecuteCommand(WIA.CommandID.wiaCommandTakePicture);
-}
-
-// Display detailed property information
-dev = commonDialog.ShowSelectDevice();
-let e = new Enumerator(dev.Properties); // no foreach over ActiveX collections
-e.moveFirst();
-while (!e.atEnd()) {
- const p = e.item();
- let s = `${p.Name} (${p.PropertyID}) = `;
- if (p.IsVector) {
- s += '[vector of data]';
- } else {
- s += p.Value;
- if (p.SubType !== WIA.WiaSubType.UnspecifiedSubType) {
- if (p.Value !== p.SubTypeDefault) {
- s += ` (Default = ${p.SubTypeDefault})`;
- }
+ // Convert a file
+ {
+ let img = cd.ShowAcquireImage();
+ if (img && img.FormatID !== WIA.FormatID.wiaFormatJPEG) {
+ const ip = new ActiveXObject('WIA.ImageProcess');
+ ip.Filters.Add(ip.FilterInfos('Convert').FilterID);
+ ip.Filters(1).Properties('FormatID').Value = WIA.FormatID.wiaFormatJPEG;
+ img = ip.Apply(img);
}
}
- if (p.IsReadOnly) {
- s += ' [READ ONLY]';
- } else {
- switch (p.SubType) {
- case WIA.WiaSubType.FlagSubType:
- case WIA.WiaSubType.ListSubType:
- if (p.SubType === WIA.WiaSubType.FlagSubType) {
- s += ' [valid flags include: ';
+ // Take a picture
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev && dev.Type === WIA.WiaDeviceType.CameraDeviceType) {
+ const item = dev.ExecuteCommand(WIA.CommandID.wiaCommandTakePicture);
+ }
+ }
+
+ // Display detailed property information
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ collectionToArray(dev.Properties).forEach(p => {
+ let s = `${p.Name} (${p.PropertyID}) = `;
+ if (p.IsVector) {
+ s += '[vector of data]';
} else {
- s += ' [valid values include: ';
- }
- const count = p.SubTypeValues.Count;
- for (let i = 1; i <= count; i++) {
- s += p.SubTypeValues.Item(i);
- if (i < count) {
- s += ', ';
+ s += p.Value;
+ if (p.SubType !== WIA.WiaSubType.UnspecifiedSubType
+ && p.Value !== p.SubTypeDefault) {
+ s += ` (Default = ${p.SubTypeDefault})`;
}
}
- s += ']';
- break;
- case WIA.WiaSubType.RangeSubType:
- s += ` [valid values in the range from ${p.SubTypeMin} to ${p.SubTypeMax} in increments of ${p.SubTypeStep}]`;
- break;
+
+ if (p.IsReadOnly) {
+ s += ' [READ ONLY]';
+ } else {
+ switch (p.SubType) {
+ case WIA.WiaSubType.FlagSubType:
+ case WIA.WiaSubType.ListSubType:
+ const count = p.SubTypeValues.Count;
+ const items: string[] = [];
+ for (let i = 1; i <= count; i++) {
+ items.push(p.SubTypeValues(i));
+ }
+ const descr = p.SubType === WIA.WiaSubType.FlagSubType ? 'flags' : 'values';
+ s += ` [valid ${descr} include: ${items.join(',')}]`;
+ break;
+ case WIA.WiaSubType.RangeSubType:
+ s += ` [valid values in the range from ${p.SubTypeMin} to ${p.SubTypeMax} in increments of ${p.SubTypeStep}]`;
+ break;
+ }
+ }
+
+ WScript.Echo(s);
+ });
}
}
- WScript.Echo(s);
+ // Determine whether the selected device is a camera
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev && dev.Type === WIA.WiaDeviceType.CameraDeviceType) {
+ WScript.Echo('Selectd device is a camera');
+ }
+ }
+
+ // Count root - level images for transfer
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ const count = collectionToArray(dev.Items).filter(f => {
+ const imageFlag = WIA.WiaItemFlag.ImageItemFlag;
+ return (f.Properties('Item Flags').Value & imageFlag) === imageFlag;
+ }).length;
+ WScript.Echo(`Selected device has ${count} top-level images`);
+ }
+ }
+
+ // Display all imagefile properties
+ {
+ const img = cd.ShowAcquireImage();
+ if (img) {
+ collectionToArray(img.Properties).forEach(p => {
+ let contents = '';
+ if (p.IsVector) {
+ contents = '[vector data not emitted]';
+ } else if (p.Type === WIA.WiaImagePropertyType.RationalImagePropertyType) {
+ contents = `${p.Value.Nunerator}/${p.Value.Denominator}`;
+ } else if (p.Type === WIA.WiaImagePropertyType.StringImagePropertyType) {
+ contents = `"${p.Value}"`;
+ } else {
+ contents = p.Value;
+ }
+ WScript.Echo(`${p.Name} (${p.PropertyID}) = ${contents}`);
+ });
+ }
+ }
+
+ // Determine the event type
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ const actionEvent = WIA.WiaEventFlag.ActionEvent;
+ collectionToArray(dev.Events).forEach(e => {
+ const msg = (e.Type & actionEvent) === actionEvent ?
+ `${e.Name} is an Action event` :
+ `${e.Name} is not an Action event`;
+ WScript.Echo(msg);
+ });
+ }
+ }
+
+ // Set rational numerator and denominator
+ {
+ const r = new ActiveXObject('WIA.Rational');
+ r.Numerator = 1;
+ r.Denominator = 3;
+ WScript.Echo(`1/3 = ${r.Value}`);
+ r.Numerator = 2;
+ r.Denominator = 6;
+ WScript.Echo(`2/6 = ${r.Value}`);
+ }
+
+ // Create and initialize a vector object
+ {
+ const v: WIA.Vector = new ActiveXObject('WIA.Vector');
+ v.SetFromString('This is a test', true, false);
+
+ // when iterated using Enumerator / collectionToArray, each item comes back as an Automation Byte
+ // https://stackoverflow.com/questions/48757982/wia-vector-returns-something-which-is-not-a-number
+ // so the following falls, because fromCharCode is expecting a number
+ // collectionToArray(v).forEach(item => WScript.Echo(String.fromCharCode(item)));
+
+ // Instead, use the Vector's Item method, or the Vector's default property:
+ for (let i = 1; i <= v.Count; i++) {
+ WScript.Echo(String.fromCharCode(v(i)));
+ }
+ }
+
+ // Display detailed image information
+ {
+ const img = new ActiveXObject('WIA.ImageFile');
+ img.LoadFile('c:\\windows\\web\\Screen\\img102.jpg');
+
+ let s = `
+Width = ${img.Width}
+Height = ${img.Height}
+Depth = ${img.PixelDepth}
+Horizontal resolution = ${img.HorizontalResolution}
+Vertical resolution = ${img.VerticalResolution}
+Frame count = ${img.FrameCount}}
+ `.trim();
+
+ let arr: string[] = [];
+
+ if (img.IsIndexedPixelFormat) { arr.push('Pixel data contains palette indexes'); }
+ if (img.IsAlphaPixelFormat) { arr.push('Pixel data has alpha information'); }
+ if (img.IsExtendedPixelFormat) { arr.push('Pixel data has extended color information (16 bit/channel)'); }
+ if (img.IsAnimated) { arr.push('Image is animated'); }
+
+ const propertyTests = [40091, 40092, 40093, 40094, 40095]
+ .filter(n => img.Properties.Exists(n))
+ .map(n => {
+ const prp = img.Properties(n);
+ return `${prp.Name} = ${prp.Value.String}`;
+ });
+ arr = arr.concat(propertyTests);
+
+ if (arr.length) {
+ s += '\n' + arr.join('\n');
+ }
+
+ WScript.Echo(s);
+ }
+
+ // Create an imageprocess object and enumerate filters
+ {
+ const ip = new ActiveXObject('WIA.ImageProcess');
+ collectionToArray(ip.FilterInfos).forEach(fi => {
+ const s = [
+ fi.Name,
+ new Array(51).join('='),
+ fi.Description
+ ].join('\n');
+ WScript.Echo(s);
+ });
+ }
+
+ // Create an imageprocess object and create one of each available filter
+ {
+ const ip = new ActiveXObject('WIA.ImageProcess');
+
+ const stringValue = (v: any) => {
+ if (typeof v === 'string') { return `"${v}"`; }
+ return v;
+ };
+
+ const listValues = (v: any) => collectionToArray(v).join(', ');
+
+ const listProperties = (filter: WIA.Filter) => {
+ let s = [
+ `${filter.Name} (${filter.FilterID})`,
+ new Array(51).join('='),
+ filter.Description,
+ new Array(51).join('=')
+ ].map(line => line + '\n').join('');
+
+ s += collectionToArray(filter.Properties).map(p => {
+ let contents: string;
+
+ switch (typeof p.Value) {
+ // these case clauses replace the IsObject function in VB6/VBScript
+ case 'boolean':
+ case 'string':
+ case 'number':
+ contents = stringValue(p.Value);
+ default:
+ switch (p.SubType) {
+ case WIA.WiaSubType.FlagSubType:
+ contents = ` // [valid values formed by using the OR operator with the following bit flags: ${listValues(p.SubTypeValues)}]`;
+ break;
+ case WIA.WiaSubType.ListSubType:
+ contents = ` // [valid values from the following list: ${listValues(p.SubTypeValues)}]`;
+ break;
+ case WIA.WiaSubType.RangeSubType:
+ contents = ` // [valid values between ${p.SubTypeMin} and ${p.SubTypeMax}, with a step of ${p.SubTypeStep}]`;
+ break;
+ default:
+ contents = '';
+ break;
+ }
+ }
+
+ return `ip.Filters(1).Properties("${p.Name}") = ${contents}`;
+ }).join('\n');
+
+ WScript.Echo(s);
+ };
+
+ collectionToArray(ip.FilterInfos).forEach(fi => {
+ ip.Filters.Add(fi.FilterID);
+ listProperties(ip.Filters(1));
+ ip.Filters.Remove(1);
+ });
+ }
+
+ // List the supported transfer formats
+ {
+ const stringFormat = (fld: string) => {
+ switch (fld) {
+ case WIA.FormatID.wiaFormatBMP: return 'BMP';
+ case WIA.FormatID.wiaFormatPNG: return 'PNG';
+ case WIA.FormatID.wiaFormatGIF: return 'GIF';
+ case WIA.FormatID.wiaFormatJPEG: return 'JPEG';
+ case WIA.FormatID.wiaFormatTIFF: return 'TIFF';
+ default: return 'Unknown';
+ }
+ };
+
+ const dev = cd.ShowSelectDevice();
+ const items = dev && cd.ShowSelectItems(dev, WIA.WiaImageIntent.UnspecifiedIntent, WIA.WiaImageBias.MaximizeQuality, true);
+ if (items) {
+ WScript.Echo(collectionToArray(items(1).Formats).map(stringFormat).join(', '));
+ }
+ }
+
+ // Enumerate supported commands in commands collection
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev && collectionToArray(dev.Commands).some(dc => dc.CommandID === WIA.CommandID.wiaCommandTakePicture)) {
+ WScript.Echo('Selected device supports the TakePicture command');
+ }
+ }
+
+ // Enumerate root - level items and display their names
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ collectionToArray(dev.Items).forEach(item => {
+ let s: string = item.Properties("Item Name").Value;
+ if (item.Properties.Exists("Item Time Stamp")) {
+ const v: WIA.Vector = item.Properties("Item Time Stamp").Value;
+ if (v.Count === 8) { s += ` (${v.Date})`; }
+ }
+ WScript.Echo(s);
+ });
+ }
+ }
+
+ // Determine the number of items returned by ShowSelectItems
+ {
+ const dev = cd.ShowSelectDevice();
+ const items = dev && cd.ShowSelectItems(dev, WIA.WiaImageIntent.UnspecifiedIntent, WIA.WiaImageBias.MaximizeQuality, true);
+ if (items) {
+ WScript.Echo(`You selected ${items.Count} items`);
+ }
+ }
+
+ // Enumerate all the supported events for the selected device
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ const msg = collectionToArray(dev.Events)
+ .map(e => `\n${e.Name} (${e.EventID}): ${e.Description}`)
+ .join('');
+ WScript.Echo('The selected device supports the following events: ' + msg);
+ }
+ }
+
+ // List all available devices by name and deviceid
+ collectionToArray(dm.DeviceInfos).forEach(di => {
+ const name: string = di.Properties("Name").Value;
+ WScript.Echo(`${name} (${di.DeviceID})`);
+ });
+
+ // Display all the properties for the selected device
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ collectionToArray(dev.Properties).forEach(p => {
+ const name = `${p.Name} (${p.PropertyID})`;
+ let contents: string;
+ if (p.IsVector) {
+ contents = '[vector of data]';
+ } else if (p.Type === WIA.WiaPropertyType.StringPropertyType) {
+ contents = `"${p.Value}"`;
+ } else {
+ contents = p.Value;
+ }
+ WScript.Echo(`${name} = ${contents}`);
+ });
+ }
+ }
+
+ // Enumerate the supported commands
+ {
+ const dev = cd.ShowSelectDevice();
+ const items = dev && cd.ShowSelectItems(dev, WIA.WiaImageIntent.UnspecifiedIntent, WIA.WiaImageBias.MaximizeQuality, true);
+ if (items) {
+ const msg = collectionToArray(items(1).Commands)
+ .map(c => `${c.Name}: ${c.Description}\n`)
+ .join('');
+ WScript.Echo(`The selected item supports the following commands:\n${msg}`);
+ }
+ }
+
+ // Create an imagefile object that contains a blank page
+ {
+ // This fails with the error: `The Vector's Type is not compatible with this operation`
+ /*const c = 0xFF0000FF;
+ const v: WIA.Vector = new ActiveXObject('WIA.Vector');
+ for (let i = 0; i < 4; i++) {
+ v.Add(c);
+ }
+ const img = v.ImageFile(2, 2);
+ img.SaveFile('C:\\test.' + img.FileExtension);*/
+ }
+
+ interface WshArgumentsBase {
+ Item(index: TKey): string;
+ (index: TKey): string;
+ length: number;
+ Count(): number;
+ }
+
+ interface WshArguments extends WshArgumentsBase { // not sure if WshArguments takes a string as well, or only a number
+ Named: WshArgumentsBase;
+ Unnamed: WshArgumentsBase;
+ ShowUsage(): void;
+ }
+
+ // Implement a windows script host script that runs automatically
+ {
+ const args = collectionToArray(WScript.Arguments as WshArguments)
+ .map(arg => arg.toLowerCase());
+
+ switch (args.length) {
+ case 1:
+ case 2:
+ const command = `${WScript.FullName} "${WScript.ScriptFullName}" connect`;
+ const name = 'QuickTransfer';
+ const title = 'Quick Scripting Transfer';
+ const icon = `${WScript.FullName}, 0`;
+ const eventID = WIA.EventID.wiaEventDeviceConnected;
+ const deviceID = args.length === 2 ? args[1] : WIA.Miscellaneous.wiaAnyDeviceID;
+
+ if (args[0] === 'register') {
+ WScript.Echo('Registering event handler');
+ dm.RegisterPersistentEvent(command, name, title, icon, eventID, deviceID);
+ WScript.Quit();
+ } else if (args[0] === 'unregister') {
+ WScript.Echo('Unregistering event handler');
+ dm.UnregisterPersistentEvent(command, name, title, icon, eventID, deviceID);
+ WScript.Quit();
+ }
+ break;
+ case 3:
+ if (args[0] === 'connect') {
+ const deviceID = args[1].substr(12);
+ const device = dm.DeviceInfos(deviceID).Connect();
+ collectionToArray(device.Items).forEach(item => {
+ const img = item.Transfer();
+ img.SaveFile(`C:\\${item.Properties('Item Name').Value}.${img.FileExtension}`);
+
+ // Uncomment the following lines to remove the picture from the camera after transfer
+ for (let i = 1; i < device.Items.Count; i++) {
+ const item2 = device.Items(i);
+ if (item2.ItemID !== item.ItemID) { continue; }
+ try {
+ // some cameras don't support deleting a picture
+ device.Items.Remove(i);
+ } catch (error) {
+ WScript.Echo(error);
+ }
+ }
+ });
+ WScript.Quit();
+ }
+ break;
+ }
+
+ const usage = `
+Usage:
+
+To register, type:
+
+ ${WScript.ScriptName} register []
+
+To unregister, type:
+
+ ${WScript.ScriptName} unregister []
+
+Available device ids:
+${collectionToArray(dm.DeviceInfos)
+ .map(device => `${device.DeviceID} '${device.Properties("Name").Value}'`)
+ .join('\n')}
+ `.trim();
+
+ WScript.Echo(usage);
+ }
+
+ // Count the number of child items available for transfer
+ {
+ const device = cd.ShowSelectDevice();
+ const items = device && cd.ShowSelectItems(device, WIA.WiaImageIntent.UnspecifiedIntent, WIA.WiaImageBias.MaximizeQuality, true);
+ const item = items && items(1);
+ if (item) {
+ const count = collectionToArray(item.Items).filter(childItem => {
+ const flags = childItem.Properties('Item Flags').Value as number;
+ return (flags & WIA.WiaItemFlag.TransferItemFlag) === WIA.WiaItemFlag.TransferItemFlag;
+ }).length;
+ WScript.Echo(`Selected device has ${count} child items that can be transferred.`);
+ }
+ }
+
+ // Use a vector object
+ {
+ const v: WIA.Vector = new ActiveXObject('WIA.Vector');
+ v.Add(1);
+ v.Add(42);
+ v.Add(3);
+ v.Remove(1);
+ v.Remove(2);
+ WScript.Echo(`v(1) = ${v(1)}`);
+ v.Clear();
+ v.Add('This');
+ v.Add('is');
+ v.Add('Cool');
+ v.Remove(1);
+ v.Remove(2);
+ WScript.Echo(`v(1) = ${v(1)}`);
+ }
}
diff --git a/types/activex-wia/index.d.ts b/types/activex-wia/index.d.ts
index 7d7cbae727..18e474e09c 100644
--- a/types/activex-wia/index.d.ts
+++ b/types/activex-wia/index.d.ts
@@ -2,22 +2,20 @@
// Project: https://msdn.microsoft.com/en-us/library/windows/desktop/ms630368(v=vs.85).aspx
// Definitions by: Zev Spitz
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-// Typescript Version: 2.4
+// TypeScript Version: 2.6
declare namespace WIA {
/** String versions of globally unique identifiers (GUIDs) that identify common Device and Item commands. */
- // uncomment when DefinitelyTyped supports Typescript 2.4 (end of July 2017)
- /*const enum CommandID {
+ const enum CommandID {
wiaCommandChangeDocument = '{04E725B0-ACAE-11D2-A093-00C04F72DC3C}',
wiaCommandDeleteAllItems = '{E208C170-ACAD-11D2-A093-00C04F72DC3C}',
wiaCommandSynchronize = '{9B26B7B2-ACAD-11D2-A093-00C04F72DC3C}',
wiaCommandTakePicture = '{AF933CAC-ACAD-11D2-A093-00C04F72DC3C}',
- wiaCommandUnloadDocument = '{1F3B3D8E-ACAE-11D2-A093-00C04F72DC3C}'
- }*/
+ wiaCommandUnloadDocument = '{1F3B3D8E-ACAE-11D2-A093-00C04F72DC3C}',
+ }
/** String versions of globally unique identifiers (GUIDs) that identify DeviceManager events. */
- // uncomment when DefinitelyTyped supports Typescript 2.4 (end of July 2017)
- /*const enum EventID {
+ const enum EventID {
wiaEventDeviceConnected = '{A28BBADE-64B6-11D2-A231-00C04FA31809}',
wiaEventDeviceDisconnected = '{143E4E83-6497-11D2-A231-00C04FA31809}',
wiaEventItemCreated = '{4C8F4EF5-E14F-11D2-B326-00C04F68CE61}',
@@ -30,50 +28,48 @@ declare namespace WIA {
wiaEventScanImage3 = '{154E27BE-B617-4653-ACC5-0FD7BD4C65CE}',
wiaEventScanImage4 = '{A65B704A-7F3C-4447-A75D-8A26DFCA1FDF}',
wiaEventScanOCRImage = '{9D095B89-37D6-4877-AFED-62A297DC6DBE}',
- wiaEventScanPrintImage = '{B441F425-8C6E-11D2-977A-0000F87A926F}'
- }*/
+ wiaEventScanPrintImage = '{B441F425-8C6E-11D2-977A-0000F87A926F}',
+ }
/** String versions of globally unique identifiers (GUIDs) that indicate the file format of an image. */
- // uncomment when DefinitelyTyped supports Typescript 2.4 (end of July 2017)
- /*const enum FormatID {
+ const enum FormatID {
wiaFormatBMP = '{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}',
wiaFormatGIF = '{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}',
wiaFormatJPEG = '{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}',
wiaFormatPNG = '{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}',
- wiaFormatTIFF = '{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}'
- }*/
+ wiaFormatTIFF = '{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}',
+ }
/** Miscellaneous string constants */
- // uncomment when DefinitelyTyped supports Typescript 2.4 (end of July 2017)
- /*const enum Miscellaneous {
+ const enum Miscellaneous {
wiaAnyDeviceID = '*',
- wiaIDUnknown = '{00000000-0000-0000-0000-000000000000}'
- }*/
+ wiaIDUnknown = '{00000000-0000-0000-0000-000000000000}',
+ }
/**
* The WiaDeviceType enumeration specifies the type of device attached to a user's computer. Use the Type property on the DeviceInfo object or the Device
- * object to obtain these values from the device.
+ * object to obtain these values from the device.
*/
const enum WiaDeviceType {
CameraDeviceType = 2,
ScannerDeviceType = 1,
UnspecifiedDeviceType = 0,
- VideoDeviceType = 3
+ VideoDeviceType = 3,
}
/**
- * A DeviceEvent's type is composed of bits from the WiaEventFlags enumeration. You can test a DeviceEvent's type by using the AND operation with DeviceEv
- * ent.Type and a member from the WiaEventFlags enumeration.
+ * A DeviceEvent's type is composed of bits from the WiaEventFlags enumeration. You can test a DeviceEvent's type by using the AND operation with
+ * DeviceEvent.Type and a member from the WiaEventFlags enumeration.
*/
const enum WiaEventFlag {
ActionEvent = 2,
- NotificationEvent = 1
+ NotificationEvent = 1,
}
/** The WiaImageBias enumeration helps specify what type of data the image is intended to represent. */
const enum WiaImageBias {
MaximizeQuality = 131072,
- MinimizeSize = 65536
+ MinimizeSize = 65536,
}
/** The WiaImageIntent enumeration helps specify what type of data the image is intended to represent. */
@@ -81,12 +77,12 @@ declare namespace WIA {
ColorIntent = 1,
GrayscaleIntent = 2,
TextIntent = 4,
- UnspecifiedIntent = 0
+ UnspecifiedIntent = 0,
}
/**
- * The WiaImagePropertyType enumeration specifies the type of the value of an image property. Image properties can be found in the Properties collection o
- * f an ImageFile object.
+ * The WiaImagePropertyType enumeration specifies the type of the value of an image property. Image properties can be found in the Properties collection
+ * of an ImageFile object.
*/
const enum WiaImagePropertyType {
ByteImagePropertyType = 1001,
@@ -103,12 +99,12 @@ declare namespace WIA {
VectorOfUndefinedImagePropertyType = 1100,
VectorOfUnsignedIntegersImagePropertyType = 1102,
VectorOfUnsignedLongsImagePropertyType = 1104,
- VectorOfUnsignedRationalsImagePropertyType = 1106
+ VectorOfUnsignedRationalsImagePropertyType = 1106,
}
/**
- * An Item's type is composed of bits from the WiaItemFlags enumeration. You can test an Item's type by using the AND operation with Item.Properties("Item
- * Flags") and a member from the WiaItemFlags enumeration.
+ * An Item's type is composed of bits from the WiaItemFlags enumeration. You can test an Item's type by using the AND operation with
+ * Item.Properties("Item Flags") and a member from the WiaItemFlags enumeration.
*/
const enum WiaItemFlag {
AnalyzeItemFlag = 16,
@@ -129,12 +125,12 @@ declare namespace WIA {
StorageItemFlag = 4096,
TransferItemFlag = 8192,
VideoItemFlag = 65536,
- VPanoramaItemFlag = 1024
+ VPanoramaItemFlag = 1024,
}
/**
- * The WiaPropertyType enumeration specifies the type of the value of an item property. Item properties can be found in the Properties collection of a Dev
- * ice or Item object.
+ * The WiaPropertyType enumeration specifies the type of the value of an item property. Item properties can be found in the Properties collection of a
+ * Device or Item object.
*/
const enum WiaPropertyType {
BooleanPropertyType = 1,
@@ -173,28 +169,31 @@ declare namespace WIA {
VectorOfUnsignedIntegersPropertyType = 104,
VectorOfUnsignedLargeIntegersPropertyType = 109,
VectorOfUnsignedLongsPropertyType = 106,
- VectorOfVariantsPropertyType = 119
+ VectorOfVariantsPropertyType = 119,
}
/**
- * The WiaSubType enumeration specifies more detail about the property value. Use the SubType property on the Property object to obtain these values for t
- * he property.
+ * The WiaSubType enumeration specifies more detail about the property value. Use the SubType property on the Property object to obtain these values for
+ * the property.
*/
const enum WiaSubType {
FlagSubType = 3,
ListSubType = 2,
RangeSubType = 1,
- UnspecifiedSubType = 0
+ UnspecifiedSubType = 0,
}
/**
* The CommonDialog control is an invisible-at-runtime control that contains all the methods that display a User Interface. A CommonDialog control can be
- * created using "WIA.CommonDialog" in a call to CreateObject or by dropping a CommonDialog on a form.
+ * created using "WIA.CommonDialog" in a call to CreateObject or by dropping a CommonDialog on a form.
*/
- interface CommonDialog {
+ class CommonDialog {
+ private constructor();
+ private 'WIA.CommonDialog_typekey': CommonDialog;
+
/**
- * Displays one or more dialog boxes that enable the user to acquire an image from a hardware device for image acquisition and returns an ImageFile object
- * on success, otherwise Nothing
+ * Displays one or more dialog boxes that enable the user to acquire an image from a hardware device for image acquisition and returns an ImageFile
+ * object on success, otherwise Nothing
* @param WIA.WiaDeviceType [DeviceType=0]
* @param WIA.WiaImageIntent [Intent=0]
* @param WIA.WiaImageBias [Bias=131072]
@@ -203,11 +202,11 @@ declare namespace WIA {
* @param boolean [UseCommonUI=true]
* @param boolean [CancelError=false]
*/
- ShowAcquireImage(
- DeviceType?: WiaDeviceType, Intent?: WiaImageIntent, Bias?: WiaImageBias, FormatID?: string, AlwaysSelectDevice?: boolean, UseCommonUI?: boolean, CancelError?: boolean): ImageFile;
+ ShowAcquireImage(DeviceType?: WiaDeviceType, Intent?: WiaImageIntent, Bias?: WiaImageBias, FormatID?: string, AlwaysSelectDevice?: boolean, UseCommonUI?: boolean,
+ CancelError?: boolean): ImageFile | null;
/** Launches the Windows Scanner and Camera Wizard and returns Nothing. Future versions may return a collection of ImageFile objects. */
- ShowAcquisitionWizard(Device: Device): any;
+ ShowAcquisitionWizard(Device: Device): null;
/**
* Displays the properties dialog box for the specified Device
@@ -222,38 +221,41 @@ declare namespace WIA {
ShowItemProperties(Item: Item, CancelError?: boolean): void;
/** Launches the Photo Printing Wizard with the absolute path of a specific file or Vector of absolute paths to files */
- ShowPhotoPrintingWizard(Files: any): void;
+ ShowPhotoPrintingWizard(Files: string | Vector): void;
/**
- * Displays a dialog box that enables the user to select a hardware device for image acquisition. Returns the selected Device object on success, otherwise
- * Nothing
+ * Displays a dialog box that enables the user to select a hardware device for image acquisition. Returns the selected Device object on success,
+ * otherwise Nothing
* @param WIA.WiaDeviceType [DeviceType=0]
* @param boolean [AlwaysSelectDevice=false]
* @param boolean [CancelError=false]
*/
- ShowSelectDevice(DeviceType?: WiaDeviceType, AlwaysSelectDevice?: boolean, CancelError?: boolean): Device;
+ ShowSelectDevice(DeviceType?: WiaDeviceType, AlwaysSelectDevice?: boolean, CancelError?: boolean): Device | null;
/**
- * Displays a dialog box that enables the user to select an item for transfer from a hardware device for image acquisition. Returns the selection as an It
- * ems collection on success, otherwise Nothing
+ * Displays a dialog box that enables the user to select an item for transfer from a hardware device for image acquisition. Returns the selection as an
+ * Items collection on success, otherwise Nothing
* @param WIA.WiaImageIntent [Intent=0]
* @param WIA.WiaImageBias [Bias=131072]
* @param boolean [SingleSelect=true]
* @param boolean [UseCommonUI=true]
* @param boolean [CancelError=false]
*/
- ShowSelectItems(Device: Device, Intent?: WiaImageIntent, Bias?: WiaImageBias, SingleSelect?: boolean, UseCommonUI?: boolean, CancelError?: boolean): Items;
+ ShowSelectItems(Device: Device, Intent?: WiaImageIntent, Bias?: WiaImageBias, SingleSelect?: boolean, UseCommonUI?: boolean, CancelError?: boolean): Items | null;
/**
* Displays a progress dialog box while transferring the specified Item to the local machine. See Item.Transfer for additional information.
* @param string [FormatID='{00000000-0000-0000-0000-000000000000}']
* @param boolean [CancelError=false]
*/
- ShowTransfer(Item: Item, FormatID?: string, CancelError?: boolean): any;
+ ShowTransfer(Item: Item, FormatID?: string, CancelError?: boolean): ImageFile;
}
/** The Device object represents an active connection to an imaging device. */
- interface Device {
+ class Device {
+ private constructor();
+ private 'WIA.Device_typekey': Device;
+
/** A collection of all commands for this imaging device */
readonly Commands: DeviceCommands;
@@ -264,8 +266,8 @@ declare namespace WIA {
readonly Events: DeviceEvents;
/**
- * Issues the command specified by CommandID to the imaging device. CommandIDs are device dependent. Valid CommandIDs for this Device are contained in the
- * Commands collection.
+ * Issues the command specified by CommandID to the imaging device. CommandIDs are device dependent. Valid CommandIDs for this Device are contained in
+ * the Commands collection.
*/
ExecuteCommand(CommandID: string): Item;
@@ -280,13 +282,13 @@ declare namespace WIA {
/** Returns the Type of Device */
readonly Type: WiaDeviceType;
-
- /** Returns the underlying IWiaItem interface for this Device object */
- readonly WiaItem: any;
}
/** The DeviceCommand object describes a CommandID that can be used when calling ExecuteCommand on a Device or Item object. */
- interface DeviceCommand {
+ class DeviceCommand {
+ private constructor();
+ private 'WIA.DeviceCommand_typekey': DeviceCommand;
+
/** Returns the commandID for this Command */
readonly CommandID: string;
@@ -298,8 +300,8 @@ declare namespace WIA {
}
/**
- * The DeviceCommands object is a collection of all the supported DeviceCommands for an imaging device. See the Commands property of a Device or Item obje
- * ct for more details on determining the collection of supported device commands.
+ * The DeviceCommands object is a collection of all the supported DeviceCommands for an imaging device. See the Commands property of a Device or Item
+ * object for more details on determining the collection of supported device commands.
*/
interface DeviceCommands {
/** Returns the number of members in the collection */
@@ -307,10 +309,16 @@ declare namespace WIA {
/** Returns the specified item in the collection by position */
Item(Index: number): DeviceCommand;
+
+ /** Returns the specified item in the collection by position */
+ (Index: number): DeviceCommand;
}
/** The DeviceEvent object describes an EventID that can be used when calling RegisterEvent or RegisterPersistentEvent on a DeviceManager object. */
- interface DeviceEvent {
+ class DeviceEvent {
+ private constructor();
+ private 'WIA.DeviceEvent_typekey': DeviceEvent;
+
/** Returns the event Description */
readonly Description: string;
@@ -325,8 +333,8 @@ declare namespace WIA {
}
/**
- * The DeviceEvents object is a collection of all the supported DeviceEvent for an imaging device. See the Events property of a Device object for more det
- * ails on determining the collection of supported device events.
+ * The DeviceEvents object is a collection of all the supported DeviceEvent for an imaging device. See the Events property of a Device object for more
+ * details on determining the collection of supported device events.
*/
interface DeviceEvents {
/** Returns the number of members in the collection */
@@ -334,13 +342,19 @@ declare namespace WIA {
/** Returns the specified item in the collection by position */
Item(Index: number): DeviceEvent;
+
+ /** Returns the specified item in the collection by position */
+ (Index: number): DeviceEvent;
}
/**
- * The DeviceInfo object is a container that describes the unchanging (static) properties of an imaging device that is currently connected to the computer
- * .
+ * The DeviceInfo object is a container that describes the unchanging (static) properties of an imaging device that is currently connected to the
+ * computer.
*/
- interface DeviceInfo {
+ class DeviceInfo {
+ private constructor();
+ private 'WIA.DeviceInfo_typekey': DeviceInfo;
+
/** Establish a connection with this device and return a Device object */
Connect(): Device;
@@ -355,59 +369,68 @@ declare namespace WIA {
}
/**
- * The DeviceInfos object is a collection of all the imaging devices currently connected to the computer. See the DeviceInfos property on the DeviceManage
- * r object for detail on accessing the DeviceInfos object.
+ * The DeviceInfos object is a collection of all the imaging devices currently connected to the computer. See the DeviceInfos property on the
+ * DeviceManager object for detail on accessing the DeviceInfos object.
*/
interface DeviceInfos {
/** Returns the number of members in the collection */
readonly Count: number;
/** Returns the specified item in the collection either by position or Device ID */
- Item(Index: any): DeviceInfo;
+ Item(Index: number | string): DeviceInfo;
+
+ /** Returns the specified item in the collection either by position or Device ID */
+ (Index: number | string): DeviceInfo;
}
/**
- * The DeviceManager control is an invisible-at-runtime control that manages the imaging devices connected to the computer. A DeviceManager control can be
- * created using "WIA.DeviceManager" in a call to CreateObject or by dropping a DeviceManager on a form.
+ * The DeviceManager control is an invisible-at-runtime control that manages the imaging devices connected to the computer. A DeviceManager control can
+ * be created using "WIA.DeviceManager" in a call to CreateObject or by dropping a DeviceManager on a form.
*/
- interface DeviceManager {
+ class DeviceManager {
+ private constructor();
+ private 'WIA.DeviceManager_typekey': DeviceManager;
+
/** A collection of all imaging devices connected to this computer */
readonly DeviceInfos: DeviceInfos;
/**
* Registers the specified EventID for the specified DeviceID. If DeviceID is "*" then OnEvent will be called whenever the event specified occurs for any
- * device. Otherwise, OnEvent will only be called if the event specified occurs on the device specified.
+ * device. Otherwise, OnEvent will only be called if the event specified occurs on the device specified.
* @param string [DeviceID='*']
*/
RegisterEvent(EventID: string, DeviceID?: string): void;
/**
- * Registers the specified Command to launch when the specified EventID for the specified DeviceID occurs. Command can be either a ClassID or the full pat
- * h name and the appropriate command-line arguments needed to invoke the application.
+ * Registers the specified Command to launch when the specified EventID for the specified DeviceID occurs. Command can be either a ClassID or the full
+ * path name and the appropriate command-line arguments needed to invoke the application.
* @param string [DeviceID='*']
*/
RegisterPersistentEvent(Command: string, Name: string, Description: string, Icon: string, EventID: string, DeviceID?: string): void;
/**
- * Unregisters the specified EventID for the specified DeviceID. UnregisterEvent should only be called for EventID and DeviceID for which you called Regis
- * terEvent.
+ * Unregisters the specified EventID for the specified DeviceID. UnregisterEvent should only be called for EventID and DeviceID for which you called
+ * RegisterEvent.
* @param string [DeviceID='*']
*/
UnregisterEvent(EventID: string, DeviceID?: string): void;
/**
- * Unregisters the specified Command for the specified EventID for the specified DeviceID. UnregisterPersistentEvent should only be called for the Command
- * , Name, Description, Icon, EventID and DeviceID for which you called RegisterPersistentEvent.
+ * Unregisters the specified Command for the specified EventID for the specified DeviceID. UnregisterPersistentEvent should only be called for the
+ * Command, Name, Description, Icon, EventID and DeviceID for which you called RegisterPersistentEvent.
* @param string [DeviceID='*']
*/
UnregisterPersistentEvent(Command: string, Name: string, Description: string, Icon: string, EventID: string, DeviceID?: string): void;
}
/**
- * The Filter object represents a unit of modification on an ImageFile. To use a Filter, add it to the Filters collection, then set the filter's propertie
- * s and finally use the Apply method of the ImageProcess object to filter an ImageFile.
+ * The Filter object represents a unit of modification on an ImageFile. To use a Filter, add it to the Filters collection, then set the filter's
+ * properties and finally use the Apply method of the ImageProcess object to filter an ImageFile.
*/
- interface Filter {
+ class Filter {
+ private constructor();
+ private 'WIA.Filter_typekey': Filter;
+
/** Returns a Description of what the filter does */
readonly Description: string;
@@ -422,10 +445,13 @@ declare namespace WIA {
}
/**
- * The FilterInfo object is a container that describes a Filter object without requiring a Filter to be Added to the process chain. See the FilterInfos pr
- * operty on the ImageProcess object for details on accessing FilterInfo objects.
+ * The FilterInfo object is a container that describes a Filter object without requiring a Filter to be Added to the process chain. See the FilterInfos
+ * property on the ImageProcess object for details on accessing FilterInfo objects.
*/
- interface FilterInfo {
+ class FilterInfo {
+ private constructor();
+ private 'WIA.FilterInfo_typekey': FilterInfo;
+
/** Returns a technical Description of what the filter does and how to use it in a filter chain */
readonly Description: string;
@@ -437,15 +463,18 @@ declare namespace WIA {
}
/**
- * The FilterInfos object is a collection of all the available FilterInfo objects. See the FilterInfos property on the ImageProcess object for detail on a
- * ccessing the FilterInfos object.
+ * The FilterInfos object is a collection of all the available FilterInfo objects. See the FilterInfos property on the ImageProcess object for detail on
+ * accessing the FilterInfos object.
*/
interface FilterInfos {
/** Returns the number of members in the collection */
readonly Count: number;
/** Returns the specified item in the collection either by position or name */
- Item(Index: any): FilterInfo;
+ Item(Index: number | string): FilterInfo;
+
+ /** Returns the specified item in the collection either by position or name */
+ (Index: number | string): FilterInfo;
}
/** The Filters object is a collection of the Filters that will be applied to an ImageFile when you call the Apply method on the ImageProcess object. */
@@ -464,11 +493,14 @@ declare namespace WIA {
/** Removes the designated filter */
Remove(Index: number): void;
+
+ /** Returns the specified item in the collection by position or FilterID */
+ (Index: number): Filter;
}
/**
- * The Formats object is a collection of supported FormatIDs that you can use when calling Transfer on an Item object or ShowTransfer on a CommonDialog ob
- * ject for this Item.
+ * The Formats object is a collection of supported FormatIDs that you can use when calling Transfer on an Item object or ShowTransfer on a CommonDialog
+ * object for this Item.
*/
interface Formats {
/** Returns the number of members in the collection */
@@ -476,13 +508,19 @@ declare namespace WIA {
/** Returns the specified item in the collection by position */
Item(Index: number): string;
+
+ /** Returns the specified item in the collection by position */
+ (Index: number): string;
}
/**
- * The ImageFile object is a container for images transferred to your computer when you call Transfer or ShowTransfer. It also supports image files throug
- * h LoadFile. An ImageFile object can be created using "WIA.ImageFile" in a call to CreateObject.
+ * The ImageFile object is a container for images transferred to your computer when you call Transfer or ShowTransfer. It also supports image files
+ * through LoadFile. An ImageFile object can be created using "WIA.ImageFile" in a call to CreateObject.
*/
- interface ImageFile {
+ class ImageFile {
+ private constructor();
+ private 'WIA.ImageFile_typekey': ImageFile;
+
/** Returns/Sets the current frame in the image */
ActiveFrame: number;
@@ -539,7 +577,10 @@ declare namespace WIA {
}
/** The ImageProcess object manages the filter chain. An ImageProcess object can be created using "WIA.ImageProcess" in a call to CreateObject. */
- interface ImageProcess {
+ class ImageProcess {
+ private constructor();
+ private 'WIA.ImageProcess_typekey': ImageProcess;
+
/** Takes the specified ImageFile and returns the new ImageFile with all the filters applied on success */
Apply(Source: ImageFile): ImageFile;
@@ -551,10 +592,13 @@ declare namespace WIA {
}
/**
- * The Item object is a container for an item on an imaging device object. See the Items property on the Device or Item object for details on accessing It
- * em objects.
+ * The Item object is a container for an item on an imaging device object. See the Items property on the Device or Item object for details on accessing
+ * Item objects.
*/
- interface Item {
+ class Item {
+ private constructor();
+ private 'WIA.Item_typekey': Item;
+
/** A collection of all commands for this item */
readonly Commands: DeviceCommands;
@@ -574,17 +618,15 @@ declare namespace WIA {
readonly Properties: Properties;
/**
- * Returns an ImageFile object, in this version, in the format specified in FormatID if supported, otherwise using the preferred format for this imaging d
- * evice. Future versions may return a collection of ImageFile objects.
+ * Returns an ImageFile object, in this version, in the format specified in FormatID if supported, otherwise using the preferred format for this imaging
+ * device. Future versions may return a collection of ImageFile objects.
* @param string [FormatID='{00000000-0000-0000-0000-000000000000}']
*/
- Transfer(FormatID?: string): any;
-
- /** Returns the underlying IWiaItem interface for this Item object */
- readonly WiaItem: any;
+ Transfer(FormatID?: string): ImageFile;
}
/** The Items object contains a collection of Item objects. See the Items property on the Device or Item object for details on accessing the Items object. */
+ // tslint:disable-next-line interface-name
interface Items {
/** Adds a new Item with the specified Name and Flags. The Flags value is created by using the OR operation with members of the WiaItemFlags enumeration. */
Add(Name: string, Flags: number): void;
@@ -597,28 +639,37 @@ declare namespace WIA {
/** Removes the designated Item */
Remove(Index: number): void;
+
+ /** Returns the specified item in the collection by position */
+ (Index: number): Item;
}
/**
- * The Properties object is a collection of all the Property objects associated with a given Device, DeviceInfo, Filter, ImageFile or Item object. See the
- * Properties property on any of these objects for detail on accessing the Properties object.
+ * The Properties object is a collection of all the Property objects associated with a given Device, DeviceInfo, Filter, ImageFile or Item object. See
+ * the Properties property on any of these objects for detail on accessing the Properties object.
*/
interface Properties {
/** Returns the number of members in the collection */
readonly Count: number;
/** Indicates whether the specified Property exists in the collection */
- Exists(Index: any): boolean;
+ Exists(Index: number | string): boolean;
/** Returns the specified item in the collection either by position or name. */
- Item(Index: any): Property;
+ Item(Index: number | string): Property;
+
+ /** Returns the specified item in the collection either by position or name. */
+ (Index: number | string): Property;
}
/**
- * The Property object is a container for a property associated with a Device, DeviceInfo, Filter, ImageFile or Item object. See the Properties property o
- * n any of these objects for details on accessing Property objects.
+ * The Property object is a container for a property associated with a Device, DeviceInfo, Filter, ImageFile or Item object. See the Properties property
+ * on any of these objects for details on accessing Property objects.
*/
- interface Property {
+ class Property {
+ private constructor();
+ private 'WIA.Property_typekey': Property;
+
/** Indicates whether the Property Value is read only */
readonly IsReadOnly: boolean;
@@ -657,10 +708,13 @@ declare namespace WIA {
}
/**
- * The Rational object is a container for the rational values found in Exif tags. It is a supported element type of the Vector object and may be created u
- * sing "WIA.Rational" in a call to CreateObject.
+ * The Rational object is a container for the rational values found in Exif tags. It is a supported element type of the Vector object and may be created
+ * using "WIA.Rational" in a call to CreateObject.
*/
- interface Rational {
+ class Rational {
+ private constructor();
+ private 'WIA.Rational_typekey': Rational;
+
/** Returns/Sets the Rational Value Denominator */
Denominator: number;
@@ -672,19 +726,19 @@ declare namespace WIA {
}
/**
- * The Vector object is a collection of values of the same type. It is used throughout the library in many different ways. The Vector object may be create
- * d using "WIA.Vector" in a call to CreateObject.
+ * The Vector object is a collection of values of the same type. It is used throughout the library in many different ways. The Vector object may be
+ * created using "WIA.Vector" in a call to CreateObject.
*/
- interface Vector {
+ interface Vector {
/**
- * If Index is not zero, Inserts a new element into the Vector collection before the specified Index. If Index is zero, Appends a new element to the Vecto
- * r collection.
+ * If Index is not zero, Inserts a new element into the Vector collection before the specified Index. If Index is zero, Appends a new element to the
+ * Vector collection.
* @param number [Index=0]
*/
- Add(Value: any, Index?: number): void;
+ Add(Value: TItem, Index?: number): void;
/** Returns/Sets the Vector of Bytes as an array of bytes */
- BinaryData: any;
+ BinaryData: SafeArray;
/** Removes all elements. */
Clear(): void;
@@ -696,30 +750,30 @@ declare namespace WIA {
Date: VarDate;
/**
- * Used to get the Thumbnail property of an ImageFile which is an image file, The thumbnail property of an Item which is RGB data, or creating an ImageFil
- * e from raw ARGB data. Returns an ImageFile object on success. See the Picture method for more details.
+ * Used to get the Thumbnail property of an ImageFile which is an image file, The thumbnail property of an Item which is RGB data, or creating an
+ * ImageFile from raw ARGB data. Returns an ImageFile object on success. See the Picture method for more details.
* @param number [Width=0]
* @param number [Height=0]
*/
ImageFile(Width?: number, Height?: number): ImageFile;
- /** Returns/Sets the specified item in the vector by position */
- Item(Index: number): any;
+ /** Returns the specified item in the vector by position */
+ Item(Index: number): TItem;
/**
- * If the Vector of Bytes contains an image file, then Width and Height are ignored. Otherwise a Vector of Bytes must be RGB data and a Vector of Longs mu
- * st be ARGB data. Returns a Picture object on success. See the ImageFile method for more details.
+ * If the Vector of Bytes contains an image file, then Width and Height are ignored. Otherwise a Vector of Bytes must be RGB data and a Vector of Longs
+ * must be ARGB data. Returns a Picture object on success. See the ImageFile method for more details.
* @param number [Width=0]
* @param number [Height=0]
*/
Picture(Width?: number, Height?: number): any;
/** Removes the designated element and returns it if successful */
- Remove(Index: number): any;
+ Remove(Index: number): TItem | null;
/**
- * Stores the string Value into the Vector of Bytes including the NULL terminator. Value may be truncated unless Resizable is True. The string will be sto
- * red as an ANSI string unless Unicode is True, in which case it will be stored as a Unicode string.
+ * Stores the string Value into the Vector of Bytes including the NULL terminator. Value may be truncated unless Resizable is True. The string will be
+ * stored as an ANSI string unless Unicode is True, in which case it will be stored as a Unicode string.
* @param boolean [Resizable=true]
* @param boolean [Unicode=true]
*/
@@ -730,30 +784,24 @@ declare namespace WIA {
* @param boolean [Unicode=true]
*/
String(Unicode?: boolean): string;
+
+ /** Returns the specified item in the vector by position */
+ (Index: number): TItem;
}
}
interface ActiveXObject {
+ new(progid: K): ActiveXObjectNameMap[K];
on(obj: WIA.DeviceManager, event: 'OnEvent', argNames: ['EventID', 'DeviceID', 'ItemID'], handler: (
- this: WIA.DeviceManager, parameter: {
- EventID: string, DeviceID: string, ItemID: string}) => void): void;
- set(obj: WIA.Vector, propertyName: 'Item', parameterTypes: [number], newValue: any): void;
- new(progid: 'WIA.CommonDialog'): WIA.CommonDialog;
- new(progid: 'WIA.DeviceManager'): WIA.DeviceManager;
- new(progid: 'WIA.ImageFile'): WIA.ImageFile;
- new(progid: 'WIA.ImageProcess'): WIA.ImageProcess;
- new(progid: 'WIA.Rational'): WIA.Rational;
- new(progid: 'WIA.Vector'): WIA.Vector;
+ this: WIA.DeviceManager, parameter: { readonly EventID: string, readonly DeviceID: string, readonly ItemID: string }) => void): void;
+ set(obj: WIA.Vector, propertyName: 'Item', parameterTypes: [number], newValue: TItem): void;
}
-interface EnumeratorConstructor {
- new(col: WIA.DeviceCommands): WIA.DeviceCommand;
- new(col: WIA.DeviceEvents): WIA.DeviceEvent;
- new(col: WIA.DeviceInfos): WIA.DeviceInfo;
- new(col: WIA.FilterInfos): WIA.FilterInfo;
- new(col: WIA.Filters): WIA.Filter;
- new(col: WIA.Formats): string;
- new(col: WIA.Items): WIA.Item;
- new(col: WIA.Properties): WIA.Property;
- new(col: WIA.Vector): any;
+interface ActiveXObjectNameMap {
+ 'WIA.CommonDialog': WIA.CommonDialog;
+ 'WIA.DeviceManager': WIA.DeviceManager;
+ 'WIA.ImageFile': WIA.ImageFile;
+ 'WIA.ImageProcess': WIA.ImageProcess;
+ 'WIA.Rational': WIA.Rational;
+ 'WIA.Vector': WIA.Vector;
}
diff --git a/types/activex-wia/tslint.json b/types/activex-wia/tslint.json
index 3224b40b8b..457cebbb55 100644
--- a/types/activex-wia/tslint.json
+++ b/types/activex-wia/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
- "rules": {
+ "rules":{
"no-const-enum": false
}
}
diff --git a/types/adone/adone.d.ts b/types/adone/adone.d.ts
index 0d6e3255ee..91ebc4db7c 100644
--- a/types/adone/adone.d.ts
+++ b/types/adone/adone.d.ts
@@ -7,16 +7,15 @@ declare namespace adone {
export function identity(x: T): T;
export function truly(): true;
export function falsely(): false;
- export const ok: "OK";
- export const bad: "BAD";
- export const exts: [".js", ".tjs", ".ajs"];
+ export const ok: "ok";
+ export const bad: "bad";
export function log(...args: any[]): void;
- export function fatal(...args: any[]): void;
- export function error(...args: any[]): void;
- export function warn(...args: any[]): void;
- export function info(...args: any[]): void;
- export function debug(...args: any[]): void;
- export function trace(...args: any[]): void;
+ export function logFatal(...args: any[]): void;
+ export function logError(...args: any[]): void;
+ export function logWarn(...args: any[]): void;
+ export function logInfo(...args: any[]): void;
+ export function logDebug(...args: any[]): void;
+ export function logTrace(...args: any[]): void;
export function o(...props: any[]): object;
export const Date: typeof global.Date;
export const hrtime: typeof global.process.hrtime;
@@ -76,35 +75,9 @@ declare namespace adone {
set(Class: object, tag: string): void;
has(obj: object, tag: string): boolean;
define(tag: string, predicate?: string): void;
- SUBSYSTEM: symbol;
- APPLICATION: symbol;
- TRANSFORM: symbol;
- CORE_STREAM: symbol;
- LOGGER: symbol;
- LONG: symbol;
- BIGNUMBER: symbol;
- EXBUFFER: symbol;
- EXDATE: symbol;
- CONFIGURATION: symbol;
- GENESIS_NETRON: symbol;
- GENESIS_PEER: symbol;
- NETRON: symbol;
- NETRON_PEER: symbol;
- NETRON_ADAPTER: symbol;
- NETRON_DEFINITION: symbol;
- NETRON_DEFINITIONS: symbol;
- NETRON_REFERENCE: symbol;
- NETRON_INTERFACE: symbol;
- NETRON_STUB: symbol;
- NETRON_REMOTESTUB: symbol;
- NETRON_STREAM: symbol;
- FAST_STREAM: symbol;
- FAST_FS_STREAM: symbol;
- FAST_FS_MAP_STREAM: symbol;
}
}
export const tag: I.Tag;
- export function bind(libName: string): object;
export function getAssetAbsolutePath(relPath: string): string;
export function loadAsset(relPath: string): string | Buffer;
export function require(path: string): object;
@@ -122,11 +95,10 @@ declare namespace adone {
export const runtime: I.Runtime;
- export const homePath: string;
- export const rootPath: string;
- export const etcPath: string;
- export const config: object;
- export const emptyBuffer: Buffer;
+ export const ROOT_PATH: string;
+ export const ETC_PATH: string;
+ export const configuration: object;
+ export const EMPTY_BUFFER: Buffer;
export const assert: assertion.I.AssertFunction;
export const expect: assertion.I.ExpectFunction;
diff --git a/types/adone/glosses/assertion.d.ts b/types/adone/glosses/assertion.d.ts
index ca0d75bdf5..f0cf377a21 100644
--- a/types/adone/glosses/assertion.d.ts
+++ b/types/adone/glosses/assertion.d.ts
@@ -1019,7 +1019,7 @@ declare namespace adone {
}
}
- class AssertionError extends exception.Exception {
+ class AssertionError extends error.Exception {
constructor(message?: string, props?: object, ssf?: object)
}
diff --git a/types/adone/glosses/collections/queue.d.ts b/types/adone/glosses/collections/queue.d.ts
index e67eb8fda9..8a0832a7e6 100644
--- a/types/adone/glosses/collections/queue.d.ts
+++ b/types/adone/glosses/collections/queue.d.ts
@@ -27,5 +27,7 @@ declare namespace adone.collection {
* Removes and returns an element from the beginning
*/
pop(): T | undefined;
+
+ static from(iterable: Iterable, length?: number): Queue;
}
}
diff --git a/types/adone/glosses/data.d.ts b/types/adone/glosses/data.d.ts
index 4d3dae7b2b..3a979cae98 100644
--- a/types/adone/glosses/data.d.ts
+++ b/types/adone/glosses/data.d.ts
@@ -582,7 +582,7 @@ declare namespace adone {
/**
* Represents a YAML exception
*/
- class Exception extends adone.exception.Exception {
+ class Exception extends adone.error.Exception {
reason: string;
mark: Mark;
diff --git a/types/adone/glosses/exceptions.d.ts b/types/adone/glosses/errors.d.ts
similarity index 98%
rename from types/adone/glosses/exceptions.d.ts
rename to types/adone/glosses/errors.d.ts
index 1b1981f80e..c3d9e1f632 100644
--- a/types/adone/glosses/exceptions.d.ts
+++ b/types/adone/glosses/errors.d.ts
@@ -1,5 +1,5 @@
declare namespace adone {
- namespace exception {
+ namespace error {
class Exception extends Error {
constructor(message?: string | Error, captureStackTrace?: boolean);
}
diff --git a/types/adone/glosses/pretty/index.d.ts b/types/adone/glosses/pretty/index.d.ts
new file mode 100644
index 0000000000..ca2bc125f6
--- /dev/null
+++ b/types/adone/glosses/pretty/index.d.ts
@@ -0,0 +1,10 @@
+///
+///
+///
+///
+
+declare namespace adone {
+ namespace pretty {
+ //
+ }
+}
diff --git a/types/adone/glosses/pretty/json.d.ts b/types/adone/glosses/pretty/json.d.ts
new file mode 100644
index 0000000000..0c86d4fa49
--- /dev/null
+++ b/types/adone/glosses/pretty/json.d.ts
@@ -0,0 +1,16 @@
+declare namespace adone.pretty {
+ namespace I {
+ interface JSONOptions {
+ emptyArrayMsg?: string;
+ keysColor?: string;
+ dashColor?: string;
+ numberColor?: string;
+ stringColor?: string;
+ defaultIndentation?: number;
+ noColor?: boolean;
+ noAlign?: boolean;
+ }
+ }
+
+ function json(data: any, options?: I.JSONOptions, indentation?: number): string;
+}
diff --git a/types/adone/glosses/pretty/size.d.ts b/types/adone/glosses/pretty/size.d.ts
new file mode 100644
index 0000000000..2ff1c1c4b5
--- /dev/null
+++ b/types/adone/glosses/pretty/size.d.ts
@@ -0,0 +1,3 @@
+declare namespace adone.pretty {
+ function size(num: number, space?: string): string;
+}
diff --git a/types/adone/glosses/pretty/table.d.ts b/types/adone/glosses/pretty/table.d.ts
new file mode 100644
index 0000000000..b71ce18d2c
--- /dev/null
+++ b/types/adone/glosses/pretty/table.d.ts
@@ -0,0 +1,38 @@
+declare namespace adone.pretty {
+ namespace I {
+ interface TableColumn {
+ id: string;
+ header?: string;
+ align?: "right" | "center" | "left";
+ width?: string | number;
+ maxWidth?: number | string;
+ wordwrap?: "soft" | "hard" | adone.text.I.WordWrapOptions;
+ handle?: (item: object) => string;
+ format?: string | ((val: any, item: object) => string);
+ style?: string | ((val: any, str: string) => string);
+ }
+
+ type TableModel = TableColumn[];
+
+ interface TableStyle {
+ "padding-left"?: number;
+ "padding-right"?: number;
+ head?: string[];
+ broder?: string[];
+ compact?: boolean;
+ }
+
+ interface TableOptions {
+ model: TableModel;
+ noHeader?: boolean;
+ borderless?: boolean;
+ style?: TableStyle;
+ width?: number | string;
+ countAnsiEscapeCodes?: boolean;
+ }
+
+ type TableData = Array<{ [id: string]: any }>;
+ }
+
+ function table(data: I.TableData, options: I.TableOptions): string;
+}
diff --git a/types/adone/glosses/pretty/time.d.ts b/types/adone/glosses/pretty/time.d.ts
new file mode 100644
index 0000000000..3732c16640
--- /dev/null
+++ b/types/adone/glosses/pretty/time.d.ts
@@ -0,0 +1,11 @@
+declare namespace adone.pretty {
+ namespace I {
+ interface TimeOptions {
+ msDecimalDigits?: number;
+ secDecimalDigits?: number;
+ verbose?: boolean;
+ compact?: boolean;
+ }
+ }
+ function time(ms: number, options?: I.TimeOptions): string;
+}
diff --git a/types/adone/glosses/text/index.d.ts b/types/adone/glosses/text/index.d.ts
index a640789765..57b0fb1867 100644
--- a/types/adone/glosses/text/index.d.ts
+++ b/types/adone/glosses/text/index.d.ts
@@ -1,4 +1,3 @@
-///
///
///
///
diff --git a/types/adone/glosses/text/pretties.d.ts b/types/adone/glosses/text/pretties.d.ts
deleted file mode 100644
index 886901b268..0000000000
--- a/types/adone/glosses/text/pretties.d.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-declare namespace adone.text {
- namespace pretty {
- namespace I {
- interface JSONOptions {
- emptyArrayMsg?: string;
- keysColor?: string;
- dashColor?: string;
- numberColor?: string;
- stringColor?: string;
- defaultIndentation?: number;
- noColor?: boolean;
- noAlign?: boolean;
- }
- }
-
- function json(data: any, options?: I.JSONOptions, indentation?: number): string;
-
- namespace I {
- interface TableColumn {
- id: string;
- header?: string;
- align?: "right" | "center" | "left";
- width?: string | number;
- maxWidth?: number | string;
- wordwrap?: "soft" | "hard" | adone.text.I.WordWrapOptions;
- handle?: (item: object) => string;
- format?: string | ((val: any, item: object) => string);
- style?: string | ((val: any, str: string) => string);
- }
-
- type TableModel = TableColumn[];
-
- interface TableStyle {
- "padding-left"?: number;
- "padding-right"?: number;
- head?: string[];
- broder?: string[];
- compact?: boolean;
- }
-
- interface TableOptions {
- model: TableModel;
- noHeader?: boolean;
- borderless?: boolean;
- style?: TableStyle;
- width?: number | string;
- countAnsiEscapeCodes?: boolean;
- }
-
- type TableData = Array<{ [id: string]: any }>;
- }
-
- function table(data: I.TableData, options: I.TableOptions): string;
- }
-}
diff --git a/types/adone/glosses/utils.d.ts b/types/adone/glosses/utils.d.ts
index d84dce79c9..5d2eb5f198 100644
--- a/types/adone/glosses/utils.d.ts
+++ b/types/adone/glosses/utils.d.ts
@@ -86,17 +86,6 @@ declare namespace adone {
function invertObject(source: object, options?: I.KeysOptions): object;
- namespace I {
- interface HumanizeTimeOptions {
- msDecimalDigits?: number;
- secDecimalDigits?: number;
- verbose?: boolean;
- compact?: boolean;
- }
- }
- function humanizeTime(ms: number, options?: I.HumanizeTimeOptions): string;
- function humanizeSize(num: number, space?: string): string;
-
function parseSize(str: string | number): number | null;
namespace I {
@@ -547,7 +536,7 @@ declare namespace adone {
namespace throttle {
namespace I {
interface Options {
- max?: number;
+ concurrency?: number;
interval?: number;
ordered?: boolean;
waitForReturn?: boolean;
diff --git a/types/adone/glosses/vault.d.ts b/types/adone/glosses/vault.d.ts
new file mode 100644
index 0000000000..2fc39c0c3b
--- /dev/null
+++ b/types/adone/glosses/vault.d.ts
@@ -0,0 +1,204 @@
+declare namespace adone {
+ namespace vault {
+ namespace I {
+ interface VaultConstructorOptions {
+ // TODO: leveldb options
+ location: string;
+ ValuableClass?: object;
+ }
+
+ interface VaultClearOptions {
+ hosts?: boolean;
+ tags?: boolean;
+ }
+
+ interface VaultToJSONOptions {
+ valuable?: ValuableToJSONOptions;
+ includeStats?: boolean;
+ }
+
+ interface ValuableToJSONOptions {
+ includeId?: boolean;
+ includeEntryId?: boolean;
+ entriesAsArray?: boolean;
+ tags?: "normal" | "onlyName" | "onlyId" | "none";
+ }
+
+ interface VaultJSONStats {
+ location: string;
+ created: number;
+ updated: number;
+ }
+ }
+
+ class Vault {
+ constructor(options: I.VaultConstructorOptions);
+
+ open(): Promise;
+
+ close(): Promise;
+
+ location(): string;
+
+ create(name: string, tags?: string[]): Promise;
+
+ get(name: string): Promise;
+
+ release(name: string): void;
+
+ delete(name: string): Promise;
+
+ clear(options?: I.VaultClearOptions): Promise;
+
+ has(name: string): boolean;
+
+ keys(): string[];
+
+ values(): Promise;
+
+ entries(): Promise<{ [key: string]: any }>;
+
+ toJSON(options: I.VaultToJSONOptions & { valuable: object, includeStats: true }): Promise<{
+ valuables: object[],
+ stats: I.VaultJSONStats
+ }>;
+ toJSON(options: I.VaultToJSONOptions & { valuable: object }): Promise<{
+ valuables: object[]
+ }>;
+ toJSON(options: I.VaultToJSONOptions & { includeStats: true }): Promise<{
+ stats: I.VaultJSONStats
+ }>;
+ toJSON(): {};
+
+ addTag(tag: string, vid?: number): Promise;
+
+ deleteTag(tag: string): Promise;
+
+ tags(ids?: number[], opts?: { privateProps?: boolean }): object[];
+
+ tagNames(ids?: number[]): string[];
+
+ getNotes(): string;
+
+ setNotes(notes: string): Promise;
+ }
+
+ namespace I {
+ interface ValueableEntriesOptions {
+ entriesAsArray?: boolean;
+ includeEntryId?: boolean;
+ }
+
+ interface ValuableEntry {
+ name: string;
+ value: any;
+ type: string;
+ }
+
+ interface ValuableClearOptions {
+ includeNotes?: boolean;
+ includeTags?: boolean;
+ }
+
+ interface ValuableJSON {
+ name: string;
+ notes: string;
+ entries: I.ValuableEntry[];
+ }
+ }
+
+ class Valuable {
+ constructor(vaule: Vault, id: number, metaData: object, tags: object[]);
+
+ name(): string;
+
+ internalId(): number;
+
+ getNotes(): string;
+
+ setNotes(notes: string): Promise;
+
+ set(name: string, value: any, type?: string): Promise;
+
+ setMulti(entries: object): Promise;
+
+ get(name: string): Promise;
+
+ type(name: string): any;
+
+ has(name: string): boolean;
+
+ keys(): string[];
+
+ entries(opts: I.ValueableEntriesOptions & { entriesAsArray: true }): Promise;
+ entries(opts: I.ValueableEntriesOptions & { entriesAsArray: true, includeEntryId: true }): Promise>;
+ entries(opts?: I.ValueableEntriesOptions): Promise