diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 54d80df8e5..81913375f9 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -276,7 +276,7 @@
/types/await-timeout/ @szhu
/types/awesomplete/ @webbiesdk @bmdixon @tbekolay @chrislopresto
/types/aws-iot-device-sdk/ @niik @mlamp
-/types/aws-lambda/ @skarum @tobyhede @buggy @y13i @wwwy3y3 @OrthoDex @MichaelMarner @daniel-cottone @kostya-misura @coderbyheart @palmithor @daniloraisi @simonbuchan @Haydabase @repl-chris @aneilbaboo @jeznag @louislarry @dpapukchiev @ohookins @trevor-leach @jagregory @dalen @loikg @skyzenr @richardcornelissen
+/types/aws-lambda/ @skarum @tobyhede @buggy @y13i @wwwy3y3 @OrthoDex @MichaelMarner @daniel-cottone @kostya-misura @coderbyheart @palmithor @daniloraisi @simonbuchan @Haydabase @repl-chris @aneilbaboo @jeznag @louislarry @dpapukchiev @ohookins @trevor-leach @jagregory @dalen @loikg @skyzenr @richardcornelissen @redlickigrzegorz
/types/aws-param-store/ @jasonthomasgray
/types/aws-serverless-express/ @threesquared @jcaffey @mattmeye @albertovasquez
/types/aws4/ @ajcrites
@@ -375,7 +375,7 @@
/types/bindings/ @unindented
/types/bintrees/ @CjS77
/types/bip21/ @stefanhuber
-/types/bip32/ @me
+/types/bip32/ @eduhenke
/types/bip38/ @micksatana
/types/bip39/ @micksatana
/types/bit-array/ @mudkipme
@@ -440,11 +440,10 @@
/types/bootstrap3-dialog/ @nakupanda @cnboland
/types/bounce.js/ @cherrry
/types/box2d/ @jbaldwin
-/types/boxen/ @BendingBender
/types/bpmn-moddle/ @haydos89
/types/brace-expansion/ @BendingBender
/types/braces/ @vemoo
-/types/braft-editor/ @me
+/types/braft-editor/ @petitspois
/types/braintree-web/ @chlela
/types/breeze/ @borisyankov
/types/bricks.js/ @kondi
@@ -459,7 +458,7 @@
/types/browser-resolve/ @marionebl
/types/browser-sync/ @joeskeen @aznnomness
/types/browserify/ @AndrewGaspar @jvilk @leonard-thieu @LinusU
-/types/browserslist/ @davecardwell
+/types/browserslist/ @davecardwell @AndrewLeedham
/types/browserslist-useragent/ @nju33
/types/bs58/ @chrootsu @BendingBender
/types/bs58/v3/ @chrootsu
@@ -526,8 +525,9 @@
/types/carbon__themes/ @vpicone
/types/carbon__type/ @vpicone
/types/card-validator/ @ChanceM
+/types/carlo/ @adierkens
/types/case-sensitive-paths-webpack-plugin/ @r3nya
-/types/caseless/ @downace @mastermatt
+/types/caseless/ @downace @mastermatt @forivall
/types/cash/ @akvlko
/types/casperjs/ @jedmao @urielch
/types/cassandra-driver/ @Svjard @pc-jedi @michal-b-kaminski
@@ -539,6 +539,7 @@
/types/cavy/ @tyler-hoffman
/types/cbor/ @pushplay
/types/ccap/ @taoqf
+/types/centra/ @twooster
/types/cesium/ @Zuzon @hnipps @szechyjs @golyalpha
/types/cfn-response/ @ivoisbelongtous
/types/chai/ @jedmao @Bartvds @AGBrown @olivr70 @mwistrand @joshuakgoldberg @shaunluttin @Naktibalda @micksatana @ErikSchierboom
@@ -551,10 +552,10 @@
/types/chai-enzyme/ @asvetliakov
/types/chai-fs/ @dimitardanailov
/types/chai-fuzzy/ @Bartvds
-/types/chai-http/ @Nemo157 @G1itcher @CaselIT @bas-l
/types/chai-jest-snapshot/ @mattvperry
/types/chai-jquery/ @kazimanzurrashid
/types/chai-json-schema/ @ulrichheiniger
+/types/chai-moment/ @chrisgodsey
/types/chai-oequal/ @mizunashi-mana
/types/chai-roughly/ @swist
/types/chai-spies/ @kuzn-ilya @harm-less @jounisuo
@@ -607,7 +608,6 @@
/types/clean-css/v3/ @tkrotoff
/types/clean-regexp/ @BendingBender
/types/clean-stack/ @BendingBender
-/types/clean-webpack-plugin/ @j-f1
/types/clear-require/ @dan-j
/types/clearbladejs-client/ @ClearBlade
/types/clearbladejs-node/ @ClearBlade
@@ -634,6 +634,7 @@
/types/clmtrackr/ @hellochar
/types/clndr/ @jasperjn
/types/clockpicker/ @jfcere
+/types/clone-deep/ @tanfonto
/types/cloneable-readable/ @qlonik
/types/cloner/ @matrumz
/types/closure-compiler/ @mprobst
@@ -704,7 +705,7 @@
/types/condense-whitespace/ @djcsdy
/types/confidence/ @jppellerin
/types/config/ @RWander @forrestbice @jndonald3 @albertovasquez
-/types/config-yaml/ @me
+/types/config-yaml/ @Arylo
/types/configstore/ @ArcticLight
/types/configurable/ @jewbre
/types/confit/ @ethanresnick
@@ -749,7 +750,6 @@
/types/cookies/ @WangZishi @jkeylu @BendingBender
/types/copy/ @ffflorian
/types/copy-paste/ @SrTobi
-/types/copy-text-to-clipboard/ @BendingBender
/types/copy-webpack-plugin/ @flying-sheep
/types/copyfiles/ @ffflorian
/types/cordova-ionic/ @hendrikmaus
@@ -792,9 +792,7 @@
/types/country-select-js/ @humrochagf
/types/countup.js/ @shermendev
/types/coverup/ @bevalorous
-/types/cp-file/ @BendingBender
/types/cpx/ @alan-agius4
-/types/cpy/ @mhegazy @BendingBender
/types/cqrs-domain/ @blissi
/types/cradle/ @panuhorsmalahti
/types/crc/ @YuJianrong
@@ -831,6 +829,7 @@
/types/css/ @ilich
/types/css-font-loading-module/ @slikts
/types/css-modules/ @NeekSandhu
+/types/css-modules-loader-core/ @skovy
/types/css-to-style/ @bengry
/types/css-tree/ @erik-kallen
/types/cssbeautify/ @rictic
@@ -946,7 +945,6 @@
/types/debounce-fn/ @BendingBender
/types/debounce-promise/ @whtsky
/types/debug/ @swook @galtalmor @zamb3zi @brasten @npenin
-/types/decamelize/ @samverschueren
/types/decay/ @enaeseth
/types/decode-entities/ @waspothegreat
/types/decode-uri-component/ @BendingBender
@@ -1014,6 +1012,7 @@
/types/diffie-hellman/ @BendingBender
/types/digibyte/ @lautarodragan @werewolfe
/types/dinero.js/ @BendingBender
+/types/dingtalk-robot-sender/ @bangbang93
/types/dir-glob/ @BendingBender
/types/dir-resolve/ @andy-ms
/types/dirname-regex/ @BendingBender
@@ -1043,9 +1042,12 @@
/types/dom-mediacapture-record/ @eliasmeire
/types/dom-to-image/ @JipSterk
/types/dom4/ @adidahiya @giladgray
+/types/domelementtype/ @johandavidson
+/types/domhandler/ @johandavidson
/types/domo/ @Steve-Fenton
/types/dompurify/ @bazuzi @FlowCrypt
/types/domready/ @dotnetnerd
+/types/domutils/ @johandavidson
/types/donna/ @vvakame
/types/dookie/ @swanest
/types/dot/ @ZombieHunter
@@ -1106,8 +1108,9 @@
/types/easy-table/ @nikeee
/types/easy-xapi/ @DeadAlready
/types/easy-xapi-utils/ @DeadAlready
+/types/easydate/ @satyarohith
/types/ebongarde-root/ @Ebongarde
-/types/echarts/ @xieisabug @AntiMoron @liveangela @Ovilia @iRON5 @bilalucar
+/types/echarts/ @xieisabug @AntiMoron @liveangela @Ovilia @iRON5 @bilalucar @tmtron @dwhitney
/types/ecma-proposal-math-extensions/ @ksm2
/types/ecurve/ @mhegazy
/types/ed25519/ @erikma
@@ -1280,9 +1283,9 @@
/types/expired/ @BendingBender
/types/expired-storage/ @intolerance
/types/expirymanager/ @DanielRose
-/types/expo/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo @levansuper @ihmpavel @burtek @jkillian @satya164 @vinitsood
-/types/expo/v31/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo @levansuper @ihmpavel @burtek @jkillian @satya164
-/types/expo/v30/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo
+/types/expo/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo @levansuper @ihmpavel @burtek @jkillian @satya164 @vinitsood @mattiassamskar @jaulz
+/types/expo/v31/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo @levansuper @ihmpavel @burtek @jkillian @satya164 @mattiassamskar
+/types/expo/v30/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo @mattiassamskar
/types/expo/v27/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo
/types/expo/v26/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @tinaroh
/types/expo/v25/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov
@@ -1367,6 +1370,7 @@
/types/factory-girl/ @stackbuilders @sestrella @elcuy
/types/faker/ @bensw @basp @Kuniwak @mattbishop
/types/faker/v3/ @Kuniwak
+/types/falafel/ @delprzemo
/types/falcor/ @Quramy
/types/falcor-express/ @Quramy
/types/falcor-http-datasource/ @Quramy
@@ -1425,7 +1429,6 @@
/types/figures/ @BendingBender
/types/file-exists/ @BendingBender
/types/file-saver/ @cyrilschumacher @DaIgeb @chrismbarr
-/types/file-type/ @tcaesvk @BendingBender
/types/file-url/ @coderslagoon
/types/filenamify/ @rokt33r
/types/filenamify-url/ @cprecioso
@@ -1720,6 +1723,7 @@
/types/get-node-dimensions/ @vincekovacs
/types/get-port/ @plantain-00 @BendingBender
/types/get-range/ @BendingBender
+/types/get-res/ @satyarohith
/types/get-stdin/ @DanielRosenwasser
/types/get-stream/ @douglasduteil @BendingBender
/types/get-urls/ @BendingBender
@@ -1837,7 +1841,8 @@
/types/grasp/ @agnoster
/types/gravatar/ @denis-sokolov
/types/gravatar-url/ @ivangabriele
-/types/greasemonkey/ @kotas
+/types/greasemonkey/ @kotas @nikolay-borzov
+/types/greasemonkey/v3/ @kotas
/types/grecaptcha/ @DethAriel @rafaeltavares
/types/grecaptcha/v0/ @brentj73
/types/gregorian-calendar/ @cwalv
@@ -1989,7 +1994,7 @@
/types/hexo-fs/ @segayuu
/types/hexo-log/ @segayuu
/types/hexo-util/ @segayuu
-/types/highcharts/ @damianog @baltie @AlbertOzimek @hanssens
+/types/highcharts/ @damianog @baltie @AlbertOzimek @hanssens @jgresham
/types/highcharts-ng/ @scatcher
/types/highland/ @Bartvds @hgwood @iwllyu @alvis @notbobthebuilder
/types/highlight.js/ @nikeee @sourrust @joshuakgoldberg
@@ -2048,7 +2053,6 @@
/types/humane/ @jmvrbanac
/types/humanize-ms/ @adamzerella
/types/humanize-plus/ @DenisCarriere
-/types/humanize-string/ @ragnarok56
/types/humanize-url/ @BendingBender
/types/humanparser/ @MichalPodeszwa
/types/humps/ @nikeee
@@ -2086,7 +2090,6 @@
/types/ignore-styles/ @tai2
/types/iltorb/ @Alorel @reconbot
/types/image-size/ @elisee
-/types/image-type/ @ffflorian
/types/imagemagick/ @soywiz
/types/imagemagick-native/ @horiuchi
/types/imagemapster/ @delphinus35
@@ -2120,6 +2123,7 @@
/types/ink/ @cprecioso
/types/ink-spinner/ @lukostry
/types/ink-table/ @lukostry
+/types/ink-testing-library/ @MancunianSam
/types/ink-text-input/ @lukostry
/types/inline-css/ @philipisapain
/types/inline-style-prefixer/ @ahz @dpetrezselyova @franklixuefei
@@ -2214,7 +2218,6 @@
/types/is-running/ @danwbyrne
/types/is-scoped/ @postcrafter
/types/is-stream/ @me
-/types/is-svg/ @BendingBender
/types/is-text-path/ @mhegazy
/types/is-touch-device/ @screendriver
/types/is-trademarked/ @BendingBender
@@ -2238,7 +2241,7 @@
/types/issue-parser/ @Leko
/types/issue-regex/ @BendingBender
/types/istanbul/ @tkrotoff
-/types/istanbul-lib-coverage/ @jason0x43
+/types/istanbul-lib-coverage/ @jason0x43 @loryman
/types/istanbul-lib-hook/ @jason0x43
/types/istanbul-lib-instrument/ @jason0x43
/types/istanbul-lib-report/ @jason0x43
@@ -2521,8 +2524,8 @@
/types/jsrender/ @zakki
/types/jsreport-core/ @taoqf
/types/jsreport-html-embedded-in-docx/ @taoqf
-/types/jsreport-html-to-xlsx/ @me
-/types/jsreport-html-to-xlsx/v1/ @me
+/types/jsreport-html-to-xlsx/ @taoqf
+/types/jsreport-html-to-xlsx/v1/ @taoqf
/types/jsreport-jsrender/ @taoqf
/types/jsreport-phantom-pdf/ @taoqf
/types/jsreport-xlsx/ @taoqf
@@ -2766,7 +2769,7 @@
/types/lingui__macro/ @huan086
/types/lingui__react/ @huan086
/types/linkify-issues/ @BendingBender
-/types/linkify-it/ @praxxis
+/types/linkify-it/ @praxxis @alexplumb
/types/linkify-urls/ @BendingBender
/types/linkifyjs/ @szhu @ovidiubute
/types/list-git-remotes/ @BendingBender
@@ -3295,6 +3298,7 @@
/types/mixto/ @vvakame
/types/mjml/ @aahoughton @marpstar
/types/mjml-react/ @henrinormak
+/types/mkcert/ @asachin96
/types/mkdirp/ @Bartvds @mrmlnc
/types/mkdirp-promise/ @pluma
/types/mkpath/ @optical
@@ -3333,13 +3337,13 @@
/types/moment-strftime2/ @dex4er
/types/moment-timezone/ @michelsalib @alanblins @asermax @borys-kupar
/types/money-math/ @taoqf
-/types/mongo-sanitize/ @CedricCazin
+/types/mongo-sanitize/ @CedricCazin @penumbra1
/types/mongodb/ @CaselIT @alanmarcell @bitjson @dante-101 @mcortesi @EnricoPicci @AJCStriker @julien-c @daprahamian @denys-bushulyak @BastienAr @sindbach @geraldinelemeur @jishi @various89 @angela-1 @lirbank @hector7 @floric @erikc5000 @Manc
/types/mongodb/v2/ @CaselIT @alanmarcell @bitjson @dante-101 @mcortesi
/types/mongodb-memory-server/ @dmitryrogozhny
/types/mongodb-uri/ @mernxl
-/types/mongoose/ @horiuchi @lukasz-zak @Alorel @jendrikw @ethanresnick @vologab @jussikinnula @ondratra @alfirin @idandrd @various89 @Fazendaaa @NormanPerrin @danmana @stablio @emmanuelgautier @frontendmonster @mingchen @penumbra1
-/types/mongoose/v4/ @simonxca @horiuchi @lukasz-zak
+/types/mongoose/ @horiuchi @lukasz-zak @Alorel @jendrikw @ethanresnick @vologab @jussikinnula @ondratra @alfirin @idandrd @various89 @Fazendaaa @NormanPerrin @danmana @stablio @emmanuelgautier @frontendmonster @mingchen @penumbra1 @orblazer
+/types/mongoose/v4/ @simonxca @horiuchi @lukasz-zak @murbanowicz
/types/mongoose-auto-increment/ @AyaMorisawa
/types/mongoose-deep-populate/ @AyaMorisawa
/types/mongoose-geojson-schema/ @bondz
@@ -3377,7 +3381,7 @@
/types/msportalfx-test/ @julioct
/types/mssql/ @jaminfarr @buzinas @mrrichar @elhaard @pkeuter @mcdado
/types/mu2/ @jedigo
-/types/mui-datatables/ @favna
+/types/mui-datatables/ @favna @ankithkonda
/types/muicss/ @samuelneff
/types/multer/ @jt000 @DavidBR-SW @mxl @hyunseob
/types/multer-gridfs-storage/ @devconcept
@@ -3529,7 +3533,7 @@
/types/node-localstorage/ @intolerance
/types/node-memwatch/ @Kroisse
/types/node-mysql-wrapper/ @kataras
-/types/node-notifier/ @tkQubo
+/types/node-notifier/ @tkQubo @loryman
/types/node-polyglot/ @timjk @liamross
/types/node-powershell/ @rodrigoff
/types/node-pushnotifications/ @menushka
@@ -3591,12 +3595,10 @@
/types/npm-keyword/ @BendingBender
/types/npm-license-crawler/ @ffflorian
/types/npm-list-author-packages/ @ffflorian
-/types/npm-name/ @BendingBender
/types/npm-package-arg/ @mgroenhoff @OiYouYeahYou
/types/npm-packlist/ @ajafff
/types/npm-paths/ @BendingBender
/types/npm-registry-package-info/ @ffflorian
-/types/npm-run-path/ @BendingBender
/types/npm-user/ @BendingBender
/types/npm-user-packages/ @BendingBender
/types/npmlog/ @DanielMSchmidt @littlepiggy03
@@ -3680,7 +3682,7 @@
/types/openlayers/ @osechet @wb14123 @ailrun @mylen @iamthechad @danmana @yairtawil @pierremarc @hauke96 @gberaudo
/types/openlayers/v3/ @osechet @matthiasdailey-ccri
/types/openlayers/v2/ @bolhovsky
-/types/openpgp/ @errietta @damonpam @po5i @ecamellini
+/types/openpgp/ @errietta @damonpam @po5i @ecamellini @SardineFish
/types/openstack-wrapper/ @sanjaymadane
/types/opentok/ @westy92 @CatGuardian
/types/opentype.js/ @danmarshall @edzis
@@ -3735,7 +3737,6 @@
/types/p-retry/ @BendingBender
/types/p-series/ @BendingBender
/types/p-settle/ @natesilva
-/types/p-some/ @BendingBender
/types/p-tap/ @BendingBender
/types/p-time/ @BendingBender
/types/p-timeout/ @BendingBender
@@ -3833,7 +3834,6 @@
/types/path-exists/v1/ @shiwano
/types/path-is-absolute/ @mhegazy
/types/path-is-inside/ @aomarks
-/types/path-key/ @BendingBender
/types/path-regex/ @BendingBender
/types/path-type/ @BendingBender
/types/pathfinding/ @BNedry
@@ -3859,7 +3859,7 @@
/types/pendo-io-browser/ @aaronbeall
/types/permit/ @jannikkeye
/types/persona/ @Nycto
-/types/pet-finder-api/ @me
+/types/pet-finder-api/ @ncipollina
/types/petit-dom/ @JamesMessinger
/types/pg/ @pspeter3
/types/pg/v6/ @pspeter3
@@ -3875,6 +3875,7 @@
/types/phantom/ @horiuchi @llRandom
/types/phantomcss/ @abauzac
/types/phantomjs/ @jedhunsaker @keesey
+/types/phin/ @twooster
/types/phoenix/ @mciastek @John-Goff @princemaple
/types/phone/ @DxCx
/types/phone-formatter/ @westy92
@@ -3978,6 +3979,7 @@
/types/power-assert/ @vvakame
/types/power-assert-formatter/ @vvakame
/types/powerbi-visuals-tools/ @zBritva @Microsoft
+/types/preact-i18n/ @ltetzlaff
/types/precise/ @codeanimal
/types/precond/ @olsio
/types/preloadjs/ @endel
@@ -4047,6 +4049,8 @@
/types/prosemirror-test-builder/ @ifiokjr
/types/prosemirror-transform/ @bradleyayers @davidka @timjb @patsimm
/types/prosemirror-view/ @bradleyayers @davidka @timjb @patsimm
+/types/protoc-plugin/ @jonnyreeves
+/types/protocol-buffers-schema/ @claasahl
/types/proton-native/ @khanhas @ltetzlaff
/types/protractor-browser-logs/ @rokadias
/types/protractor-helpers/ @johncant
@@ -4056,7 +4060,6 @@
/types/proxy-lists/ @BehindTheMath
/types/proxy-verifier/ @BehindTheMath
/types/proxyquire/ @jt000
-/types/ps-list/ @BendingBender
/types/ps-tree/ @alessiopcc
/types/pseudo-audio-param/ @kirbysayshi
/types/psl/ @BendingBender
@@ -4071,7 +4074,7 @@
/types/pumpify/ @JustinBeckwith @aoberoi
/types/punycode/ @yavanosta
/types/pupa/ @nju33
-/types/puppeteer/ @marvinhagemeister @cdeutsch @ksm2 @SimonSchick
+/types/puppeteer/ @marvinhagemeister @cdeutsch @ksm2 @SimonSchick @SerbanGhita
/types/puppeteer/v0/ @marvinhagemeister @cdeutsch
/types/puppeteer-core/ @mtsmfm
/types/pure-render-decorator/ @seansfkelley
@@ -4095,8 +4098,6 @@
/types/qs-middleware/ @davecardwell
/types/qtip2/ @Seltzer @leonard-thieu
/types/querystringify/ @ilich
-/types/quick-lru/ @BendingBender
-/types/quick-lru/v1/ @BendingBender
/types/quill/ @sumitkm @guillaume-ro-fr @43081j @AnielloFalcone @mhamri
/types/quixote/ @greybax
/types/qunit/ @waratuman @mike-north
@@ -4160,7 +4161,7 @@
/types/rdflib/ @cenotelie
/types/re-base/ @jordandrako
/types/reach__router/ @kingdaro
-/types/react/ @johnnyreilly @bbenezech @pzavolinsky @digiguru @ericanderson @tkrotoff @DovydasNavickas @onigoetz @theruther4d @guilhermehubner @ferdaber @jrakotoharisoa @pascaloliv @hotell @franklixuefei @Jessidhia @pshrmn @threepointone @saranshkataria
+/types/react/ @johnnyreilly @bbenezech @pzavolinsky @digiguru @ericanderson @tkrotoff @DovydasNavickas @onigoetz @theruther4d @guilhermehubner @ferdaber @jrakotoharisoa @pascaloliv @hotell @franklixuefei @Jessidhia @pshrmn @saranshkataria
/types/react/v15/ @bbenezech @pzavolinsky @digiguru @ericanderson @tkrotoff @DovydasNavickas @onigoetz
/types/react-adal/ @dkorolev1
/types/react-albus/ @sseppola @conradreuter @kuirak
@@ -4175,10 +4176,10 @@
/types/react-autocomplete/ @lstanden
/types/react-autosuggest/ @nicolas-schmitt @pjo256 @robessog @tbayne @cdeutsch @rosskevin
/types/react-avatar-editor/ @diogocorrea @gabsprates @lsenta @davidspiess
-/types/react-beautiful-dnd/ @varHarrie @bradleyayers @paustint @marknelissen @enricoboccadifuoco @lonyele
+/types/react-beautiful-dnd/ @varHarrie @bradleyayers @paustint @marknelissen @enricoboccadifuoco @lonyele @lukyth
/types/react-better-password/ @mhuynh1
-/types/react-big-calendar/ @piotrwitek @paustint @pikpok @eps1lon @strongpauly @janb87 @ldthorne
-/types/react-blessed/ @me
+/types/react-big-calendar/ @piotrwitek @paustint @pikpok @eps1lon @strongpauly @janb87 @ldthorne @siavelis
+/types/react-blessed/ @guoshencheng
/types/react-body-classname/ @mhegazy
/types/react-bootstrap/ @walkerburgin @vsiao @danilojrr @Batbold-Gansukh @octatone @chengsieuly @mretolaza @katbusch @vitosamson @LKay @aaronbeall @jrakotoharisoa @r3nya @t49tran @bes
/types/react-bootstrap-date-picker/ @LKay @ssi-hu-antal-bodnar
@@ -4201,7 +4202,7 @@
/types/react-coinhive/ @sktbcbbs
/types/react-collapse/ @Kimahriman
/types/react-collapsible/ @knegusen
-/types/react-color/ @LKay @markspolakovs @mntdn @nkgrnkgr
+/types/react-color/ @LKay @markspolakovs @mntdn @nkgrnkgr @0815Strohhut
/types/react-confirm/ @santiagodoldan @marknelissen
/types/react-content-loader/ @alaatm @samwalshnz
/types/react-copy-to-clipboard/ @mabels @BernabeFelix
@@ -4221,7 +4222,7 @@
/types/react-data-grid/v1/ @SupernaviX
/types/react-datagrid/ @stephenjelfs
/types/react-date-range/ @Junbong
-/types/react-datepicker/ @radziksh @andrewBalekha @smrq @Rogach @royxue @KoalaHuman @seansfkelley @justingrant @jakeboone02
+/types/react-datepicker/ @radziksh @andrewBalekha @smrq @Rogach @royxue @KoalaHuman @seansfkelley @justingrant @jakeboone02 @Ky6uk @aviklai
/types/react-daterange-picker/ @uncovertruth @MartynasZilinskas @donaldtf @vladflorescu94
/types/react-dates/ @ArturAmpilogov @NathanNZ
/types/react-daum-postcode/ @Sa-ryong
@@ -4265,7 +4266,8 @@
/types/react-google-login-component/ @koss-lebedev
/types/react-google-maps-loader/ @vasilysn
/types/react-google-places-suggest/ @vasilysn
-/types/react-google-recaptcha/ @KoalaHuman @tomsturge
+/types/react-google-recaptcha/ @KoalaHuman @tomsturge @MaxwellBo
+/types/react-google-recaptcha/v0/ @KoalaHuman @tomsturge
/types/react-gravatar/ @invliD
/types/react-grid-layout/ @abirkholz @alitaheri @ZheyangSong @andrewhathaway @manav-m
/types/react-hamburger-menu/ @grzesie2k
@@ -4313,7 +4315,7 @@
/types/react-json/ @spielc
/types/react-json-pretty/ @LKay
/types/react-json-tree/ @gnestor @zainafzal08
-/types/react-jsonschema-form/ @iamdanfox @iplus26 @phbou72 @LucianBuzzo @sthenault @sbusch
+/types/react-jsonschema-form/ @iamdanfox @iplus26 @phbou72 @LucianBuzzo @sthenault @sbusch @medfreeman
/types/react-jss/ @eps1lon @jlaw90
/types/react-kawaii/ @ZhangYiJiang
/types/react-lazyload/ @m0a
@@ -4334,6 +4336,7 @@
/types/react-mce/ @morphologue
/types/react-mdl/ @bradzacher
/types/react-measure/ @asvetliakov @marcfallows
+/types/react-medium-image-zoom/ @james-ff
/types/react-mentions/ @activescott @efedorenko
/types/react-mixin/ @tkqubo
/types/react-modal/ @radziksh @drewnoakes @homburg @ttamminen @hallowatcher @peterblazejewicz @jpowell
@@ -4341,7 +4344,7 @@
/types/react-motion-loop/ @j-em
/types/react-motion-slider/ @asvetliakov
/types/react-motion-ui-pack/ @jsonunger
-/types/react-native/ @alloy @huhuanming @iRoachie @skn0tt @timwangdev @kamal @nelyousfi @alexdunne @swissmanu @bm-software @tkrotoff @a-tarasyuk @mvdam @esemesek @mrnickel @souvik-ghosh @nossbigg
+/types/react-native/ @alloy @huhuanming @iRoachie @skn0tt @timwangdev @kamal @nelyousfi @alexdunne @swissmanu @bm-software @tkrotoff @a-tarasyuk @mvdam @esemesek @mrnickel @souvik-ghosh @nossbigg @saranshkataria
/types/react-native-android-taskdescription/ @christianchown
/types/react-native-auth0/ @ascariandrea @marknelissen
/types/react-native-autocomplete-input/ @ifiokjr
@@ -4432,7 +4435,7 @@
/types/react-notification-system-redux/ @LKay
/types/react-notify-toast/ @klaascuvelier
/types/react-numeric-input/ @heatherbooker @akx
-/types/react-onclickoutside/ @LKay @surgeboris
+/types/react-onclickoutside/ @LKay @surgeboris @NilSet
/types/react-onclickoutside/v5/ @LKay
/types/react-onsenui/ @salim7 @jemmyw @lirbank
/types/react-outside-click-handler/ @zubivan
@@ -4572,7 +4575,6 @@
/types/reactstrap/ @alihammad @mfal @danilobjr @FaithForHumans @timc13 @patrickrgaffney @prabodht @georg94
/types/reactstrap/v4/ @alihammad @mfal @danilobjr @fabiopaiva
/types/read/ @timjk
-/types/read-chunk/ @crispybee
/types/read-package-tree/ @mgroenhoff
/types/read-pkg/ @jdxcode
/types/read-pkg-up/ @dudeofawesome @jdxcode
@@ -4597,7 +4599,7 @@
/types/recursive-readdir/ @elisee @MicahZoltu
/types/recursive-readdir/v1/ @elisee
/types/redent/ @BendingBender
-/types/redis/ @soywiz @CodeAnimal @MugeSo @UppaJung @Rokt33r @43081j @barnski @1pete @blablapolicja @ferrantejake
+/types/redis/ @soywiz @CodeAnimal @MugeSo @UppaJung @Rokt33r @43081j @barnski @1pete @blablapolicja @ferrantejake @OpesanyaAdebayo
/types/redis-errors/ @43081j
/types/redis-mock/ @BendingBender
/types/redis-rate-limiter/ @westy92 @nodify-at
@@ -4700,6 +4702,7 @@
/types/requirejs-domready/ @lefb766
/types/requires-port/ @BendingBender
/types/resemblejs/ @pimterry
+/types/reserved-words/ @skovy
/types/reservoir/ @danvk
/types/resize-img/ @higuri
/types/resize-observer-browser/ @chivesrs
@@ -4755,6 +4758,7 @@
/types/rn-fetch-blob/ @pengcao1
/types/roads/ @dancespiele
/types/roads-server/ @dancespiele
+/types/roarr/ @psaxton
/types/rocksdb/ @MeirionHughes @danwbyrne
/types/roll/ @icopp
/types/rolling-rate-limiter/ @l-jonas
@@ -4774,6 +4778,7 @@
/types/round-to/ @seangenabe
/types/route-parser/ @ianks @bobbuehler
/types/routie/ @Adilson
+/types/rox-react-native/ @ahanriat
/types/royalslider/ @csrakowski @sKopheK
/types/rpio/ @DominikPalo @Pencl
/types/rrc/ @DeividasBakanas
@@ -5004,12 +5009,11 @@
/types/sindresorhus__df/ @whatknight
/types/sindresorhus__djb2a/ @BendingBender
/types/sindresorhus__fnv1a/ @BendingBender
-/types/sindresorhus__slugify/ @cprecioso
/types/sindresorhus__string-hash/ @BendingBender
/types/sindresorhus__to-milliseconds/ @BendingBender
/types/single-line-log/ @ffflorian
/types/single-spa-react/ @Garrett-Smith-iq @chrisdopuch
-/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j @joshuakgoldberg @gjednaszewski @johnjesse @alecf @SimonSchick
+/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j @joshuakgoldberg @gjednaszewski @johnjesse @alecf @SimonSchick @bergundy
/types/sinon-as-promised/ @igrayson
/types/sinon-chai/ @kazimanzurrashid @jedmao @elpdpt
/types/sinon-chai/v2/ @kazimanzurrashid @jedmao
@@ -5181,7 +5185,7 @@
/types/storybook__channels/ @bmatcuk
/types/storybook__react/ @joscha @wapgear @dandean
/types/storybook__react-native/ @joscha @wapgear @alechill @iRoachie @ceyhuno
-/types/storybook__vue/ @pntgupta
+/types/storybook__vue/ @pntgupta @jurgisrudaks
/types/strange/ @wanganjun
/types/stream-array/ @Tyler-Murphy
/types/stream-buffers/ @Jason3S
@@ -5220,7 +5224,7 @@
/types/strip-color/ @BendingBender
/types/strip-indent/ @BendingBender
/types/strip-json-comments/ @dmoonfire
-/types/stripe/ @wjohnsto @codeanimal @sampsonjoliver @LinusU @brannon @kkamperschroer @starhoshi @bruun @galtalmor @htunnicliff @squirly @tzarger @ifiokjr @SimonSchick @yultyyev @cpsoinos @saranshkataria @0xJoKe
+/types/stripe/ @wjohnsto @codeanimal @sampsonjoliver @LinusU @brannon @kkamperschroer @starhoshi @bruun @galtalmor @htunnicliff @squirly @tzarger @ifiokjr @SimonSchick @yultyyev @cpsoinos @adamduren @saranshkataria @0xJoKe @delianides
/types/stripe-checkout/ @cgwrench
/types/stripe-v2/ @ejsmith @amritk @adamcmiel @jleider @galuszkak
/types/stripe-v3/ @ejsmith @amritk @adamcmiel @jleider @galuszkak @slangeder
@@ -5317,6 +5321,7 @@
/types/tabulator/ @euginio
/types/tabulator-tables/ @jojoshua
/types/tail/ @spacejack
+/types/tampermonkey/ @silverwzw @nikolay-borzov
/types/tapable/ @e-cloud @johnnyreilly
/types/tapable/v0/ @e-cloud
/types/tape/ @Bartvds @sodatea @DennisSchwartz @mikehenrty @rostrowski
@@ -5379,7 +5384,6 @@
/types/tildify/ @BendingBender
/types/tile-reduce/ @DenisCarriere
/types/tilebelt/ @DenisCarriere
-/types/time-span/ @BendingBender @mdvorscak
/types/timelinejs/ @rolandzwaga
/types/timelinejs3/ @MikeMatusz
/types/timer-machine/ @dolanmiu
@@ -5432,7 +5436,6 @@
/types/transducers-js/ @colinkahn @dphilipson @NaridaL
/types/transducers.js/ @dphilipson
/types/transliteration/ @tony19
-/types/trash/ @matthew-matvei @hoishin @BendingBender
/types/traverse/ @newclear
/types/traverson/ @marcinporebski
/types/travis-fold/ @andy-ms
@@ -5446,6 +5449,7 @@
/types/trim-newlines/ @djcsdy
/types/triple-beam/ @danwbyrne
/types/triplesec/ @threesquared
+/types/trouter/ @stahlstift
/types/trunk8/ @niemyjski
/types/trusted-types/ @vrana
/types/tryer/ @bengry
@@ -5453,6 +5457,7 @@
/types/tspromise/ @soywiz
/types/ttf2woff2/ @ThomasdenH
/types/tunnel/ @BendingBender
+/types/turbolinks/ @evankim390
/types/turndown/ @sergey-zhidkov
/types/tus-js-client/ @kevhiggins @Acconut
/types/tv4/ @Bartvds @psnider
@@ -5598,10 +5603,11 @@
/types/vfile/ @bizen241 @rokt33r
/types/vfile-location/ @ikatyang @rokt33r
/types/vfile-message/ @rokt33r
-/types/victory/ @asvetliakov @snerks @Havret @allreadyExisted @jlismore
+/types/victory/ @asvetliakov @snerks @Havret @allreadyExisted @jlismore @stackbuilders @ibarrae
/types/video.js/ @vbortone @scleriot @SWBennett06 @IgelCampus @giofreitas @gjanblaszczyk @sroucheray @AkxeOne @meikidd
/types/viewability-helper/ @lironzluf
/types/viewerjs/ @lrh3321
+/types/viewport-list/ @satyarohith
/types/viewport-mercator-project/ @fnberta
/types/viewporter/ @borisyankov
/types/vimeo/ @DazWilkin
@@ -5629,8 +5635,9 @@
/types/vortex-web-client/ @Pro
/types/voucher-code-generator/ @JWebCoder
/types/voximplant-websdk/ @aylarov
+/types/vscode/ @Microsoft
/types/vue-chartkick/ @cnsmedia
-/types/vue-color/ @me
+/types/vue-color/ @mildful
/types/vue-markdown/ @neodon
/types/vue-resource/ @kaorun343
/types/vue-scrollto/ @vincekovacs
@@ -5843,7 +5850,6 @@
/types/yui/ @giabao
/types/yup/ @dhardtke @vtserman @MoretonBayRC @sseppola @YashdalfTheGray @vincentjames501 @robertbullen @sat0yu @dancrumb
/types/z-schema/ @pgonzal
-/types/zapier-platform-core/ @bradleyayers
/types/zeit__next-typescript/ @icopp
/types/zen-observable/ @aicest @JounQin @itomtom
/types/zen-push/ @daprahamian
diff --git a/README.md b/README.md
index 746d9d9f3e..b50272dbf4 100644
--- a/README.md
+++ b/README.md
@@ -57,7 +57,7 @@ You may need to add manual [references](http://www.typescriptlang.org/docs/handb
## How can I contribute?
-DefinitelyTyped only works because of contributions by users like you!
+Definitely Typed only works because of contributions by users like you!
### Test
@@ -89,7 +89,7 @@ then follow the instructions to [edit an existing package](#edit-an-existing-pac
### Make a pull request
-Once you've tested your package, you can share it on DefinitelyTyped.
+Once you've tested your package, you can share it on Definitely Typed.
First, [fork](https://guides.github.com/activities/forking/) this repository, install [node](https://nodejs.org/), and run `npm install`.
@@ -117,7 +117,7 @@ If it doesn't, you can do so yourself in the comment associated with the PR.
#### Create a new package
-If you are the library author and your package is written in TypeScript, [bundle the autogenerated declaration files](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) in your package instead of publishing to DefinitelyTyped.
+If you are the library author and your package is written in TypeScript, [bundle the autogenerated declaration files](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) in your package instead of publishing to Definitely Typed.
If you are adding typings for an NPM package, create a directory with the same name.
If the package you are adding typings for is not on NPM, make sure the name you choose for it does not conflict with the name of a package on NPM.
@@ -137,7 +137,7 @@ See all options at [dts-gen](https://github.com/Microsoft/dts-gen).
You may edit the `tsconfig.json` to add new files, to add `"target": "es6"` (needed for async functions), to add to `"lib"`, or to add the `"jsx"` compiler option.
-DefinitelyTyped members routinely monitor for new PRs, though keep in mind that the number of other PRs may slow things down.
+Definitely Typed members routinely monitor for new PRs, though keep in mind that the number of other PRs may slow things down.
For a good example package, see [base64-js](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/base64-js).
@@ -165,18 +165,31 @@ For a good example package, see [base64-js](https://github.com/DefinitelyTyped/D
#### Removing a package
-When a package [bundles](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) its own types, types should be removed from DefinitelyTyped to avoid confusion.
+When a package [bundles](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) its own types, types should be removed from Definitely Typed to avoid confusion.
You can remove it by running `npm run not-needed -- typingsPackageName asOfVersion sourceRepoURL [libraryName]`.
- `typingsPackageName`: This is the name of the directory to delete.
- `asOfVersion`: A stub will be published to `@types/foo` with this version. Should be higher than any currently published version.
- `sourceRepoURL`: This should point to the repository that contains the typings.
-- `libraryName`: Descriptive name of the library, e.g. "Angular 2" instead of "angular2". (If ommitted, will be identical to "typingsPackageName".)
+- `libraryName`: Name of npm package that replaces the Definitely Typed types. Usually this is identical to "typingsPackageName", in which case you can omit it.
-Any other packages in DefinitelyTyped that referenced the deleted package should be updated to reference the bundled types. To do this, add a `package.json` with `"dependencies": { "foo": "x.y.z" }`.
+Any other packages in Definitely Typed that referenced the deleted package should be updated to reference the bundled types.
+You can get this list by looking at the errors from `npm run test`.
+To fix the errors, add a `package.json` with `"dependencies": { "foo": "x.y.z" }`.
+For example:
-If a package was never on DefinitelyTyped, it does not need to be added to `notNeededPackages.json`.
+```json
+{
+ "private": true,
+ "dependencies": {
+ "foo": "^2.6.0"
+ }
+}
+```
+When you add a `package.json` to dependents of `foo`, you will also need to open a PR to add `foo` [to dependenciesWhitelist.txt in types-publisher](https://github.com/Microsoft/types-publisher/blob/master/dependenciesWhitelist.txt).
+
+If a package was never on Definitely Typed, it does not need to be added to `notNeededPackages.json`.
#### Lint
@@ -225,11 +238,11 @@ The `master` branch is automatically published to the `@types` scope on NPM than
#### I've submitted a pull request. How long until it is merged?
-It depends, but most pull requests will be merged within a week. PRs that have been approved by an author listed in the definition's header are usually merged more quickly; PRs for new definitions will take more time as they require more review from maintainers. Each PR is reviewed by a TypeScript or DefinitelyTyped team member before being merged, so please be patient as human factors may cause delays. Check the [PR Burndown Board](https://github.com/DefinitelyTyped/DefinitelyTyped/projects/3?card_filter_query=is%3Aopen) to see progress as maintainers work through the open PRs.
+It depends, but most pull requests will be merged within a week. PRs that have been approved by an author listed in the definition's header are usually merged more quickly; PRs for new definitions will take more time as they require more review from maintainers. Each PR is reviewed by a TypeScript or Definitely Typed team member before being merged, so please be patient as human factors may cause delays. Check the [PR Burndown Board](https://github.com/DefinitelyTyped/DefinitelyTyped/projects/3?card_filter_query=is%3Aopen) to see progress as maintainers work through the open PRs.
#### My PR is merged; when will the `@types` NPM package be updated?
-NPM packages should update within a few minutes. If it's been more than an hour, mention the PR number on [the DefinitelyTyped Gitter channel](https://gitter.im/DefinitelyTyped/DefinitelyTyped) and the current maintainer will get the correct team member to investigate.
+NPM packages should update within a few minutes. If it's been more than an hour, mention the PR number on [the Definitely Typed Gitter channel](https://gitter.im/DefinitelyTyped/DefinitelyTyped) and the current maintainer will get the correct team member to investigate.
#### I'm writing a definition that depends on another definition. Should I use `` or an import?
@@ -325,13 +338,13 @@ You can look [here](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/mast
This may belong in [TSJS-Lib-Generator](https://github.com/Microsoft/TSJS-lib-generator#readme). See the guidelines there.
If the standard is still a draft, it belongs here.
Use a name beginning with `dom-` and include a link to the standard as the "Project" link in the header.
-When it graduates draft mode, we may remove it from DefinitelyTyped and deprecate the associated `@types` package.
+When it graduates draft mode, we may remove it from Definitely Typed and deprecate the associated `@types` package.
-#### How do DefinitelyTyped package versions relate to versions of the corresponding library?
+#### How do Definitely Typed package versions relate to versions of the corresponding library?
_NOTE: The discussion in this section assumes familiarity with [Semantic versioning](https://semver.org/)_
-Each DefinitelyTyped package is versioned when published to NPM.
+Each Definitely Typed package is versioned when published to NPM.
The [types-publisher](https://github.com/Microsoft/types-publisher) (the tool that publishes `@types` packages to npm) will set the declaration package's version by using the `major.minor` version number listed in the first line of its `index.d.ts` file.
For example, here are the first few lines of [Node's type declarations](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/1253faabf5e0d2c5470db6ea87795d7f96fef7e2/types/node/index.d.ts) for version `10.12.x` at the time of writing:
@@ -339,24 +352,24 @@ For example, here are the first few lines of [Node's type declarations](https://
// Type definitions for Node.js 10.12
// Project: http://nodejs.org/
// Definitions by: Microsoft TypeScript
-// DefinitelyTyped
+// Definitely Typed
// Alberto Schiabel
```
Because `10.12` is at the end the first line, the npm version of the `@types/node` package will also be `10.12.x`.
Note that the first-line comment in the `index.d.ts` file should only contain the `major.minor` version (e.g. `10.12`) and should not contain a patch version (e.g. `10.12.4`).
This is because only the major and minor release numbers are aligned between library packages and type declaration packages.
-The patch release number of the type declaration package (e.g. `.0` in `10.12.0`) is initialized to zero by DefinitelyTyped and is incremented each time a new `@types/node` package is published to NPM for the same major/minor version of the corresponding library.
+The patch release number of the type declaration package (e.g. `.0` in `10.12.0`) is initialized to zero by Definitely Typed and is incremented each time a new `@types/node` package is published to NPM for the same major/minor version of the corresponding library.
Sometimes type declaration package versions and library package versions can get out of sync.
Below are a few common reasons why, in order of how much they inconvenience users of a library.
Only the last case is typically problematic.
* As noted above, the patch version of the type declaration package is unrelated to the library patch version.
- This allows DefinitelyTyped to safely update type declarations for the same major/minor version of a library.
+ This allows Definitely Typed to safely update type declarations for the same major/minor version of a library.
* If updating a package for new functionality, don't forget to update the version number to line up with that version of the library.
If users make sure versions correspond between JavaScript packages and their respective `@types` packages, then `npm update` should typically just work.
-* It's common for type declaration package updates to lag behind library updates because it's often library users, not maintainers, who update DefinitelyTyped when new library features are released.
+* It's common for type declaration package updates to lag behind library updates because it's often library users, not maintainers, who update Definitely Typed when new library features are released.
So there may be a lag of days, weeks, or even months before a helpful community member sends a PR to update the type declaration package for a new library release.
If you're impacted by this, you can be the change you want to see in the world and you can be that helpful community member!
@@ -366,7 +379,7 @@ Only the last case is typically problematic.
[Semantic versioning](https://semver.org/) requires that versions with breaking changes must increment the major version number.
For example, a library that removes a publicly exported function after its `3.5.8` release must bump its version to `4.0.0` in its next release.
-Furthermore, when the library's `4.0.0` release is out, its DefinitelyTyped type declaration package should also be updated to `4.0.0`, including any breaking changes to the library's API.
+Furthermore, when the library's `4.0.0` release is out, its Definitely Typed type declaration package should also be updated to `4.0.0`, including any breaking changes to the library's API.
Many libraries have a large installed base of developers (including maintainers of other packages using that library as a dependency) who won't move right away to a new version that has breaking changes, because it might be months until a maintainer has time to rewrite code to adapt to the new version.
In the meantime, users of old library versions still may want to update type declarations for older versions.
@@ -398,7 +411,7 @@ At the time of writing, the [history v2 `tsconfig.json`](https://github.com/Defi
}
```
-If there are other packages in DefinitelyTyped that are incompatible with the new version, you will need to add path mappings to the old version.
+If there are other packages in Definitely Typed that are incompatible with the new version, you will need to add path mappings to the old version.
You will also need to do this recursively for packages depending on packages depending on the old version.
For example, `react-router` depends on `history@2`, so [react-router `tsconfig.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-router/v2/tsconfig.json) has a path mapping to `"history": [ "history/v2" ]`.
diff --git a/notNeededPackages.json b/notNeededPackages.json
index 812d1f9f1b..4cda1eb572 100644
--- a/notNeededPackages.json
+++ b/notNeededPackages.json
@@ -18,6 +18,12 @@
"sourceRepoURL": "https://github.com/ceolter/ag-grid",
"asOfVersion": "3.2.0"
},
+ {
+ "libraryName": "aggregate-error",
+ "typingsPackageName": "aggregate-error",
+ "sourceRepoURL": "https://github.com/sindresorhus/aggregate-error",
+ "asOfVersion": "2.2.0"
+ },
{
"libraryName": "ajv",
"typingsPackageName": "ajv",
@@ -468,6 +474,12 @@
"sourceRepoURL": "https://github.com/MikeMcl/decimal.js",
"asOfVersion": "7.4.0"
},
+ {
+ "libraryName": "decompress-response",
+ "typingsPackageName": "decompress-response",
+ "sourceRepoURL": "https://github.com/sindresorhus/decompress-response",
+ "asOfVersion": "4.1.0"
+ },
{
"libraryName": "deepmerge",
"typingsPackageName": "deepmerge",
@@ -510,6 +522,12 @@
"sourceRepoURL": "https://github.com/joyent/docker-file-parser",
"asOfVersion": "1.0.3"
},
+ {
+ "libraryName": "dom-loaded",
+ "typingsPackageName": "dom-loaded",
+ "sourceRepoURL": "https://github.com/sindresorhus/dom-loaded",
+ "asOfVersion": "1.1.0"
+ },
{
"libraryName": "dot-case",
"typingsPackageName": "dot-case",
@@ -564,6 +582,12 @@
"sourceRepoURL": "https://github.com/loopline-systems/electron-builder",
"asOfVersion": "2.8.0"
},
+ {
+ "libraryName": "element-ready",
+ "typingsPackageName": "element-ready",
+ "sourceRepoURL": "https://github.com/sindresorhus/element-ready",
+ "asOfVersion": "3.1.0"
+ },
{
"libraryName": "email-addresses",
"typingsPackageName": "email-addresses",
@@ -684,6 +708,18 @@
"sourceRepoURL": "https://github.com/sindresorhus/file-type",
"asOfVersion": "10.9.1"
},
+ {
+ "libraryName": "filenamify",
+ "typingsPackageName": "filenamify",
+ "sourceRepoURL": "https://github.com/sindresorhus/filenamify",
+ "asOfVersion": "3.0.0"
+ },
+ {
+ "libraryName": "filenamify-url",
+ "typingsPackageName": "filenamify-url",
+ "sourceRepoURL": "https://github.com/sindresorhus/filenamify-url",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "FineUploader",
"typingsPackageName": "fine-uploader",
@@ -696,6 +732,12 @@
"sourceRepoURL": "https://www.firebase.com/docs/javascript/firebase",
"asOfVersion": "3.2.1"
},
+ {
+ "libraryName": "fkill",
+ "typingsPackageName": "fkill",
+ "sourceRepoURL": "https://github.com/sindresorhus/fkill",
+ "asOfVersion": "6.0.0"
+ },
{
"libraryName": "flatpickr",
"typingsPackageName": "flatpickr",
@@ -744,6 +786,12 @@
"sourceRepoURL": "https://github.com/manuelbieh/Geolib",
"asOfVersion": "2.0.23"
},
+ {
+ "libraryName": "get-stream",
+ "typingsPackageName": "get-stream",
+ "sourceRepoURL": "https://github.com/sindresorhus/get-stream",
+ "asOfVersion": "5.0.0"
+ },
{
"libraryName": "github",
"typingsPackageName": "github",
@@ -810,6 +858,18 @@
"sourceRepoURL": "https://handsontable.com/",
"asOfVersion": "0.35.0"
},
+ {
+ "libraryName": "has-yarn",
+ "typingsPackageName": "has-yarn",
+ "sourceRepoURL": "https://github.com/sindresorhus/has-yarn",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "hasha",
+ "typingsPackageName": "hasha",
+ "sourceRepoURL": "https://github.com/sindresorhus/hasha",
+ "asOfVersion": "4.0.0"
+ },
{
"libraryName": "hibp",
"typingsPackageName": "hibp",
@@ -888,6 +948,12 @@
"sourceRepoURL": "https://github.com/sindresorhus/internal-ip",
"asOfVersion": "4.1.0"
},
+ {
+ "libraryName": "into-stream",
+ "typingsPackageName": "into-stream",
+ "sourceRepoURL": "https://github.com/sindresorhus/into-stream",
+ "asOfVersion": "5.0.0"
+ },
{
"libraryName": "inversify",
"typingsPackageName": "inversify",
@@ -948,6 +1014,12 @@
"sourceRepoURL": "https://github.com/jonschlinkert/is-plain-object",
"asOfVersion": "2.0.4"
},
+ {
+ "libraryName": "is-scoped",
+ "typingsPackageName": "is-scoped",
+ "sourceRepoURL": "https://github.com/sindresorhus/is-scoped",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "is-svg",
"typingsPackageName": "is-svg",
@@ -1056,6 +1128,12 @@
"sourceRepoURL": "https://github.com/elitechance/lambda-phi",
"asOfVersion": "1.0.1"
},
+ {
+ "libraryName": "latest-version",
+ "typingsPackageName": "latest-version",
+ "sourceRepoURL": "https://github.com/sindresorhus/latest-version",
+ "asOfVersion": "5.0.0"
+ },
{
"libraryName": "ldclient-js",
"typingsPackageName": "ldclient-js",
@@ -1068,6 +1146,12 @@
"sourceRepoURL": "https://github.com/stevemao/left-pad",
"asOfVersion": "1.2.0"
},
+ {
+ "libraryName": "leven",
+ "typingsPackageName": "leven",
+ "sourceRepoURL": "https://github.com/sindresorhus/leven",
+ "asOfVersion": "3.0.0"
+ },
{
"libraryName": "Linq.JS",
"typingsPackageName": "linq",
@@ -1158,6 +1242,12 @@
"sourceRepoURL": "https://github.com/runk/node-maxmind",
"asOfVersion": "2.0.5"
},
+ {
+ "libraryName": "mem",
+ "typingsPackageName": "mem",
+ "sourceRepoURL": "https://github.com/sindresorhus/mem",
+ "asOfVersion": "4.2.0"
+ },
{
"libraryName": "mendixmodelsdk",
"typingsPackageName": "mendixmodelsdk",
@@ -1260,6 +1350,18 @@
"sourceRepoURL": "https://github.com/paularmstrong/normalizr",
"asOfVersion": "2.0.18"
},
+ {
+ "libraryName": "npm-email",
+ "typingsPackageName": "npm-email",
+ "sourceRepoURL": "https://github.com/sindresorhus/npm-email",
+ "asOfVersion": "3.1.0"
+ },
+ {
+ "libraryName": "npm-keyword",
+ "typingsPackageName": "npm-keyword",
+ "sourceRepoURL": "https://github.com/sindresorhus/npm-keyword",
+ "asOfVersion": "6.0.0"
+ },
{
"libraryName": "npm-name",
"typingsPackageName": "npm-name",
@@ -1272,6 +1374,12 @@
"sourceRepoURL": "https://github.com/sindresorhus/npm-run-path",
"asOfVersion": "3.0.1"
},
+ {
+ "libraryName": "npm-user",
+ "typingsPackageName": "npm-user",
+ "sourceRepoURL": "https://github.com/sindresorhus/npm-user",
+ "asOfVersion": "4.0.0"
+ },
{
"libraryName": "Nuka Carousel",
"typingsPackageName": "nuka-carousel",
@@ -1302,48 +1410,162 @@
"sourceRepoURL": "https://github.com/sindresorhus/ora",
"asOfVersion": "3.2.0"
},
+ {
+ "libraryName": "p-any",
+ "typingsPackageName": "p-any",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-any",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-cancelable",
+ "typingsPackageName": "p-cancelable",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-cancelable",
+ "asOfVersion": "1.1.0"
+ },
+ {
+ "libraryName": "p-catch-if",
+ "typingsPackageName": "p-catch-if",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-catch-if",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-debounce",
+ "typingsPackageName": "p-debounce",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-debounce",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-each-series",
+ "typingsPackageName": "p-each-series",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-each-series",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "p-event",
"typingsPackageName": "p-event",
"sourceRepoURL": "https://github.com/sindresorhus/p-event",
"asOfVersion": "3.0.0"
},
+ {
+ "libraryName": "p-every",
+ "typingsPackageName": "p-every",
+ "sourceRepoURL": "https://github.com/kevva/p-every",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "p-limit",
"typingsPackageName": "p-limit",
"sourceRepoURL": "https://github.com/sindresorhus/p-limit",
"asOfVersion": "2.2.0"
},
+ {
+ "libraryName": "p-locate",
+ "typingsPackageName": "p-locate",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-locate",
+ "asOfVersion": "4.0.0"
+ },
+ {
+ "libraryName": "p-log",
+ "typingsPackageName": "p-log",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-log",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "p-map",
"typingsPackageName": "p-map",
"sourceRepoURL": "https://github.com/sindresorhus/p-map",
"asOfVersion": "2.0.0"
},
+ {
+ "libraryName": "p-map-series",
+ "typingsPackageName": "p-map-series",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-map-series",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-memoize",
+ "typingsPackageName": "p-memoize",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-memoize",
+ "asOfVersion": "3.0.0"
+ },
+ {
+ "libraryName": "p-one",
+ "typingsPackageName": "p-one",
+ "sourceRepoURL": "https://github.com/kevva/p-one",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "p-pipe",
"typingsPackageName": "p-pipe",
"sourceRepoURL": "https://github.com/sindresorhus/p-pipe",
"asOfVersion": "2.0.1"
},
+ {
+ "libraryName": "p-progress",
+ "typingsPackageName": "p-progress",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-progress",
+ "asOfVersion": "0.3.0"
+ },
+ {
+ "libraryName": "p-props",
+ "typingsPackageName": "p-props",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-props",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "p-queue",
"typingsPackageName": "p-queue",
"sourceRepoURL": "https://github.com/sindresorhus/p-queue",
"asOfVersion": "3.2.1"
},
+ {
+ "libraryName": "p-reduce",
+ "typingsPackageName": "p-reduce",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-reduce",
+ "asOfVersion": "2.0.0"
+ },
+ {
+ "libraryName": "p-retry",
+ "typingsPackageName": "p-retry",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-retry",
+ "asOfVersion": "4.0.0"
+ },
+ {
+ "libraryName": "p-series",
+ "typingsPackageName": "p-series",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-series",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "p-some",
"typingsPackageName": "p-some",
"sourceRepoURL": "https://github.com/sindresorhus/p-some",
"asOfVersion": "4.0.1"
},
+ {
+ "libraryName": "p-tap",
+ "typingsPackageName": "p-tap",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-tap",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "p-throttle",
"typingsPackageName": "p-throttle",
"sourceRepoURL": "https://github.com/sindresorhus/p-throttle",
"asOfVersion": "2.1.0"
},
+ {
+ "libraryName": "p-timeout",
+ "typingsPackageName": "p-timeout",
+ "sourceRepoURL": "https://github.com/sindresorhus/p-timeout",
+ "asOfVersion": "3.0.0"
+ },
+ {
+ "libraryName": "package-json",
+ "typingsPackageName": "package-json",
+ "sourceRepoURL": "https://github.com/sindresorhus/package-json",
+ "asOfVersion": "6.1.0"
+ },
{
"libraryName": "param-case",
"typingsPackageName": "param-case",
@@ -1380,6 +1602,12 @@
"sourceRepoURL": "https://github.com/pillarjs/path-to-regexp",
"asOfVersion": "1.7.0"
},
+ {
+ "libraryName": "path-type",
+ "typingsPackageName": "path-type",
+ "sourceRepoURL": "https://github.com/sindresorhus/path-type",
+ "asOfVersion": "4.0.0"
+ },
{
"libraryName": "perfect-scrollbar",
"typingsPackageName": "perfect-scrollbar",
@@ -1422,6 +1650,18 @@
"sourceRepoURL": "https://github.com/sindresorhus/pkg-conf",
"asOfVersion": "3.0.0"
},
+ {
+ "libraryName": "pkg-dir",
+ "typingsPackageName": "pkg-dir",
+ "sourceRepoURL": "https://github.com/sindresorhus/pkg-dir",
+ "asOfVersion": "4.0.0"
+ },
+ {
+ "libraryName": "pkg-versions",
+ "typingsPackageName": "pkg-versions",
+ "sourceRepoURL": "https://github.com/sindresorhus/pkg-versions",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "plottable",
"typingsPackageName": "plottable",
@@ -1800,6 +2040,12 @@
"sourceRepoURL": "https://github.com/zeh/simplesignal",
"asOfVersion": "1.0.0"
},
+ {
+ "libraryName": "@sindresorhus/df",
+ "typingsPackageName": "sindresorhus__df",
+ "sourceRepoURL": "https://github.com/sindresorhus/df",
+ "asOfVersion": "3.0.0"
+ },
{
"libraryName": "@sindresorhus/slugify",
"typingsPackageName": "sindresorhus__slugify",
@@ -2004,6 +2250,12 @@
"sourceRepoURL": "https://github.com/kriasoft/universal-router",
"asOfVersion": "8.0.0"
},
+ {
+ "libraryName": "unused-filename",
+ "typingsPackageName": "unused-filename",
+ "sourceRepoURL": "https://github.com/sindresorhus/unused-filename",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "upper-case",
"typingsPackageName": "upper-case",
@@ -2064,6 +2316,12 @@
"sourceRepoURL": "https://github.com/sindresorhus/wait-for-localhost",
"asOfVersion": "3.1.0"
},
+ {
+ "libraryName": "wallpaper",
+ "typingsPackageName": "wallpaper",
+ "sourceRepoURL": "https://github.com/sindresorhus/wallpaper",
+ "asOfVersion": "4.3.0"
+ },
{
"libraryName": "webcola",
"typingsPackageName": "webcola",
diff --git a/types/aggregate-error/aggregate-error-tests.ts b/types/aggregate-error/aggregate-error-tests.ts
deleted file mode 100644
index 69e544f9ee..0000000000
--- a/types/aggregate-error/aggregate-error-tests.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import AggregateError = require('aggregate-error');
-
-const err = new AggregateError([new Error('foo'), 'bar']);
-
-for (const el of Array.from(err)) {
- const err: Error = el;
-}
-
-throw err;
diff --git a/types/aggregate-error/index.d.ts b/types/aggregate-error/index.d.ts
deleted file mode 100644
index 8c8c4cd3b2..0000000000
--- a/types/aggregate-error/index.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-// Type definitions for aggregate-error 1.0
-// Project: https://github.com/sindresorhus/aggregate-error#readme
-// Definitions by: BendingBender
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-export = AggregateError;
-
-declare class AggregateError extends Error implements Iterable {
- constructor(errors: Iterable);
-
- [Symbol.iterator](): Iterator;
-}
diff --git a/types/aggregate-error/tsconfig.json b/types/aggregate-error/tsconfig.json
deleted file mode 100644
index f092ab1c3e..0000000000
--- a/types/aggregate-error/tsconfig.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "compilerOptions": {
- "module": "commonjs",
- "lib": [
- "es6"
- ],
- "noImplicitAny": true,
- "noImplicitThis": true,
- "strictNullChecks": true,
- "strictFunctionTypes": true,
- "baseUrl": "../",
- "typeRoots": [
- "../"
- ],
- "types": [],
- "noEmit": true,
- "forceConsistentCasingInFileNames": true
- },
- "files": [
- "index.d.ts",
- "aggregate-error-tests.ts"
- ]
-}
\ No newline at end of file
diff --git a/types/bser/index.d.ts b/types/bser/index.d.ts
new file mode 100644
index 0000000000..75695d85b1
--- /dev/null
+++ b/types/bser/index.d.ts
@@ -0,0 +1,100 @@
+// Type definitions for bser 2.0
+// Project: https://facebook.github.io/watchman/docs/bser.html
+// Definitions by: Claas Ahlrichs
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.7
+
+///
+
+import { EventEmitter } from "events";
+import Int64 = require("node-int64");
+
+export type InputWrapper =
+ | Buffer
+ | string
+ | NodeJS.TypedArray
+ | DataView
+ | ArrayBuffer
+ | SharedArrayBuffer;
+export type IntWrapper = number | Int64;
+export type AnyWrapper = boolean | IntWrapper | null | string | object;
+
+export class Accumulator {
+ buf: Buffer;
+ readOffset: number;
+ writeOffset: number;
+
+ constructor(initsize?: number);
+
+ append(buf: InputWrapper): void;
+
+ assertReadableSize(size: number): void;
+
+ peekDouble(): number;
+
+ peekInt(size: number): IntWrapper;
+
+ peekString(size: number): string;
+
+ readAdvance(size: number): void;
+
+ readAvail(): number;
+
+ readDouble(): number;
+
+ // replace "IntWrapper" with "number"?
+ readInt(bytes: number): IntWrapper;
+
+ readString(size: number): string;
+
+ reserve(size: number): void;
+
+ writeAvail(): number;
+
+ writeByte(value: number): void;
+
+ writeDouble(value: number): void;
+
+ writeInt(value: number, size: number): void;
+}
+
+export class BunserBuf extends EventEmitter {
+ buf: Accumulator;
+ state: 0 | 1;
+ // replace "IntWrapper" with "number"?
+ pduLen?: false | IntWrapper;
+
+ constructor();
+
+ append(
+ buf: InputWrapper,
+ synchronous?: false
+ ): AnyWrapper | AnyWrapper[] | undefined;
+ append(buf: InputWrapper, synchronous: true): void;
+
+ decodeAny(): AnyWrapper | AnyWrapper[];
+
+ decodeArray(): AnyWrapper[];
+
+ // replace "IntWrapper" with "number"?
+ decodeInt(relaxSizeAsserts?: boolean): false | IntWrapper;
+
+ decodeObject(): object;
+
+ decodeString(): string;
+
+ decodeTemplate(): AnyWrapper[];
+
+ expectCode(expected: number): void;
+
+ process(synchronous?: false): AnyWrapper | AnyWrapper[] | undefined;
+ process(synchronous: true): void;
+
+ processLater(): void;
+
+ raise(reason: string): void;
+}
+
+export function dumpToBuffer(val: any): Buffer;
+
+export function loadFromBuffer(input: InputWrapper): AnyWrapper | AnyWrapper[];
diff --git a/types/bser/test/sample1.ts b/types/bser/test/sample1.ts
new file mode 100644
index 0000000000..3958260c42
--- /dev/null
+++ b/types/bser/test/sample1.ts
@@ -0,0 +1,4 @@
+import * as bser from "bser";
+
+const encoded = bser.dumpToBuffer(["hello"]);
+console.log(bser.loadFromBuffer(encoded)); // ['hello']
diff --git a/types/bser/test/sample2.ts b/types/bser/test/sample2.ts
new file mode 100644
index 0000000000..2ab145626a
--- /dev/null
+++ b/types/bser/test/sample2.ts
@@ -0,0 +1,7 @@
+import * as bser from "bser";
+
+const bunser = new bser.BunserBuf();
+
+bunser.on("value", obj => {
+ console.log(obj);
+});
diff --git a/types/bser/test/sample3.ts b/types/bser/test/sample3.ts
new file mode 100644
index 0000000000..41831c4447
--- /dev/null
+++ b/types/bser/test/sample3.ts
@@ -0,0 +1,16 @@
+import * as bser from "bser";
+import net from "net";
+
+const obj = "sample data";
+const bunser = new bser.BunserBuf();
+
+bunser.on("value", obj => {
+ console.log("data from socket", obj);
+});
+
+const socket = net.connect("/socket");
+
+socket.on("data", buf => {
+ bunser.append(buf);
+});
+socket.write(bser.dumpToBuffer(obj));
diff --git a/types/bser/test/tests.ts b/types/bser/test/tests.ts
new file mode 100644
index 0000000000..2037e0517b
--- /dev/null
+++ b/types/bser/test/tests.ts
@@ -0,0 +1,86 @@
+import * as bser from "bser";
+import Int64 from "node-int64";
+import * as assert from "assert";
+
+// This is a hard-coded template representation from the C test suite
+const template =
+ "\x00\x01\x03\x28" +
+ "\x0b\x00\x03\x02\x02\x03\x04\x6e\x61\x6d\x65\x02" +
+ "\x03\x03\x61\x67\x65\x03\x03\x02\x03\x04\x66\x72" +
+ "\x65\x64\x03\x14\x02\x03\x04\x70\x65\x74\x65\x03" +
+ "\x1e\x0c\x03\x19";
+
+const val = bser.loadFromBuffer(template);
+assert.deepStrictEqual(val, [
+ { name: "fred", age: 20 },
+ { name: "pete", age: 30 },
+ { age: 25 }
+]);
+
+function roundtrip(val: any) {
+ const encoded = bser.dumpToBuffer(val);
+ const decoded = bser.loadFromBuffer(encoded);
+ assert.deepStrictEqual(decoded, val);
+}
+
+const values_to_test = [
+ 1,
+ "hello",
+ 1.5,
+ false,
+ true,
+ new Int64("0x0123456789abcdef"),
+ 127,
+ 128,
+ 129,
+ 32767,
+ 32768,
+ 32769,
+ 65534,
+ 65536,
+ 65537,
+ 2147483647,
+ 2147483648,
+ 2147483649,
+ null,
+ [1, 2, 3],
+ { foo: "bar" },
+ { nested: { struct: "hello", list: [true, false, 1, "string"] } }
+];
+
+for (const value of values_to_test) {
+ roundtrip(value);
+}
+roundtrip(values_to_test);
+
+// Verify Accumulator edge cases
+const acc = new bser.Accumulator(8);
+acc.append("hello");
+assert.equal(acc.readAvail(), 5);
+assert.equal(acc.readOffset, 0);
+assert.equal(acc.readString(3), "hel");
+assert.equal(acc.readOffset, 3);
+assert.equal(acc.readAvail(), 2);
+assert.equal(acc.writeAvail(), 3);
+
+// This should trigger a shunt and not make the buffer bigger
+acc.reserve(5);
+assert.equal(acc.readOffset, 0, "shunted");
+assert.equal(acc.readAvail(), 2, "still have 2 available to read");
+assert.equal(acc.writeAvail(), 6, "2 left to read out of 8 total space");
+assert.equal(acc.peekString(2), "lo", "have the correct remainder");
+
+// Don't include keys that have undefined values
+const res = bser.dumpToBuffer({ expression: undefined });
+assert.deepStrictEqual(bser.loadFromBuffer(res), {});
+
+// Dump numbers without fraction to integers
+let buffer;
+buffer = bser.dumpToBuffer(1);
+assert.equal(buffer.toString("hex"), "000105020000000301");
+buffer = bser.dumpToBuffer(1.0);
+assert.equal(buffer.toString("hex"), "000105020000000301");
+
+// Dump numbers with fraction to double
+buffer = bser.dumpToBuffer(1.1);
+assert.equal(buffer.toString("hex"), "00010509000000079a9999999999f13f");
diff --git a/types/sindresorhus__df/tsconfig.json b/types/bser/tsconfig.json
similarity index 59%
rename from types/sindresorhus__df/tsconfig.json
rename to types/bser/tsconfig.json
index 9dcf70310e..4fb45a708a 100644
--- a/types/sindresorhus__df/tsconfig.json
+++ b/types/bser/tsconfig.json
@@ -1,28 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
- "lib": [
- "es6"
- ],
+ "lib": ["es6"],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
+ "strictFunctionTypes": true,
"baseUrl": "../",
- "typeRoots": [
- "../"
- ],
+ "typeRoots": ["../"],
"types": [],
"noEmit": true,
- "strictFunctionTypes": true,
"forceConsistentCasingInFileNames": true,
- "paths": {
- "@sindresorhus/df": [
- "sindresorhus__df"
- ]
- }
+ "esModuleInterop": true
},
"files": [
"index.d.ts",
- "sindresorhus__df-tests.ts"
+ "test/tests.ts",
+ "test/sample1.ts",
+ "test/sample2.ts",
+ "test/sample3.ts"
]
}
diff --git a/types/aggregate-error/tslint.json b/types/bser/tslint.json
similarity index 100%
rename from types/aggregate-error/tslint.json
rename to types/bser/tslint.json
diff --git a/types/bull/bull-tests.tsx b/types/bull/bull-tests.tsx
index 13ae21f5a4..64f4eef698 100644
--- a/types/bull/bull-tests.tsx
+++ b/types/bull/bull-tests.tsx
@@ -70,6 +70,19 @@ videoQueue.add({video: 'http://example.com/video1.mov'});
audioQueue.add({audio: 'http://example.com/audio1.mp3'});
imageQueue.add({image: 'http://example.com/image1.tiff'});
+//////////////////////////////////////////////////////////////////////////////////
+//
+// Test Redis Cluster connexion
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+const clusterQueue = new Queue('queue on redis cluster', {
+ prefix: 'cluster-test',
+ createClient: (clusterUri: Redis.ClusterNode) => {
+ return new Redis.Cluster([{port: 6379, host: '127.0.0.1'}]);
+ }
+});
+
//////////////////////////////////////////////////////////////////////////////////
//
// Re-using Redis Connections
diff --git a/types/bull/index.d.ts b/types/bull/index.d.ts
index cd2d1a9047..5297eadb19 100644
--- a/types/bull/index.d.ts
+++ b/types/bull/index.d.ts
@@ -49,9 +49,9 @@ declare namespace Bull {
/**
* When specified, the `Queue` will use this function to create new `ioredis` client connections.
- * This is useful if you want to re-use connections.
+ * This is useful if you want to re-use connections or connect to a Redis cluster.
*/
- createClient?(type: 'client' | 'subscriber' | 'bclient', redisOpts?: Redis.RedisOptions): Redis.Redis;
+ createClient?(type: 'client' | 'subscriber' | 'bclient', redisOpts?: Redis.RedisOptions): Redis.Redis | Redis.Cluster;
/**
* Prefix to use for all redis keys
diff --git a/types/chai-moment/chai-moment-tests.ts b/types/chai-moment/chai-moment-tests.ts
new file mode 100644
index 0000000000..6354c4796b
--- /dev/null
+++ b/types/chai-moment/chai-moment-tests.ts
@@ -0,0 +1,14 @@
+import { assert, expect, use } from 'chai';
+import chaiMoment = require('chai-moment');
+
+use(chaiMoment);
+
+// bdd style
+expect('2019-03-14').to.be.afterMoment('2019-03-12', 'day');
+expect('2019-03-14').to.be.beforeMoment('2019-03-16');
+expect('2019-03-14').to.be.sameMoment('2019-03-14', 'day');
+
+// tdd style
+assert.afterMoment('2019-03-14', '2019-03-12');
+assert.beforeMoment('2019-03-14', '2019-03-18', 'day');
+assert.sameMoment('2019-03-14', '2019-03-14', 'day');
diff --git a/types/chai-moment/index.d.ts b/types/chai-moment/index.d.ts
new file mode 100644
index 0000000000..0b19b7573f
--- /dev/null
+++ b/types/chai-moment/index.d.ts
@@ -0,0 +1,25 @@
+// Type definitions for chai-moment 0.1
+// Project: https://github.com/picardy/chai-moment
+// Definitions by: Chris Godsey
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+
+declare global {
+ namespace Chai {
+ interface Assertion extends LanguageChains, NumericComparison, TypeComparison {
+ afterMoment(expected: string, granularity?: string): void;
+ beforeMoment(expected: string, granularity?: string): void;
+ sameMoment(expected: string, granularity?: string): void;
+ }
+
+ interface Assert {
+ afterMoment(val: any, exp: any, granularity?: any, msg?: any): void;
+ beforeMoment(val: any, exp: any, granularity?: any, msg?: any): void;
+ sameMoment(val: any, exp: any, granularity?: any, msg?: any): void;
+ }
+ }
+}
+
+declare function chaiMoment(chai: any, utils: any): void;
+export = chaiMoment;
diff --git a/types/fkill/tsconfig.json b/types/chai-moment/tsconfig.json
similarity index 93%
rename from types/fkill/tsconfig.json
rename to types/chai-moment/tsconfig.json
index 2e36e29395..571fe4f114 100644
--- a/types/fkill/tsconfig.json
+++ b/types/chai-moment/tsconfig.json
@@ -18,6 +18,6 @@
},
"files": [
"index.d.ts",
- "fkill-tests.ts"
+ "chai-moment-tests.ts"
]
}
diff --git a/types/chai-moment/tslint.json b/types/chai-moment/tslint.json
new file mode 100644
index 0000000000..2750cc0197
--- /dev/null
+++ b/types/chai-moment/tslint.json
@@ -0,0 +1 @@
+{ "extends": "dtslint/dt.json" }
\ No newline at end of file
diff --git a/types/circular-dependency-plugin/circular-dependency-plugin-tests.ts b/types/circular-dependency-plugin/circular-dependency-plugin-tests.ts
new file mode 100644
index 0000000000..8c627651e7
--- /dev/null
+++ b/types/circular-dependency-plugin/circular-dependency-plugin-tests.ts
@@ -0,0 +1,29 @@
+import * as CircularDependencyPlugin from 'circular-dependency-plugin';
+import * as webpack from 'webpack';
+
+new CircularDependencyPlugin();
+new CircularDependencyPlugin({});
+
+const MAX_CYCLES = 5;
+let numCyclesDetected = 0;
+
+new CircularDependencyPlugin({
+ allowAsyncCycles: false,
+ cwd: process.cwd(),
+ exclude: /a\.js|node_modules/,
+ failOnError: true,
+ onDetected({ module: webpackModuleRecord, paths, compilation }) {
+ numCyclesDetected++;
+ compilation.warnings.push(new Error(paths.join(' -> ')));
+ },
+ onStart({ compilation }) {
+ numCyclesDetected = 0;
+ },
+ onEnd({ compilation }) {
+ if (numCyclesDetected > MAX_CYCLES) {
+ compilation.errors.push(new Error('Too many cycles'));
+ }
+ },
+});
+
+webpack({ plugins: [new CircularDependencyPlugin()] });
diff --git a/types/circular-dependency-plugin/index.d.ts b/types/circular-dependency-plugin/index.d.ts
new file mode 100644
index 0000000000..89c14b0ec0
--- /dev/null
+++ b/types/circular-dependency-plugin/index.d.ts
@@ -0,0 +1,30 @@
+// Type definitions for circular-dependency-plugin 5.0
+// Project: https://github.com/aackerman/circular-dependency-plugin
+// Definitions by: Olegs Jeremejevs
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.3
+
+import { Plugin, Module, compilation } from 'webpack';
+
+export = CircularDependencyPlugin;
+
+declare class CircularDependencyPlugin extends Plugin {
+ constructor(options?: CircularDependencyPlugin.Options);
+ // Not exposing `isCyclic` because it isn't meant to be public, I believe
+}
+
+declare namespace CircularDependencyPlugin {
+ interface Options {
+ allowAsyncCycles?: boolean;
+ cwd?: string;
+ exclude?: RegExp;
+ failOnError?: boolean;
+ onDetected?: (x: {
+ module: Module;
+ paths: string[];
+ compilation: compilation.Compilation;
+ }) => void;
+ onEnd?: (x: { compilation: compilation.Compilation }) => void;
+ onStart?: (x: { compilation: compilation.Compilation }) => void;
+ }
+}
diff --git a/types/decompress-response/tsconfig.json b/types/circular-dependency-plugin/tsconfig.json
similarity index 90%
rename from types/decompress-response/tsconfig.json
rename to types/circular-dependency-plugin/tsconfig.json
index c7a77a9fd1..476eb673dd 100644
--- a/types/decompress-response/tsconfig.json
+++ b/types/circular-dependency-plugin/tsconfig.json
@@ -18,6 +18,6 @@
},
"files": [
"index.d.ts",
- "decompress-response-tests.ts"
+ "circular-dependency-plugin-tests.ts"
]
}
diff --git a/types/decompress-response/tslint.json b/types/circular-dependency-plugin/tslint.json
similarity index 100%
rename from types/decompress-response/tslint.json
rename to types/circular-dependency-plugin/tslint.json
diff --git a/types/cytoscape/index.d.ts b/types/cytoscape/index.d.ts
index b4ca7de92f..aec7c9bf6c 100644
--- a/types/cytoscape/index.d.ts
+++ b/types/cytoscape/index.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Cytoscape.js 3.3
+// Type definitions for Cytoscape.js 3.4
// Project: http://js.cytoscape.org/
// Definitions by: Fabian Schmidt and Fred Eisele
// Shenghan Gao
@@ -3229,7 +3229,7 @@ declare namespace cytoscape {
* This finds the shortest path from the starting node to all other nodes in the collection.
* http://js.cytoscape.org/#eles.bellmanFord
*/
- bellmanFort(options: SearchBellmanFordOptions): SearchBellmanFordResult;
+ bellmanFord(options: SearchBellmanFordOptions): SearchBellmanFordResult;
/**
* Perform Kruskal's algorithm on the elements in the collection,
* returning the minimum spanning tree, assuming undirected edges.
diff --git a/types/decompress-response/decompress-response-tests.ts b/types/decompress-response/decompress-response-tests.ts
deleted file mode 100644
index f47665cbe0..0000000000
--- a/types/decompress-response/decompress-response-tests.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import decompressResponse = require("decompress-response");
-import http = require("http");
-
-http.get("localhost", response => {
- response = decompressResponse(response);
-});
diff --git a/types/decompress-response/index.d.ts b/types/decompress-response/index.d.ts
deleted file mode 100644
index 8e7ec88646..0000000000
--- a/types/decompress-response/index.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-// Type definitions for decompress-response 3.3
-// Project: https://github.com/sindresorhus/decompress-response#readme
-// Definitions by: Daniel Rosenwasser
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-///
-
-import http = require("http");
-
-export = decompress_response;
-declare function decompress_response(response: http.IncomingMessage): http.IncomingMessage;
diff --git a/types/dom-loaded/dom-loaded-tests.ts b/types/dom-loaded/dom-loaded-tests.ts
deleted file mode 100644
index f8a3e5486d..0000000000
--- a/types/dom-loaded/dom-loaded-tests.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import domLoaded = require("dom-loaded");
-
-domLoaded.then(() => console.log("DOM is loaded"));
diff --git a/types/dom-loaded/index.d.ts b/types/dom-loaded/index.d.ts
deleted file mode 100644
index 5d4d5154c4..0000000000
--- a/types/dom-loaded/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-// Type definitions for dom-loaded 1.0
-// Project: https://github.com/sindresorhus/dom-loaded#readme
-// Definitions by: Lukas Tetzlaf
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-declare const domLoaded: Promise;
-export = domLoaded;
diff --git a/types/domutils/index.d.ts b/types/domutils/index.d.ts
index 14971086cb..5300a68a8c 100644
--- a/types/domutils/index.d.ts
+++ b/types/domutils/index.d.ts
@@ -82,7 +82,7 @@ export function getName(elem: DomElement): string;
* @argument dom An array of DomElement that should be stringified
* @argument [opts] Optional options object
*/
-export function getOuterHTML(dom: DomElement[], opts: { decodeEntities?: boolean, xmlMode?: boolean}): string;
+export function getOuterHTML(dom: DomElement[], opts?: { decodeEntities?: boolean, xmlMode?: boolean}): string;
export function getParent(elem: DomElement): DomElement;
export function getSiblings(elem: DomElement): DomElement[];
export function getText(elem: DomElement): string;
diff --git a/types/echarts/index.d.ts b/types/echarts/index.d.ts
index 1332f0114a..41b3fe801f 100644
--- a/types/echarts/index.d.ts
+++ b/types/echarts/index.d.ts
@@ -7,6 +7,7 @@
// Roman
// Bilal
// TMTron
+// dwhitney
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
diff --git a/types/echarts/options/series/lines.d.ts b/types/echarts/options/series/lines.d.ts
index 957acf0ac7..de22abf5fb 100644
--- a/types/echarts/options/series/lines.d.ts
+++ b/types/echarts/options/series/lines.d.ts
@@ -13253,8 +13253,6 @@ declare namespace echarts {
*/
name?: string;
- children: [DataObject];
-
/**
* An array includes two ore more than two coordinates.
* Each coordinate could be `[x, y]` in
diff --git a/types/element-ready/element-ready-tests.ts b/types/element-ready/element-ready-tests.ts
deleted file mode 100644
index e003947bc1..0000000000
--- a/types/element-ready/element-ready-tests.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import elementReady = require('element-ready');
-
-const p = elementReady('#unicorn');
-
-p.then(element => {
- const el: HTMLElement = element;
-});
-
-p.cancel();
diff --git a/types/element-ready/index.d.ts b/types/element-ready/index.d.ts
deleted file mode 100644
index 03a750b59d..0000000000
--- a/types/element-ready/index.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-// Type definitions for element-ready 2.1
-// Project: https://github.com/sindresorhus/element-ready#readme
-// Definitions by: BendingBender
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-import pCancelable = require('p-cancelable');
-
-export = elementReady;
-
-declare function elementReady(selector: string): pCancelable.PCancelable;
diff --git a/types/ember/index.d.ts b/types/ember/index.d.ts
index d7aaa35b36..d048007d8f 100755
--- a/types/ember/index.d.ts
+++ b/types/ember/index.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Ember.js 3.0
+// Type definitions for Ember.js 3.1
// Project: http://emberjs.com/, https://github.com/emberjs/ember
// Definitions by: Jed Mao
// bttf
diff --git a/types/ember/test/helper.ts b/types/ember/test/helper.ts
index 4743841e31..ec4806b18f 100755
--- a/types/ember/test/helper.ts
+++ b/types/ember/test/helper.ts
@@ -14,8 +14,14 @@ class SessionService extends Ember.Service {
currentUser: User;
}
+declare module '@ember/service' {
+ interface Registry {
+ session: SessionService;
+ }
+}
+
const CurrentUserEmailHelper = Ember.Helper.extend({
- session: Ember.inject.service() as Ember.ComputedProperty,
+ session: Ember.inject.service('session'),
onNewUser: Ember.observer('session.currentUser', function(this: Ember.Helper) {
this.recompute();
}),
diff --git a/types/ember__controller/ember__controller-tests.ts b/types/ember__controller/ember__controller-tests.ts
deleted file mode 100644
index 02307f447c..0000000000
--- a/types/ember__controller/ember__controller-tests.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import Controller from '@ember/controller';
-
-Controller.extend ({
- queryParams: ['category'],
- category: null,
- isExpanded: false,
-
- toggleBody() {
- this.toggleProperty('isExpanded');
- }
-});
diff --git a/types/ember__controller/index.d.ts b/types/ember__controller/index.d.ts
index 77522a3b29..5071811a85 100644
--- a/types/ember__controller/index.d.ts
+++ b/types/ember__controller/index.d.ts
@@ -31,9 +31,11 @@ export interface ControllerMixin extends ActionHandler {
export const ControllerMixin: Mixin;
// tslint:disable-next-line:no-empty-interface
export default class Controller extends EmberObject.extend(ControllerMixin) {}
+export function inject(): ComputedProperty & PropertyDecorator;
export function inject(
name: K
-): ComputedProperty;
+): ComputedProperty & PropertyDecorator;
+export function inject(target: object, propertyKey: string | symbol): void;
// A type registry for Ember `Controller`s. Meant to be declaration-merged
// so string lookups resolve to the correct type.
diff --git a/types/ember__controller/test/main.ts b/types/ember__controller/test/main.ts
new file mode 100644
index 0000000000..88722b0909
--- /dev/null
+++ b/types/ember__controller/test/main.ts
@@ -0,0 +1,14 @@
+import Controller, { inject } from "@ember/controller";
+
+Controller.extend({
+ queryParams: ["category"],
+ category: null,
+ isExpanded: false,
+
+ first: inject(),
+ second: inject('second'),
+
+ toggleBody() {
+ this.toggleProperty("isExpanded");
+ }
+});
diff --git a/types/ember__controller/test/octane.ts b/types/ember__controller/test/octane.ts
new file mode 100644
index 0000000000..9d4c73bf8d
--- /dev/null
+++ b/types/ember__controller/test/octane.ts
@@ -0,0 +1,26 @@
+import Controller, { inject } from "@ember/controller";
+
+class FirstController extends Controller {
+ foo = "bar";
+ @inject second: InstanceType;
+ @inject() otherSecond: InstanceType;
+ @inject("second") moreSecond: InstanceType;
+
+ first() {
+ return "";
+ }
+}
+const SecondController = Controller.extend({
+ foo: "bar",
+
+ second() {
+ return "";
+ }
+});
+
+declare module "@ember/controller" {
+ interface Registry {
+ first: FirstController;
+ second: InstanceType;
+ }
+}
diff --git a/types/ember__controller/tsconfig.json b/types/ember__controller/tsconfig.json
index 865ec007ac..5ca97b037a 100644
--- a/types/ember__controller/tsconfig.json
+++ b/types/ember__controller/tsconfig.json
@@ -10,6 +10,7 @@
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
+ "experimentalDecorators": true,
"baseUrl": "../",
"typeRoots": [
"../"
@@ -25,6 +26,7 @@
},
"files": [
"index.d.ts",
- "ember__controller-tests.ts"
+ "test/main.ts",
+ "test/octane.ts"
]
}
diff --git a/types/ember__object/computed.d.ts b/types/ember__object/computed.d.ts
index e63ee86294..8053c5a82a 100644
--- a/types/ember__object/computed.d.ts
+++ b/types/ember__object/computed.d.ts
@@ -1,4 +1,4 @@
-import { computed } from '@ember/object';
+import { computed } from "@ember/object";
/**
* A computed property transforms an objects function into a property.
@@ -36,13 +36,70 @@ export default class ComputedProperty {
meta(): {};
}
-export const alias: typeof computed.alias;
-export const and: typeof computed.and;
-export const bool: typeof computed.bool;
-export const collect: typeof computed.collect;
-export const deprecatingAlias: typeof computed.deprecatingAlias;
-export const empty: typeof computed.empty;
-export const equal: typeof computed.equal;
+/**
+ * Creates a new property that is an alias for another property
+ * on an object. Calls to `get` or `set` this property behave as
+ * though they were called on the original property.
+ */
+export function alias(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+/**
+ * A computed property that performs a logical `and` on the
+ * original values for the provided dependent properties.
+ */
+export function and(
+ ...dependentKeys: string[]
+): ComputedProperty & PropertyDecorator;
+/**
+ * A computed property that converts the provided dependent property
+ * into a boolean value.
+ */
+export function bool(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property that returns the array of values
+ * for the provided dependent properties.
+ */
+export function collect(
+ ...dependentKeys: string[]
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * Creates a new property that is an alias for another property
+ * on an object. Calls to `get` or `set` this property behave as
+ * though they were called on the original property, but also
+ * print a deprecation warning.
+ */
+export function deprecatingAlias(
+ dependentKey: string,
+ options: { id: string; until: string }
+): ComputedProperty & PropertyDecorator;
+/**
+ * @deprecated Missing deprecation options: https://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options
+ */
+export function deprecatingAlias(
+ dependentKey: string,
+ options?: { id?: string; until?: string }
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property that returns true if the value of the dependent
+ * property is null, an empty string, empty array, or empty function.
+ */
+export function empty(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+/**
+ * A computed property that returns true if the provided dependent property
+ * is equal to the given value.
+ */
+export function equal(
+ dependentKey: string,
+ value: any
+): ComputedProperty & PropertyDecorator;
/**
* Expands `pattern`, invoking `callback` for each expansion.
*/
@@ -50,28 +107,213 @@ export function expandProperties(
pattern: string,
callback: (expanded: string) => void
): void;
-export const filter: typeof computed.filter;
-export const filterBy: typeof computed.filterBy;
-export const gt: typeof computed.gt;
-export const gte: typeof computed.gte;
-export const intersect: typeof computed.intersect;
-export const lt: typeof computed.lt;
-export const lte: typeof computed.lte;
-export const map: typeof computed.map;
-export const mapBy: typeof computed.mapBy;
-export const match: typeof computed.match;
-export const max: typeof computed.max;
-export const min: typeof computed.min;
-export const none: typeof computed.none;
-export const not: typeof computed.not;
-export const notEmpty: typeof computed.notEmpty;
-export const oneWay: typeof computed.oneWay;
-export const or: typeof computed.or;
-export const readOnly: typeof computed.readOnly;
-export const reads: typeof computed.reads;
-export const setDiff: typeof computed.setDiff;
-export const sort: typeof computed.sort;
-export const sum: typeof computed.sum;
-export const union: typeof computed.union;
-export const uniq: typeof computed.uniq;
-export const uniqBy: typeof computed.uniqBy;
+
+/**
+ * Filters the array by the callback.
+ */
+export function filter(
+ dependentKey: string,
+ callback: (value: any, index: number, array: any[]) => boolean
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * Filters the array by the property and value
+ */
+export function filterBy(
+ dependentKey: string,
+ propertyKey: string,
+ value?: any
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property that returns true if the provided dependent property
+ * is greater than the provided value.
+ */
+export function gt(
+ dependentKey: string,
+ value: number
+): ComputedProperty & PropertyDecorator;
+/**
+ * A computed property that returns true if the provided dependent property
+ * is greater than or equal to the provided value.
+ */
+export function gte(
+ dependentKey: string,
+ value: number
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property which returns a new array with all the elements
+ * two or more dependent arrays have in common.
+ */
+export function intersect(
+ ...propertyKeys: string[]
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property that returns true if the provided dependent property
+ * is less than the provided value.
+ */
+export function lt(
+ dependentKey: string,
+ value: number
+): ComputedProperty & PropertyDecorator;
+/**
+ * A computed property that returns true if the provided dependent property
+ * is less than or equal to the provided value.
+ */
+export function lte(
+ dependentKey: string,
+ value: number
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * Returns an array mapped via the callback
+ */
+export function map(
+ dependentKey: string,
+ callback: (value: any, index: number, array: any[]) => U
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * Returns an array mapped to the specified key.
+ */
+export function mapBy(
+ dependentKey: string,
+ propertyKey: string
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property which matches the original value for the
+ * dependent property against a given RegExp, returning `true`
+ * if the value matches the RegExp and `false` if it does not.
+ */
+export function match(
+ dependentKey: string,
+ regexp: RegExp
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property that calculates the maximum value in the
+ * dependent array. This will return `-Infinity` when the dependent
+ * array is empty.
+ */
+export function max(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property that calculates the minimum value in the
+ * dependent array. This will return `Infinity` when the dependent
+ * array is empty.
+ */
+export function min(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property that returns true if the value of the dependent
+ * property is null or undefined. This avoids errors from JSLint complaining
+ * about use of ==, which can be technically confusing.
+ */
+export function none(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+/**
+ * A computed property that returns the inverse boolean value
+ * of the original value for the dependent property.
+ */
+export function not(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+/**
+ * A computed property that returns true if the value of the dependent
+ * property is NOT null, an empty string, empty array, or empty function.
+ */
+export function notEmpty(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+/**
+ * Where `computed.alias` aliases `get` and `set`, and allows for bidirectional
+ * data flow, `computed.oneWay` only provides an aliased `get`. The `set` will
+ * not mutate the upstream property, rather causes the current property to
+ * become the value set. This causes the downstream property to permanently
+ * diverge from the upstream property.
+ */
+export function oneWay(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+/**
+ * A computed property which performs a logical `or` on the
+ * original values for the provided dependent properties.
+ */
+export function or(
+ ...dependentKeys: string[]
+): ComputedProperty & PropertyDecorator;
+/**
+ * Where `computed.oneWay` provides oneWay bindings, `computed.readOnly` provides
+ * a readOnly one way binding. Very often when using `computed.oneWay` one does
+ * not also want changes to propagate back up, as they will replace the value.
+ */
+export function readOnly(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+/**
+ * This is a more semantically meaningful alias of `computed.oneWay`,
+ * whose name is somewhat ambiguous as to which direction the data flows.
+ */
+export function reads(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property which returns a new array with all the
+ * properties from the first dependent array that are not in the second
+ * dependent array.
+ */
+export function setDiff(
+ setAProperty: string,
+ setBProperty: string
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property which returns a new array with all the
+ * properties from the first dependent array sorted based on a property
+ * or sort function.
+ */
+export function sort(
+ itemsKey: string,
+ sortDefinition: string | ((itemA: any, itemB: any) => number)
+): ComputedProperty & PropertyDecorator;
+/**
+ * A computed property that returns the sum of the values
+ * in the dependent array.
+ */
+export function sum(
+ dependentKey: string
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property which returns a new array with all the unique
+ * elements from one or more dependent arrays.
+ */
+export function uniq(
+ propertyKey: string
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property which returns a new array with all the unique
+ * elements from one or more dependent arrays.
+ */
+export function union(
+ ...propertyKeys: string[]
+): ComputedProperty & PropertyDecorator;
+
+/**
+ * A computed property which returns a new array with all the unique
+ * elements from an array, with uniqueness determined by specific key.
+ */
+export function uniqBy(
+ dependentKey: string,
+ propertyKey: string
+): ComputedProperty & PropertyDecorator;
diff --git a/types/ember__object/index.d.ts b/types/ember__object/index.d.ts
index f287a51a90..fb5a76efd2 100644
--- a/types/ember__object/index.d.ts
+++ b/types/ember__object/index.d.ts
@@ -1,19 +1,20 @@
-// Type definitions for non-npm package @ember/object 3.0
+// Type definitions for non-npm package @ember/object 3.1
// Project: https://emberjs.com/api/ember/3.4/modules/@ember%2Fobject
// Definitions by: Mike North
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
-import CoreObject from '@ember/object/core';
-import Observable from '@ember/object/observable';
+import CoreObject from "@ember/object/core";
+import Observable from "@ember/object/observable";
import {
ComputedPropertyCallback,
UnwrapComputedPropertyGetter,
UnwrapComputedPropertySetter,
UnwrapComputedPropertyGetters,
- UnwrapComputedPropertySetters
-} from '@ember/object/-private/types';
-import ComputedProperty from '@ember/object/computed';
+ UnwrapComputedPropertySetters,
+ ExtractPropertyNamesOfType
+} from "@ember/object/-private/types";
+import ComputedProperty, * as ComputedNamespace from "@ember/object/computed";
/**
* `Ember.Object` is the main base class for all Ember objects. It is a subclass
@@ -21,252 +22,96 @@ import ComputedProperty from '@ember/object/computed';
* see the documentation for each of these.
*/
export default class EmberObject extends CoreObject.extend(Observable) {}
+declare function computed(...deps: string[]): (target: object, propertyKey: string) => void;
+declare function computed(
+ cb: ComputedPropertyCallback
+): ComputedProperty;
+declare function computed(
+ k1: string,
+ cb: ComputedPropertyCallback
+): ComputedProperty;
+declare function computed(
+ k1: string,
+ k2: string,
+ cb: ComputedPropertyCallback
+): ComputedProperty;
+declare function computed(
+ k1: string,
+ k2: string,
+ k3: string,
+ cb: ComputedPropertyCallback
+): ComputedProperty;
+declare function computed(
+ k1: string,
+ k2: string,
+ k3: string,
+ k4: string,
+ cb: ComputedPropertyCallback
+): ComputedProperty;
+declare function computed(
+ k1: string,
+ k2: string,
+ k3: string,
+ k4: string,
+ k5: string,
+ cb: ComputedPropertyCallback
+): ComputedProperty;
+declare function computed(
+ k1: string,
+ k2: string,
+ k3: string,
+ k4: string,
+ k5: string,
+ k6: string,
+ cb: ComputedPropertyCallback
+): ComputedProperty;
+declare function computed(
+ k1: string,
+ k2: string,
+ k3: string,
+ k4: string,
+ k5: string,
+ k6: string,
+ k7: string,
+ ...rest: any[]
+): ComputedProperty;
-export const computed: {
- (cb: ComputedPropertyCallback): ComputedProperty;
- (k1: string, cb: ComputedPropertyCallback): ComputedProperty;
- (
- k1: string,
- k2: string,
- cb: ComputedPropertyCallback
- ): ComputedProperty;
- (
- k1: string,
- k2: string,
- k3: string,
- cb: ComputedPropertyCallback
- ): ComputedProperty;
- (
- k1: string,
- k2: string,
- k3: string,
- k4: string,
- cb: ComputedPropertyCallback
- ): ComputedProperty;
- (
- k1: string,
- k2: string,
- k3: string,
- k4: string,
- k5: string,
- cb: ComputedPropertyCallback
- ): ComputedProperty;
- (
- k1: string,
- k2: string,
- k3: string,
- k4: string,
- k5: string,
- k6: string,
- cb: ComputedPropertyCallback
- ): ComputedProperty;
- (
- k1: string,
- k2: string,
- k3: string,
- k4: string,
- k5: string,
- k6: string,
- k7: string,
- ...rest: any[]
- ): ComputedProperty;
+declare namespace computed {
+ const empty: typeof ComputedNamespace.empty;
+ const notEmpty: typeof ComputedNamespace.notEmpty;
+ const none: typeof ComputedNamespace.none;
+ const not: typeof ComputedNamespace.not;
+ const bool: typeof ComputedNamespace.bool;
+ const match: typeof ComputedNamespace.match;
+ const equal: typeof ComputedNamespace.equal;
+ const gt: typeof ComputedNamespace.gt;
+ const gte: typeof ComputedNamespace.gte;
+ const lt: typeof ComputedNamespace.lt;
+ const lte: typeof ComputedNamespace.lte;
+ const and: typeof ComputedNamespace.and;
+ const or: typeof ComputedNamespace.or;
+ const alias: typeof ComputedNamespace.alias;
+ const oneWay: typeof ComputedNamespace.oneWay;
+ const reads: typeof ComputedNamespace.reads;
+ const readOnly: typeof ComputedNamespace.readOnly;
+ const deprecatingAlias: typeof ComputedNamespace.deprecatingAlias;
+ const sum: typeof ComputedNamespace.sum;
+ const max: typeof ComputedNamespace.max;
+ const min: typeof ComputedNamespace.min;
+ const map: typeof ComputedNamespace.map;
+ const mapBy: typeof ComputedNamespace.mapBy;
+ const filter: typeof ComputedNamespace.filter;
+ const filterBy: typeof ComputedNamespace.filterBy;
+ const uniq: typeof ComputedNamespace.uniq;
+ const uniqBy: typeof ComputedNamespace.uniqBy;
+ const union: typeof ComputedNamespace.union;
+ const intersect: typeof ComputedNamespace.intersect;
+ const setDiff: typeof ComputedNamespace.setDiff;
+ const collect: typeof ComputedNamespace.collect;
+ const sort: typeof ComputedNamespace.sort;
+}
- /**
- * A computed property that returns true if the value of the dependent
- * property is null, an empty string, empty array, or empty function.
- */
- empty(dependentKey: string): ComputedProperty;
- /**
- * A computed property that returns true if the value of the dependent
- * property is NOT null, an empty string, empty array, or empty function.
- */
- notEmpty(dependentKey: string): ComputedProperty;
- /**
- * A computed property that returns true if the value of the dependent
- * property is null or undefined. This avoids errors from JSLint complaining
- * about use of ==, which can be technically confusing.
- */
- none(dependentKey: string): ComputedProperty;
- /**
- * A computed property that returns the inverse boolean value
- * of the original value for the dependent property.
- */
- not(dependentKey: string): ComputedProperty;
- /**
- * A computed property that converts the provided dependent property
- * into a boolean value.
- */
- bool(dependentKey: string): ComputedProperty;
- /**
- * A computed property which matches the original value for the
- * dependent property against a given RegExp, returning `true`
- * if the value matches the RegExp and `false` if it does not.
- */
- match(dependentKey: string, regexp: RegExp): ComputedProperty;
- /**
- * A computed property that returns true if the provided dependent property
- * is equal to the given value.
- */
- equal(dependentKey: string, value: any): ComputedProperty;
- /**
- * A computed property that returns true if the provided dependent property
- * is greater than the provided value.
- */
- gt(dependentKey: string, value: number): ComputedProperty;
- /**
- * A computed property that returns true if the provided dependent property
- * is greater than or equal to the provided value.
- */
- gte(dependentKey: string, value: number): ComputedProperty;
- /**
- * A computed property that returns true if the provided dependent property
- * is less than the provided value.
- */
- lt(dependentKey: string, value: number): ComputedProperty;
- /**
- * A computed property that returns true if the provided dependent property
- * is less than or equal to the provided value.
- */
- lte(dependentKey: string, value: number): ComputedProperty;
- /**
- * A computed property that performs a logical `and` on the
- * original values for the provided dependent properties.
- */
- and(...dependentKeys: string[]): ComputedProperty;
- /**
- * A computed property which performs a logical `or` on the
- * original values for the provided dependent properties.
- */
- or(...dependentKeys: string[]): ComputedProperty;
- /**
- * Creates a new property that is an alias for another property
- * on an object. Calls to `get` or `set` this property behave as
- * though they were called on the original property.
- */
- alias(dependentKey: string): ComputedProperty;
- /**
- * Where `computed.alias` aliases `get` and `set`, and allows for bidirectional
- * data flow, `computed.oneWay` only provides an aliased `get`. The `set` will
- * not mutate the upstream property, rather causes the current property to
- * become the value set. This causes the downstream property to permanently
- * diverge from the upstream property.
- */
- oneWay(dependentKey: string): ComputedProperty;
- /**
- * This is a more semantically meaningful alias of `computed.oneWay`,
- * whose name is somewhat ambiguous as to which direction the data flows.
- */
- reads(dependentKey: string): ComputedProperty;
- /**
- * Where `computed.oneWay` provides oneWay bindings, `computed.readOnly` provides
- * a readOnly one way binding. Very often when using `computed.oneWay` one does
- * not also want changes to propagate back up, as they will replace the value.
- */
- readOnly(dependentKey: string): ComputedProperty;
- /**
- * Creates a new property that is an alias for another property
- * on an object. Calls to `get` or `set` this property behave as
- * though they were called on the original property, but also
- * print a deprecation warning.
- */
- deprecatingAlias(
- dependentKey: string,
- options: { id: string; until: string }
- ): ComputedProperty;
- /**
- * @deprecated Missing deprecation options: https://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options
- */
- deprecatingAlias(
- dependentKey: string,
- options?: { id?: string; until?: string }
- ): ComputedProperty;
- /**
- * A computed property that returns the sum of the values
- * in the dependent array.
- */
- sum(dependentKey: string): ComputedProperty;
- /**
- * A computed property that calculates the maximum value in the
- * dependent array. This will return `-Infinity` when the dependent
- * array is empty.
- */
- max(dependentKey: string): ComputedProperty;
- /**
- * A computed property that calculates the minimum value in the
- * dependent array. This will return `Infinity` when the dependent
- * array is empty.
- */
- min(dependentKey: string): ComputedProperty;
- /**
- * Returns an array mapped via the callback
- */
- map(
- dependentKey: string,
- callback: (value: any, index: number, array: any[]) => U
- ): ComputedProperty;
- /**
- * Returns an array mapped to the specified key.
- */
- mapBy(dependentKey: string, propertyKey: string): ComputedProperty;
- /**
- * Filters the array by the callback.
- */
- filter(
- dependentKey: string,
- callback: (value: any, index: number, array: any[]) => boolean
- ): ComputedProperty;
- /**
- * Filters the array by the property and value
- */
- filterBy(
- dependentKey: string,
- propertyKey: string,
- value?: any
- ): ComputedProperty;
- /**
- * A computed property which returns a new array with all the unique
- * elements from one or more dependent arrays.
- */
- uniq(propertyKey: string): ComputedProperty;
- /**
- * A computed property which returns a new array with all the unique
- * elements from an array, with uniqueness determined by specific key.
- */
- uniqBy(dependentKey: string, propertyKey: string): ComputedProperty;
- /**
- * A computed property which returns a new array with all the unique
- * elements from one or more dependent arrays.
- */
- union(...propertyKeys: string[]): ComputedProperty;
- /**
- * A computed property which returns a new array with all the elements
- * two or more dependent arrays have in common.
- */
- intersect(...propertyKeys: string[]): ComputedProperty;
- /**
- * A computed property which returns a new array with all the
- * properties from the first dependent array that are not in the second
- * dependent array.
- */
- setDiff(
- setAProperty: string,
- setBProperty: string
- ): ComputedProperty;
- /**
- * A computed property that returns the array of values
- * for the provided dependent properties.
- */
- collect(...dependentKeys: string[]): ComputedProperty;
- /**
- * A computed property which returns a new array with all the
- * properties from the first dependent array sorted based on a property
- * or sort function.
- */
- sort(
- itemsKey: string,
- sortDefinition: string | ((itemA: any, itemB: any) => number)
- ): ComputedProperty;
-};
+export { computed };
/**
* Specify a method that observes property changes.
*/
@@ -387,7 +232,9 @@ export function defineProperty(
export function notifyPropertyChange(obj: object, keyName: string): void;
-declare module '@ember/utils/-private/types' {
+export const action: MethodDecorator;
+
+declare module "@ember/utils/-private/types" {
interface TypeLookup {
class: typeof EmberObject;
instance: EmberObject;
diff --git a/types/ember__object/test/octane.ts b/types/ember__object/test/octane.ts
new file mode 100644
index 0000000000..d475cab777
--- /dev/null
+++ b/types/ember__object/test/octane.ts
@@ -0,0 +1,217 @@
+import { action, computed, default as EmberObject } from "@ember/object";
+import {
+ alias,
+ and,
+ bool,
+ collect,
+ deprecatingAlias,
+ empty,
+ equal,
+ filter,
+ filterBy,
+ gt,
+ gte,
+ intersect,
+ lt,
+ lte,
+ map,
+ mapBy,
+ match,
+ max,
+ min,
+ none,
+ not,
+ notEmpty,
+ oneWay,
+ or,
+ readOnly,
+ reads,
+ setDiff,
+ sort,
+ sum,
+ union,
+ uniq,
+ uniqBy
+} from "@ember/object/computed";
+
+// Native class syntax
+class Foo extends EmberObject {
+ firstName: string;
+ lastName: string;
+
+ @action // $ExpectError
+ bar: string;
+
+ @computed("firstName", "lastName")
+ get fullName() {
+ return `${this.firstName} ${this.lastName}`;
+ }
+
+ @action
+ foo() {}
+}
+
+// Computed property macros
+
+class Bar extends EmberObject {
+ firstName: string;
+ last: string;
+
+ values: number[];
+
+ @alias aliasTest0: string; // $ExpectError
+ @alias() aliasTest1: string; // $ExpectError
+ @alias("firstName") aliasTest2: string;
+
+ @and andTest0: boolean; // $ExpectError
+ @and() andTest1: boolean;
+ @and("firstName") andTest2: boolean;
+ @and("firstName", "lastName") andTest3: boolean;
+
+ @bool boolTest0: boolean; // $ExpectError
+ @bool() boolTest1: boolean; // $ExpectError
+ @bool("firstName") boolTest2: boolean;
+
+ @collect collectTest0: any; // $ExpectError
+ @collect() collectTest1: any;
+ @collect("firstName") collectTest2: any;
+
+ @deprecatingAlias deprecatingAliasTest0: string; // $ExpectError
+ @deprecatingAlias() deprecatingAliasTest1: string; // $ExpectError
+ @deprecatingAlias("firstName") deprecatingAliasTest2: string;
+
+ @empty emptyTest0: boolean; // $ExpectError
+ @empty() emptyTest1: boolean; // $ExpectError
+ @empty("firstName") emptyTest2: boolean;
+
+ @equal equalTest0: boolean; // $ExpectError
+ @equal() equalTest1: boolean; // $ExpectError
+ @equal("firstName") equalTest2: boolean; // $ExpectError
+ @equal("firstName", "lastName") equalTest3: boolean;
+
+ @filter filterTest1: string[]; // $ExpectError
+ @filter() filterTest2: string[]; // $ExpectError
+ @filter("firstName") filterTest3: string[]; // $ExpectError
+ @filter("firstName", x => x) filterTest4: string[];
+
+ @filterBy filterByTest1: any[]; // $ExpectError
+ @filterBy() filterByTest2: any[]; // $ExpectError
+ @filterBy("firstName") filterByTest3: any[]; // $ExpectError
+ @filterBy("firstName", "id") filterByTest4: any[];
+
+ @gt gtTest1: boolean; // $ExpectError
+ @gt() gtTest2: boolean; // $ExpectError
+ @gt("firstName") gtTest3: boolean; // $ExpectError
+ @gt("firstName", 3) gtTest4: boolean;
+
+ @gte gteTest1: boolean; // $ExpectError
+ @gte() gteTest2: boolean; // $ExpectError
+ @gte("firstName") gteTest3: boolean; // $ExpectError
+ @gte("firstName", 3) gteTest4: boolean;
+
+ @intersect intersectTest1: any; // $ExpectError
+ @intersect() intersectTest2: any;
+ @intersect("firstName") intersectTest3: any;
+ @intersect("firstName", "lastName") intersectTest4: any;
+
+ @lt ltTest1: boolean; // $ExpectError
+ @lt() ltTest2: boolean; // $ExpectError
+ @lt("firstName") ltTest3: boolean; // $ExpectError
+ @lt("firstName", 3) ltTest4: boolean;
+
+ @lte lteTest1: boolean; // $ExpectError
+ @lte() lteTest2: boolean; // $ExpectError
+ @lte("firstName") lteTest3: boolean; // $ExpectError
+ @lte("firstName", 3) lteTest4: boolean;
+
+ @map mapTest1: string[]; // $ExpectError
+ @map() mapTest2: string[]; // $ExpectError
+ @map("firstName") mapTest3: string[]; // $ExpectError
+ @map("firstName", x => x) mapTest4: string[];
+
+ @mapBy mapByTest1: any[]; // $ExpectError
+ @mapBy() mapByTest2: any[]; // $ExpectError
+ @mapBy("firstName") mapByTest3: any[]; // $ExpectError
+ @mapBy("firstName", "id") mapByTest4: any[];
+
+ @match matchTest1: boolean; // $ExpectError
+ @match() matchTest2: boolean; // $ExpectError
+ @match("firstName") matchTest3: boolean; // $ExpectError
+ @match("firstName", "abc") matchTest4: boolean; // $ExpectError
+ @match("firstName", /\s+/) matchTest5: boolean;
+
+ @max maxTest1: number; // $ExpectError
+ @max() maxTest2: number; // $ExpectError
+ @max("values") maxTest3: number;
+ @max("values", "a") maxTest4: number; // $ExpectError
+
+ @min minTest1: number; // $ExpectError
+ @min() minTest2: number; // $ExpectError
+ @min("values") minTest3: number;
+ @min("values", "a") minTest4: number; // $ExpectError
+
+ @none noneTest1: number; // $ExpectError
+ @none() noneTest2: number; // $ExpectError
+ @none("values") noneTest3: number;
+ @none("values", "a") noneTest4: number; // $ExpectError
+
+ @not notTest1: number; // $ExpectError
+ @not() notTest2: number; // $ExpectError
+ @not("values") notTest3: number;
+ @not("values", "a") notTest4: number; // $ExpectError
+
+ @notEmpty notEmptyTest1: boolean; // $ExpectError
+ @notEmpty() notEmptyTest2: boolean; // $ExpectError
+ @notEmpty("firstName") notEmptyTest3: boolean;
+ @notEmpty("firstName", "a") notEmptyTest4: boolean; // $ExpectError
+
+ @oneWay oneWayTest1: boolean; // $ExpectError
+ @oneWay() oneWayTest2: boolean; // $ExpectError
+ @oneWay("firstName") oneWayTest3: boolean;
+ @oneWay("firstName", "b") oneWayTest4: boolean; // $ExpectError
+
+ @or orTest1: boolean; // $ExpectError
+ @or() orTest2: boolean;
+ @or("firstName") orTest3: boolean;
+ @or("firstName", "lastName") orTest4: boolean;
+
+ @readOnly readOnlyTest1: boolean; // $ExpectError
+ @readOnly() readOnlyTest2: boolean; // $ExpectError
+ @readOnly("firstName") readOnlyTest3: boolean;
+
+ @reads readsTest1: boolean; // $ExpectError
+ @reads() readsTest2: boolean; // $ExpectError
+ @reads("firstName") readsTest3: boolean;
+ @reads("firstName", "a") readsTest4: boolean; // $ExpectError
+
+ @setDiff setDiffTest1: number; // $ExpectError
+ @setDiff() setDiffTest2: number; // $ExpectError
+ @setDiff("values") setDiffTest3: number; // $ExpectError
+ @setDiff("values", "otherThing") setDiffTest4: number;
+ @setDiff("values", "otherThing", "a") setDiffTest5: number; // $ExpectError
+
+ @sort sortTest1: number; // $ExpectError
+ @sort() sortTest2: number; // $ExpectError
+ @sort("values") sortTest3: number; // $ExpectError
+ @sort("values", "id") sortTest4: number;
+ @sort("values", "id", "a") sortTest5: number; // $ExpectError
+ @sort("values", (a, b) => a - b) sortTest6: number;
+
+ @sum sumTest1: number; // $ExpectError
+ @sum() sumTest2: number; // $ExpectError
+ @sum("values") sumTest3: number;
+
+ @union unionTest1: any; // $ExpectError
+ @union() unionTest2: any;
+ @union("firstName") unionTest3: any;
+ @union("firstName", "lastName") unionTest4: any;
+
+ @uniq uniqTest1: number; // $ExpectError
+ @uniq() uniqTest2: number; // $ExpectError
+ @uniq("values") uniqTest3: number;
+
+ @uniqBy uniqByTest1: number; // $ExpectError
+ @uniqBy() uniqByTest2: number; // $ExpectError
+ @uniqBy("values") uniqByTest3: number; // $ExpectError
+ @uniqBy("values", "id") uniqByTest4: number;
+}
diff --git a/types/ember__object/tsconfig.json b/types/ember__object/tsconfig.json
index deeb128e7b..5f6af3fbda 100644
--- a/types/ember__object/tsconfig.json
+++ b/types/ember__object/tsconfig.json
@@ -11,6 +11,7 @@
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../",
+ "experimentalDecorators": true,
"typeRoots": [
"../"
],
@@ -49,6 +50,7 @@
"test/extend.ts",
"test/object.ts",
"test/observable.ts",
+ "test/octane.ts",
"test/proxy.ts",
"test/reopen.ts"
]
diff --git a/types/ember__service/ember__service-tests.ts b/types/ember__service/ember__service-tests.ts
deleted file mode 100644
index ee2e39823c..0000000000
--- a/types/ember__service/ember__service-tests.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import Service, { inject } from "@ember/service";
-import EmberObject from "@ember/object";
-
-class FirstSvc extends Service {
- foo = 'bar';
- first() { return ''; }
-}
-const SecondSvc = Service.extend({
- foo: 'bar',
- second() { return ''; }
-});
-
-class ThirdSvc extends Service.extend({
- foo: 'bar',
- third() { return ''; }
-}) { }
-
-declare module '@ember/service' {
- interface Registry {
- first: FirstSvc;
- second: InstanceType;
- third: ThirdSvc;
- }
-}
-
-const ServiceTriplet = EmberObject.extend({
- sFirst: inject('first'),
- sSecond: inject('second'),
- sThird: inject('third'),
- unknownService: inject()
-});
-
-const obj = ServiceTriplet.create();
-
-obj.get('sFirst'); // $ExpectType FirstSvc
-obj.get('sSecond').second(); // $ExpectType ""
-obj.get('sThird'); // $ExpectType ThirdSvc
-obj.get('unknownService'); // $ExpectType Service
diff --git a/types/ember__service/index.d.ts b/types/ember__service/index.d.ts
index 45918f4bbb..416d705940 100644
--- a/types/ember__service/index.d.ts
+++ b/types/ember__service/index.d.ts
@@ -12,10 +12,9 @@ export default class Service extends EmberObject {}
* Creates a property that lazily looks up a service in the container. There
* are no restrictions as to what objects a service can be injected into.
*/
-export function inject(): ComputedProperty;
-export function inject(
- name: K
-): ComputedProperty;
+export function inject(): PropertyDecorator & ComputedProperty; // @inject() foo, foo: inject()
+export function inject(target: object, propertyKey: string | symbol): void; // @inject foo
+export function inject(name: K): PropertyDecorator & ComputedProperty; // @inject('store') foo @inject() foo
// A type registry for Ember `Service`s. Meant to be declaration-merged so
// string lookups resolve to the correct type.
diff --git a/types/ember__service/test/main.ts b/types/ember__service/test/main.ts
new file mode 100644
index 0000000000..862f499b89
--- /dev/null
+++ b/types/ember__service/test/main.ts
@@ -0,0 +1,44 @@
+import Service, { inject } from "@ember/service";
+import EmberObject from "@ember/object";
+
+class FirstSvc extends Service {
+ foo = "bar";
+ first() {
+ return "";
+ }
+}
+const SecondSvc = Service.extend({
+ foo: "bar",
+ second() {
+ return "";
+ }
+});
+
+class ThirdSvc extends Service.extend({
+ foo: "bar",
+ third() {
+ return "";
+ }
+}) {}
+
+declare module "@ember/service" {
+ interface Registry {
+ first: FirstSvc;
+ second: InstanceType;
+ third: ThirdSvc;
+ }
+}
+
+const ServiceTriplet = EmberObject.extend({
+ sFirst: inject("first"),
+ sSecond: inject("second"),
+ sThird: inject("third"),
+ unknownService: inject()
+});
+
+const obj = ServiceTriplet.create();
+
+obj.get("sFirst"); // $ExpectType FirstSvc
+obj.get("sSecond").second(); // $ExpectType ""
+obj.get("sThird"); // $ExpectType ThirdSvc
+obj.get("unknownService"); // $ExpectType Service
diff --git a/types/ember__service/test/octane.ts b/types/ember__service/test/octane.ts
new file mode 100644
index 0000000000..c6971e98e4
--- /dev/null
+++ b/types/ember__service/test/octane.ts
@@ -0,0 +1,28 @@
+import Service, { inject } from "@ember/service";
+import EmberObject from "@ember/object";
+
+class FirstSvc extends Service {
+ foo = "bar";
+ first() {
+ return "";
+ }
+}
+const SecondSvc = Service.extend({
+ foo: "bar",
+ second() {
+ return "";
+ }
+});
+
+declare module "@ember/service" {
+ interface Registry {
+ first: FirstSvc;
+ second: InstanceType;
+ }
+}
+
+class Foo extends EmberObject {
+ @inject foo: FirstSvc;
+ @inject("first") baz: FirstSvc;
+ @inject() bar: FirstSvc;
+}
diff --git a/types/ember__service/tsconfig.json b/types/ember__service/tsconfig.json
index f1cfe16ca1..1df951cc8a 100644
--- a/types/ember__service/tsconfig.json
+++ b/types/ember__service/tsconfig.json
@@ -10,6 +10,7 @@
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
+ "experimentalDecorators": true,
"baseUrl": "../",
"typeRoots": [
"../"
@@ -25,6 +26,7 @@
},
"files": [
"index.d.ts",
- "ember__service-tests.ts"
+ "test/main.ts",
+ "test/octane.ts"
]
}
diff --git a/types/express-serve-static-core/index.d.ts b/types/express-serve-static-core/index.d.ts
index 773a1e065b..a6ec840ff4 100644
--- a/types/express-serve-static-core/index.d.ts
+++ b/types/express-serve-static-core/index.d.ts
@@ -507,8 +507,7 @@ export interface Response extends http.ServerResponse, Express.Response {
* res.send(new Buffer('wahoo'));
* res.send({ some: 'json' });
* res.send('some html
');
- * res.send(404, 'Sorry, cant find that');
- * res.send(404);
+ * res.status(404).send('Sorry, cant find that');
*/
send: Send;
@@ -519,8 +518,8 @@ export interface Response extends http.ServerResponse, Express.Response {
*
* res.json(null);
* res.json({ user: 'tj' });
- * res.json(500, 'oh noes!');
- * res.json(404, 'I dont have that');
+ * res.status(500).json('oh noes!');
+ * res.status(404).json('I dont have that');
*/
json: Send;
@@ -531,8 +530,8 @@ export interface Response extends http.ServerResponse, Express.Response {
*
* res.jsonp(null);
* res.jsonp({ user: 'tj' });
- * res.jsonp(500, 'oh noes!');
- * res.jsonp(404, 'I dont have that');
+ * res.status(500).jsonp('oh noes!');
+ * res.status(404).jsonp('I dont have that');
*/
jsonp: Send;
diff --git a/types/fabric/fabric-impl.d.ts b/types/fabric/fabric-impl.d.ts
index 4e7fec0258..5b2a7c13af 100644
--- a/types/fabric/fabric-impl.d.ts
+++ b/types/fabric/fabric-impl.d.ts
@@ -2144,12 +2144,6 @@ export class ActiveSelection {
* active object. no events fired.
*/
toGroup(): Group;
- /**
- * If returns true, deselection is cancelled.
- * @since 2.0.0
- * @return {Boolean} [cancel]
- */
- onDeselect(): boolean;
/**
* Returns {@link fabric.ActiveSelection} instance from an object representation
* @memberOf fabric.ActiveSelection
@@ -3500,8 +3494,9 @@ export class Object {
/**
* This callback function is called every time _discardActiveObject or _setActiveObject
* try to to deselect this object. If the function returns true, the process is cancelled
+ * @return {Boolean} true to cancel selection
*/
- onDeselect(): void;
+ onDeselect(options: { e?: Event, object?: Object }): boolean;
/**
* This callback function is called every time _discardActiveObject or _setActiveObject
* try to to select this object. If the function returns true, the process is cancelled
@@ -4137,7 +4132,6 @@ export class IText extends Text {
* Initializes all the interactive behavior of IText
*/
initBehavior(): void;
- onDeselect(): void;
/**
* Initializes "added" event handler
*/
diff --git a/types/filenamify-url/filenamify-url-tests.ts b/types/filenamify-url/filenamify-url-tests.ts
deleted file mode 100644
index 2a575c9267..0000000000
--- a/types/filenamify-url/filenamify-url-tests.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import filenamifyUrl = require("filenamify-url");
-
-filenamifyUrl("http://sindresorhus.com/foo?bar=baz");
-
-filenamifyUrl("http://sindresorhus.com/foo", { replacement: "🐴" });
-
-filenamifyUrl.path("https://sindresorhus.com");
diff --git a/types/filenamify-url/index.d.ts b/types/filenamify-url/index.d.ts
deleted file mode 100644
index 24dc581717..0000000000
--- a/types/filenamify-url/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-// Type definitions for filenamify-url 1.0
-// Project: https://github.com/sindresorhus/filenamify-url
-// Definitions by: Carlos Precioso
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-import * as filenamifyUrl from "filenamify";
-export = filenamifyUrl;
diff --git a/types/filenamify/filenamify-tests.ts b/types/filenamify/filenamify-tests.ts
deleted file mode 100644
index 54c92cdd87..0000000000
--- a/types/filenamify/filenamify-tests.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import filenamify = require('filenamify');
-
-filenamify('');
-// => 'foo!bar'
-
-filenamify('foo:"bar"', {replacement: '🐴'});
-// => 'foo🐴bar'
-
-filenamify.path('/some/!path');
-// => '/some/path'
diff --git a/types/filenamify/index.d.ts b/types/filenamify/index.d.ts
deleted file mode 100644
index 99eb7f89f7..0000000000
--- a/types/filenamify/index.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-// Type definitions for filenamify 2.0
-// Project: https://github.com/sindresorhus/filenamify
-// Definitions by: Junyoung Choi
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-declare function filenamify(input: string, options?: filenamify.Options): string;
-
-declare namespace filenamify {
- interface Options {
- replacement: string;
- }
- function path(input: string, options?: Options): string;
-}
-
-export = filenamify;
diff --git a/types/fkill/fkill-tests.ts b/types/fkill/fkill-tests.ts
deleted file mode 100644
index 6e2b380a16..0000000000
--- a/types/fkill/fkill-tests.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import fkill = require('fkill');
-
-fkill(1337); // $ExpectType Promise
-fkill('Safari'); // $ExpectType Promise
-fkill([1337, 'Safari', ':8080']); // $ExpectType Promise
diff --git a/types/fkill/index.d.ts b/types/fkill/index.d.ts
deleted file mode 100644
index 4b6663a10c..0000000000
--- a/types/fkill/index.d.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-// Type definitions for fkill 5.3
-// Project: https://github.com/sindresorhus/fkill#readme
-// Definitions by: BendingBender
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-export = fkill;
-
-/**
- * Fabulously kill processes. Cross-platform.
- *
- * @param input One or more process IDs/names/ports to kill.
- * To kill a port, prefix it with a colon. For example: `:8080`.
- */
-declare function fkill(
- input: number | string | Array,
- options?: fkill.Options
-): Promise;
-
-declare namespace fkill {
- interface Options {
- /**
- * Force kill the process.
- * @default false
- */
- force?: boolean;
-
- /**
- * Kill all child processes along with the parent process. *(Windows only)*
- * @default true
- */
- tree?: boolean;
-
- /**
- * Ignore capitalization when killing a process.
- * Note that the case is always ignored on Windows.
- * @default false
- */
- ignoreCase?: boolean;
- }
-}
diff --git a/types/get-res/get-res-tests.ts b/types/get-res/get-res-tests.ts
index d767a6d054..ccb060b0d6 100644
--- a/types/get-res/get-res-tests.ts
+++ b/types/get-res/get-res-tests.ts
@@ -1,3 +1,3 @@
import getRes = require('get-res');
-getRes(); // $ExpectType Promise