diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 930f751c85..df45a8a9e7 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -3,6 +3,7 @@
# See https://github.com/DefinitelyTyped/DefinitelyTyped#edit-an-existing-package
/types/a-big-triangle/ @MathiasPaumgarten
+/types/a11y-dialog/ @Goyatuzo
/types/abbrev/ @BendingBender
/types/abs/ @AyaMorisawa
/types/absolute/ @AyaMorisawa
@@ -15,7 +16,7 @@
/types/ace-diff/ @innovation-team
/types/acl/ @tkQubo
/types/acorn/ @RReverser @e-cloud
-/types/actioncable/ @zhu1230
+/types/actioncable/ @zhu1230 @szechyjs
/types/actions-on-google/ @joelhegg
/types/activedirectory2/ @pasthelod
/types/activex-access/ @zspitz
@@ -52,11 +53,14 @@
/types/aggregate-error/ @BendingBender
/types/agora-rtc-sdk/ @menthays
/types/ajv-errors/ @afshawnlotfi
+/types/ale-url-parser/ @msn0
/types/alertify/ @jjeffery
/types/alexa-sdk/ @petebeegle @hoo29 @pascalwhoop @blforce @rk-7 @alexmalcoci
/types/alexa-voice-service/ @dolanmiu
/types/algebra.js/ @CaselIT
-/types/algoliasearch/ @cbaptiste @haroenv @aherve @samouss
+/types/algoliasearch/ @cbaptiste @haroenv @aherve @samouss @keichinger
+/types/ali-app/ @taoqf
+/types/ali-oss/ @ptrdu
/types/allure-js-commons/ @zaqqaz
/types/almost-equal/ @cmaddalozzo
/types/alt/ @Shearerbeard
@@ -68,7 +72,7 @@
/types/amphtml-validator/ @kevincharm
/types/amplify/ @joeriks
/types/amplify-deferred/ @joeriks @laurentiustamate94
-/types/amplitude-js/ @Asido
+/types/amplitude-js/ @Asido @danmana
/types/amqp/ @seikho @jonnysparkplugs
/types/amqp-connection-manager/ @rogierschouten
/types/amqp-rpc/ @wokim
@@ -149,6 +153,7 @@
/types/animation-frame/ @qinfchen
/types/animejs/ @A-Babin
/types/annyang/ @hisham @theluk
+/types/ansi/ @Gustavo6046
/types/ansi-colors/ @rogierschouten
/types/ansi-escape-sequences/ @aomarks
/types/ansi-escapes/ @jacobbubu
@@ -161,6 +166,7 @@
/types/any-db-transaction/ @rogierschouten
/types/anybar/ @khoomeister
/types/anymatch/ @BendingBender
+/types/aos/ @shermendev
/types/apex.js/ @y13i
/types/aphrodite/ @asvetliakov
/types/api-error-handler/ @tkrotoff
@@ -168,6 +174,7 @@
/types/apigee-access/ @CasperSkydt
/types/apollo-codegen/ @bradleyayers @kostspielig
/types/apollo-upload-client/ @Slessi
+/types/apostrophe/ @afholderman
/types/app-root-dir/ @chenyang-biu
/types/app-root-path/ @shantmarouti
/types/appdmg/ @unindented
@@ -195,18 +202,22 @@
/types/array-sort/ @DanielMSchmidt
/types/array-uniq/ @DanielRosenwasser
/types/array-unique/ @CSLTech
+/types/array.prototype.flatmap/ @hallettj
/types/arrify/ @wanganjun
/types/artillery/ @kmccoan-allocadia
/types/asana/ @tkqubo
/types/asap/ @fpascutti
+/types/ascii-art/ @lukaselmer
/types/ascii2mathml/ @RagibHasin
/types/asenv/ @remisery
/types/asn1js/ @microshine
/types/aspnet-identity-pw/ @jt000
+/types/assert/ @nicoabie
/types/assert-equal-jsx/ @seryl
/types/assert-plus/ @KostyaTretyak
/types/assertsharp/ @brunolm
/types/assets-webpack-plugin/ @kryops
+/types/astring/ @nkappler
/types/async/ @borisyankov @kern0 @Penryn @fenying @pascalmartin
/types/async-cache/ @BendingBender
/types/async-lock/ @elisee @afharo @rhymmor
@@ -214,6 +225,7 @@
/types/async-retry/ @albertywu @MeLlamoPablo
/types/async.nexttick/ @pyrho
/types/asynciterator/ @rubensworks
+/types/athenajs/ @warpdesign
/types/atlaskit__button/ @dijimsta
/types/atlaskit__calendar/ @lstanden
/types/atlaskit__inline-edit/ @lstanden
@@ -227,7 +239,8 @@
/types/atom-mocha-test-runner/ @GlenCFL
/types/atpl/ @soywiz
/types/audiosprite/ @Perlmint
-/types/auth0/ @wbhob @westy92 @amiram
+/types/auth-header/ @ForbesLindesay
+/types/auth0/ @westy92
/types/auth0-angular/ @homesar
/types/auth0-js/v7/ @advancedrei
/types/auth0-js/ @adrianchia @mdurrant @peterblazejewicz
@@ -238,12 +251,12 @@
/types/auto-sni/ @janwo
/types/autobahn/ @darkl @valepu
/types/autolinker/ @leonyu
-/types/autoprefixer/ @odnamrataizem
+/types/autoprefixer/ @odnamrataizem @murt
/types/autosize/ @kingdango @keika299 @NeekSandhu
/types/autosuggest-highlight/ @senukartur
/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
+/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
/types/aws-serverless-express/ @threesquared @jcaffey @mattmeye @albertovasquez
/types/aws4/ @ajcrites
/types/axe-webdriverjs/ @JoshuaKGoldberg
@@ -301,10 +314,11 @@
/types/bases/ @harikv
/types/bash-glob/ @mrmlnc
/types/basic-auth/ @moonpyk @vesse
+/types/basicauth-middleware/ @nchaulet
/types/batch-stream/ @drudge
/types/bazinga-translator/ @alexndlm
/types/bcrypt/ @codeanimal @IOAyman @dstapleton92
-/types/bcryptjs/ @RafaelKr
+/types/bcryptjs/ @RafaelKr @branoholy
/types/bdfjs/ @jeremejevs
/types/beats/ @urish
/types/bech32/ @micksatana
@@ -314,10 +328,10 @@
/types/bencode/ @tobenna
/types/better-curry/ @pocesar
/types/better-queue/ @maozedong
-/types/better-scroll/ @stoneChen
+/types/better-scroll/ @stoneChen @cnjack
/types/better-sqlite3/ @Morfent @matrumz
/types/bezier-easing/ @ptlis
-/types/bezier-js/ @danmarshall
+/types/bezier-js/ @danmarshall @Epskampie
/types/bgiframe/ @sumegizoltan
/types/bidirectional-map/ @helenanderson
/types/big.js/ @nycdotnet @googol
@@ -338,9 +352,8 @@
/types/bitcoinjs-lib/ @mhegazy @dlebrecht @rbuckton @micksatana @youssefgh @kento1218
/types/bitcore-lib/ @lautarodragan
/types/bittorrent-protocol/ @feross @tlaziuk
-/types/bitwise/ @danwbyrne
/types/bitwise-xor/ @rogierschouten
-/types/bl/ @Bartvds
+/types/bl/ @Bartvds @reconbot
/types/blacklist/ @mhegazy
/types/blazy/ @julienpa
/types/blessed/ @brynbellomy @skellock
@@ -371,7 +384,7 @@
/types/boom/ @rogatty @AJamesPhillips @jineshshah36 @TimonVS @danielmachado
/types/bootbox/ @vbortone @konpikwastaken @kanup @icereed @trodi @stannynuytkens @renjfk
/types/bootpag/ @rdeneau
-/types/bootstrap/v3/ @borisyankov
+/types/bootstrap/v3/ @borisyankov @denisname
/types/bootstrap/ @denisname
/types/bootstrap-3-typeahead/ @AndersonFriaca
/types/bootstrap-datepicker/ @borisyankov
@@ -383,6 +396,7 @@
/types/bootstrap-slider/ @dbeckwith @leonard-thieu
/types/bootstrap-switch/ @johnmbaughman
/types/bootstrap-table/ @talatbaig
+/types/bootstrap-toggle/ @gricey432
/types/bootstrap-touchspin/ @albinsunnanbo
/types/bootstrap-treeview/ @jbtronics
/types/bootstrap-validator/ @BradyLiles
@@ -401,6 +415,7 @@
/types/breeze/ @borisyankov
/types/bricks.js/ @kondi
/types/bro-fs/ @ffflorian
+/types/broccoli-plugin/ @dfreeman
/types/brorand/ @chrootsu
/types/browser-bunyan/ @PaulLockwood @kryops
/types/browser-fingerprint/ @LKay
@@ -409,7 +424,7 @@
/types/browser-report/ @JTOne123
/types/browser-resolve/ @marionebl
/types/browser-sync/ @joeskeen @aznnomness
-/types/browserify/ @AndrewGaspar @jvilk @leonard-thieu
+/types/browserify/ @AndrewGaspar @jvilk @leonard-thieu @LinusU
/types/bs58/ @chrootsu
/types/bson/ @horiuchi @CaselIT
/types/btoa/ @johngeorgewright
@@ -423,7 +438,7 @@
/types/bufferstream/ @Bartvds
/types/builtin-modules/ @ajafff
/types/bull/v2/ @bgrieder @JProgrammer
-/types/bull/ @bgrieder @JProgrammer @marshall007 @weeco @blaugold @iamolegga @koblas @bondz @wuha-team @aleccool213
+/types/bull/ @bgrieder @JProgrammer @marshall007 @weeco @blaugold @iamolegga @koblas @bondz @wuha-team @aleccool213 @danmana
/types/bump-regex/ @silkentrance
/types/bunnymq/ @cyrilschumacher
/types/bunyan/ @amikhalev
@@ -439,9 +454,11 @@
/types/byline/ @reppners
/types/bytebuffer/ @cappellin
/types/bytes/ @danny8002 @believer
+/types/bytewise/ @danwbyrne
/types/c3/ @mcliment @gerinjacob @denyo @dmitryshindin @timn
/types/cache-manager/ @GausSim
/types/cal-heatmap/ @RetroChrisB
+/types/caller/ @ignocide
/types/callsite/ @newclear
/types/callsites/ @BendingBender
/types/calq/ @eirikhm
@@ -450,6 +467,7 @@
/types/camelcase-keys/ @mhegazy
/types/camo/ @lucasmciruzzi
/types/cancan/ @Vincent-Pang
+/types/caniuse-api/ @davecardwell
/types/cannon/ @clark-stevenson @Gelio
/types/canvas-confetti/ @matracey
/types/canvas-gauges/ @Mikhus
@@ -475,6 +493,7 @@
/types/chai-datetime/ @cliffburger @mattbishop
/types/chai-dom/ @mattlewis92
/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
@@ -493,7 +512,7 @@
/types/chardet/ @Gebatzens
/types/charm/ @Xananax
/types/charset/ @cspotcode
-/types/chart.js/ @anuti @FabienLavocat @KentarouTakeda @larrybahr @mernen @josefpaij @danmana @guillaume-ro-fr @archy-bold @braincore @gebeto @frabnt @alexdor @mahnuh
+/types/chart.js/ @anuti @FabienLavocat @KentarouTakeda @larrybahr @mernen @josefpaij @danmana @guillaume-ro-fr @archy-bold @braincore @frabnt @alexdor @mahnuh @Conrad777
/types/chartist/ @mtgibbs @psimonski @clottman @affilnost @sunnyrjuneja
/types/chartmogul-node/ @chartmogul
/types/chayns/ @HenningKuehl
@@ -506,6 +525,7 @@
/types/chessboardjs/ @sliverb @davidmpaz
/types/chmodr/ @BendingBender
/types/chokidar/ @reppners @felixfbecker @bayssmekanique
+/types/chordsheetjs/ @adamsbloom
/types/chosen-js/ @borisyankov @denisname
/types/chownr/ @BendingBender
/types/chroma-js/v0/ @invliD
@@ -533,6 +553,7 @@
/types/cleave.js/ @clentfort @jasongi-at-sportsbet @sashashakun
/types/cli/ @kayahr
/types/cli-color/ @ChaosinaCan
+/types/cli-interact/ @ffflorian
/types/cli-progress/ @mhegazy
/types/cli-spinner/ @janslow
/types/cli-table/ @arylo
@@ -573,18 +594,20 @@
/types/color-namer/ @in19farkt
/types/color-string/ @BendingBender @danmarshall
/types/colorbrewer/ @mtraynham
+/types/colresizable/ @gilleswaeber
/types/com.darktalker.cordova.screenshot/ @akarienta
/types/com.wikitude.phonegap.wikitudeplugin/ @zbarbuto
/types/combine-source-map/ @TeamworkGuy2
/types/combined-stream/ @felixge @tlaziuk
/types/combokeys/ @iclanton
-/types/cometd/ @derekcicerone
+/types/cometd/ @derekcicerone @unindented @alxHenry
/types/command-line-args/v4/ @CzBuCHi @75lb
/types/command-line-args/ @75lb
/types/command-line-commands/ @CzBuCHi
/types/command-line-usage/ @matrumz @Dvorsky
/types/commangular/ @hiraash
/types/comment-json/ @Jason3S
+/types/commercetools__enzyme-extensions/ @screendriver
/types/common-errors/ @icopp
/types/common-prefix/ @seangenabe
/types/common-tags/ @zuzusik @tzupengwang
@@ -592,7 +615,7 @@
/types/commonmark/ @nicojs @leonard-thieu
/types/compare-version/ @jpevarnek
/types/compare-versions/ @LogvinovLeon
-/types/complex/ @AyaMorisawa
+/types/complex/ @AyaMorisawa @pavasich
/types/component-emitter/ @psnider
/types/compose-function/ @denis-sokolov
/types/compressible/ @BendingBender
@@ -612,6 +635,7 @@
/types/confit/ @ethanresnick
/types/connect/ @SomaticIT @EvanHahn
/types/connect-busboy/ @pinguet62
+/types/connect-datadog/ @moshegood
/types/connect-ensure-login/ @0x6368656174
/types/connect-flash/ @AndreasGassmann
/types/connect-history-api-fallback/ @douglasduteil
@@ -623,8 +647,10 @@
/types/connect-redis/ @xstoudi @morcerf
/types/connect-slashes/ @samherrmann
/types/connect-timeout/ @cyrilschumacher
+/types/consola/ @Jungwoo-An
/types/console-log-level/ @ofrobots
/types/console-stamp/ @ericbyers @guusdegraeve
+/types/console-ui/ @dfreeman
/types/consolidate/ @soywiz @theosherry @nicolashenry
/types/consul/ @chrootsu
/types/content-disposition/ @bomret
@@ -651,6 +677,7 @@
/types/cordova-plugin-background-mode/ @Lordnoname
/types/cordova-plugin-badge/ @timbru31
/types/cordova-plugin-ble-central/ @gjunge
+/types/cordova-plugin-bluetoothclassic-serial/ @tuvokki
/types/cordova-plugin-canvascamera/ @lordazzi
/types/cordova-plugin-device-name/ @larrybahr
/types/cordova-plugin-file-opener2/ @cyrilgandon
@@ -669,17 +696,19 @@
/types/cordova_app_version_plugin/ @larrybahr
/types/cordovarduino/ @hendrikmaus
/types/core-js/ @rbuckton @mfdeveloper
+/types/core-object/ @dfreeman
/types/correlation-id/ @natemara
/types/cors/ @pluma
/types/cosmiconfig/v4/ @ozum
/types/cosmiconfig/ @ozum @szeck87 @saadq @jinwoo
-/types/cote/ @makepost
+/types/cote/ @makepost @roblabat
/types/couchbase/ @maouida @fluggo
/types/countdown/ @gjuchault
/types/counterpart/ @santiagodoldan
/types/countries-and-timezones/ @zero51
/types/country-list/ @iRoachie
/types/country-select-js/ @humrochagf
+/types/countup.js/ @shermendev
/types/coverup/ @bevalorous
/types/cp-file/ @BendingBender
/types/cpx/ @alan-agius4
@@ -694,12 +723,14 @@
/types/createjs-lib/ @evilangelist @gyohk
/types/credential/ @phuvo
/types/credit-card-type/ @LKay
+/types/critters-webpack-plugin/ @JuanJoseGonGi
/types/cron/ @horiuchi @winup
/types/cropperjs/ @stepancar
/types/croppie/ @connor4312 @dklmuc @sarunint @knuthelgesen
/types/cross-spawn/ @Alorel
/types/crossfilter/ @schmuli @iebaker @nordfjord
/types/crossroads/ @diullei
+/types/crpc/ @0xdeafcafe
/types/cryptiles/ @awendland
/types/crypto-js/ @misak113
/types/crypto-random-string/ @MrManny
@@ -725,15 +756,16 @@
/types/cucumber/ @abraaoalves @jan-molak @isoung @BendingBender @ErikSchierboom
/types/currency-formatter/ @mhegazy @davidmpaz
/types/custom-error-generator/ @thmiceli
+/types/custom-functions-runtime/ @OfficeDev @Zlatkovsky @mscharlock
/types/cwise/ @taoqf
/types/cwise-compiler/ @taoqf
/types/cwise-parser/ @taoqf
/types/cybozulabs-md5/ @pine613
/types/cytoscape/ @phreed @wy193777 @ypconstante @janniclas @cerberuser
/types/d3/v3/ @gustavderdrache @borisyankov @MatthiasJobst
-/types/d3/v4/ @tomwanzek @gustavderdrache @borisyankov
-/types/d3/ @tomwanzek @gustavderdrache @borisyankov
-/types/d3-array/ @gustavderdrache @borisyankov @tomwanzek
+/types/d3/v4/ @tomwanzek @gustavderdrache @borisyankov @denisname
+/types/d3/ @tomwanzek @gustavderdrache @borisyankov @denisname
+/types/d3-array/ @gustavderdrache @borisyankov @tomwanzek @denisname
/types/d3-axis/ @tomwanzek @gustavderdrache @borisyankov @denisname
/types/d3-box/ @lk-chen
/types/d3-brush/ @tomwanzek @gustavderdrache @borisyankov
@@ -751,10 +783,11 @@
/types/d3-force/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-format/ @tomwanzek @gustavderdrache @borisyankov @denisname
/types/d3-geo/ @ledragon @tomwanzek @gustavderdrache @borisyankov
+/types/d3-graphviz/ @DomParfitt
/types/d3-hexbin/ @uncovertruth @tomwanzek @denisname
/types/d3-hierarchy/ @tomwanzek @gustavderdrache @borisyankov @denisname
/types/d3-hsv/ @arrayjam @denisname
-/types/d3-interpolate/ @tomwanzek @gustavderdrache @borisyankov
+/types/d3-interpolate/ @tomwanzek @gustavderdrache @borisyankov @denisname
/types/d3-path/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-polygon/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-quadtree/ @tomwanzek @gustavderdrache @borisyankov @denisname
@@ -765,12 +798,12 @@
/types/d3-scale/v1/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-scale/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-scale-chromatic/ @Ledragon @gustavderdrache @borisyankov @henriquefm
-/types/d3-selection/ @tomwanzek @gustavderdrache @borisyankov
+/types/d3-selection/ @tomwanzek @gustavderdrache @borisyankov @denisname
/types/d3-selection-multi/ @gustavderdrache @borisyankov
/types/d3-shape/ @tomwanzek @gustavderdrache @borisyankov
-/types/d3-time/ @tomwanzek @gustavderdrache @borisyankov
+/types/d3-time/ @tomwanzek @gustavderdrache @borisyankov @denisname
/types/d3-time-format/ @tomwanzek @gustavderdrache @borisyankov
-/types/d3-timer/ @tomwanzek @gustavderdrache @borisyankov
+/types/d3-timer/ @tomwanzek @gustavderdrache @borisyankov @denisname
/types/d3-tip/ @brspnnggrt
/types/d3-transition/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-voronoi/ @tomwanzek @gustavderdrache @borisyankov @denisname
@@ -802,6 +835,7 @@
/types/datejs/ @rupertavery
/types/daterangepicker/ @SirMartin @smasala @nertzy
/types/dav/ @ToastHawaii
+/types/dayzed/ @samhh
/types/db-migrate-base/ @nickiannone
/types/db-migrate-pg/ @nickiannone
/types/db.js/ @cgwrench
@@ -809,8 +843,8 @@
/types/dd-trace/ @ColinBradley @alloy
/types/deasync/ @Sicilica
/types/debessmann/ @vkorehov
-/types/debounce/ @denis-sokolov
-/types/debug/ @swook @galtalmor @zamb3zi
+/types/debounce/ @denis-sokolov @joshuakgoldberg
+/types/debug/ @swook @galtalmor @zamb3zi @brasten
/types/decamelize/ @samverschueren
/types/decay/ @enaeseth
/types/decompress/ @plantain-00 @jbethke
@@ -824,7 +858,6 @@
/types/deep-freeze/ @Bartvds @aluanhaddad
/types/deep-freeze-es6/ @mattbishop
/types/deep-freeze-strict/ @mhegazy
-/types/deepmerge/ @marvinscharle @syy1125 @AppLover69
/types/defaults/ @IbtihelCHNAB
/types/defer-promise/ @niklasf
/types/define-lazy-prop/ @BendingBender
@@ -857,7 +890,9 @@
/types/detect-pointer/ @thomastilkema
/types/detect-port/ @lith-light-g
/types/detect-touch-events/ @thomastilkema
-/types/detox/ @TareqElMasri
+/types/detective/ @TeamworkGuy2
+/types/detox/ @TareqElMasri @stevechun
+/types/dev-ip/ @mike-engel
/types/devexpress-aspnetcore-bootstrap/ @devexpress @skubarenko
/types/df-visible/ @Litee
/types/dhtmlxgantt/ @mkozhukh @chriscamicas
@@ -866,8 +901,9 @@
/types/di-lite/ @dcrusader
/types/diacritics/ @otociulis
/types/dialogflow/ @dyladan
-/types/diff/ @vvakame @szdc
+/types/diff/ @vvakame @szdc @moc-yuto
/types/diff2html/ @rtfpessoa
+/types/digibyte/ @lautarodragan @werewolfe
/types/dir-resolve/ @andy-ms
/types/discontinuous-range/ @OiCMudkips
/types/discourse-sso/ @championswimmer
@@ -886,10 +922,11 @@
/types/dojo/ @vansimke
/types/dom-clipboard-api/ @43081j
/types/dom-inputevent/ @diagramatics
+/types/dom-loaded/ @ltetzlaff
/types/dom-to-image/ @JipSterk
/types/dom4/ @adidahiya @giladgray
/types/domo/ @Steve-Fenton
-/types/dompurify/ @bazuzi
+/types/dompurify/ @bazuzi @FlowCrypt
/types/domready/ @dotnetnerd
/types/donna/ @vvakame
/types/dookie/ @swanest
@@ -916,6 +953,7 @@
/types/draggabilly/ @jaydubu
/types/dragster/ @zskovacs
/types/dragula/ @pwelter34 @abruzzihraig
+/types/dropbox-chooser/ @quas94
/types/dropboxjs/ @Steve-Fenton @xperiments
/types/dropkickjs/ @VorobeY1326
/types/dropzone/v4/ @nvivo @outring @renuo @Hikariii
@@ -923,7 +961,7 @@
/types/dts-generator/ @mtraynham
/types/duplexer2/ @Goldsmith42
/types/duplexer3/ @BendingBender
-/types/duplexify/ @strax
+/types/duplexify/ @strax @kinwa91
/types/duplicate-package-checker-webpack-plugin/ @mtraynham
/types/durandal/ @BlueSpire
/types/dustjs-linkedin/ @mdezem
@@ -959,6 +997,7 @@
/types/ejs/ @benliddicott
/types/ejs-locals/ @jt000
/types/ejson/ @shantanubhadoria
+/types/elastic-apm-node/ @shahaed
/types/elasticsearch/ @CasperSkydt @bfsmith @ddunkin @pushplay @mlamp @ahmadferdous @SimonSchick @brabster @deerawan
/types/electron-config/ @mrfunkycold @unindented
/types/electron-debug/ @unindented
@@ -1024,6 +1063,7 @@
/types/emojione/ @dbrgn
/types/empower/ @vvakame
/types/emscripten/ @zakki @periklis
+/types/encoding-down/ @MeirionHughes @danwbyrne
/types/end-of-stream/ @strax
/types/engine.io/ @KentarouTakeda
/types/engine.io-client/ @KentarouTakeda
@@ -1106,7 +1146,8 @@
/types/expo/v24/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger
/types/expo/v25/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov
/types/expo/v26/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @tinaroh
-/types/expo/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki
+/types/expo/v27/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo
+/types/expo/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov @moshfeu @prokopcm @tinaroh @binki @mo
/types/expo__status-bar-height/ @dawnmist
/types/expo__vector-icons/ @incleaf
/types/express/ @borisyankov
@@ -1137,6 +1178,7 @@
/types/express-mung/ @cyrilschumacher
/types/express-myconnection/ @Cellule
/types/express-mysql-session/ @Akim95
+/types/express-ntlm/ @forivall
/types/express-oauth-server/ @atd-schubert
/types/express-openapi/ @mugeso
/types/express-paginate/ @AmirTugi
@@ -1149,12 +1191,14 @@
/types/express-sanitized/ @cjbarth
/types/express-serve-static-core/ @borisyankov @19majkel94 @kacepe @micksatana @samijaber
/types/express-session/ @horiuchi @jacobbogers @builtinnya @ry7n
+/types/express-sitemap-xml/ @ffflorian
/types/express-socket.io-session/ @AylaJK
/types/express-to-koa/ @xiaohanzhang
/types/express-unless/ @wokim
/types/express-wechat-access/ @simmons8616
/types/express-winston/ @bricka
/types/express-ws/ @ajliv
+/types/express-ws-routes/ @gstamac
/types/express-xml-bodyparser/ @noticeMaker @macedigital
/types/extend/ @reppners
/types/extjs/ @brian428
@@ -1168,8 +1212,9 @@
/types/f1/ @neolwc
/types/fabric/ @oklemencic @joewashear007 @mrand01 @NotWoods @bmartinson @RogerioTeixeira @BradleyHill
/types/facebook-instant-games/ @menushka @oyvindjam
-/types/facebook-js-sdk/ @amritk @mahmoudzohdi
+/types/facebook-js-sdk/ @amritk @mahmoudzohdi @fluidsonic
/types/facebook-pixel/ @noctishsu
+/types/factory-girl/ @stackbuilders @sestrella @elcuy
/types/faker/v3/ @Kuniwak
/types/faker/ @bensw @basp @Kuniwak @mattbishop
/types/falcor/ @Quramy
@@ -1186,6 +1231,10 @@
/types/fast-list/ @BendingBender
/types/fast-stats/ @rogierschouten
/types/fastclick/ @shinnn
+/types/fastify-cors/ @jannikkeye
+/types/fastify-jwt/ @jannikkeye
+/types/fastify-multipart/ @jannikkeye
+/types/fastify-static/ @leomelzer
/types/favico.js/ @drowse314-dev-ymat
/types/favicons/ @mohsen1
/types/fb/ @JoshStrobl
@@ -1212,7 +1261,7 @@
/types/feedme/ @codeanimal
/types/feedparser/ @cortopy
/types/fetch-jsonp/ @tkrotoff
-/types/fetch-mock/ @asvetliakov @tamird @merrywhether @chrissinclair @matttennison @quentinbouygues
+/types/fetch-mock/ @asvetliakov @tamird @merrywhether @chrissinclair @matttennison @quentinbouygues @mtsmfm
/types/fetch.io/ @newraina
/types/ffi/ @loyd @waitingsong
/types/ffi-napi/ @keerthi16 @KiranNiranjan
@@ -1247,7 +1296,7 @@
/types/firebase-token-generator/ @dotdotcommadot
/types/firebird/ @karak
/types/firefox/ @vvakame
-/types/firefox-webext-browser/ @bomjacob
+/types/firefox-webext-browser/ @jsmnbom
/types/firmata/ @troywweber7
/types/first-mate/ @GlenCFL
/types/fixed-data-table/ @pepaar @stephenjelfs
@@ -1265,6 +1314,7 @@
/types/flush-write-stream/ @djcsdy
/types/flux/ @stkb @GiedriusGrabauskas
/types/fluxible/ @xbim
+/types/fluxible-addons-react/ @xbim
/types/fluxible-router/ @xbim
/types/fluxxor/ @mrk21
/types/fm-websync/ @markusmauch
@@ -1289,6 +1339,7 @@
/types/foundation/ @borisyankov
/types/fpsmeter/ @alampros
/types/framebus/ @kbukum
+/types/franc/ @wlegate
/types/frctl__fractal/ @pmccloghrylaing
/types/freedom/ @jpevarnek
/types/freeport/ @atd-schubert
@@ -1328,6 +1379,7 @@
/types/fxn/ @charrondev
/types/gae.channel.api/ @vvakame
/types/gamedig/ @ivansieder
+/types/gamepad/ @Lange
/types/gamequery/ @Laubi
/types/ganache-core/ @LogvinovLeon
/types/gandi-livedns/ @xstoudi
@@ -1490,9 +1542,11 @@
/types/get-stdin/ @DanielRosenwasser
/types/get-stream/ @douglasduteil @BendingBender
/types/get-value/ @DanielRosenwasser
+/types/getenv/ @impankratov
/types/getopts/ @azasypkin
/types/getos/ @BendingBender
/types/gettext.js/ @jucrouzet
+/types/gh-pages/ @DanielRosenwasser
/types/gifffer/ @gatimus
/types/gijgo/ @atatanasov
/types/giraffe/ @darthapo
@@ -1500,6 +1554,7 @@
/types/git-branch/ @rynclark
/types/git-config/ @stpettersens
/types/git-remote-origin-url/ @janslow
+/types/git-rev-sync/ @khoi-fish
/types/git-url-parse/ @ajafff
/types/github-url-to-object/ @ajafff
/types/github-username-regex/ @BehindTheMath
@@ -1509,7 +1564,8 @@
/types/gl-texture2d/ @MathiasPaumgarten
/types/gldatepicker/ @qcz
/types/glidejs/ @milanjaros
-/types/glob/ @vvakame @voy
+/types/glob/v5/ @vvakame @voy
+/types/glob/ @vvakame @voy @ajafff
/types/glob-base/ @alan-agius4
/types/glob-expand/ @vvakame
/types/glob-parent/ @mrmlnc
@@ -1520,8 +1576,9 @@
/types/globalize-compiler/ @iclanton
/types/globby/ @douglasduteil @ikatyang
/types/globule/ @durad
+/types/glue/v4/ @gjednaszewski
/types/glue/ @garfty
-/types/gm/ @ChaosinaCan @maartenvanvliet
+/types/gm/ @ChaosinaCan @maartenvanvliet @mlejva
/types/go/ @NorthwoodsSoftware
/types/google-adwords-scripts/ @jafaircl
/types/google-apps-script/ @motemen @grant
@@ -1542,17 +1599,20 @@
/types/google.geolocation/ @vbortone
/types/google.picker/ @grapswiz
/types/google.visualization/ @danludwig @gmoore-sjcorg @danmana @mlcheng @IvanBisultanov @glebm
+/types/google__maps/ @indrimuska
/types/googlemaps/ @cgwrench @nertzy @xaolas @mrmcnerd @martincostello @svenkreiss @bolatovumar @gauthierm
/types/googlemaps.infobubble/ @Dashue
-/types/googlepay/ @Fluccioni @Radu-Raicea
-/types/got/ @BendingBender @LinusU @ikokostya
+/types/googlepay/ @Fluccioni @Radu-Raicea @fstanis
+/types/got/v8/ @BendingBender @LinusU @ikokostya
+/types/got/ @BendingBender @LinusU @ikokostya @stijnvn
/types/graceful-fs/v2/ @Bartvds
/types/graceful-fs/ @Bartvds @BendingBender
/types/gradient-string/ @Ailrun
/types/graham_scan/ @hberntsen
/types/gramps__rest-helpers/ @claude
/types/graphite-udp/ @EricByers
-/types/graphql/ @TonyPythoneer @calebmer @intellix @firede @kepennar @freiksenet @IvanGoncharov @DxCx @rportugal @tgriesser @dyst5422 @adnsio @divyenduz @bradzacher @clayne11
+/types/graphlib-dot/ @DomParfitt
+/types/graphql/ @TonyPythoneer @calebmer @intellix @firede @kepennar @freiksenet @IvanGoncharov @DxCx @rportugal @tgriesser @dyst5422 @adnsio @divyenduz @bradzacher @clayne11 @JCMais
/types/graphql-date/ @enaeseth
/types/graphql-deduplicator/ @lfades
/types/graphql-depth-limit/ @eritikass
@@ -1561,6 +1621,7 @@
/types/graphql-query-complexity/ @abhikmitra
/types/graphql-relay/ @arvitaly @nitintutlani @Grelinfo
/types/graphql-resolve-batch/ @nayni
+/types/graphql-resolvers/ @mike-engel
/types/graphql-type-json/ @schfkt
/types/graphviz/ @mhfrantz
/types/grasp/ @agnoster
@@ -1570,12 +1631,11 @@
/types/grecaptcha/v0/ @brentj73
/types/grecaptcha/ @DethAriel @rafaeltavares
/types/gregorian-calendar/ @cwalv
-/types/grid-styled/ @antonvasin @vittorio @lhache
/types/gridfs-stream/ @liorm
/types/gridstack/ @PascalSenn @ZoolWay @Sl1MBoy
/types/grpc-error/ @danwbyrne
/types/grunt/ @jeffmay @basarat
-/types/gsap/ @codebelt @ProbablePrime @philipbulley
+/types/gsap/ @codebelt @ProbablePrime @philipbulley @leomeloxp
/types/gtin/ @RafaelKr
/types/guid/ @maroy1986
/types/gulp/ @GiedriusGrabauskas
@@ -1721,6 +1781,8 @@
/types/holderjs/ @renjfk
/types/hooker/ @misak113
/types/hopscotch/ @pimterry @Aurimas1
+/types/host-validation/ @dintopple
+/types/hosted-git-info/ @OiyouYeahYou
/types/howler/ @xperiments @tdukart @alien35 @nicholashza
/types/hpp/ @kryops
/types/html-entities/ @xstoudi
@@ -1732,7 +1794,7 @@
/types/html-void-elements/ @rhysd
/types/html-webpack-plugin/ @deevus @bumbleblym @tlaziuk
/types/html-webpack-template/ @bumbleblym
-/types/html2canvas/ @rwhepburn @tan9 @sschocke
+/types/html2canvas/ @rwhepburn @tan9 @sschocke @Ristaaf
/types/htmlbars-inline-precompile/ @chriskrycho
/types/htmlparser2/ @staticfunction @LinusU
/types/htmltojsx/ @basarat
@@ -1744,7 +1806,7 @@
/types/http-graceful-shutdown/ @dlee-nvisia
/types/http-link-header/ @screendriver
/types/http-proxy/ @SomaticIT @Raigen @DanielMSchmidt
-/types/http-proxy-agent/ @mrmlnc
+/types/http-proxy-agent/ @mrmlnc @steprescott
/types/http-proxy-middleware/ @zebMcCorkle @BendingBender
/types/http-rx/ @L2jLiga
/types/http-server/ @plantain-00
@@ -1763,9 +1825,11 @@
/types/hypertext-application-language/ @maks3w
/types/hystrixjs/ @igorsechyn
/types/i18n/ @SomaticIT @FindQ
+/types/i18n-abide/ @smbell
/types/i18n-js/ @ypresto
/types/i18next/v2/ @mxl @deerawan @GiedriusGrabauskas
-/types/i18next/ @mxl @deerawan @GiedriusGrabauskas
+/types/i18next/v8/ @mxl @deerawan @GiedriusGrabauskas
+/types/i18next/ @mxl @deerawan @GiedriusGrabauskas @lenovouser @qqilihq @butchyyyy
/types/i18next-browser-languagedetector/v0/ @cyrilschumacher @GiedriusGrabauskas
/types/i18next-browser-languagedetector/ @cyrilschumacher @GiedriusGrabauskas
/types/i18next-express-middleware/ @cyrilschumacher
@@ -1791,6 +1855,7 @@
/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
@@ -1806,7 +1871,7 @@
/types/imgur-rest-api/ @lukewestby
/types/imperium/ @gaetansenn
/types/impress/ @borisyankov
-/types/in-app-purchase/ @l-jonas
+/types/in-app-purchase/ @l-jonas @IchordeDionysos
/types/in-range/ @DanielRosenwasser
/types/inboxsdk/ @rdoursenaud @amiram
/types/incremental-dom/ @basarat @lanthaler @vvakame
@@ -1818,9 +1883,11 @@
/types/inherits/ @chrootsu
/types/ini/ @marcinporebski
/types/iniparser/ @chrootsu
+/types/init-package-json/ @kfarnung
/types/inline-css/ @philipisapain
-/types/inline-style-prefixer/ @ahz @dpetrezselyova
+/types/inline-style-prefixer/ @ahz @dpetrezselyova @franklixuefei
/types/inquirer/ @tkQubo @ppathan @jouderianjr @bang88 @bitjson @synarque @jrockwood @kwkelly @Ailrun
+/types/inquirer-npm-name/ @manuth
/types/insert-module-globals/ @leonard-thieu
/types/insight/ @vvakame
/types/integer/ @Morfent
@@ -1841,7 +1908,7 @@
/types/ion-rangeslider/v1/ @dduugg @Karel-van-de-Plassche
/types/ion-rangeslider/ @Karel-van-de-Plassche
/types/ioredis/v3/ @plantain-00 @chrisleck @aliarham11 @br8h @shaharmor @palindrom615 @reconbot
-/types/ioredis/ @plantain-00 @chrisleck @aliarham11 @br8h @shaharmor @palindrom615 @reconbot
+/types/ioredis/ @plantain-00 @chrisleck @aliarham11 @br8h @shaharmor @palindrom615 @reconbot @funthing @iamolegga
/types/iota.lib.js/ @fogsh
/types/ip/ @codeanimal
/types/ip-address/ @icopp @danwbyrne
@@ -1859,10 +1926,11 @@
/types/is-ci/ @atd-schubert
/types/is-color/ @VitorLuizC
/types/is-compressed/ @mhegazy
+/types/is-docker/ @YashdalfTheGray
/types/is-empty/ @termosa
/types/is-finite/ @mhegazy
/types/is-glob/ @mrmlnc
-/types/is-hotkey/ @petester42
+/types/is-hotkey/ @petester42 @kalley
/types/is-ip/ @coderslagoon
/types/is-mobile/ @LogvinovLeon
/types/is-my-json-valid/ @kruncher
@@ -1885,6 +1953,7 @@
/types/is-url-superb/ @kryops
/types/is-uuid/ @tedre191
/types/is-windows/ @mizunashi-mana
+/types/isaac/ @mo
/types/isbn-utils/ @elhaard
/types/iscroll/ @csrakowski @devlato
/types/ismobilejs/ @Ty3uK
@@ -1908,6 +1977,7 @@
/types/japanese-holidays/ @syamatoo
/types/jasmine/ @borisyankov @theodorejb @davidparsson @gmoothart @lukas-zech-software @Engineer2B
/types/jasmine-ajax/ @lgrignon
+/types/jasmine-data-provider/ @tlaziuk
/types/jasmine-data_driven_tests/ @AnthonyMacKinnon
/types/jasmine-enzyme/ @bolatovumar
/types/jasmine-es6-promise-matchers/ @stephenlautier
@@ -1918,7 +1988,7 @@
/types/jasmine-node/ @svi3c
/types/jasmine-promise-matchers/ @matthewjh
/types/jasmine_dom_matchers/ @devoto13
-/types/jasminewd2/ @sjelin
+/types/jasminewd2/ @sjelin @gkalpak
/types/java/ @jimlloyd @hrl7 @darti
/types/java-applet/ @cyrilschumacher
/types/javascript-astar/ @ptlis
@@ -1930,8 +2000,9 @@
/types/jdataview/ @RReverser
/types/jdenticon/ @mtr
/types/jest/v16/ @NoHomey @jwbay
-/types/jest/ @NoHomey @jwbay @asvetliakov @alexjoverm @epicallan @ikatyang @wsmd @JamieMason @douglasduteil @ahnpnl @joshuakgoldberg @UselessPickles @r3nya @hotell @sebald
+/types/jest/ @NoHomey @jwbay @asvetliakov @alexjoverm @epicallan @ikatyang @wsmd @JamieMason @douglasduteil @ahnpnl @joshuakgoldberg @UselessPickles @r3nya @hotell @sebald @andys8
/types/jest-axe/ @JoshuaKGoldberg
+/types/jest-cli/ @lifeiscontent
/types/jest-diff/ @myabc
/types/jest-docblock/ @ikatyang
/types/jest-each/ @theutz @nickmccurdy
@@ -1956,6 +2027,7 @@
/types/johnny-five/ @nakakura @ujvzolee @workshop2
/types/joi/v6/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW
/types/joi/v10/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @aconanlai
+/types/joi/v13/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus @wanganjun @rafaelkallis @aconanlai @zaphoyd @thewillg @SimonSchick
/types/joi/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus @wanganjun @rafaelkallis @aconanlai @zaphoyd @thewillg @SimonSchick
/types/joigoose/ @boothwhack
/types/josa/ @vichyssoise
@@ -1967,7 +2039,7 @@
/types/jqrangeslider/ @qcz
/types/jquery/v1/ @choffmeister @Steve-Fenton @Diullei @tasoili @jasons-novaleaf @seanski @Guuz @ksummerlin @basarat @nwolverson @derekcicerone @AndrewGaspar @seikichi @benjaminjackman @s093294 @JoshStrobl @DickvdBrink @King2500 @leonard-thieu
/types/jquery/v2/ @choffmeister @Steve-Fenton @Diullei @tasoili @jasons-novaleaf @seanski @Guuz @ksummerlin @basarat @nwolverson @derekcicerone @AndrewGaspar @seikichi @benjaminjackman @s093294 @JoshStrobl @DickvdBrink @King2500 @leonard-thieu
-/types/jquery/ @leonard-thieu @borisyankov @choffmeister @Steve-Fenton @Diullei @tasoili @jasons-novaleaf @seanski @Guuz @ksummerlin @basarat @nwolverson @derekcicerone @AndrewGaspar @seikichi @benjaminjackman @s093294 @JoshStrobl @johnnyreilly @DickvdBrink @King2500
+/types/jquery/ @leonard-thieu @borisyankov @choffmeister @Steve-Fenton @Diullei @tasoili @jasons-novaleaf @seanski @Guuz @ksummerlin @basarat @nwolverson @derekcicerone @AndrewGaspar @seikichi @benjaminjackman @s093294 @JoshStrobl @johnnyreilly @DickvdBrink @King2500 @terrymun
/types/jquery-ajax-chain/ @humana-fragilitas
/types/jquery-alertable/ @stever
/types/jquery-animate-scroll/ @AndersonFriaca
@@ -1982,6 +2054,7 @@
/types/jquery-editable-select/ @baywet
/types/jquery-focus-exit/ @AndersonFriaca
/types/jquery-focusable/ @AndersonFriaca
+/types/jquery-formatdatetime/ @AndersonFriaca
/types/jquery-fullscreen/ @bgrieder
/types/jquery-galleria/ @rimig
/types/jquery-gray/ @AndersonFriaca
@@ -2104,7 +2177,7 @@
/types/js-yaml/ @Bartvds @sclausen
/types/js.spec/ @mattbishop
/types/jsbn/ @Evgenus @al2xed
-/types/jschannel/ @yitzchok
+/types/jschannel/ @yitzchok @McFlat
/types/jscrollpane/ @qcz
/types/jsdeferred/ @minodisk
/types/jsdom/ @leonard-thieu @palmfjord
@@ -2112,7 +2185,7 @@
/types/jsend/ @CaselIT
/types/jsesc/ @Bartvds
/types/jsfl/ @soywiz
-/types/jsforce/ @dolanmiu @netes @amphro @tnoonan-salesforce @whiteabelincoln
+/types/jsforce/ @dolanmiu @netes @amphro @tnoonan-salesforce @whiteabelincoln @borys-kupar
/types/jsftp/ @xyleen
/types/jsgraph/ @rosinbum
/types/jshamcrest/ @dharkness
@@ -2125,6 +2198,7 @@
/types/json-patch-gen/ @RohdeK
/types/json-pointer/ @Bartvds
/types/json-query/ @mtraynham
+/types/json-rpc-random-id/ @micahriggan
/types/json-rpc-ws/ @npenin @mlamp
/types/json-schema/ @bcherny @cyrilletuzi @lucianbuzzo @rolandjitsu
/types/json-socket/ @svi3c
@@ -2144,15 +2218,18 @@
/types/jsonnet/ @hookclaw
/types/jsonp/ @surenkov
/types/jsonpath/ @horiuchi @ikatyang
+/types/jsonquery/ @JimmyBoh
/types/jsonrpc-serializer/ @Akim95 @many20
/types/jsonstream/ @Bartvds
/types/jsontoxml/ @benstevens48
-/types/jsonwebtoken/ @SomaticIT @danielheim @brikou @vpk
+/types/jsonwebtoken/ @SomaticIT @danielheim @brikou @vpk @rlgod
/types/jsonwebtoken-promisified/ @SomaticIT @danielheim @brikou @aneilbaboo
+/types/jspath/ @dex4er
/types/jspdf/ @amberjs
/types/jsqrcode/ @lordazzi
/types/jsrender/ @zakki
/types/jsreport-core/ @taoqf
+/types/jsreport-html-embedded-in-docx/ @taoqf
/types/jsreport-html-to-xlsx/v1/ @me
/types/jsreport-html-to-xlsx/ @me
/types/jsreport-jsrender/ @taoqf
@@ -2174,6 +2251,7 @@
/types/jui/ @easylogic
/types/jui-core/ @easylogic
/types/jui-grid/ @easylogic
+/types/just-debounce-it/ @azizhk
/types/just-extend/ @pe8ter
/types/jweixin/ @taoqf @gomydodo
/types/jwplayer/ @martinduparc @kutomer @philippguertler @danielmcgraw @bpdsw
@@ -2184,8 +2262,10 @@
/types/jwt-express/ @nickp10
/types/jwt-simple/ @kenfdev @GaelMagnan
/types/jwt-then/ @phenomax
+/types/k6/ @MajorBreakfast
/types/kafka-node/ @dansitu @bkim54 @sfrooster @amiram
-/types/karma/ @tkrotoff @43081j
+/types/karma/v1/ @tkrotoff @43081j
+/types/karma/ @tkrotoff @43081j @devoto13
/types/karma-chai/ @JayAndCatchFire
/types/karma-chai-sinon/ @vasek17
/types/karma-coverage/ @tkrotoff
@@ -2195,11 +2275,12 @@
/types/karma-webpack/ @mtraynham
/types/katex/ @mrand01
/types/kcors/ @Xstoudi @izayoiko
-/types/kdbush/ @DenisCarriere
+/types/kdbush/ @DenisCarriere @chrfrasco
/types/keen-tracking/ @rui-ferreira
/types/kefir/ @AyaMorisawa @HitoriSensei
/types/kendo-ui/ @telerik
-/types/keyboardjs/ @vbortone @piranha771
+/types/keyboardjs/ @vbortone @piranha771 @teoxoy
+/types/keycloak-connect/ @gstamac
/types/keygrip/ @jkeylu
/types/keymaster/ @nitram509
/types/keymirror/ @jfahrenkrug
@@ -2263,6 +2344,7 @@
/types/koa-pino-logger/ @khell
/types/koa-pug/ @Xstoudi
/types/koa-range/ @strax
+/types/koa-ratelimit/ @OutdatedVersion
/types/koa-redis/ @nsimmons
/types/koa-redis-cache/ @dimamukhin
/types/koa-requestid/ @sjmcdowall
@@ -2275,15 +2357,17 @@
/types/koa-sslify/ @wingsbob
/types/koa-static/ @hellopao @tlaziuk
/types/koa-static-cache/ @JounQin
+/types/koa-static-server/ @wulunyi
/types/koa-views/ @brooklyndev
/types/koa-webpack/ @malj @leebenson @miZyind @tlaziuk
-/types/koa-websocket/ @moimael @jacogr @zdila
+/types/koa-websocket/ @moimael @jacogr @zdila @Kroisse
/types/koa-xml-body/ @uwinkelvos
/types/koa2-cors/ @xialeistudio
/types/koa2-session-redis/ @DimaMukhin
/types/koa__cors/ @Xstoudi @izayoiko @stevehipwell @sjmcdowall
/types/kolite/ @borisyankov
/types/konami.js/ @mareek
+/types/kos-core/ @ali-Kos
/types/kraken-js/ @darkwebdev @micksatana
/types/kramed/ @tonicblue
/types/kss/ @giladgray
@@ -2292,13 +2376,16 @@
/types/kuromoji/ @mzsm @kgtkr
/types/lab/ @prashaantt
/types/ladda/ @dflor003 @leemicw
+/types/lambda-log/ @armonge
+/types/lambda-tester/ @ivank @HajoAhoMantila
/types/lasso/ @darkwebdev
/types/later/ @jasond-s
/types/latinize/ @GiedriusGrabauskas
/types/latlon-geohash/ @rimig
/types/launchpad/ @rictic
+/types/layzr.js/ @shermendev
/types/lazy-value/ @ikatyang
-/types/lazy.js/ @Bartvds
+/types/lazy.js/ @Bartvds @miso440
/types/lazypipe/ @tomc974
/types/ldapjs/ @cvillemure @peterkooijmans
/types/leadfoot/ @theintern
@@ -2314,7 +2401,7 @@
/types/leaflet-imageoverlay-rotated/ @tkleinke
/types/leaflet-label/ @Nemo157
/types/leaflet-mouse-position/ @Hanyon
-/types/leaflet-polylinedecorator/ @soucekv
+/types/leaflet-polylinedecorator/ @soucekv @michaelfaisst
/types/leaflet-providers/ @BendingBender
/types/leaflet-rotatedmarker/ @robert-prib-polestar
/types/leaflet-routing-machine/ @chanakadrathnayaka
@@ -2329,21 +2416,28 @@
/types/leaflet.pancontrol/ @Brictarus
/types/leaflet.pm/ @tkleinke
/types/leaflet.polylinemeasure/ @RiON69
+/types/leakage/ @atd-schubert
/types/leapmotionts/ @logotype
+/types/ledgerhq__hw-transport/ @danwbyrne
+/types/ledgerhq__hw-transport-node-hid/ @danwbyrne
+/types/ledgerhq__hw-transport-u2f/ @danwbyrne
/types/legal-eagle/ @j-f1
/types/lerna-get-packages/ @LogvinovLeon
-/types/less/ @thasner @pranaygp @dwaxweiler
+/types/less/ @thasner @pranaygp @dwaxweiler @chigix
/types/less-middleware/ @federicobond
/types/less2sass/ @gatimus
/types/lestate/ @thelambdaparty
/types/level-codec/ @danwbyrne
/types/level-sublevel/ @basp
-/types/leveldown/ @tarruda @LinusU
-/types/levelup/ @blittle @tarruda
+/types/leveldown/v1/ @tarruda @LinusU
+/types/leveldown/ @MeirionHughes @danwbyrne
+/types/levelup/v1/ @blittle @tarruda
+/types/levelup/ @MeirionHughes @danwbyrne
/types/leven/ @jmalonzo
/types/levenshtein/ @geoffreak
/types/libpq/ @Lodin
/types/libsodium-wrappers/ @ffflorian
+/types/libsodium-wrappers-sumo/ @ffflorian
/types/libxmljs/ @fdecampredon @ComFreek
/types/libxslt/ @alejo90
/types/license-checker/ @rogierschouten @unindented
@@ -2353,6 +2447,7 @@
/types/line-reader/ @stpettersens
/types/linear-gradient/ @Jack-Works
/types/lingui__core/ @huan086
+/types/lingui__macro/ @huan086
/types/lingui__react/ @huan086
/types/linkify-it/ @praxxis
/types/listr/ @durad
@@ -2371,6 +2466,7 @@
/types/lockfile/v0/ @Bartvds
/types/lockfile/ @Bartvds @BendingBender
/types/lockr/ @droritos
+/types/locks/ @flippynips
/types/locutus/ @hookclaw
/types/lodash/v3/ @bczengel @chrootsu
/types/lodash/ @bczengel @chrootsu @stepancar @aj-r @ailrun @e-cloud @thorn0 @jtmthf @DomiR
@@ -2690,6 +2786,7 @@
/types/luxon/ @colbydehart @FourwingsY @jsiebern
/types/lwip/ @AyaMorisawa
/types/lz-string/ @M0ns1gn0r
+/types/lzma-native/ @leshow
/types/magic-number/ @stpettersens
/types/magicsuggest/ @leonardochaia
/types/magnet-uri/ @tlaziuk
@@ -2701,7 +2798,9 @@
/types/main-bower-files/ @k-kagurazaka
/types/make-dir/ @ikatyang @BendingBender
/types/maker.js/ @danmarshall
-/types/mali/ @danwbyrne
+/types/makeup-expander/ @darkwebdev
+/types/makeup-floating-label/ @darkwebdev
+/types/makeup-screenreader-trap/ @darkwebdev
/types/mali-compose/ @danwbyrne
/types/mali-onerror/ @danwbyrne
/types/mandrill-api/ @pocesar
@@ -2720,6 +2819,7 @@
/types/markdown-it/ @rapropos
/types/markdown-it-anchor/ @seryl
/types/markdown-it-container/ @hronex
+/types/markdown-it-lazy-headers/ @knom
/types/markdown-pdf/ @MonsieurMan
/types/markdownlint/ @ark120202
/types/marked/ @worr @BendingBender @CrossR
@@ -2730,7 +2830,8 @@
/types/maskedinput/ @lokeshpeta
/types/masonry-layout/ @m-a-wilson @warriorrocker
/types/massive/v3/ @swissspidy @clarenceh
-/types/massive/ @swissspidy @clarenceh @AmazingTurtle
+/types/massive/v4/ @swissspidy @clarenceh @AmazingTurtle
+/types/massive/ @swissspidy @clarenceh @AmazingTurtle @mike-engel
/types/match-media-mock/ @asvetliakov
/types/match-sorter/ @claasahl
/types/material-components-web/ @BrentDouglas @ckosti
@@ -2772,6 +2873,7 @@
/types/maxmind/ @geoffreak
/types/mcustomscrollbar/ @flurg
/types/md5/ @arcdev1 @jprogrammer
+/types/md5-file/ @BamButz
/types/mdns/ @reppners
/types/mdurl/ @rokt33r
/types/media-typer/ @BendingBender
@@ -2800,11 +2902,12 @@
/types/messenger/ @derekcicerone
/types/meteor/ @barbatus @fullflavedave @orefalo @dagatsoin @birkskyum @ardatan @stefanholzapfel @andrei-markeev @lmachens
/types/meteor-accounts-phone/ @DAB0mB
+/types/meteor-astronomy/ @Deadly0
/types/meteor-collection-hooks/ @twastvedt
/types/meteor-jboulhous-dev/ @vangorra
/types/meteor-persistent-session/ @vangorra
/types/meteor-prime8consulting-oauth2/ @vangorra
-/types/meteor-publish-composite/ @vangorra
+/types/meteor-publish-composite/ @vangorra @mrz5018
/types/meteor-roles/ @vangorra @mattmm3d
/types/meteor-universe-i18n/ @mathewmeconry
/types/method-override/ @santialbo
@@ -2841,12 +2944,13 @@
/types/mitm/ @alejo90
/types/mixpanel/ @hjellek @Manduro
/types/mixto/ @vvakame
-/types/mjml/ @aahoughton
+/types/mjml/ @aahoughton @marpstar
/types/mkdirp/ @Bartvds @mrmlnc
/types/mkdirp-promise/ @pluma
/types/mkpath/ @optical
/types/ml-levenberg-marquardt/ @m93a
/types/mobx-apollo/ @pselden
+/types/mobx-cookie/ @t49tran
/types/mobx-devtools-mst/ @pluma
/types/mocha/ @kazimanzurrashid @otiai10 @jt000 @enlight @cspotcode @1999
/types/mocha-each/ @magnostherobot
@@ -2863,6 +2967,7 @@
/types/modernizr/ @borisyankov @theodorejb @leonyu @lucax88x @nhardy
/types/modesl/ @neeschit
/types/module-alias/ @KevinRamharak
+/types/module-deps/ @TeamworkGuy2
/types/moji/ @yasupeke
/types/moment-business/ @wonbyte
/types/moment-business-time/ @swist
@@ -2877,11 +2982,11 @@
/types/money-math/ @taoqf
/types/mongo-sanitize/ @CedricCazin
/types/mongodb/v2/ @CaselIT @alanmarcell @bitjson @dante-101 @mcortesi
-/types/mongodb/ @CaselIT @alanmarcell @bitjson @dante-101 @mcortesi @EnricoPicci @AJCStriker @julien-c @daprahamian @denys-bushulyak @BastienAr @sindbach @geraldinelemeur @jishi @various89 @angela-1
+/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
/types/mongodb-memory-server/ @dmitryrogozhny
/types/mongodb-uri/ @mernxl
/types/mongoose/v4/ @simonxca @horiuchi @sindrenm @lukasz-zak
-/types/mongoose/ @horiuchi @sindrenm @lukasz-zak @Alorel @jendrikw @ethanresnick @vologab @jussikinnula @ondratra @alfirin @idandrd @various89
+/types/mongoose/ @horiuchi @sindrenm @lukasz-zak @Alorel @jendrikw @ethanresnick @vologab @jussikinnula @ondratra @alfirin @idandrd @various89 @Fazendaaa @NormanPerrin @danmana @stablio
/types/mongoose-auto-increment/ @AyaMorisawa
/types/mongoose-deep-populate/ @AyaMorisawa
/types/mongoose-geojson-schema/ @bondz
@@ -2893,6 +2998,7 @@
/types/mongoose-simple-random/ @rsxdalv
/types/mongoose-unique-validator/ @stevehipwell
/types/mongorito/ @pinguet62
+/types/mongration/ @soulthreads
/types/moo/ @deltaidea @MofX
/types/moonjs/ @DanielRosenwasser
/types/morgan/ @staticfunction @pscanf
@@ -2902,6 +3008,7 @@
/types/motor-hat/ @muntyan
/types/mousetrap/ @qcz
/types/move-concurrently/ @mgroenhoff
+/types/moveto/ @shermendev
/types/moviedb/ @basarat @0x6368656174
/types/moxios/ @itoasuka
/types/mozilla-readability/ @charlesvdv
@@ -2918,6 +3025,7 @@
/types/muicss/ @samuelneff
/types/multer/ @jt000 @DavidBR-SW @mxl @hyunseob
/types/multer-gridfs-storage/v1/ @devconcept
+/types/multer-gridfs-storage/v2/ @devconcept
/types/multer-gridfs-storage/ @devconcept
/types/multer-s3/ @tcaesvk @galtalmor @terski
/types/multi-typeof/ @mhegazy
@@ -2932,10 +3040,11 @@
/types/murmurhash3js/ @dlee-nvisia
/types/musicmetadata/ @Xstoudi
/types/mustache/ @markashleybell @manuth
+/types/mutexify/ @maistho
/types/mv/ @nenadalm
/types/mysql/ @wjohnsto @kacepe @kpping @jdmunro
/types/mz/ @ThomasHickman
-/types/n3/ @phreed @rubensworks
+/types/n3/ @phreed @rubensworks @LaurensRietveld
/types/named-regexp-groups/ @jewbre
/types/named-routes/ @qqilihq
/types/nanoajax/ @nathancahill
@@ -2973,11 +3082,13 @@
/types/network-interfaces/ @anderswestberg
/types/new-relic-browser/ @renehamburger @piotrkubisa
/types/newline-remove/ @OpenByteDev
-/types/newman/ @LogvinovLeon
-/types/newrelic/ @mastermatt
+/types/newman/ @LogvinovLeon @Graham42
+/types/newrelic/ @mastermatt @brookspatton
/types/nexpect/ @vvakame
-/types/next/ @dru89 @brikou @jthegedus @resir014 @scottdj92 @joaovieira
+/types/next/ @dru89 @brikou @jthegedus @resir014 @scottdj92 @joaovieira @ajliv
+/types/next-redux-saga/ @leocavalcante
/types/next-redux-wrapper/ @stevegeek @Jungwoo-An
+/types/next-server/ @dru89 @brikou @jthegedus @resir014 @scottdj92 @joaovieira @ajliv
/types/ng-command/ @stephenlautier
/types/ng-cordova/ @ksachdeva
/types/ng-dialog/ @stephenlautier
@@ -3006,25 +3117,27 @@
/types/noble/ @swook @shantanubhadoria @lukel99 @bioball @keton @thegecko
/types/nock/ @bonnici @horiuchi @afharo @mastermatt @damour @paambaati
/types/nodal/ @charrondev
-/types/node/v4/ @eps1lon @Archcry
-/types/node/v6/ @WilcoBakker @inlined @eps1lon @Alorel @KSXGitHub @Archcry
-/types/node/v7/ @parambirs @tellnes @WilcoBakker @eps1lon @KSXGitHub @Archcry
-/types/node/v8/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @hoo29 @n-e @brunoscheufler @KSXGitHub @islishude @r3nya
-/types/node/v9/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff @hoo29 @n-e @brunoscheufler @mohsen1 @KSXGitHub @a-tarasyuk @islishude @r3nya @eyqs
-/types/node/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff @hoo29 @n-e @brunoscheufler @mohsen1 @KSXGitHub @a-tarasyuk @islishude @r3nya @ZaneHannanAU @ThomasdenH @eyqs @matthieusieben
+/types/node/v0/ @Microsoft @DefinitelyTyped
+/types/node/v4/ @Microsoft @DefinitelyTyped @eps1lon @Archcry
+/types/node/v6/ @Microsoft @DefinitelyTyped @WilcoBakker @inlined @eps1lon @Alorel @KSXGitHub @Archcry
+/types/node/v7/ @Microsoft @DefinitelyTyped @parambirs @tellnes @WilcoBakker @eps1lon @KSXGitHub @Archcry
+/types/node/v8/ @Microsoft @DefinitelyTyped @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @hoo29 @n-e @brunoscheufler @KSXGitHub @islishude @r3nya
+/types/node/v9/ @Microsoft @DefinitelyTyped @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff @hoo29 @n-e @brunoscheufler @mohsen1 @KSXGitHub @a-tarasyuk @islishude @r3nya @eyqs
+/types/node/ @Microsoft @DefinitelyTyped @jkomyno @a-tarasyuk @alvis @r3nya @brunoscheufler @smac89 @tellnes @DeividasBakanas @eyqs @Flarna @Hannes-Magnusson-CK @KSXGitHub @hoo29 @kjin @ajafff @islishude @mwiktorczyk @matthieusieben @mohsen1 @n-e @octo-sniffle @parambirs @eps1lon @SimonSchick @ThomasdenH @WilcoBakker @wwwy3y3 @ZaneHannanAU @jeremiergz
/types/node-7z/ @erkie
/types/node-array-ext/ @Beng89
/types/node-cache/ @chrootsu @dthunell @useltmann
/types/node-calendar/ @luzianz
/types/node-cleanup/ @agadar
-/types/node-cron/ @maximelkin
+/types/node-crate/ @gjednaszewski
+/types/node-cron/ @maximelkin @burtek
/types/node-dijkstra/ @nokutu
/types/node-dir/ @panuhorsmalahti
/types/node-dogstatsd/ @chrisbobo
/types/node-emoji/ @jonestristand @styu
/types/node-fetch/ @torstenwerner @nikcorg
/types/node-fibers/ @caryhaynie
-/types/node-forge/ @westy92 @flynetworks @a-k-g @rafal2228 @beenotung
+/types/node-forge/ @westy92 @flynetworks @a-k-g @rafal2228 @beenotung @joeflateau
/types/node-gcm/ @horiuchi
/types/node-geocoder/ @rosek86
/types/node-getopt/ @kcauchy
@@ -3044,6 +3157,7 @@
/types/node-pushnotifications/ @menushka
/types/node-ral/ @ssddi456
/types/node-red/ @andersea @tbowmo
+/types/node-redis-pubsub/ @renekeijzer
/types/node-resque/ @gordey4doronin
/types/node-rsa/ @alitaheri @xm
/types/node-schedule/ @cyrilschumacher @flowpl
@@ -3078,9 +3192,10 @@
/types/nodeunit/ @jedigo
/types/noisejs/ @izmhr
/types/nomnom/ @panopticoncentral
+/types/nookies/ @andreasbergqvist
/types/nopt/ @jbondc
/types/normalize-package-data/ @jdxcode
-/types/normalize-url/ @odin3 @BendingBender
+/types/normalize-url/ @odin3 @BendingBender @mathieumg
/types/notie/ @mateusdemboski
/types/notify/ @hellochar
/types/notifyjs/ @soundTricker @NateScarlet
@@ -3091,13 +3206,13 @@
/types/nouislider/ @bleuarg @lagaffe
/types/novnc-core/ @smithkl42 @BendingBender
/types/npm/ @SomaticIT
-/types/npm-package-arg/ @mgroenhoff
+/types/npm-package-arg/ @mgroenhoff @OiYouYeahYou
/types/npm-packlist/ @ajafff
/types/npmlog/ @DanielMSchmidt @littlepiggy03
/types/ns-api/ @Archcry
/types/nslog/ @unindented
/types/nsqjs/ @cezaryrk
-/types/nuka-carousel/ @Romic
+/types/nuka-carousel/ @Romic @altaudio
/types/number-is-nan/ @mhegazy
/types/number-to-words/ @frederickfogerty
/types/numeral/ @vbortone @BehindTheMath @klujanrosas
@@ -3108,13 +3223,15 @@
/types/nvd3/ @PjMitchell
/types/nw.gui/ @xperiments
/types/nw.js/ @alirdn
+/types/nwmatcher/ @woutervh-
/types/o.js/ @IceOnFire @bradzacher @janhommes @jcchalte
-/types/oauth/ @nonAlgebraic
+/types/oauth/ @nonAlgebraic @EduardoAC
/types/oauth.js/ @nobuoka
/types/oauth2-server/ @vangorra @cirick @d-fischer
/types/oauth2orize/ @wokim @heycalmdown @stevehipwell
/types/obelisk.js/ @bdrupieski
/types/obj-file-parser/ @benc-uk
+/types/obj-str/ @saenglert
/types/object-assign/ @chbrown
/types/object-diff/ @rogierschouten
/types/object-hash/ @misak113
@@ -3133,6 +3250,7 @@
/types/odata/ @janhommes @jcchalte
/types/ofe/ @Morfent
/types/office-js/ @OfficeDev @LanceEA @Zlatkovsky @kbrandl @Rick-Kirkham @AlexJerabek @ElizabethSamuel-MSFT
+/types/office-runtime/ @Zlatkovsky @mscharlock
/types/offline-js/ @cgwrench
/types/oibackoff/ @geoffreak
/types/oidc-token-manager/ @rosieks
@@ -3142,11 +3260,12 @@
/types/omggif/ @ffflorian
/types/on-finished/ @czechboy0 @BendingBender
/types/on-headers/ @jjeffery @BendingBender
+/types/on-wake-up/ @ajafff
/types/once/ @denis-sokolov @BendingBender
/types/onesignal-cordova-plugin/ @broder
/types/onetime/ @BendingBender
/types/oniguruma/ @smhxx
-/types/onoff/ @marcel-ernst
+/types/onoff/ @marcel-ernst @Kallu609
/types/ontime/ @Hirse
/types/open/ @Bartvds
/types/opener/ @tikurahul
@@ -3157,16 +3276,18 @@
/types/openlayers/v2/ @bolhovsky
/types/openlayers/v3/ @osechet @matthiasdailey-ccri
/types/openlayers/ @osechet @wb14123 @ailrun @mylen @iamthechad @danmana @yairtawil @pierremarc @hauke96 @gberaudo
-/types/openpgp/ @errietta
+/types/openpgp/ @errietta @damonpam
/types/openstack-wrapper/ @sanjaymadane
/types/opentok/ @westy92 @CatGuardian
/types/opentype.js/ @danmarshall @edzis
/types/opn/ @shinnn @SomaticIT @tlent
+/types/opossum/ @quinnlangille @lance
/types/optics-agent/ @crevil
/types/optimist/ @soywiz @chbrown
/types/optimize-css-assets-webpack-plugin/ @odnamrataizem
/types/ora/v0/ @basarat @screendriver
/types/ora/ @basarat @screendriver @BendingBender @azasypkin
+/types/oracle__oraclejet/ @nolakara @jingxwu
/types/oracledb/ @Bigous
/types/orchestrator/ @tkQubo @TeamworkGuy2
/types/orderedmap/ @bradleyayers
@@ -3219,6 +3340,7 @@
/types/p-wait-for/ @BendingBender
/types/p-whilst/ @BendingBender
/types/p2/ @clark-stevenson
+/types/p5/ @p5-types
/types/package-json/ @jinwoo
/types/packery/ @piraveen @hanssens
/types/pad/ @mhegazy
@@ -3226,10 +3348,11 @@
/types/paho-mqtt/ @amikhalev
/types/pako/ @cappellin @calebegg
/types/pangu/ @plantain-00
-/types/papaparse/ @torpedro @rainshen49 @jfloff @johnnyreilly @albertorestifo @BehindTheMath @3af
+/types/papaparse/ @torpedro @rainshen49 @jfloff @johnnyreilly @albertorestifo @BehindTheMath @3af @jliuhtonen
/types/paper/ @clark-stevenson @Xakaloz @sebaswebdev @rfried
/types/parallel-transform/ @djcsdy
/types/paralleljs/ @jbaldwin
+/types/parcel-bundler/ @pinage404
/types/parcel-env/ @fathyb
/types/parent-package-json/ @sgmccli
/types/parity-pmd/ @leovujanic @jewbre
@@ -3259,6 +3382,8 @@
/types/parsimmon/ @Bartvds @mizunashi-mana @bcherny @bvanreeven @leonard-thieu @MrJohz
/types/passport/ @horiuchi @enaeseth @theigor @tlaziuk @danielpa9708
/types/passport-anonymous/ @0x6368656174
+/types/passport-auth0/ @johnbendi @iamvishnusankar
+/types/passport-azure-ad/ @ShekharNain
/types/passport-beam/ @AtlasDev
/types/passport-cognito/ @mbutsykin
/types/passport-discord/ @kzay
@@ -3275,7 +3400,7 @@
/types/passport-local/ @SomaticIT
/types/passport-local-mongoose/ @linusbrolin
/types/passport-naver/ @Park9eon @zerocho
-/types/passport-oauth2/ @pasieronen @WangZishi
+/types/passport-oauth2/ @pasieronen @WangZishi @EduardoAC
/types/passport-oauth2-client-password/ @akaNightmare
/types/passport-remember-me-extended/ @AylaJK
/types/passport-saml/ @cjbarth @dassennato
@@ -3283,6 +3408,8 @@
/types/passport-strategy/ @liorm
/types/passport-twitter/ @staticfunction
/types/passport-unique-token/ @briman0094 @SomaticIT
+/types/passport-vkontakte/ @soulthreads
+/types/passport-windowsauth/ @forivall
/types/password-hash/ @mugeso
/types/password-hash-and-salt/ @alitaheri
/types/path-exists/v1/ @shiwano
@@ -3300,7 +3427,7 @@
/types/pbkdf2/ @timonegk
/types/pdfjs-dist/ @jbaldwin
/types/pdfkit/ @erichillah
-/types/pdfmake/ @m1llen1um @radziksh
+/types/pdfmake/ @m1llen1um @radziksh @evolkmann
/types/pdfobject/ @nielsboogaard
/types/pebblekitjs/ @makotokw
/types/peer-dial/ @RealTYPICAL
@@ -3308,6 +3435,7 @@
/types/pegjs/ @vvakame @SrTobi @siegebell
/types/pem/ @tony19 @DethAriel
/types/pem-jwk/ @alessiopcc
+/types/permit/ @jannikkeye
/types/persona/ @Nycto
/types/pet-finder-api/ @me
/types/pg/v6/ @pspeter3
@@ -3340,11 +3468,13 @@
/types/pidusage/ @cyrilschumacher @mx601595686
/types/pify/ @samverschueren @mad-mike @c7hm4r
/types/pigpio/ @manerfan
-/types/pikaday/ @MidnightDesign @wake42
+/types/pigpio-dht/ @erikma
+/types/pikaday/ @MidnightDesign @wake42 @mezoistvan
/types/pikaday-time/ @Sayan751
/types/pinkyswear/ @chances
/types/pino/v3/ @psnider
-/types/pino/ @psnider @BendingBender @screendriver @paambaati
+/types/pino/ @psnider @BendingBender @screendriver @paambaati @alferpal
+/types/pino-http/ @screendriver
/types/pino-multi-stream/ @JakeGinnivan
/types/pinterest-sdk/ @adamburmister
/types/pinyin/ @wanganjun
@@ -3359,6 +3489,7 @@
/types/playerframework/ @ricardosabino
/types/playmusic/ @nickp10
/types/pleasejs/ @nakakura
+/types/plist/ @higuri
/types/plotly.js/ @chrisgervang @martinduparc @frederikaalund @taoqf @Dadstart @szechyjs @MercifulCode @soorajpudiyadath @jonfreedman @meganrm
/types/plugapi/ @BNedry
/types/plugin-error/ @rogierschouten
@@ -3380,6 +3511,9 @@
/types/popcorn/ @grapswiz
/types/portscanner/ @douglasduteil
/types/postal/ @lokeshpeta @myitcv
+/types/postcss-calc/ @huan086
+/types/postcss-icss-values/ @huan086
+/types/postcss-modules-resolve-imports/ @huan086
/types/postman-collection/ @kbuzby
/types/postmark/ @benbayard @jineshshah36
/types/pouch-redux-middleware/ @charrondev
@@ -3393,7 +3527,7 @@
/types/pouchdb-adapter-node-websql/ @spaulg @geppy @fredgalvao
/types/pouchdb-adapter-websql/ @spaulg @geppy @fredgalvao
/types/pouchdb-browser/ @spaulg @geppy @fredgalvao
-/types/pouchdb-core/ @spaulg @trubit @geppy @fredgalvao @TobiasBales @tiangolo
+/types/pouchdb-core/ @spaulg @trubit @geppy @fredgalvao @TobiasBales @tiangolo @kmoe
/types/pouchdb-find/ @trubit @tiangolo
/types/pouchdb-http/ @spaulg @geppy @fredgalvao
/types/pouchdb-mapreduce/ @spaulg @geppy @fredgalvao
@@ -3443,6 +3577,7 @@
/types/prompt-sync/ @MugeSo
/types/prompt-sync-history/ @MugeSo
/types/promptly/ @danrspencer
+/types/prompts/ @Berkays
/types/prop-types/ @DovydasNavickas @ferdaber
/types/proper-lockfile/ @qlonik
/types/properties-reader/ @Goldsmith42
@@ -3462,7 +3597,7 @@
/types/prosemirror-tables/ @superchu @eshvedai @patsimm
/types/prosemirror-transform/ @bradleyayers @davidka @timjb @patsimm
/types/prosemirror-view/ @bradleyayers @davidka @timjb @patsimm
-/types/proton-native/ @khanhas
+/types/proton-native/ @khanhas @ltetzlaff
/types/protractor-browser-logs/ @rokadias
/types/protractor-helpers/ @johncant
/types/protractor-http-mock/ @Crevil
@@ -3483,7 +3618,8 @@
/types/pumpify/ @JustinBeckwith @aoberoi
/types/pupa/ @nju33
/types/puppeteer/v0/ @marvinhagemeister @cdeutsch
-/types/puppeteer/ @marvinhagemeister @cdeutsch @ksm2
+/types/puppeteer/ @marvinhagemeister @cdeutsch @ksm2 @SimonSchick
+/types/puppeteer-core/ @mtsmfm
/types/pure-render-decorator/ @seansfkelley
/types/purl/ @danfma
/types/pusher-js/ @tkqubo @cainlevy
@@ -3496,7 +3632,7 @@
/types/qhistory/ @Kovensky
/types/qiniu-js/ @taoqf
/types/qlik/ @RubenSlabbert @AginicX
-/types/qlik-engineapi/ @konne
+/types/qlik-engineapi/ @konne @richardison
/types/qlik-visualizationextensions/ @konne
/types/qr-image/ @taoqf
/types/qrcode/ @plantain-00
@@ -3517,7 +3653,7 @@
/types/rabbit.js/ @wokim
/types/radium/ @alexgorbatchev @nupplaphil @asvetliakov
/types/radius/ @codeanimal
-/types/ramda/ @donnut @tycho01 @mdekrey @mrdziuban @sbking @afharo @teves-castro @1M0reBug @hojberg @samsonkeung @angeloocana @raynerd @googol @moshensky @ethanresnick @leighman @CaptJakk @deftomat @deptno @blimusiek @biern @rayhaneh @rgm
+/types/ramda/ @donnut @tycho01 @mdekrey @mrdziuban @sbking @afharo @teves-castro @1M0reBug @hojberg @samsonkeung @angeloocana @raynerd @googol @moshensky @ethanresnick @leighman @CaptJakk @deftomat @deptno @blimusiek @biern @rayhaneh @rgm @drewwyatt
/types/random-js/ @pistacchio
/types/random-number/ @OpenByteDev
/types/random-seed/ @endel
@@ -3541,23 +3677,26 @@
/types/raty/ @terrawheat
/types/raven/ @scttcper @1999 @shreyjain1994
/types/raven-for-redux/ @chiubaka
-/types/raygun4js/ @xt0rted @BenjaminHarding
+/types/raygun/ @UberMouse
+/types/raygun4js/ @xt0rted @BenjaminHarding @UberMouse
/types/rbac-a/ @tlaziuk
/types/rc/ @DanielRosenwasser
/types/rc-select/ @DenisTirilis
/types/rc-slider/ @mantasmarcinkus @mattoni @paustint @j-fro @Deanna2
+/types/rc-time-picker/ @Hoff97
/types/rc-tree/ @johnnyreilly @Methuselah96
/types/rcloader/ @panuhorsmalahti
/types/rdf-data-model/ @rubensworks
-/types/rdf-js/ @rubensworks
+/types/rdf-js/ @rubensworks @LaurensRietveld
/types/rdflib/ @cenotelie
/types/re-base/ @jordandrako
/types/reach__router/ @kingdaro
/types/react/v15/ @bbenezech @pzavolinsky @digiguru @ericanderson @morcerf @tkrotoff @DovydasNavickas @onigoetz
/types/react/ @johnnyreilly @bbenezech @pzavolinsky @digiguru @ericanderson @morcerf @tkrotoff @DovydasNavickas @onigoetz @theruther4d @guilhermehubner @ferdaber @jrakotoharisoa @pascaloliv @hotell @franklixuefei
/types/react-adal/ @dkorolev1
-/types/react-albus/ @sseppola
-/types/react-alert/ @ssyrell
+/types/react-albus/ @sseppola @conradreuter @kuirak
+/types/react-alert/v2/ @ssyrell
+/types/react-alert/ @g1eny0ung
/types/react-alice-carousel/ @endigo
/types/react-amplitude/ @rayzor65
/types/react-animate-on-scroll/ @ralbuque
@@ -3568,6 +3707,7 @@
/types/react-autosuggest/ @nicolas-schmitt @pjo256 @robessog @tbayne @cdeutsch @rosskevin
/types/react-avatar-editor/ @diogocorrea @gabsprates
/types/react-beautiful-dnd/ @varHarrie @bradleyayers @paustint @marknelissen
+/types/react-better-password/ @mhuynh1
/types/react-big-calendar/ @piotrwitek @paustint @pikpok @eps1lon @strongpauly
/types/react-body-classname/ @mhegazy
/types/react-bootstrap/ @walkerburgin @vsiao @danilojrr @Batbold-Gansukh @octatone @chengsieuly @mretolaza @katbusch @vitosamson @LKay @aaronbeall @jrakotoharisoa @r3nya @t49tran
@@ -3576,7 +3716,7 @@
/types/react-bootstrap-table/v2/ @flaub @alelode @UJosue10
/types/react-bootstrap-table/ @flaub @alelode @UJosue10 @dawnmist @Ogglas
/types/react-bootstrap-typeahead/ @Guymestef @radziksh @PaitoAnderson
-/types/react-breadcrumbs/ @KostyaEsmukov
+/types/react-breadcrumbs/ @guoyunhe
/types/react-breadcrumbs-dynamic/ @mitsuruog
/types/react-broadcast/ @kandros
/types/react-burger-menu/ @radziksh
@@ -3585,6 +3725,7 @@
/types/react-cartographer/ @trevonmckay
/types/react-circular-progressbar/ @lstanden
/types/react-click-outside/ @screendriver
+/types/react-close-on-escape/ @JamesAlias
/types/react-codemirror/ @velveret @rudi-c
/types/react-coinhive/ @sktbcbbs
/types/react-collapse/ @Kimahriman
@@ -3594,6 +3735,7 @@
/types/react-content-loader/ @alaatm @samwalshnz
/types/react-copy-to-clipboard/ @mabels @BernabeFelix
/types/react-copy-write/ @samhh @davej
+/types/react-countup/ @danielbrodin
/types/react-credit-cards/ @vstrimaitis @olefrank
/types/react-cropper/ @stepancar
/types/react-css-modules/ @KostyaEsmukov @skirsdeda
@@ -3607,15 +3749,17 @@
/types/react-datagrid/ @stephenjelfs
/types/react-date-range/ @Junbong
/types/react-datepicker/ @radziksh @andrewBalekha @smrq @Rogach @royxue @KoalaHuman @seansfkelley
-/types/react-daterange-picker/ @uncovertruth @MartynasZilinskas @donaldtf
+/types/react-daterange-picker/ @uncovertruth @MartynasZilinskas @donaldtf @vladflorescu94
/types/react-dates/ @ArturAmpilogov @NathanNZ
/types/react-daum-postcode/ @Sa-ryong
/types/react-dnd-multi-backend/ @dawnmist @beeequeue
/types/react-dnd-touch-backend/ @mleko @dawnmist @beeequeue
+/types/react-document-meta/ @ulrichb
/types/react-document-title/ @cleverguy25
/types/react-dom/v15/ @MartynasZilinskas
/types/react-dom/ @MartynasZilinskas @theruther4d
/types/react-dom-factories/ @jgoz
+/types/react-draft-wysiwyg/ @imechZhangLY
/types/react-dragtastic/ @nscarcella
/types/react-dropzone/v2/ @matdube @LynxEyes @goblindegook @benbayard
/types/react-dropzone/v3/ @matdube @LynxEyes @goblindegook @benbayard @LKay
@@ -3625,6 +3769,7 @@
/types/react-event-listener/ @asvetliakov
/types/react-fa/ @flaub @patsissons @LKay
/types/react-facebook-login/ @apare @jankarres
+/types/react-facebook-login-component/ @koss-lebedev
/types/react-faux-dom/ @alitaheri @cleverguy25 @deviousm @hanai
/types/react-file-input/ @dmitryrogozhny
/types/react-file-reader-input/ @dmitryrogozhny @alitaheri
@@ -3640,6 +3785,7 @@
/types/react-gateway/ @jsonunger
/types/react-geosuggest/ @brmenchl
/types/react-global-configuration/ @ryokik
+/types/react-google-login-component/ @koss-lebedev
/types/react-google-maps-loader/ @vasilysn
/types/react-google-places-suggest/ @vasilysn
/types/react-google-recaptcha/ @KoalaHuman
@@ -3652,38 +3798,43 @@
/types/react-helmet/ @evanbb @isman-usoh @lith-light-g @sammkj @yuit
/types/react-helmet-async/ @forabi
/types/react-highlight/ @joshuakgoldberg
-/types/react-highlight-words/ @mhegazy @diogodca
+/types/react-highlight-words/ @mhegazy @diogodca @kellyrmilligan
/types/react-highlighter/ @oizie
/types/react-holder/ @isman-usoh
/types/react-hot-loader/ @jacekjagiello @MartynasZilinskas @DovydasNavickas
/types/react-hyperscript/ @tock203
-/types/react-i18next/v1/ @KostyaEsmukov
-/types/react-i18next/v4/ @GiedriusGrabauskas @netanelgilad
-/types/react-i18next/ @GiedriusGrabauskas @chnoch @beheh @whtsky
/types/react-icon-base/ @apare @LKay
/types/react-icons/ @apare @johnnyreilly @LKay
/types/react-image-crop/ @danielasy
+/types/react-image-fallback/ @8enSmith
/types/react-image-gallery/ @adamwpc
/types/react-imageloader/ @stephenjelfs
+/types/react-images/ @KonstantinLukaschenko
+/types/react-imgpro/ @echoulen
/types/react-infinite/ @rhysd
/types/react-infinite-calendar/ @christianchown
-/types/react-infinite-scroll-component/ @sroy3 @burtek @davidkevork
-/types/react-infinite-scroller/ @Lapanti @psrebniak
+/types/react-infinite-scroll-component/ @sroy3 @burtek @davidkevork @JoshuaScript
+/types/react-infinite-scroller/ @Lapanti @psrebniak @WrathZA
/types/react-input-autosize/ @jsonunger @franklixuefei
/types/react-input-calendar/ @stepancar
/types/react-input-mask/v1/ @apare
/types/react-input-mask/ @apare @dima7a14
+/types/react-instantsearch/ @gburgett @jpowell
+/types/react-instantsearch-core/ @gburgett @jpowell
+/types/react-instantsearch-dom/ @gburgett @jpowell
+/types/react-instantsearch-native/ @gburgett @jpowell
/types/react-intl/v1/ @bgrieder
/types/react-intl/ @bgrieder @cdroulers @gyzerok @tillwolff @LKay @bhouser @kristerkari @formatlos @lukyth
/types/react-intl-redux/ @LKay
-/types/react-is/ @AviVahl
+/types/react-is/ @AviVahl @christianchown
/types/react-is-deprecated/ @seansfkelley
-/types/react-joyride/ @kdy1
+/types/react-joyride/ @kdy1 @kamranayub
/types/react-js-pagination/ @netoisc
/types/react-json/ @spielc
/types/react-json-pretty/ @LKay
/types/react-json-tree/ @gnestor
-/types/react-jsonschema-form/ @iamdanfox @sirreal @iplus26 @KurtPreston @phbou72 @LucianBuzzo
+/types/react-jsonschema-form/ @iamdanfox @iplus26 @KurtPreston @phbou72 @LucianBuzzo @sthenault @sbusch
+/types/react-jss/ @eps1lon
/types/react-lazyload/ @m0a
/types/react-lazylog/ @benjaminRomano
/types/react-leaflet/ @danzel @davschne @yuit
@@ -3691,24 +3842,26 @@
/types/react-list/ @buptyyf @tomshen
/types/react-loadable/ @Kovensky @odensc @ianks @tlaziuk @iMobs
/types/react-loader/ @artfuldev
+/types/react-lottie/ @Kana00 @Ricki-BumbleDev
/types/react-mailchimp-subscribe/ @osdiab
/types/react-map-gl/ @rimig @fnberta
/types/react-maskedinput/ @LKay @lavoaster @CarlosBonetti
/types/react-mce/ @morphologue
/types/react-mdl/ @bradzacher
/types/react-measure/ @asvetliakov @marcfallows
+/types/react-mentions/ @activescott
/types/react-mixin/ @tkqubo
-/types/react-modal/ @radziksh @drewnoakes @homburg @ttamminen @hallowatcher @peterblazejewicz
+/types/react-modal/ @radziksh @drewnoakes @homburg @ttamminen @hallowatcher @peterblazejewicz @jpowell
/types/react-motion/ @stepancar @asvetliakov @dimitarnestorov
/types/react-motion-slider/ @asvetliakov
/types/react-motion-ui-pack/ @jsonunger
-/types/react-native/ @alloy @huhuanming @iRoachie @timwangdev @kamal @nelyousfi @alexdunne @swissmanu @bm-software @tkrotoff @a-tarasyuk @mvdam
+/types/react-native/ @alloy @huhuanming @iRoachie @skn0tt @timwangdev @kamal @nelyousfi @alexdunne @swissmanu @bm-software @tkrotoff @a-tarasyuk @mvdam @esemesek @mrnickel
/types/react-native-android-taskdescription/ @christianchown
/types/react-native-auth0/ @ascariandrea
/types/react-native-autocomplete-input/ @ifiokjr
/types/react-native-background-timer/ @chillkroeteTTS
/types/react-native-bluetooth-serial/ @RodrigoAWeber
-/types/react-native-calendars/ @Tyler-Zhang @DavidNorena
+/types/react-native-calendars/ @Tyler-Zhang @DavidNorena @FabianMeul
/types/react-native-communications/ @huhuanming @PaitoAnderson
/types/react-native-custom-tabs/ @philnova
/types/react-native-datepicker/ @jacobbaskin
@@ -3723,8 +3876,9 @@
/types/react-native-fbsdk/ @ifiokjr
/types/react-native-fetch-blob/ @MNBuyskih
/types/react-native-fs/ @pocesar @josephroque
-/types/react-native-google-signin/ @j-fro
+/types/react-native-google-signin/ @j-fro @bm-software @christianchown @echentw
/types/react-native-htmlview/ @ifiokjr
+/types/react-native-huawei-protected-apps/ @christianchown
/types/react-native-i18n/ @VincentLanglet
/types/react-native-indicators/ @ifiokjr
/types/react-native-keep-awake/ @huhuanming
@@ -3746,7 +3900,10 @@
/types/react-native-popup-dialog/ @PaitoAnderson @connectdotz @bm-software
/types/react-native-push-notification/ @PaitoAnderson @tomSawkins
/types/react-native-qrcode/ @plantain-00
+/types/react-native-referrer/ @christianchown
+/types/react-native-restart/ @christianchown
/types/react-native-safari-view/ @mrand01
+/types/react-native-scaled-image/ @Jaeger25
/types/react-native-scrollable-tab-view/ @CaiHuan @egorshulga
/types/react-native-sensor-manager/ @SahinVardar
/types/react-native-settings-list/ @MrLuje
@@ -3756,6 +3913,7 @@
/types/react-native-sortable-list/ @sivolobov @RookY2K
/types/react-native-sqlite-storage/ @dryganets @cavarzan
/types/react-native-star-rating/ @iRoachie
+/types/react-native-status-bar-height/ @fiznool
/types/react-native-svg-charts/ @krzysztof-miemiec
/types/react-native-svg-uri/ @iRoachie
/types/react-native-swiper/ @CaiHuan @huhuanming @mhcgrq
@@ -3764,11 +3922,12 @@
/types/react-native-text-input-mask/ @RodrigoAWeber
/types/react-native-toast-native/ @bm-software
/types/react-native-touch-id/ @huhuanming @gazaret @jinshin1013
+/types/react-native-uuid-generator/ @burtek
/types/react-native-vector-icons/ @iRoachie @timwangdev
/types/react-native-version-number/ @VincentLanglet
/types/react-native-video/ @huhuanming
/types/react-navigation/v1/ @huhuanming @mhcgrq @fangpenlin @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @YourGamesBeOver @ArmandoAssuncao @cliedeman @Slessi
-/types/react-navigation/ @huhuanming @mhcgrq @fangpenlin @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @YourGamesBeOver @ArmandoAssuncao @cliedeman @Slessi @magrinj @TizioFittizio @stigi @LinusU @jshosomichi @jakebooyah @brunoro @DenisFrezzato @mickaelw
+/types/react-navigation/ @huhuanming @mhcgrq @fangpenlin @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @YourGamesBeOver @ArmandoAssuncao @cliedeman @Slessi @magrinj @TizioFittizio @stigi @LinusU @jshosomichi @jakebooyah @brunoro @DenisFrezzato @mickaelw @maxdavidson @jkillian
/types/react-navigation-material-bottom-tabs/ @iRoachie
/types/react-no-ssr/ @rafalfilipek
/types/react-notification-system/ @GiedriusGrabauskas @DeividasBakanas @LKay @sztobar
@@ -3776,8 +3935,9 @@
/types/react-notify-toast/ @klaascuvelier
/types/react-numeric-input/ @heatherbooker @akx
/types/react-onclickoutside/v5/ @LKay
-/types/react-onclickoutside/ @LKay
-/types/react-onsenui/ @salim7 @jemmyw
+/types/react-onclickoutside/ @LKay @surgeboris
+/types/react-onsenui/ @salim7 @jemmyw @lirbank
+/types/react-outside-click-handler/ @zubivan
/types/react-overlays/ @aaronbeall @vitosamson
/types/react-owl-carousel/ @tbounsiar @igorissen @KennethanCeyer
/types/react-paginate/v4/ @deevus @wouterhardeman @pegel03 @archy-bold
@@ -3793,6 +3953,7 @@
/types/react-qr-reader/ @davidkevork
/types/react-radio-group/ @jsonunger
/types/react-recaptcha/ @mhegazy @zzanol
+/types/react-reconciler/ @Methuselah96
/types/react-redux/v5/ @tkqubo @thasner @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva
/types/react-redux/ @tkqubo @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva @kallikrein @val1984 @jrakotoharisoa @apapirovski
/types/react-redux-epic/ @forabi
@@ -3806,8 +3967,8 @@
/types/react-responsive/ @asvetliakov @alechill @xaviergonz
/types/react-rnd/ @Ragg- @fsubal @zyh825
/types/react-router/v2/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov
-/types/react-router/v3/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @ssorallen @gillchristian
-/types/react-router/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @tkrotoff @huy-nguyen @grmiade @DaIgeb @egorshulga @neuoy @rraina @pret-a-porter @t49tran
+/types/react-router/v3/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @ssorallen @gillchristian @nulladdict
+/types/react-router/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @tkrotoff @huy-nguyen @grmiade @DaIgeb @egorshulga @neuoy @rraina @pret-a-porter @t49tran @8enSmith
/types/react-router-bootstrap/ @vlesierse @LKay @olmobrutall
/types/react-router-config/ @lith-light-g @johnnyreilly
/types/react-router-dom/ @tkrotoff @huy-nguyen @p-jackson @johnnyreilly
@@ -3839,7 +4000,9 @@
/types/react-sparklines/ @henrinormak
/types/react-spinkit/v1/ @tkqubo @mleko @pelotom
/types/react-spinkit/ @tkqubo @mleko @pelotom @zzanol
+/types/react-star-rating-component/ @marpstar
/types/react-sticky/ @curtisw0 @ajhyndman
+/types/react-sticky-box/ @koss-lebedev
/types/react-sticky-el/ @jbraithwaite
/types/react-stickynode/ @tstirrat
/types/react-stripe-elements/ @dan-j @santiagodoldan @sonnysangha @9y5 @thchia
@@ -3849,10 +4012,11 @@
/types/react-swipe/ @DeividasBakanas
/types/react-swipeable/ @GiedriusGrabauskas @mctep @horiuchi
/types/react-swipeable-views/ @mxl @DeividasBakanas
-/types/react-syntax-highlighter/ @NoHomey
-/types/react-table/ @royxue @psakalo @Havret
+/types/react-syntax-highlighter/ @NoHomey @ajgamble-milner
+/types/react-table/ @royxue @psakalo @Havret @andys8
/types/react-table-filter/ @gjsln
-/types/react-tabs/ @danez
+/types/react-tabs/ @danez @Equationist
+/types/react-tag-autocomplete/ @jlismore
/types/react-tag-input/ @Ogglas @jankarres @matthewberryman
/types/react-tagcloud/ @wassname
/types/react-tagsinput/ @mykter
@@ -3862,6 +4026,7 @@
/types/react-tether/ @ryprice
/types/react-text-mask/ @guilhermehubner @cavarzan @needpower
/types/react-textarea-autosize/ @asvetliakov @zry656565
+/types/react-timeago/ @koss-lebedev
/types/react-timeout/ @kerwynrg
/types/react-toastify/ @icopp
/types/react-toastr/ @shssoichiro @DanRegazzi
@@ -3880,11 +4045,13 @@
/types/react-virtual-keyboard/ @bsurai
/types/react-virtualized/ @kaoDev @guntherjh @wasd171 @szabolcsx @kraenhansen @Stevearzh @mgoszcz2 @brandonhall
/types/react-virtualized-select/ @seansfkelley
+/types/react-visibility-sensor/ @JRasmusBm
/types/react-webcam/ @squat
/types/react-weui/ @tairan
-/types/react-widgets/ @rogierschouten @sanyatuning @frodehansen2 @r3nya @MBillemaz
+/types/react-widgets/ @rogierschouten @sanyatuning @frodehansen2 @r3nya @MBillemaz @georg94
/types/react-widgets-moment/ @dawnmist
/types/react-window/ @martynaskadisa
+/types/react-window-size/ @jakejrichards
/types/react-youtube/ @kgtkr
/types/react-youtube-embed/ @charles-salmon
/types/reactable/ @spielc
@@ -3901,16 +4068,20 @@
/types/readline-sync/ @jonestristand
/types/readline-transform/ @dex4er
/types/reapop/ @Barrokgl
+/types/rebass/ @ryee-dev
+/types/rebass__grid/ @antonvasin @vittorio @lhache @lavoaster
/types/recaptcha2/ @l-jonas
/types/recase/ @18steps
/types/recharts/ @mthmulders @rapmue @royxue @ZheyangSong @richbai90 @caspeco-dan @pkeuter @jrsaunde @paulmelnikow @crusectrl @apalugniok
+/types/recharts-scale/ @johnnyreilly
/types/recluster/ @dex4er
-/types/recompose/ @iskandersierra @mrapogee @clayne11 @Pajn @lucasterra
+/types/recompose/ @iskandersierra @mrapogee @clayne11 @Pajn @lucasterra @brian-lives-outdoors
/types/reconnect-core/ @thw0rted
/types/reconnectingwebsocket/ @nguarracino
+/types/recorder-js/ @higuri
/types/recursive-readdir/v1/ @elisee
/types/recursive-readdir/ @elisee @MicahZoltu
-/types/redis/ @soywiz @CodeAnimal @MugeSo @UppaJung @Rokt33r @43081j @barnski
+/types/redis/ @soywiz @CodeAnimal @MugeSo @UppaJung @Rokt33r @43081j @barnski @1pete
/types/redis-errors/ @43081j
/types/redis-mock/ @BendingBender
/types/redis-rate-limiter/ @westy92
@@ -3921,7 +4092,7 @@
/types/reduce-reducers/ @huy-nguyen
/types/redux-action/ @newraina
/types/redux-action-utils/ @tkqubo
-/types/redux-actions/ @jaysoo @alexgorbatchev @alechill @alexey-pelykh
+/types/redux-actions/ @jaysoo @alexgorbatchev @alechill @alexey-pelykh @7hi4g0
/types/redux-async-queue/ @andreiho
/types/redux-auth-wrapper/v1/ @LKay
/types/redux-auth-wrapper/ @LKay
@@ -3931,14 +4102,15 @@
/types/redux-devtools-dock-monitor/ @mc-petry
/types/redux-devtools-log-monitor/ @mc-petry
/types/redux-doghouse/ @BendingBender
-/types/redux-first-router/ @Valbrand @viggyfresh @janb87 @corydeppen @jscinoz
+/types/redux-first-router/ @Valbrand @viggyfresh @janb87 @corydeppen @jscinoz @surgeboris
/types/redux-first-router-link/ @janb87
/types/redux-first-router-restore-scroll/ @icopp
/types/redux-first-routing/ @tlaziuk
/types/redux-form/v4/ @aikoven
/types/redux-form/v6/ @carsonf @aikoven @LKay @bancek
-/types/redux-form/ @carsonf @aikoven @LKay @bancek @alsiola @tehbi4 @huwmartin @ethanresnick @reggino @maddijoyce
-/types/redux-immutable/ @oizie @sebald @gavingregory
+/types/redux-form/ @carsonf @aikoven @LKay @bancek @alsiola @tehbi4 @huwmartin @ethanresnick @reggino @maddijoyce @smifun
+/types/redux-immutable/v3/ @oizie @sebald @gavingregory
+/types/redux-immutable/ @oizie @sebald @gavingregory @lukyth
/types/redux-immutable-state-invariant/ @remojansen @highflying
/types/redux-infinite-scroll/ @silkyfray
/types/redux-injectable-store/ @unindented
@@ -3980,13 +4152,15 @@
/types/relateurl/ @tkrotoff
/types/relaxed-json/ @18steps
/types/relay-runtime/ @voxmatt @alloy
+/types/rellax/ @shermendev
/types/remarkable/ @makepost
/types/remote-redux-devtools/ @ColinEberhardt @unindented @mamodom @colindekker
/types/remove-markdown/ @RagibHasin
/types/rename/ @Aankhen
/types/replace-ext/ @DeividasBakanas
+/types/replacestream/ @dex4er
/types/req-cwd/ @Alorel
-/types/request/ @soywiz @bonnici @Bartvds @joeskeen @ccurrens @lookfirst @mastermatt @josecolella
+/types/request/ @soywiz @bonnici @Bartvds @joeskeen @ccurrens @lookfirst @mastermatt @josecolella @murbanowicz
/types/request-as-curl/ @atd-schubert
/types/request-ip/ @mrhen
/types/request-promise/ @cglantschnig @joeskeen @AyaMorisawa @mastermatt
@@ -4005,7 +4179,7 @@
/types/resolve/ @marionebl @ajafff
/types/resolve-from/ @unional
/types/resourcejs/ @shaunluttin
-/types/response-time/ @urossmolnik @TonyPythoneer
+/types/response-time/ @urossmolnik @TonyPythoneer @danmana
/types/rest/ @Nemo157
/types/restangular/ @borisyankov
/types/restful.js/ @tkqubo
@@ -4043,6 +4217,7 @@
/types/rmfr/ @pluma
/types/roads/ @dancespiele
/types/roads-server/ @dancespiele
+/types/rocksdb/ @MeirionHughes @danwbyrne
/types/roll/ @icopp
/types/rolling-rate-limiter/ @l-jonas
/types/rollup-plugin-json/ @asmockler @hotell
@@ -4053,7 +4228,7 @@
/types/round-to/ @seangenabe
/types/route-parser/ @ianks @bobbuehler
/types/routie/ @Adilson
-/types/royalslider/ @csrakowski
+/types/royalslider/ @csrakowski @sKopheK
/types/rpio/ @DominikPalo @Pencl
/types/rrc/ @DeividasBakanas
/types/rsmq/ @MugeSo
@@ -4109,11 +4284,13 @@
/types/satnav/ @DotNetNerd
/types/saywhen/ @SeanSobey
/types/scalike/ @ryoppy
+/types/schedule/ @Methuselah96
+/types/scheduler/ @Methuselah96
/types/schema-registry/ @bonzzy
/types/schwifty/ @ozum
/types/scoped-http-client/ @mattvperry @rianadon
/types/screenfull/ @icholy @lionelb @joelshepherd
-/types/screeps/ @MarkoSulamagi @NhanHo @bryanbecker @resir014 @Arcath @apemanzilla
+/types/screeps/ @MarkoSulamagi @NhanHo @bryanbecker @resir014 @Arcath @dmarcuse
/types/screeps-profiler/ @ramblurr
/types/scriptjs/ @ssttevee
/types/scroll-into-view/ @zivni
@@ -4126,7 +4303,8 @@
/types/scryptsy/ @micksatana
/types/sdp-transform/ @loc
/types/seamless/ @danmana
-/types/seamless-immutable/ @alex3165 @xsburg @geirsagberg
+/types/seamless-immutable/ @alex3165 @xsburg @geirsagberg @RMHonor
+/types/season/ @dex4er
/types/secp256k1/ @anler
/types/seed-random/ @l-jonas
/types/seededshuffle/ @urish
@@ -4169,33 +4347,36 @@
/types/send/ @MikeJerred
/types/seneca/ @psnider @kevynb
/types/sequelize/v3/ @samuelneff @codeanimal @drinchev @morpheusxaut @torhal
-/types/sequelize/ @samuelneff @codeanimal @drinchev @babolivier @kukoo1 @oktapodia @morpheusxaut @TitaneBoy @zjy01 @nidzov @Raigen @todd @nrschultz @thomas-b
+/types/sequelize/ @samuelneff @codeanimal @drinchev @babolivier @kukoo1 @oktapodia @morpheusxaut @TitaneBoy @zjy01 @nidzov @Raigen @todd @nrschultz @thomas-b @Antoine38660
/types/sequelize-cursor-pagination/ @pilagod
/types/sequelize-fixtures/ @cschwarz
/types/sequencify/ @npenin
/types/sequester/ @Strate
/types/serialize-error/ @thomasthiebaud
-/types/serialize-javascript/ @lith-light-g
+/types/serialize-javascript/ @lith-light-g @Pochodaydayup
/types/serialport/v4/ @codefoster
+/types/serialport/v6/ @codefoster @apearson
/types/serialport/ @codefoster @apearson
/types/serve-favicon/ @urossmolnik
/types/serve-index/ @tkrotoff
/types/serve-static/ @urossmolnik @LinusU
/types/server/ @sant123 @iddan
/types/server-destroy/ @gyszalai
+/types/serverless/ @hassankhan
/types/servicenow/ @bryceg
/types/session-file-store/ @blendsdk @rokt33r
/types/set-cookie-parser/ @nickp10
/types/set-value/ @DanielRosenwasser
/types/settings/ @shreyjain1994
/types/sha1/ @arcdev1
+/types/sha256/ @nhardy
/types/shallow-equals/ @rsolomon
/types/shallowequal/ @seansfkelley
/types/shapefile/ @DenisCarriere @Thw0rted
/types/sharedb/ @soney
/types/sharedworker/ @nakakura
/types/sharepoint/ @gandjustas @andrei-markeev @baywet @teroarvola @dennispg
-/types/sharp/ @lith-light-g @wooseopkim
+/types/sharp/ @lith-light-g @wooseopkim @BTOdell
/types/sheetify/ @toddself
/types/shell-escape/ @nenadalm
/types/shell-quote/ @jason0x43
@@ -4206,10 +4387,12 @@
/types/shipit-utils/ @cyrilschumacher
/types/shopify-buy/ @openminder @straiforos @totemika
/types/shortid/ @stpettersens @despairblue
-/types/shot/ @AJamesPhillips
+/types/shot/v3/ @AJamesPhillips @SimonSchick
+/types/shot/ @AJamesPhillips @SimonSchick
/types/should-sinon/ @Arylo
/types/showdown/ @cbowdon @tan9 @arielsaldana
/types/shrink-ray/ @forabi
+/types/shuffle-seed/ @LeartS
/types/siema/ @Irmiz @0x6368656174 @samnau
/types/siesta/ @bquarmby
/types/sigmajs/ @qinfchen
@@ -4234,9 +4417,10 @@
/types/simplemde/ @Scalesoft
/types/simplesmtp/ @rogierschouten
/types/simplestorage.js/ @axelcostaspena @mxl
+/types/sindresorhus__df/ @whatknight
/types/single-line-log/ @ffflorian
/types/single-spa-react/ @Garrett-Smith-iq
-/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j @joshuakgoldberg
+/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j @joshuakgoldberg @gjednaszewski
/types/sinon-as-promised/ @igrayson
/types/sinon-chai/v2/ @kazimanzurrashid @jedmao
/types/sinon-chai/ @kazimanzurrashid @jedmao @elpdpt
@@ -4259,12 +4443,12 @@
/types/slack-winston/ @BlueHatbRit
/types/slackdown/ @nju33
/types/slackify-html/ @hypexr
-/types/slate/ @andykent @majelbstoat @JanLoebel @YangusKhan @kalley @Kornil @isubasti
+/types/slate/ @andykent @majelbstoat @JanLoebel @YangusKhan @kalley @Kornil @isubasti @sgreav
/types/slate-base64-serializer/ @YangusKhan
/types/slate-html-serializer/ @YangusKhan
/types/slate-irc/ @elisee
-/types/slate-plain-serializer/ @YangusKhan
-/types/slate-react/ @andykent @majelbstoat @JanLoebel @PatrickSachs @YangusKhan @isubasti
+/types/slate-plain-serializer/ @YangusKhan @mkiefel
+/types/slate-react/ @andykent @majelbstoat @JanLoebel @PatrickSachs @YangusKhan @isubasti @sgreav
/types/sleep/ @rajarz
/types/slickgrid/ @jbaldwin
/types/slideout/ @ToastHawaii
@@ -4281,7 +4465,9 @@
/types/snazzy-info-window/ @milosd92
/types/snekfetch/ @ANekoIsFineToo @ShayBox @Dev-Yukine
/types/snoowrap/ @vitosamson @TheAppleFreak
+/types/snowball-stemmers/ @ryanvolum
/types/snowboy/ @dolanmiu
+/types/socket.io/v1/ @progre @divillysausages @florentpoujol @KentarouTakeda @gigi @BrainMaestro
/types/socket.io/ @progre @divillysausages @florentpoujol @KentarouTakeda @gigi @BrainMaestro
/types/socket.io-client/ @progre @divillysausages @florentpoujol
/types/socket.io-p2p/ @saenglert
@@ -4297,8 +4483,9 @@
/types/solidity-parser-antlr/ @LogvinovLeon @albrow
/types/solr-client/ @liul85
/types/solution-center-communicator/ @dami-gg
+/types/sonic-boom/ @alferpal
/types/sort-array/ @mrmlnc
-/types/sortablejs/ @Maw-Fox
+/types/sortablejs/ @Maw-Fox @maartenstaa
/types/soundmanager2/ @elton2048
/types/soupbintcp/ @jewbre
/types/source-list-map/ @e-cloud
@@ -4325,7 +4512,7 @@
/types/spotify-api/ @skovmand
/types/spotify-web-playback-sdk/ @Festify @mraerino @NeoLegends
/types/sprintf/ @soywiz @BendingBender
-/types/sprintf-js/ @jasonswearingen @BendingBender
+/types/sprintf-js/ @jasonswearingen @BendingBender @cdagli
/types/sql-bricks/ @adn05 @paleo
/types/sql.js/ @Hozuki
/types/sqlanywhere/ @pkeuter
@@ -4334,7 +4521,7 @@
/types/squirejs/ @bradleyayers
/types/srp/ @Patman64
/types/ssh-key-decrypt/ @BendingBender
-/types/ssh2/ @tkQubo @rbuckton
+/types/ssh2/ @tkQubo @rbuckton @wrboyce
/types/ssh2-sftp-client/ @igrayson @ascariandrea @kartik2406
/types/ssh2-streams/ @rbuckton
/types/sshpk/ @mabels
@@ -4346,6 +4533,8 @@
/types/stampit/v2/ @koresar
/types/stampit/ @koresar @lummish
/types/stamplay-js-sdk/ @ridermansb
+/types/standard-error/ @roblabat
+/types/standard-http-error/ @roblabat
/types/starwars-names/ @claasahl
/types/stat-mode/ @BendingBender
/types/stats.js/ @gregolai @hberntsen @danvk
@@ -4358,13 +4547,16 @@
/types/steam-totp/ @phenomax
/types/steamid/ @Slessi
/types/steed/ @Paul-Isache
-/types/stellar-sdk/ @carl-foster @tristonj @pselden @maxbause
+/types/stellar-sdk/ @carl-foster @tristonj @pselden @maxbause @charlie-wasp
/types/stemmer/ @will-ockmore
/types/sticky-cluster/ @paustint
+/types/stompit/ @DanielRose
/types/stompjs/ @jimic @Dr4k4n
/types/stoppable/ @EricByers
+/types/storage-helper/ @ajafff
/types/store/ @vbortone @harry0000 @Ky6uk
/types/storybook-addon-jsx/ @jameslnewell
+/types/storybook-readme/ @lonyele
/types/storybook__addon-a11y/ @hyunseob
/types/storybook__addon-actions/ @joscha @jicjjang
/types/storybook__addon-backgrounds/ @hyunseob
@@ -4379,6 +4571,7 @@
/types/storybook__react/ @joscha @wapgear
/types/storybook__react-native/ @joscha @wapgear @alechill @iRoachie
/types/storybook__vue/ @pntgupta
+/types/stream-array/ @Tyler-Murphy
/types/stream-buffers/ @Jason3S
/types/stream-chain/ @uhop
/types/stream-csv-as-json/ @uhop
@@ -4397,8 +4590,10 @@
/types/strftime/ @cyrilschumacher
/types/strict-uri-encode/ @hoishin
/types/string/ @basp
+/types/string-argv/ @vladimir-tikhonov
/types/string-format/ @lal12
/types/string-hash/ @ethanrubio
+/types/string-replace-webpack-plugin/ @pd4d10
/types/string-similarity/ @ragtime
/types/string-template/ @TonyPythoneer
/types/string-width/ @jacobbubu
@@ -4407,7 +4602,7 @@
/types/strip-ansi/ @mhegazy
/types/strip-bom/ @mhegazy
/types/strip-json-comments/ @dmoonfire
-/types/stripe/ @wjohnsto @codeanimal @sampsonjoliver @LinusU @brannon @kkamperschroer @starhoshi @bruun @galtalmor @htunnicliff @squirly @tzarger
+/types/stripe/ @wjohnsto @codeanimal @sampsonjoliver @LinusU @brannon @kkamperschroer @starhoshi @bruun @galtalmor @htunnicliff @squirly @tzarger @ifiokjr
/types/stripe-checkout/ @cgwrench
/types/stripe-v2/ @ejsmith @amritk @adamcmiel @jleider @galuszkak
/types/stripe-v3/ @ejsmith @amritk @adamcmiel @jleider @galuszkak
@@ -4416,16 +4611,22 @@
/types/strong-error-handler/ @blankstar85
/types/strong-log-transformer/ @azasypkin
/types/strophe/ @DavidKDeutsch
+/types/strophe.js/ @DavidKDeutsch
/types/structured-source/ @azu
-/types/styled-components/ @Igorbek @Igmat
+/types/styled-components/v3/ @Igorbek @Igmat
+/types/styled-components/ @Igorbek @Igmat @lavoaster
/types/styled-jsx/ @R1ZZU
-/types/styled-system/ @maxdeviant @phobon @zephraph @damassi @alloy @maoueh @lavoaster
+/types/styled-react-modal/ @Lavoaster
+/types/styled-system/ @maxdeviant @phobon @zephraph @damassi @alloy @maoueh @lavoaster @jschuler
+/types/styled-theming/ @ArjanJ
/types/stylelint/v7/ @alan-agius4
-/types/stylelint/ @alan-agius4
+/types/stylelint/ @alan-agius4 @filipsalpe
/types/stylelint-webpack-plugin/ @bahlo
+/types/stylenames/ @bengry
/types/stylus/ @SomaticIT
/types/subscribe-ui-event/ @wangcheng678
/types/subsume/ @BendingBender
+/types/subtitle/ @jenglamlow
/types/succinct/ @EnableSoftware
/types/sudo-block/ @BendingBender
/types/suitescript/ @darrenhillconsulting
@@ -4466,7 +4667,7 @@
/types/swagger-parser/ @Tobias4872 @EricHenry
/types/swagger-restify-mw/ @micmro
/types/swagger-sails-hook/ @micmro
-/types/swagger-schema-official/ @mohsen1 @bsouthga @nimerritt
+/types/swagger-schema-official/ @mohsen1 @bsouthga @nimerritt @mauriedo
/types/swagger-tools/ @bricka
/types/swagger-ui-dist/ @haowen737
/types/swagger-ui-express/ @dmitryrogozhny
@@ -4478,7 +4679,7 @@
/types/swig-email-templates/ @mrhen @micksatana
/types/swipe/ @kant2002
/types/swiper/v3/ @sgaliano @lucax88x
-/types/swiper/ @sgaliano @lucax88x @ematseruk @odahcam
+/types/swiper/ @sgaliano @lucax88x @ematseruk @odahcam @jmca
/types/swipeview/ @borisyankov
/types/switchery/ @bgrieder @claylaut
/types/swiz/ @jedigo
@@ -4486,6 +4687,7 @@
/types/synaptic/ @ToastHawaii @austincummings
/types/systeminformation/ @PixelcrabAT
/types/systemjs/ @ludohenin @NathanWalker @GiedriusGrabauskas @aluanhaddad
+/types/tabbable/ @mokkan
/types/table/ @evanshortiss @mrmlnc
/types/tableau/ @protip
/types/tabris-plugin-firebase/ @eclipsesource
@@ -4500,6 +4702,7 @@
/types/tar-stream/ @glicht
/types/task-graph-runner/ @mgroenhoff
/types/tcp-ping/ @stegano
+/types/tcp-port-used/ @gautejohan
/types/teddy/ @lannonbr
/types/tedious/ @rogierschouten @cjthompson @v-suhame
/types/tedious-connection-pool/ @sandorfr
@@ -4507,24 +4710,29 @@
/types/temp/ @DanielRosenwasser
/types/temp-write/ @BendingBender
/types/tempfile/ @SamVerschueren @BendingBender
-/types/tempy/ @douglasduteil
+/types/tempy/ @douglasduteil @maistho
/types/terminal-menu/ @aravindarun
+/types/tern/ @nkappler
+/types/terser/ @JordiAnderl
+/types/test-console/ @roberto @guidoux @gbmoretti
/types/test-listen/ @stephenmathieson
/types/testingbot-api/ @timbru31
/types/tether/ @adidahiya
/types/tether-drop/ @adidahiya
/types/tether-shepherd/ @mtgibbs
/types/text-buffer/ @GlenCFL
-/types/text-encoding/ @pine613 @mohsen1
+/types/text-encoding/ @pine613 @mohsen1 @nwmqpa
/types/text-encoding-utf-8/ @trxcllnt
/types/text-table/ @saadq
/types/textarea-caret/ @shiftkey
/types/textract/ @lal12
/types/textversionjs/ @aaronosher
+/types/texzilla/ @m93a
/types/tgfancy/ @Dabolus
/types/theming/ @eps1lon
+/types/theo/ @petekp
/types/thepiratebay/ @jsorrell
-/types/three/ @gyohk @florentpoujol @SereznoKot @omni360 @ivoisbelongtous @piranha771 @qszhusightp @nakakura @s093294 @Pro @efokschaner @PsychoSTS @dhritzkiv @apurvaojas @NotWoods @sethk @elk941 @Methuselah96 @Dukuo
+/types/three/ @gyohk @florentpoujol @SereznoKot @omni360 @ivoisbelongtous @piranha771 @qszhusightp @nakakura @s093294 @Pro @efokschaner @PsychoSTS @dhritzkiv @apurvaojas @NotWoods @sethk @elk941 @Methuselah96 @Dukuo @JulianSSS @devilsparta
/types/thrift/ @kamek-pf @kevin-greene-ck @jessezhang91
/types/throng/ @cyrilschumacher @tatethurston
/types/throttle/ @BendingBender
@@ -4545,6 +4753,7 @@
/types/tinajs__tina-redux/ @Jimexist
/types/tinder/ @pingec
/types/tingle.js/ @ajafff
+/types/tiny-async-pool/ @krlwlfrt
/types/tiny-secp256k1/ @eduhenke
/types/tiny-slider-react/ @screendriver
/types/tinycolor2/ @M-Zuber @geertjansen @nvh @Ailrun
@@ -4571,6 +4780,7 @@
/types/topojson-simplify/ @denisname @ricardo-mello
/types/topojson-specification/ @denisname
/types/toposort/ @danwbyrne
+/types/torrent-search-api/ @ngirardin
/types/torrent-stream/ @xstoudi
/types/touch/ @mizunashi-mana @BendingBender
/types/touch-events/ @kevinb7
@@ -4587,6 +4797,7 @@
/types/travis-fold/ @andy-ms
/types/trayballoon/ @korve
/types/tress/ @sindilevich
+/types/trianglify/ @unindented
/types/trim/ @skysteve
/types/triple-beam/ @danwbyrne
/types/triplesec/ @threesquared
@@ -4657,9 +4868,9 @@
/types/unzip/ @coding2012
/types/unzipper/ @s73obrien @natemara @bartje321
/types/update-notifier/v1/ @vvakame @nchen63
-/types/update-notifier/ @vvakame @nchen63 @bitjson
+/types/update-notifier/ @vvakame @nchen63 @bitjson @grinich
/types/uploadcare/ @jineshshah36
-/types/upng-js/ @plantain-00
+/types/upng-js/ @plantain-00 @pineapplemachine
/types/uppercamelcase/ @plantain-00
/types/urbanairship-cordova/ @Justin-Credible
/types/uri-templates/ @Bartvds @barnski
@@ -4693,6 +4904,7 @@
/types/uuid-parse/ @screendriver
/types/uuid-validate/ @HiromiShikata
/types/uws/ @plantain-00 @orblazer
+/types/v-chart-plugin/ @natemara
/types/valdr/ @ilbertz
/types/valdr-message/ @ilbertz
/types/valerie/ @conficient
@@ -4760,6 +4972,7 @@
/types/w3c-web-usb/ @larsgk
/types/waitme/ @totpero
/types/wake_on_lan/ @SrTobi
+/types/walk/ @poppa
/types/wallabyjs/ @andrewconnell
/types/wallpaper/ @BendingBender
/types/wampy/ @KSDaemon
@@ -4769,6 +4982,7 @@
/types/watchpack/ @e-cloud
/types/waterline/ @arvitaly
/types/watson-developer-cloud/ @waldo000000 @Naktibalda
+/types/wavesurfer.js/ @higuri
/types/waypoints/ @dominikbulaj @Koloto @evil-shrike
/types/wcwidth/ @rokt33r
/types/weak/ @int0h
@@ -4776,7 +4990,7 @@
/types/web-animations-js/ @kritollm
/types/web-bluetooth/ @urish
/types/web-push/ @paullessing
-/types/web3/ @simon-jentzsch @nitzantomer @zurbo @yxliang01 @phra @naddison36 @icaroharry @linusnorton @jpeletier @anneau @matrushka @andrevmatos @levino @zlumer @archangel-irk
+/types/web3/ @simon-jentzsch @nitzantomer @zurbo @yxliang01 @phra @naddison36 @icaroharry @linusnorton @jpeletier @anneau @matrushka @andrevmatos @levino @zlumer @archangel-irk @sogasg @donamk @dkent600 @nerddan
/types/web3-eth-abi/ @LogvinovLeon
/types/web3-provider-engine/ @LogvinovLeon
/types/webappsec-credential-management/ @iainmcgin
@@ -4785,14 +4999,14 @@
/types/webcl/ @NCARalph
/types/webcomponents.js/ @adidahiya
/types/webcrypto/ @iislucas
-/types/webdriverio/ @nmalaguti @timbru31 @fsmedberg-tc @tanvirislam06 @phil-lgr
+/types/webdriverio/ @nmalaguti @timbru31 @fsmedberg-tc @tanvirislam06 @daveparslow @phil-lgr
/types/webfontloader/ @doskallemaskin
/types/webgl-ext/ @zenmumbler
/types/webgl2/ @nkemnitz @karhu
/types/webidl2/ @saschanaz
/types/webmidi/ @lostfictions
-/types/webpack/v3/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @alan-agius4 @elliottsj @jason0x43 @christophehurpeau
-/types/webpack/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @alan-agius4 @elliottsj @jason0x43 @dennispg @christophehurpeau @ZSkycat @johnnyreilly
+/types/webpack/v3/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @alan-agius4 @elliottsj @jason0x43 @christophehurpeau @rwaskiewicz @kuehlein
+/types/webpack/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @alan-agius4 @elliottsj @jason0x43 @dennispg @christophehurpeau @ZSkycat @johnnyreilly @rwaskiewicz @kuehlein
/types/webpack-assets-manifest/ @FranklinWhale
/types/webpack-bundle-analyzer/ @kryops
/types/webpack-chain/ @eirikurn @psachs21
@@ -4816,9 +5030,11 @@
/types/webpack-serve/ @rynclark @Jokcy @ZSkycat
/types/webpack-sources/ @e-cloud @chriseppstein
/types/webpack-stream/ @iclanton @bumbleblym
+/types/webpack-subresource-integrity/ @huan086
/types/webpack-validator/ @deevus
/types/webpackbar/ @rynclark
/types/webpagetest/ @ksm2
+/types/webprogbase-console-view/ @veetaha
/types/webrtc/ @nakakura
/types/webscopeio__react-textarea-autocomplete/ @michauzo
/types/websequencediagrams/ @ffflorian
@@ -4864,6 +5080,7 @@
/types/wnumb/ @acoreyj
/types/wonder.js/ @yyc-git
/types/word-list-json/ @dovidm
+/types/word2vector/ @renekeijzer
/types/wordcloud/ @joeskeen
/types/words-to-numbers/ @James-Frowen
/types/workbox-sw/ @wessberg
@@ -4905,18 +5122,20 @@
/types/xsockets/ @pushplay
/types/xxhashjs/ @mDibyo
/types/yallist/ @BendingBender
+/types/yaml/ @ikatyang @ColinBradley
/types/yandex-maps/ @Delagen
/types/yandex-money-sdk/ @chrootsu
/types/yar/ @SimonSchick
/types/yargs/v8/ @poelstra @mizunashi-mana @pushplay @jeffkenney
/types/yargs/v10/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC
/types/yargs/v11/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC
-/types/yargs/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC
+/types/yargs/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC @tkazec
/types/yargs-interactive/ @szeck87
+/types/yargs-parser/ @milesj
/types/yauzl/ @ffflorian
/types/yauzl-promise/ @dlee-nvisia
/types/yayson/ @Codesleuth
-/types/yazl/ @taoqf
+/types/yazl/ @taoqf @seangenabe
/types/ydn-db/ @yathit @gabrielmaldi
/types/yeoman-generator/ @armorik83 @janslow @ikatyang
/types/yeoman-test/ @ikatyang
@@ -4930,7 +5149,7 @@
/types/youtube/ @DazWilkin @JoshuaKGoldberg @eliotfallon213 @terrymun
/types/youtube-dl/ @bsurai
/types/yui/ @giabao
-/types/yup/ @dhardtke @vtserman @MoretonBayRC @sseppola
+/types/yup/ @dhardtke @vtserman @MoretonBayRC @sseppola @YashdalfTheGray
/types/z-schema/ @pgonzal
/types/zapier-platform-core/ @bradleyayers
/types/zeit__next-typescript/ @icopp
@@ -4943,6 +5162,7 @@
/types/zeromq/ @davemckeown @erikma @TitaneBoy
/types/zip-webpack-plugin/ @blaise-io
/types/zip.js/ @lgrignon
+/types/zipcelx/ @aleburato
/types/zipcodes/ @headdetect @dobesv
/types/zipkin-context-cls/ @plantain-00
/types/zipkin-instrumentation-express/ @plantain-00
diff --git a/.gitignore b/.gitignore
index ac63b6f6b5..079ad27699 100644
--- a/.gitignore
+++ b/.gitignore
@@ -46,6 +46,7 @@ npm-debug.log
.settings/launch.json
.vs
.vscode
+.history
# yarn
yarn.lock
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000000..9cf9495031
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+package-lock=false
\ No newline at end of file
diff --git a/README.es.md b/README.es.md
index c3cff967db..df675cbe41 100644
--- a/README.es.md
+++ b/README.es.md
@@ -22,15 +22,15 @@ Este es el método preferido. Solo está disponible para usuarios TypeScript 2.0
npm install --save-dev @types/node
```
-Los types deberÃan ser incluidos automaticamente por el compilador.
+Los types deberÃan ser incluidos automáticamente por el compilador.
Vea más en el [manual](http://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html).
-Para un paquete NPM "foo", Estos `typings` estarán en "@types/foo".
+Para un paquete NPM "foo", estos `typings` estarán en "@types/foo".
Si no puedes encontrar tu paquete, búscalo en [TypeSearch](https://microsoft.github.io/TypeSearch/).
Si aún no puedes encontrarlo, comprueba si el paquete ya [incluye](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) los typings.
Esto es provisto usualmente en el campo `"types"` o `"typings"` en el `package.json`,
-o solo busca por cualquier archivo ".d.ts" en el paquete e incluyelo manualmente con un `/// `.
+o solo busca por cualquier archivo ".d.ts" en el paquete e inclúyelo manualmente con un `/// `.
### Otros métodos
@@ -39,7 +39,7 @@ Estos pueden ser utilizados por TypeScript 1.0.
* [Typings](https://github.com/typings/typings)
* ~~[NuGet](http://nuget.org/packages?q=DefinitelyTyped)~~ (use las alternativas preferidas, la publicación DT type de nuget ha sido desactivada)
-* Descarguelo manualmente desde la `master` branch de este repositorio
+* Descárguelo manualmente desde la `master` branch de este repositorio
Tal vez debas añadir manualmente las [referencias](http://www.typescriptlang.org/docs/handbook/triple-slash-directives.html).
@@ -88,7 +88,7 @@ Primero, haz un [fork](https://guides.github.com/activities/forking/) en este re
* `cd types/my-package-to-edit`
* Haz cambios. Recuerda editar las pruebas.
Si realiza cambios importantes, no olvide [actualizar una versión principal](#quiero-actualizar-un-paquete-a-una-nueva-versión-principal).
-* También puede que quieras añadirte la sección "Definitions by" en el encabezado del paquete.
+* También puede que quieras añadirle la sección "Definitions by" en el encabezado del paquete.
- Esto hará que seas notificado (a través de tu nombre de usuario en GitHub) cada vez que alguien haga un pull request o issue sobre el paquete.
- Haz esto añadiendo tu nombre al final de la lÃnea, asà como en `// Definitions by: Alice , Bob `.
- O si hay más personas, puede ser multiline
@@ -109,7 +109,7 @@ Si no lo hace, puedes hacerlo en el comentario asociado con el PR.
Si eres el autor de la librerÃa, o puedes hacer un pull request a la biblioteca, [bundle types](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) en vez de publicarlo en DefinitelyTyped.
Si estás agregando typings para un paquete NPM, crea un directorio con el mismo nombre.
-Si el paquete al que le estás agregando typings no es para NPM, asegurate de que el nombre que escojas no genere problemas con el nombre del paquete en NPM.
+Si el paquete al que le estás agregando typings no es para NPM, asegúrate de que el nombre que escojas no genere problemas con el nombre del paquete en NPM.
(Puedes usar `npm info foo` para verificar la existencia del paquete `foo`.)
Tu paquete deberÃa tener esta estructura:
@@ -126,7 +126,7 @@ Ve todas las opciones en [dts-gen](https://github.com/Microsoft/dts-gen).
También puedes configurar el `tsconfig.json` para añadir nuevos archivos, para agregar un `"target": "es6"` (necesitado por las funciones asÃncronas), para agregar a la `"lib"`, o para agregar la opción de compilación `"jsx"`.
-Los miembros de DefinitelyTyped frecuentemente monitorean nuevos PRs, pero ten en mente que la cantidad de PRs podrian ralentizar el proceso.
+Los miembros de DefinitelyTyped frecuentemente monitorean nuevos PRs, pero ten en mente que la cantidad de PRs podrÃan ralentizar el proceso.
Para un buen paquete de ejemplo, vea [base64-js](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/base64-js).
@@ -135,7 +135,7 @@ Para un buen paquete de ejemplo, vea [base64-js](https://github.com/DefinitelyTy
* Primero, sigue el consejo del [manual](http://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html).
* Formatear: Ya sea utilizar todo en tabs, o siempre utiliza 4 espacios.
-* `function sum(nums: number[]): number`: Utiliza `ReadonlyArray` si una funcion no escribe a sus parámetros.
+* `function sum(nums: number[]): number`: Utiliza `ReadonlyArray` si una función no escribe a sus parámetros.
* `interface Foo { new(): Foo; }`:
Este define el tipo de objeto que esten nuevos. Probablemente quieras `declare class Foo { constructor(); }`.
* `const Class: { new(): IClass; }`:
@@ -146,7 +146,7 @@ Para un buen paquete de ejemplo, vea [base64-js](https://github.com/DefinitelyTy
Un ejemplo donde un tipo de parámetro es aceptable: `function id(value: T): T;`.
Un ejemplo donde no es aceptable: `function parseJson(json: string): T;`.
Una excepción: `new Map()` está bien.
-* Utilizando los tipos `Function` y `Object` casi nunca es una buena idea. En 99% de los casos es posible especificar un tipo más especifico. Los ejemplos son `(x: number) => number` para [funciones](http://www.typescriptlang.org/docs/handbook/functions.html#function-types) y `{ x: number, y: number }` para objetos. Si no hay certeza en lo absoluto del tipo, [`any`](http://www.typescriptlang.org/docs/handbook/basic-types.html#any) es la opción correcta, no `Object`. Si el único hecho conocido sobre el tipo es que es un objecto, usa el tipo [`object`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#object-type), no `Object` o `{ [key: string]: any }`.
+* Utilizando los tipos `Function` y `Object` casi nunca es una buena idea. En 99% de los casos es posible especificar un tipo más especÃfico. Los ejemplos son `(x: number) => number` para [funciones](http://www.typescriptlang.org/docs/handbook/functions.html#function-types) y `{ x: number, y: number }` para objetos. Si no hay certeza en lo absoluto del tipo, [`any`](http://www.typescriptlang.org/docs/handbook/basic-types.html#any) es la opción correcta, no `Object`. Si el único hecho conocido sobre el tipo es que es un objecto, usa el tipo [`object`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#object-type), no `Object` o `{ [key: string]: any }`.
* `var foo: string | any`:
Cuando es usado `any` en un tipo de unión, el tipo resultante todavÃa es `any`. Asà que mientras la porción `string` de este tipo de anotación puede _verse_ útil, de hecho, no ofrece ningún typechecking adicional más que un simple `any`.
Dependiendo de la intención, una alternativa aceptable puede ser `any`, `string`, o `string | object`.
@@ -204,11 +204,11 @@ Este script utiliza [dtslint](https://github.com/Microsoft/dtslint).
#### ¿Cuál es exactamente la relación entre este repositorio y los paquetes de `@types` en NPM?
-La `master` branch es automaticamente publicada en el alcance de los `@types` en NPM gracias a los [types-publisher](https://github.com/Microsoft/types-publisher).
+La `master` branch es automáticamente publicada en el alcance de los `@types` en NPM gracias a los [types-publisher](https://github.com/Microsoft/types-publisher).
#### He enviado un pull request. ¿Cuánto tardará en ser merged?
-Esto depende, pero la mayorÃa de los pull requests serán merged en alrededor de una semana. PRs que hayan sido aprovados por un autor listado en el encabezado de las definiciones usualmente son merged más rápidamente; PRs para nuevas definiciones tomarán más tiempo ya que requieren más revisiones de los mantenedores. Cada PR es revisado por un miembro de TypeScript o DefinitelyTyped antes de ser merged, por favor se paciente debido a que factores humanos pueden causar retrasos. Revisa el [PR Burndown Board](https://github.com/DefinitelyTyped/DefinitelyTyped/projects/3?card_filter_query=is%3Aopen) para ver el progreso mientras los mantenedores trabajan on los PRs abiertos.
+Esto depende, pero la mayorÃa de los pull requests serán merged en alrededor de una semana. PRs que hayan sido aprobados por un autor listado en el encabezado de las definiciones usualmente son merged más rápidamente; PRs para nuevas definiciones tomarán más tiempo ya que requieren más revisiones de los mantenedores. Cada PR es revisado por un miembro de TypeScript o DefinitelyTyped antes de ser merged, por favor sé paciente debido a que factores humanos pueden causar retrasos. Revisa el [PR Burndown Board](https://github.com/DefinitelyTyped/DefinitelyTyped/projects/3?card_filter_query=is%3Aopen) para ver el progreso mientras los mantenedores trabajan en los PRs abiertos.
#### Mi PR ha sido merged; ¿cuándo será actualizado el paquete de `@types` NPM?
@@ -216,12 +216,12 @@ Los paquetes NPM deberán ser actualizados en unas cuantas horas. Si ha pasado m
#### Estoy escribiendo una definición que depende de otra definición. DeberÃa utilizar `` o una import?
-Si el modulo al cual te estás refiriendo es un módulo externo (utiliza `export`), utilice una import.
+Si el módulo al cual te estás refiriendo es un módulo externo (utiliza `export`), utilice una import.
Si el módulo al cual te refieres es un módulo ambiente (utiliza `declare module`, o simplemente declara las globales), utilice ``.
#### He notado que algunos paquetes aquà tienen `package.json`.
-Normalmente no lo necesitaras. Cuando publicas un paquete normalmente nosotros automáticamente crearemos un `package.json` para eso.
+Normalmente no lo necesitarás. Cuando publicas un paquete normalmente nosotros automáticamente crearemos un `package.json` para eso.
Un `package.json` puede ser incluido por el bien de especificar dependencias. Aquà tienen un [ejemplo](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/pikaday/package.json).
No aceptamos otros campos, tales como `"description"`, para que sean definidos manualmente.
Además, si necesitas referencia a una versión anterior de typings, debes hacerlo añadiendo `"dependencies": { "@types/foo": "x.y.z" }` al package.json.
@@ -260,7 +260,7 @@ Cuando ya no sea un borrador, lo podremos eliminar desde DefinitelyType y hacer
Si planeas continuar actualizando la versión anterior del paquete, puedes crear una subcarpeta con la versión actual p.ej. `v2`, y copia los archivos existentes. Si es asÃ, necesitarás:
1. Actualiza las rutas relativas en `tsconfig.json` al igual que `tslint.json`.
-2. Añadir reglas de mapeo de rutas para asegurart de que la prueba se está ejecutando contra la versión prevista.
+2. Añadir reglas de mapeo de rutas para asegurarte de que la prueba se está ejecutando contra la versión prevista.
Por ejemplo [history v2 `tsconfig.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/history/v2/tsconfig.json) se ve asÃ:
@@ -280,24 +280,24 @@ Por ejemplo [history v2 `tsconfig.json`](https://github.com/DefinitelyTyped/Defi
}
```
-Si hay otros paquetes en DefinitelyTyped que son incompatibles con la nueva versión, necesitaras mapear las rutas a la versión anterior. También deberá hacer esto para los paquetes que dependen de paquetes que dependen de una version anterior.
+Si hay otros paquetes en DefinitelyTyped que son incompatibles con la nueva versión, necesitarás mapear las rutas a la versión anterior. También deberá hacer esto para los paquetes que dependen de paquetes que dependen de una version anterior.
Por ejemplo, `react-router` depende de `history@2`, asà que [react-router `tsconfig.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-router/tsconfig.json) tiene una ruta mapeada a "history": `[ "history/v2" ]`;
transitivo asà mismo, `react-router-bootstrap` (que depende de `react-router`) también añade una ruta mapeada en su [tsconfig.json](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-router-bootstrap/tsconfig.json).
-Además, `/// ` no trabajara con rutas mapeadas, asà que las dependencias deberán utilizar `import`.
+Además, `/// ` no trabajará con rutas mapeadas, asà que las dependencias deberán utilizar `import`.
#### ¿Cómo escribo definitions para paquetes que pueden ser usados globalmente y como un módulo?
-El manual de TypeScript contiene excelente [información general para escribir definiciones](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html), ademas [este archivo de definiciones de ejemplo](https://www.typescriptlang.org/docs/handbook/declaration-files/templates/global-modifying-module-d-ts.html) el cual muestra como crear una definición utilizando la sintaxis de módulo en ES6, asi como también especificando objetos que son disponibles en el alcance global. Esta técnica es demostrada practicamente en la [definición para big.js](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/big.js/index.d.ts), el cual es una librerÃa que puede ser cargada globalmente a travéz de una etiqueta script en una página web, o importada via require o imports estilo ES6.
+El manual de TypeScript contiene excelente [información general para escribir definiciones](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html), además [este archivo de definiciones de ejemplo](https://www.typescriptlang.org/docs/handbook/declaration-files/templates/global-modifying-module-d-ts.html) el cual muestra como crear una definición utilizando la sintaxis de módulo en ES6, asi como también especificando objetos que son disponibles en el alcance global. Esta técnica es demostrada prácticamente en la [definición para big.js](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/big.js/index.d.ts), el cual es una librerÃa que puede ser cargada globalmente a través de una etiqueta script en una página web, o importada vÃa require o imports estilo ES6.
-Para probar como puede ser usada tu definición cuando se refieren globalmente o como un módulo importado, crea una carpeta `test`, y coloca dos archivos de prueba en él. nombra uno `YourLibraryName-global.test.ts` y el otro `YourLibraryName-module.test.ts`. El archivo de prueba _global_ debe ejercer la definición de acuerdo como va a ser usado en un script cargado en una página web donde la librerÃa estará disponible en el alcance global - en este escenario no debes de especificar la sentencia de import. El archivo _módulo_ de prueba debe de ejercer la definición de acuerdo a como va a ser utilizado cuando sea importado (incluyendo las sentencias `import`). Si especificas un propiedad `files` en tu archivo tsconfig.json, asegurate de incluir ambos archivos de prueba. Un [ejemplo práctico de esto](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/big.js/test) es también disponible en la definición de big.js.
+Para probar como puede ser usada tu definición cuando se refieren globalmente o como un módulo importado, crea una carpeta `test`, y coloca dos archivos de prueba en él. nombra uno `YourLibraryName-global.test.ts` y el otro `YourLibraryName-module.test.ts`. El archivo de prueba _global_ debe ejercer la definición de acuerdo como va a ser usado en un script cargado en una página web donde la librerÃa estará disponible en el alcance global - en este escenario no debes de especificar la sentencia de import. El archivo _módulo_ de prueba debe de ejercer la definición de acuerdo a como va a ser utilizado cuando sea importado (incluyendo las sentencias `import`). Si especificas una propiedad `files` en tu archivo tsconfig.json, asegurate de incluir ambos archivos de prueba. Un [ejemplo práctico de esto](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/big.js/test) es también disponible en la definición de big.js.
Por favor tenga en cuenta que no es necesario para ejercer plenamente la definición en cada archivo de prueba - Es suficiente con probar solo los elementos globalmente accesibles en la prueba de archivos globales y ejercer la definición en el módulo del archivo de prueba, o viceversa.
#### ¿Qué pasa con paquetes scoped?
-Types para un paquete scoped `@foo/bar` deberán ir en `types/foo__bar`. tenga en cuenta el doble guion bajo.
+Types para un paquete scoped `@foo/bar` deberán ir en `types/foo__bar`. tenga en cuenta el doble guión bajo.
Cuando `dts-gen` es utilizado como scaffold en un paquete scoped, las propiedades `paths` deberán ser adaptadas manualmente en el paquete generado
`tsconfig.json` para referenciar correctamente el paquete scoped:
diff --git a/notNeededPackages.json b/notNeededPackages.json
index 968192123b..6c4e1ce887 100644
--- a/notNeededPackages.json
+++ b/notNeededPackages.json
@@ -144,6 +144,12 @@
"sourceRepoURL": "https://github.com/Azure/azure-mobile-apps-node/",
"asOfVersion": "3.0.0"
},
+ {
+ "libraryName": "@babel/parser",
+ "typingsPackageName": "babel__parser",
+ "sourceRepoURL": "https://github.com/babel/babel",
+ "asOfVersion": "7.1.0"
+ },
{
"libraryName": "BabylonJS",
"typingsPackageName": "babylonjs",
@@ -396,6 +402,12 @@
"sourceRepoURL": "https://github.com/MikeMcl/decimal.js",
"asOfVersion": "7.4.0"
},
+ {
+ "libraryName": "deepmerge",
+ "typingsPackageName": "deepmerge",
+ "sourceRepoURL": "git@github.com:KyleAMathews/deepmerge.git",
+ "asOfVersion": "2.2.0"
+ },
{
"libraryName": "delay",
"typingsPackageName": "delay",
@@ -534,6 +546,12 @@
"sourceRepoURL": "https://github.com/code-chris/extended-listbox",
"asOfVersion": "4.0.1"
},
+ {
+ "libraryName": "fast-diff",
+ "typingsPackageName": "fast-diff",
+ "sourceRepoURL": "https://github.com/jhchen/fast-diff",
+ "asOfVersion": "1.2.0"
+ },
{
"libraryName": "JSON-Patch",
"typingsPackageName": "fast-json-patch",
@@ -924,12 +942,24 @@
"sourceRepoURL": "https://github.com/blakeembrey/lower-case-first",
"asOfVersion": "1.0.1"
},
+ {
+ "libraryName": "mali",
+ "typingsPackageName": "mali",
+ "sourceRepoURL": "https://github.com/malijs/mali",
+ "asOfVersion": "0.9.2"
+ },
{
"libraryName": "maquette",
"typingsPackageName": "maquette",
"sourceRepoURL": "http://maquettejs.org/",
"asOfVersion": "2.1.6"
},
+ {
+ "libraryName": "maxmind",
+ "typingsPackageName": "maxmind",
+ "sourceRepoURL": "https://github.com/runk/node-maxmind",
+ "asOfVersion": "2.0.5"
+ },
{
"libraryName": "mendixmodelsdk",
"typingsPackageName": "mendixmodelsdk",
@@ -966,6 +996,12 @@
"sourceRepoURL": "https://github.com/mweststrate/mobservable-react",
"asOfVersion": "1.0.0"
},
+ {
+ "libraryName": "Mobx Cookie",
+ "typingsPackageName": "mobx-cookie",
+ "sourceRepoURL": "https://github.com/will-stone/mobx-cookie",
+ "asOfVersion": "1.1.1"
+ },
{
"libraryName": "Moment",
"typingsPackageName": "moment",
@@ -1194,6 +1230,12 @@
"sourceRepoURL": "https://github.com/react-ga/react-ga",
"asOfVersion": "2.3.0"
},
+ {
+ "libraryName": "react-i18next",
+ "typingsPackageName": "react-i18next",
+ "sourceRepoURL": "https://github.com/i18next/react-i18next",
+ "asOfVersion": "8.1.0"
+ },
{
"libraryName": "react-monaco-editor",
"typingsPackageName": "react-monaco-editor",
diff --git a/types/a11y-dialog/a11y-dialog-tests.ts b/types/a11y-dialog/a11y-dialog-tests.ts
new file mode 100644
index 0000000000..3df694fcdd
--- /dev/null
+++ b/types/a11y-dialog/a11y-dialog-tests.ts
@@ -0,0 +1,30 @@
+import A11yDialog = require('a11y-dialog');
+
+const dialogEl = new A11yDialog(document.getElementById("test"));
+const dialogElTwo = new A11yDialog(document.getElementById("test"), document.getElementById("testContainer"));
+const dialogElThree = new A11yDialog(document.getElementById("test"), "dummy-element");
+
+dialogEl.show();
+dialogEl.hide();
+dialogElTwo.destroy();
+dialogElThree.create();
+
+// Test out interfaces that extends Element.
+dialogEl.on("show", (el: HTMLElement) => {
+ el.textContent;
+});
+
+// Test out element and event.
+dialogEl.on("create", (el: HTMLElement, evt) => {
+ el.textContent;
+
+ evt.target;
+});
+
+dialogEl.on('hide', () => {
+ const t = 5;
+});
+
+dialogEl.off("show", (el: HTMLElement) => {
+ el.textContent;
+});
diff --git a/types/a11y-dialog/index.d.ts b/types/a11y-dialog/index.d.ts
new file mode 100644
index 0000000000..105aaa70e7
--- /dev/null
+++ b/types/a11y-dialog/index.d.ts
@@ -0,0 +1,31 @@
+// Type definitions for a11y-dialog 5.2
+// Project: https://github.com/edenspiekermann/a11y-dialog
+// Definitions by: Yuto
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.8
+
+type DialogEvents = "show" | "hide" | "destroy" | "create";
+declare class A11yDialog {
+ constructor(el: Element | null, containers?: NodeList | Element | string | null);
+ /**
+ * Shows the dialog.
+ */
+ show(): void;
+ /**
+ * Hides the dialog.
+ */
+ hide(): void;
+ /**
+ * Unbind click listeners from dialog openers and closers and remove all bound custom event listeners registered with `.on()`
+ */
+ destroy(): void;
+ /**
+ * Bind click listeners to dialog openers and closers.
+ */
+ create(el?: Element | null, containers?: NodeList | Element | string | null): void;
+
+ on(evt: DialogEvents, callback: (dialogElement: any, event: Event) => void): void;
+ off(evt: DialogEvents, callback: (dialogElement: any, event: Event) => void): void;
+}
+
+export = A11yDialog;
diff --git a/types/a11y-dialog/tsconfig.json b/types/a11y-dialog/tsconfig.json
new file mode 100644
index 0000000000..a27d99d6bf
--- /dev/null
+++ b/types/a11y-dialog/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es6",
+ "dom"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "strictFunctionTypes": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true,
+ "jsx": "react"
+ },
+ "files": [
+ "index.d.ts",
+ "a11y-dialog-tests.ts"
+ ]
+}
\ No newline at end of file
diff --git a/types/a11y-dialog/tslint.json b/types/a11y-dialog/tslint.json
new file mode 100644
index 0000000000..e60c15844f
--- /dev/null
+++ b/types/a11y-dialog/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "dtslint/dt.json"
+}
\ No newline at end of file
diff --git a/types/ace/test/selection.ts b/types/ace/test/selection.ts
index be7da64331..e698664b83 100644
--- a/types/ace/test/selection.ts
+++ b/types/ace/test/selection.ts
@@ -123,7 +123,7 @@ const aceSelectionTests = {
},
"test: moveCursor word left with umlauts": function () {
- var session = new AceAjax.EditSession(" Fu� F��e");
+ var session = new AceAjax.EditSession(" Fu¢ F¢¢e");
var selection = session.getSelection();
selection.moveCursorTo(0, 9)
diff --git a/types/actioncable/index.d.ts b/types/actioncable/index.d.ts
index 9194e81d6f..b5bdbf429a 100644
--- a/types/actioncable/index.d.ts
+++ b/types/actioncable/index.d.ts
@@ -1,13 +1,15 @@
-// Type definitions for ActionCable
-// Project: https://github.com/rails/rails/tree/master/actioncable
+// Type definitions for ActionCable 5.2
+// Project: https://github.com/rails/rails/tree/master/actioncable/app/assets/javascripts
// Definitions by: Vincent Zhu
+// Jared Szechy
// Definitions: https://github.com/zhu1230/DefinitelyTyped
+// TypeScript Version: 2.3
declare module ActionCable {
interface Channel {
unsubscribe(): void;
perform(action: string, data: {}): void;
- send(data: Object): boolean;
+ send(data: any): boolean;
}
interface Subscriptions {
@@ -16,12 +18,16 @@ declare module ActionCable {
interface Cable {
subscriptions: Subscriptions;
+ send(data: any): void;
+ connect(): void;
+ disconnect(): void;
+ ensureActiveConnection(): void;
}
interface CreateMixin {
connected(): void;
disconnected(): void;
- received(obj: Object): void;
+ received(obj: any): void;
[key: string]: Function;
}
diff --git a/types/adone/glosses/utils.d.ts b/types/adone/glosses/utils.d.ts
index 5d2eb5f198..a08d4af4bd 100644
--- a/types/adone/glosses/utils.d.ts
+++ b/types/adone/glosses/utils.d.ts
@@ -451,7 +451,7 @@ declare namespace adone {
| encoding.Multibyte;
}
- const defaultCharUnicode: "�";
+ const defaultCharUnicode: string;
const defaultCharSingleByte: "?";
diff --git a/types/aframe/test/aframe-io-tests.ts b/types/aframe/test/aframe-io-tests.ts
index 77fe716390..1120b50be8 100644
--- a/types/aframe/test/aframe-io-tests.ts
+++ b/types/aframe/test/aframe-io-tests.ts
@@ -533,9 +533,10 @@ AFRAME.registerComponent('audioanalyser-waveform', {
rings.forEach(function transformRing(ring: THREE.Line, index: number) {
var normLevel;
normLevel = levels[RINGCOUNT - index - 1] + 0.01; // Avoid scaling by 0.
- (ring.material as THREE.LineBasicMaterial).color.setHSL(colors[index], 1, normLevel);
- ring.material.linewidth = normLevel * 3;
- ring.material.opacity = normLevel;
+ const lineMaterial = ring.material as THREE.LineBasicMaterial;
+ lineMaterial.color.setHSL(colors[index], 1, normLevel);
+ lineMaterial.linewidth = normLevel * 3;
+ lineMaterial.opacity = normLevel;
ring.scale.z = normLevel;
});
},
diff --git a/types/agenda/index.d.ts b/types/agenda/index.d.ts
index 75246ecda3..37b9ce6b2c 100644
--- a/types/agenda/index.d.ts
+++ b/types/agenda/index.d.ts
@@ -64,7 +64,7 @@ declare class Agenda extends EventEmitter {
defaultConcurrency(value: number): this;
/**
- * Takes a number shich specifies the max number jobs that can be locked at any given moment. By default it is
+ * Takes a number which specifies the max number jobs that can be locked at any given moment. By default it is
* 0 for no max.
* @param value The value to set.
*/
@@ -189,7 +189,7 @@ declare namespace Agenda {
defaultLockLimit?: number;
/**
- * Takes a number shich specifies the max number jobs that can be locked at any given moment. By default it is
+ * Takes a number which specifies the max number jobs that can be locked at any given moment. By default it is
* 0 for no max.
*/
lockLimit?: number;
diff --git a/types/ajv-errors/index.d.ts b/types/ajv-errors/index.d.ts
index fed9e4585f..3b5c2d2322 100644
--- a/types/ajv-errors/index.d.ts
+++ b/types/ajv-errors/index.d.ts
@@ -2,6 +2,7 @@
// Project: https://github.com/epoberezkin/ajv-errors
// Definitions by: Afshawn Lotfi
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.2
import { Ajv } from "ajv";
diff --git a/types/ale-url-parser/ale-url-parser-tests.ts b/types/ale-url-parser/ale-url-parser-tests.ts
new file mode 100644
index 0000000000..2a5d9fe632
--- /dev/null
+++ b/types/ale-url-parser/ale-url-parser-tests.ts
@@ -0,0 +1,22 @@
+import { parse, stringify } from 'ale-url-parser';
+
+let url;
+let urlObject;
+
+url = stringify({});
+console.log(url);
+
+url = stringify({
+ protocol: 'protocol',
+ host: 'host',
+ path: ['foo', 'bar', 'baz'],
+ hash: 'hash',
+ query: {
+ foo: 1,
+ bar: [2, '3']
+ }
+});
+console.log(url);
+
+urlObject = parse('//any.dom.ain.co.m/foo/bar?test=1&test=2#hash');
+console.log(urlObject);
diff --git a/types/ale-url-parser/index.d.ts b/types/ale-url-parser/index.d.ts
new file mode 100644
index 0000000000..31b2d2fd03
--- /dev/null
+++ b/types/ale-url-parser/index.d.ts
@@ -0,0 +1,29 @@
+// Type definitions for ale-url-parser 0.10
+// Project: https://github.com/msn0/ale-url-parser#readme
+// Definitions by: Michał Jezierski
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.1
+
+export interface QueryParams {
+ [key: string]: any;
+}
+
+export interface UrlObject {
+ protocol?: string;
+ host?: string;
+ path?: string[];
+ query?: QueryParams;
+ hash?: string;
+}
+
+/**
+ * Parse url string into url object.
+ * @return UrlObject
+ */
+export function parse(url: string): UrlObject;
+
+/**
+ * Stringify url object into url string.
+ * @return string
+ */
+export function stringify(urlObject: UrlObject): string;
diff --git a/types/ale-url-parser/tsconfig.json b/types/ale-url-parser/tsconfig.json
new file mode 100644
index 0000000000..2d18200901
--- /dev/null
+++ b/types/ale-url-parser/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es6",
+ "dom"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "strictFunctionTypes": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.d.ts",
+ "ale-url-parser-tests.ts"
+ ]
+}
diff --git a/types/babel__parser/tslint.json b/types/ale-url-parser/tslint.json
similarity index 100%
rename from types/babel__parser/tslint.json
rename to types/ale-url-parser/tslint.json
diff --git a/types/algoliasearch/algoliasearch-tests.ts b/types/algoliasearch/algoliasearch-tests.ts
index 87fdb95a01..cbd98d253a 100644
--- a/types/algoliasearch/algoliasearch-tests.ts
+++ b/types/algoliasearch/algoliasearch-tests.ts
@@ -21,6 +21,7 @@ let _algoliaResponse: Response = {
processingTimeMS: 32,
query: '',
params: '',
+ index: '',
};
let _clientOptions: ClientOptions = {
@@ -103,7 +104,8 @@ let _algoliaQueryParameters: QueryParameters = {
filters: '',
attributesToRetrieve: [''],
restrictSearchableAttributes: [''],
- facets: '',
+ facets: [''],
+ facetingAfterDistinct: true,
maxValuesPerFacet: 2,
attributesToHighlight: [''],
attributesToSnippet: [''],
@@ -120,28 +122,29 @@ let _algoliaQueryParameters: QueryParameters = {
typoTolerance: false,
allowTyposOnNumericTokens: false,
ignorePlurals: false,
- disableTypoToleranceOnAttributes: '',
+ disableTypoToleranceOnAttributes: [''],
aroundLatLng: '',
aroundLatLngViaIP: '',
aroundRadius: 0,
aroundPrecision: 0,
minimumAroundRadius: 0,
insideBoundingBox: [[0]],
- queryType: '',
+ queryType: 'prefixAll',
insidePolygon: [[0]],
- removeWordsIfNoResults: '',
+ removeWordsIfNoResults: 'firstWords',
advancedSyntax: false,
optionalWords: [''],
removeStopWords: [''],
disableExactOnAttributes: [''],
- exactOnSingleWordQuery: '',
- alternativesAsExact: true,
+ exactOnSingleWordQuery: 'attribute',
+ alternativesAsExact: ["ignorePlurals"],
distinct: 0,
getRankingInfo: false,
numericAttributesToIndex: [''],
+ numericAttributesForFiltering: [''],
numericFilters: [''],
- tagFilters: '',
- facetFilters: '',
+ tagFilters: [''],
+ facetFilters: [''],
analytics: false,
analyticsTags: [''],
synonyms: true,
@@ -171,8 +174,38 @@ index.partialUpdateObjects([{}], false).then(() => {});
let indexName : string = index.indexName;
// complete copy
-client.copyIndex('from', 'to').then(()=>{})
-client.copyIndex('from', 'to', ()=> {})
+client.copyIndex('from', 'to').then(()=>{});
+client.copyIndex('from', 'to', ()=> {});
// with scope
-client.copyIndex('from', 'to', ['settings']).then(()=>{})
-client.copyIndex('from', 'to', ['synonyms', 'rules'], ()=> {})
+client.copyIndex('from', 'to', ['settings']).then(()=>{});
+client.copyIndex('from', 'to', ['synonyms', 'rules'], ()=> {});
+
+// Browsing
+const browser = index.browseAll();
+index.browseAll('query');
+index.browseAll('', {
+ filters: 'dog',
+});
+
+let hits: Object[] = [];
+
+browser.on('result', function onResult(content) {
+ hits = hits.concat(content.hits);
+});
+
+browser.on('end', function onEnd() {
+ const _message = `We got ${hits.length} hits`
+});
+
+browser.on('error', function onError(err) {
+ throw err;
+});
+
+browser.stop();
+
+index.browse("", {
+ advancedSyntax: false,
+ attributesToRetrieve: ['dogs']
+});
+client.copyIndex('from', 'to', ['settings']).then(()=>{});
+client.copyIndex('from', 'to', ['synonyms', 'rules'], ()=> {});
diff --git a/types/algoliasearch/index.d.ts b/types/algoliasearch/index.d.ts
index 71684995a4..04291996ba 100644
--- a/types/algoliasearch/index.d.ts
+++ b/types/algoliasearch/index.d.ts
@@ -1,11 +1,14 @@
-// Type definitions for algoliasearch-client-js 3.27.0
+// Type definitions for algoliasearch-client-js 3.30.0
// Project: https://github.com/algolia/algoliasearch-client-js
// Definitions by: Baptiste Coquelle
// Haroen Viaene
// Aurélien Hervé
// Samuel Vaillant
+// Kai Eichinger
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-// TypeScript Version: 2.2
+// TypeScript Version: 2.8
+
+type Omit = Pick>
declare namespace algoliasearch {
/**
@@ -611,6 +614,11 @@ declare namespace algoliasearch {
options: SearchForFacetValues.Parameters,
cb: (err: Error, res: SearchForFacetValues.Response) => void
): void;
+ /**
+ * Browse an index
+ * https://github.com/algolia/algoliasearch-client-js#backup--export-an-index---browse
+ */
+ browse(query: string, parameters: BrowseParameters, cb: (err: Error, res: BrowseResponse) => void): void;
/**
* Browse an index
* https://github.com/algolia/algoliasearch-client-js#backup--export-an-index---browse
@@ -620,7 +628,7 @@ declare namespace algoliasearch {
* Browse an index
* https://github.com/algolia/algoliasearch-client-js#backup--export-an-index---browse
*/
- browse(query: string): Promise;
+ browse(query: string, parameters?: BrowseParameters): Promise;
/**
* Browse an index from a cursor
* https://github.com/algolia/algoliasearch-client-js#backup--export-an-index---browse
@@ -638,7 +646,7 @@ declare namespace algoliasearch {
* Browse an entire index
* https://github.com/algolia/algoliasearch-client-js#backup--export-an-index---browse
*/
- browseAll(): Promise;
+ browseAll(query?: string, parameters?: BrowseParameters): Browser;
/**
* Clear an index content
* https://github.com/algolia/algoliasearch-client-js#clear-index---clearindex
@@ -966,6 +974,22 @@ declare namespace algoliasearch {
query: string;
processingTimeMS: number;
}
+ type BrowseParameters = Omit<
+ QueryParameters,
+ | "typoTolerance"
+ | "distinct"
+ | "facets"
+ | "getRankingInfo"
+ | "attributesToHighlight"
+ | "attributesToSnippet"
+ >
+ interface Browser {
+ on(type: "error", cb: (err: Error) => void): void
+ on(type: "end", cb: () => void): void
+ on(type: "stop", cb: () => void): void
+ on(type: "result", cb: (content: BrowseResponse) => void): void
+ stop(): void
+ }
/**
* Describes a synonym object
*/
@@ -1099,112 +1123,121 @@ declare namespace algoliasearch {
userToken?: string;
}
interface QueryParameters {
+ /**
+ * Query string used to perform the search
+ * default: ''
+ * https://www.algolia.com/doc/api-reference/api-parameters/query/
+ */
+ query?: string;
+ /**
+ * Filter the query with numeric, facet or/and tag filters
+ * default: ""
+ * https://www.algolia.com/doc/api-reference/api-parameters/filters/
+ */
+ filters?: string;
+ /**
+ * A string that contains the list of attributes you want to retrieve in order to minimize the size of the JSON answer.
+ * default: *
+ * https://www.algolia.com/doc/api-reference/api-parameters/attributesToRetrieve/
+ */
+ attributesToRetrieve?: string[];
+ /**
+ * List of attributes you want to use for textual search
+ * default: attributeToIndex
+ * https://www.algolia.com/doc/api-reference/api-parameters/restrictSearchableAttributes/
+ */
+ restrictSearchableAttributes?: string[];
+ /**
+ * You can use facets to retrieve only a part of your attributes declared in attributesForFaceting attributes
+ * default: []
+ * https://www.algolia.com/doc/api-reference/api-parameters/facets/
+ */
+ facets?: string[];
/**
- * Query string used to perform the search
- * default: ''
- * https://github.com/algolia/algoliasearch-client-js#query
- */
- query?: string;
- /**
- * Filter the query with numeric, facet or/and tag filters
- * default: ""
- * https://github.com/algolia/algoliasearch-client-js#filters
- */
- filters?: string;
- /**
- * A string that contains the list of attributes you want to retrieve in order to minimize the size of the JSON answer.
- * default: *
- * https://github.com/algolia/algoliasearch-client-js#attributestoretrieve
- */
- attributesToRetrieve?: string[];
- /**
- * List of attributes you want to use for textual search
- * default: attributeToIndex
- * https://github.com/algolia/algoliasearch-client-js#restrictsearchableattributes
- */
- restrictSearchableAttributes?: string[];
- /**
- * You can use facets to retrieve only a part of your attributes declared in attributesForFaceting attributes
- * default: ""
- * https://github.com/algolia/algoliasearch-client-js#facets
- */
- facets?: string | string[];
+ * Force faceting to be applied after de-duplication (via the Distinct setting).
+ * When using the distinct setting in combination with faceting, facet counts may be higher than expected.
+ * This is because the engine, by default, computes faceting before applying de-duplication (distinct).
+ * When facetingAfterDistinct is set to true, the engine calculates faceting after the de-duplication has been applied.
+ * default ""
+ * https://www.algolia.com/doc/api-reference/api-parameters/facetingAfterDistinct/
+ */
+ facetingAfterDistinct?: boolean;
/**
* Limit the number of facet values returned for each facet.
- * default: ""
- * https://github.com/algolia/algoliasearch-client-js#maxvaluesperfacet
+ * default: 100
+ * https://www.algolia.com/doc/api-reference/api-parameters/maxValuesPerFacet/
*/
maxValuesPerFacet?: number;
/**
* Default list of attributes to highlight. If set to null, all indexed attributes are highlighted.
* default: null
- * https://github.com/algolia/algoliasearch-client-js#attributestohighlight
+ * https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/
*/
attributesToHighlight?: string[];
/**
* Default list of attributes to snippet alongside the number of words to return
* default: null
- * https://github.com/algolia/algoliasearch-client-js#attributestosnippet
+ * https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/
*/
attributesToSnippet?: string[];
/**
* Specify the string that is inserted before the highlighted parts in the query result
* default:
- * https://github.com/algolia/algoliasearch-client-js#highlightpretag
+ * https://www.algolia.com/doc/api-reference/api-parameters/highlightPreTag/
*/
highlightPreTag?: string;
/**
* Specify the string that is inserted after the highlighted parts in the query result
* default:
- * https://github.com/algolia/algoliasearch-client-js#highlightposttag
+ * https://www.algolia.com/doc/api-reference/api-parameters/highlightPostTag/
*/
highlightPostTag?: string;
/**
* String used as an ellipsis indicator when a snippet is truncated.
* default: …
- * https://github.com/algolia/algoliasearch-client-js#snippetellipsistext
+ * https://www.algolia.com/doc/api-reference/api-parameters/snippetEllipsisText/
*/
snippetEllipsisText?: string;
/**
* If set to true, restrict arrays in highlights and snippets to items that matched the query at least partially else return all array items in highlights and snippets
* default: false
- * https://github.com/algolia/algoliasearch-client-js#restricthighlightandsnippetarrays
+ * https://www.algolia.com/doc/api-reference/api-parameters/restrictHighlightAndSnippetArrays/
*/
restrictHighlightAndSnippetArrays?: boolean;
/**
* Pagination parameter used to select the number of hits per page
* default: 20
- * https://github.com/algolia/algoliasearch-client-js#hitsperpage
+ * https://www.algolia.com/doc/api-reference/api-parameters/hitsPerPage/
*/
hitsPerPage?: number;
/**
* Pagination parameter used to select the page to retrieve.
* default: 0
- * https://github.com/algolia/algoliasearch-client-js#page
+ * https://www.algolia.com/doc/api-reference/api-parameters/page/
*/
page?: number;
/**
* Offset of the first hit to return
* default: null
- * https://github.com/algolia/algoliasearch-client-js#offset
+ * https://www.algolia.com/doc/api-reference/api-parameters/offset/
*/
offset?: number;
/**
* Number of hits to return.
* default: null
- * https://github.com/algolia/algoliasearch-client-js#length
+ * https://www.algolia.com/doc/api-reference/api-parameters/length/
*/
length?: number;
/**
* The minimum number of characters needed to accept one typo.
* default: 4
- * https://github.com/algolia/algoliasearch-client-js#minwordsizefor1typo
+ * https://www.algolia.com/doc/api-reference/api-parameters/minWordSizefor1Typo/
*/
minWordSizefor1Typo?: number;
/**
* The minimum number of characters needed to accept two typo.
* fault: 8
- * https://github.com/algolia/algoliasearch-client-js#minwordsizefor2typos
+ * https://www.algolia.com/doc/api-reference/api-parameters/minWordSizefor2Typos/
*/
minWordSizefor2Typos?: number;
/**
@@ -1214,62 +1247,62 @@ declare namespace algoliasearch {
* 'false' The typo tolerance is disabled. All results with typos will be hidden.
* 'min' Only keep results with the minimum number of typos
* 'strict' Hits matching with 2 typos are not retrieved if there are some matching without typos.
- * https://github.com/algolia/algoliasearch-client-js#minwordsizefor2typos
+ * https://www.algolia.com/doc/api-reference/api-parameters/typoTolerance/
*/
typoTolerance?: boolean;
/**
* If set to false, disables typo tolerance on numeric tokens (numbers).
* default:
- * https://github.com/algolia/algoliasearch-client-js#allowtyposonnumerictokens
+ * https://www.algolia.com/doc/api-reference/api-parameters/allowTyposOnNumericTokens/
*/
allowTyposOnNumericTokens?: boolean;
/**
* If set to true, plural won't be considered as a typo
* default: false
- * https://github.com/algolia/algoliasearch-client-js#ignoreplurals
+ * https://www.algolia.com/doc/api-reference/api-parameters/ignorePlurals/
*/
ignorePlurals?: boolean;
/**
* List of attributes on which you want to disable typo tolerance
- * default: ""
- * https://github.com/algolia/algoliasearch-client-js#disabletypotoleranceonattributes
+ * default: []
+ * https://www.algolia.com/doc/api-reference/api-parameters/disableTypoToleranceOnAttributes/
*/
- disableTypoToleranceOnAttributes?: string;
+ disableTypoToleranceOnAttributes?: string[];
/**
* Search for entries around a given location
* default: ""
- * https://github.com/algolia/algoliasearch-client-js#aroundlatlng
+ * https://www.algolia.com/doc/api-reference/api-parameters/aroundLatLng/
*/
aroundLatLng?: string;
/**
* Search for entries around a given latitude/longitude automatically computed from user IP address.
* default: ""
- * https://github.com/algolia/algoliasearch-client-js#aroundlatlngviaip
+ * https://www.algolia.com/doc/api-reference/api-parameters/aroundLatLngViaIP/
*/
aroundLatLngViaIP?: string;
/**
* Control the radius associated with a geo search. Defined in meters.
* default: null
* You can specify aroundRadius=all if you want to compute the geo distance without filtering in a geo area
- * https://github.com/algolia/algoliasearch-client-js#aroundradius
+ * https://www.algolia.com/doc/api-reference/api-parameters/aroundRadius/
*/
aroundRadius?: number | 'all';
/**
* Control the precision of a geo search
* default: null
- * https://github.com/algolia/algoliasearch-client-js#aroundprecision
+ * https://www.algolia.com/doc/api-reference/api-parameters/aroundPrecision/
*/
aroundPrecision?: number;
/**
* Define the minimum radius used for a geo search when aroundRadius is not set.
* default: null
- * https://github.com/algolia/algoliasearch-client-js#minimumaroundradius
+ * https://www.algolia.com/doc/api-reference/api-parameters/minimumAroundRadius/
*/
minimumAroundRadius?: number;
/**
* Search entries inside a given area defined by the two extreme points of a rectangle
* default: null
- * https://github.com/algolia/algoliasearch-client-js#insideboundingbox
+ * https://www.algolia.com/doc/api-reference/api-parameters/insideBoundingBox/
*/
insideBoundingBox?: number[][];
/**
@@ -1278,13 +1311,13 @@ declare namespace algoliasearch {
* 'prefixAll' All query words are interpreted as prefixes. This option is not recommended.
* 'prefixLast' Only the last word is interpreted as a prefix (default behavior).
* 'prefixNone' No query word is interpreted as a prefix. This option is not recommended.
- * https://github.com/algolia/algoliasearch-client-js#querytype
+ * https://www.algolia.com/doc/api-reference/api-parameters/queryType/
*/
- queryType?: any;
+ queryType?: "prefixAll"|"prefixLast"|"prefixNone";
/**
* Search entries inside a given area defined by a set of points
* defauly: ''
- * https://github.com/algolia/algoliasearch-client-js#insidepolygon
+ * https://www.algolia.com/doc/api-reference/api-parameters/insidePolygon/
*/
insidePolygon?: number[][];
/**
@@ -1294,19 +1327,19 @@ declare namespace algoliasearch {
* 'firstWords' When a query does not return any results, the first word will be added as optional
* 'allOptional' When a query does not return any results, a second trial will be made with all words as optional
* 'none' No specific processing is done when a query does not return any results
- * https://github.com/algolia/algoliasearch-client-js#removewordsifnoresults
+ * https://www.algolia.com/doc/api-reference/api-parameters/removeWordsIfNoResults/
*/
- removeWordsIfNoResults?: string;
+ removeWordsIfNoResults?: "none"|"lastWords"|"firstWords"|"allOptional";
/**
* Enables the advanced query syntax
* default: false
- * https://github.com/algolia/algoliasearch-client-js#advancedsyntax
+ * https://www.algolia.com/doc/api-reference/api-parameters/advancedSyntax/
*/
advancedSyntax?: boolean;
/**
* A string that contains the comma separated list of words that should be considered as optional when found in the query
* default: []
- * https://github.com/algolia/algoliasearch-client-js#optionalwords
+ * https://www.algolia.com/doc/api-reference/api-parameters/optionalWords/
*/
optionalWords?: string[];
/**
@@ -1314,13 +1347,13 @@ declare namespace algoliasearch {
* default: false
* true|false: enable or disable stop words for all 41 supported languages; or
* a list of language ISO codes (as a comma-separated string) for which stop words should be enable
- * https://github.com/algolia/algoliasearch-client-js#removestopwords
+ * https://www.algolia.com/doc/api-reference/api-parameters/removeStopWords/
*/
- removeStopWords?: string[];
+ removeStopWords?: boolean|string[];
/**
* List of attributes on which you want to disable the computation of exact criteria
* default: []
- * https://github.com/algolia/algoliasearch-client-js#disableexactonattributes
+ * https://www.algolia.com/doc/api-reference/api-parameters/disableExactOnAttributes/
*/
disableExactOnAttributes?: string[];
/**
@@ -1329,81 +1362,90 @@ declare namespace algoliasearch {
* 'none': no exact on single word query
* 'word': exact set to 1 if the query word is found in the record
* 'attribute': exact set to 1 if there is an attribute containing a string equals to the query
- * https://github.com/algolia/algoliasearch-client-js#exactonsinglewordquery
+ * https://www.algolia.com/doc/api-reference/api-parameters/exactOnSingleWordQuery/
*/
- exactOnSingleWordQuery?: string;
+ exactOnSingleWordQuery?: "attribute"|"none"|"word";
/**
* Specify the list of approximation that should be considered as an exact match in the ranking formula
* default: ['ignorePlurals', 'singleWordSynonym']
* 'ignorePlurals': alternative words added by the ignorePlurals feature
* 'singleWordSynonym': single-word synonym (For example "NY" = "NYC")
* 'multiWordsSynonym': multiple-words synonym
- * https://github.com/algolia/algoliasearch-client-js#alternativesasexact
+ * https://www.algolia.com/doc/api-reference/api-parameters/alternativesAsExact/
*/
- alternativesAsExact?: any;
+ alternativesAsExact?: Array<"ignorePlurals"|"singleWordSynonym"|"multiWordsSynonym">;
/**
* If set to 1, enables the distinct feature, disabled by default, if the attributeForDistinct index setting is set.
- * https://github.com/algolia/algoliasearch-client-js#distinct
+ * https://www.algolia.com/doc/api-reference/api-parameters/distinct/
*/
- distinct?: any;
+ distinct?: number|boolean;
/**
* If set to true, the result hits will contain ranking information in the _rankingInfo attribute.
* default: false
- * https://github.com/algolia/algoliasearch-client-js#getrankinginfo
+ * https://www.algolia.com/doc/api-reference/api-parameters/getRankingInfo/
*/
getRankingInfo?: boolean;
/**
+ * @deprecated Use `numericAttributesForFiltering` instead
* All numerical attributes are automatically indexed as numerical filters
* default: ''
- * https://github.com/algolia/algoliasearch-client-js#numericattributestoindex
+ * https://www.algolia.com/doc/api-reference/api-parameters/numericAttributesForFiltering/
*/
numericAttributesToIndex?: string[];
+ /**
+ * All numerical attributes are automatically indexed as numerical filters
+ * default: ''
+ * https://www.algolia.com/doc/api-reference/api-parameters/numericAttributesForFiltering/
+ */
+ numericAttributesForFiltering?: string[];
/**
* @deprecated please use filters instead
* A string that contains the comma separated list of numeric filters you want to apply.
- * https://github.com/algolia/algoliasearch-client-js#numericfilters-deprecated
+ * https://www.algolia.com/doc/api-reference/api-parameters/numericFilters/
*/
numericFilters?: string[];
/**
* @deprecated
+ *
* Filter the query by a set of tags.
- * https://github.com/algolia/algoliasearch-client-js#tagfilters-deprecated
+ * Default: []
+ * https://www.algolia.com/doc/api-reference/api-parameters/tagFilters/
*/
- tagFilters?: string;
+ tagFilters?: string[];
/**
- * @deprecated
* Filter the query by a set of facets.
- * https://github.com/algolia/algoliasearch-client-js#facetfilters-deprecated
+ * Default: []
+ * https://www.algolia.com/doc/api-reference/api-parameters/facetFilters/
*/
- facetFilters?: string | string[]
+ facetFilters?: string[]|string[][];
/**
* If set to false, this query will not be taken into account in the analytics feature.
* default true
- * https://github.com/algolia/algoliasearch-client-js#analytics
+ * https://www.algolia.com/doc/api-reference/api-parameters/analytics/
*/
analytics?: boolean;
/**
* If set, tag your query with the specified identifiers
- * default: null
- * https://github.com/algolia/algoliasearch-client-js#analyticstags
+ * default: []
+ * https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/
*/
analyticsTags?: string[];
/**
* If set to false, the search will not use the synonyms defined for the targeted index.
* default: true
- * https://github.com/algolia/algoliasearch-client-js#synonyms
+ * https://www.algolia.com/doc/api-reference/api-parameters/synonyms/
*/
synonyms?: boolean;
/**
* If set to false, words matched via synonym expansion will not be replaced by the matched synonym in the highlighted result.
* default: true
- * https://github.com/algolia/algoliasearch-client-js#replacesynonymsinhighlight
+ * https://www.algolia.com/doc/api-reference/api-parameters/replaceSynonymsInHighlight/
*/
replaceSynonymsInHighlight?: boolean;
/**
* Configure the precision of the proximity ranking criterion
* default: 1
- * https://github.com/algolia/algoliasearch-client-js#minproximity
+ * https://www.algolia.com/doc/api-reference/api-parameters/minProximity/
*/
minProximity?: number;
@@ -1456,7 +1498,7 @@ declare namespace algoliasearch {
interface Task {
taskID: number;
createdAt: string;
- objectID?: string;
+ objectID?: string;
}
interface TaskStatus {
@@ -1739,42 +1781,42 @@ declare namespace algoliasearch {
interface Response {
/**
* Contains all the hits matching the query
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
hits: any[];
/**
* Current page
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
page: number;
/**
* Number of total hits matching the query
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
nbHits: number;
/**
* Number of pages
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
nbPages: number;
/**
* Number of hits per pages
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
hitsPerPage: number;
/**
* Engine processing time (excluding network transfer)
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
processingTimeMS: number;
/**
* Query used to perform the search
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
query: string;
/**
* GET parameters used to perform the search
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
params: string;
facets?: {
@@ -1788,6 +1830,16 @@ declare namespace algoliasearch {
sum: number,
};
};
+ /**
+ * The index name is only set when searching multiple indices.
+ * https://www.algolia.com/doc/api-reference/api-methods/multiple-queries/?language=javascript#response
+ */
+ index?: string;
+ /**
+ * The cursor is only set when browsing the index.
+ * https://www.algolia.com/doc/api-reference/api-methods/browse/
+ */
+ cursor?: string;
}
interface MultiResponse {
diff --git a/types/algoliasearch/lite/index.d.ts b/types/algoliasearch/lite/index.d.ts
index 4f068d5647..ce58d6a428 100644
--- a/types/algoliasearch/lite/index.d.ts
+++ b/types/algoliasearch/lite/index.d.ts
@@ -1,12 +1,15 @@
-// Type definitions for algoliasearch-client-js 3.27.0
+// Type definitions for algoliasearch-client-js 3.30.0
// Project: https://github.com/algolia/algoliasearch-client-js
// Definitions by: Baptiste Coquelle
// Haroen Viaene
// Aurélien Hervé
// Samuel Vaillant
// Claas Brüggemann
+// Kai Eichinger
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-// TypeScript Version: 2.2
+// TypeScript Version: 2.8
+
+type Omit = Pick>
declare namespace algoliasearch {
/**
@@ -130,6 +133,11 @@ declare namespace algoliasearch {
options: SearchForFacetValues.Parameters,
cb: (err: Error, res: SearchForFacetValues.Response) => void
): void;
+ /**
+ * Browse an index
+ * https://github.com/algolia/algoliasearch-client-js#backup--export-an-index---browse
+ */
+ browse(query: string, parameters: BrowseParameters, cb: (err: Error, res: BrowseResponse) => void): void;
/**
* Browse an index
* https://github.com/algolia/algoliasearch-client-js#backup--export-an-index---browse
@@ -139,7 +147,7 @@ declare namespace algoliasearch {
* Browse an index
* https://github.com/algolia/algoliasearch-client-js#backup--export-an-index---browse
*/
- browse(query: string): Promise;
+ browse(query: string, parameters?: BrowseParameters): Promise;
/**
* Browse an index from a cursor
* https://github.com/algolia/algoliasearch-client-js#backup--export-an-index---browse
@@ -194,114 +202,122 @@ declare namespace algoliasearch {
query: string;
processingTimeMS: number;
}
-
+ type BrowseParameters = Omit<
+ QueryParameters,
+ | "typoTolerance"
+ | "distinct"
+ | "facets"
+ | "getRankingInfo"
+ | "attributesToHighlight"
+ | "attributesToSnippet"
+ >
interface QueryParameters {
/**
* Query string used to perform the search
* default: ''
- * https://github.com/algolia/algoliasearch-client-js#query
+ * https://www.algolia.com/doc/api-reference/api-parameters/query/
*/
query?: string;
/**
* Filter the query with numeric, facet or/and tag filters
* default: ""
- * https://github.com/algolia/algoliasearch-client-js#filters
+ * https://www.algolia.com/doc/api-reference/api-parameters/filters/
*/
filters?: string;
/**
* A string that contains the list of attributes you want to retrieve in order to minimize the size of the JSON answer.
* default: *
- * https://github.com/algolia/algoliasearch-client-js#attributestoretrieve
+ * https://www.algolia.com/doc/api-reference/api-parameters/attributesToRetrieve/
*/
attributesToRetrieve?: string[];
/**
* List of attributes you want to use for textual search
* default: attributeToIndex
- * https://github.com/algolia/algoliasearch-client-js#restrictsearchableattributes
+ * https://www.algolia.com/doc/api-reference/api-parameters/restrictSearchableAttributes/
*/
restrictSearchableAttributes?: string[];
/**
* You can use facets to retrieve only a part of your attributes declared in attributesForFaceting attributes
- * default: ""
- * https://github.com/algolia/algoliasearch-client-js#facets
+ * default: []
+ * https://www.algolia.com/doc/api-reference/api-parameters/facets/
*/
- facets?: string;
+ facets?: string[];
/**
* Limit the number of facet values returned for each facet.
- * default: ""
- * https://github.com/algolia/algoliasearch-client-js#maxvaluesperfacet
+ * default: 100
+ * https://www.algolia.com/doc/api-reference/api-parameters/maxValuesPerFacet/
*/
maxValuesPerFacet?: number;
/**
* Default list of attributes to highlight. If set to null, all indexed attributes are highlighted.
* default: null
- * https://github.com/algolia/algoliasearch-client-js#attributestohighlight
+ * https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/
*/
attributesToHighlight?: string[];
/**
* Default list of attributes to snippet alongside the number of words to return
* default: null
- * https://github.com/algolia/algoliasearch-client-js#attributestosnippet
+ * https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/
*/
attributesToSnippet?: string[];
/**
* Specify the string that is inserted before the highlighted parts in the query result
* default:
- * https://github.com/algolia/algoliasearch-client-js#highlightpretag
+ * https://www.algolia.com/doc/api-reference/api-parameters/highlightPreTag/
*/
highlightPreTag?: string;
/**
* Specify the string that is inserted after the highlighted parts in the query result
* default:
- * https://github.com/algolia/algoliasearch-client-js#highlightposttag
+ * https://www.algolia.com/doc/api-reference/api-parameters/highlightPostTag/
*/
highlightPostTag?: string;
/**
* String used as an ellipsis indicator when a snippet is truncated.
* default: …
- * https://github.com/algolia/algoliasearch-client-js#snippetellipsistext
+ * https://www.algolia.com/doc/api-reference/api-parameters/snippetEllipsisText/
*/
snippetEllipsisText?: string;
/**
* If set to true, restrict arrays in highlights and snippets to items that matched the query at least partially else return all array items in highlights and snippets
* default: false
- * https://github.com/algolia/algoliasearch-client-js#restricthighlightandsnippetarrays
+ * https://www.algolia.com/doc/api-reference/api-parameters/restrictHighlightAndSnippetArrays/
*/
restrictHighlightAndSnippetArrays?: boolean;
/**
* Pagination parameter used to select the number of hits per page
* default: 20
- * https://github.com/algolia/algoliasearch-client-js#hitsperpage
+ * https://www.algolia.com/doc/api-reference/api-parameters/hitsPerPage/
*/
hitsPerPage?: number;
/**
* Pagination parameter used to select the page to retrieve.
* default: 0
- * https://github.com/algolia/algoliasearch-client-js#page
+ * https://www.algolia.com/doc/api-reference/api-parameters/page/
*/
page?: number;
/**
* Offset of the first hit to return
* default: null
- * https://github.com/algolia/algoliasearch-client-js#offset
+ * https://www.algolia.com/doc/api-reference/api-parameters/offset/
*/
offset?: number;
/**
* Number of hits to return.
* default: null
- * https://github.com/algolia/algoliasearch-client-js#length
+ * https://www.algolia.com/doc/api-reference/api-parameters/length/
*/
length?: number;
/**
* The minimum number of characters needed to accept one typo.
* default: 4
- * https://github.com/algolia/algoliasearch-client-js#minwordsizefor1typo
+ * https://www.algolia.com/doc/api-reference/api-parameters/minWordSizefor1Typo/
*/
minWordSizefor1Typo?: number;
/**
* The minimum number of characters needed to accept two typo.
* fault: 8
- * https://github.com/algolia/algoliasearch-client-js#minwordsizefor2typos
+ * https://www.algolia.com/doc/api-reference/api-parameters/minWordSizefor2Typos/
*/
minWordSizefor2Typos?: number;
/**
@@ -311,62 +327,62 @@ declare namespace algoliasearch {
* 'false' The typo tolerance is disabled. All results with typos will be hidden.
* 'min' Only keep results with the minimum number of typos
* 'strict' Hits matching with 2 typos are not retrieved if there are some matching without typos.
- * https://github.com/algolia/algoliasearch-client-js#minwordsizefor2typos
+ * https://www.algolia.com/doc/api-reference/api-parameters/typoTolerance/
*/
typoTolerance?: boolean;
/**
* If set to false, disables typo tolerance on numeric tokens (numbers).
* default:
- * https://github.com/algolia/algoliasearch-client-js#allowtyposonnumerictokens
+ * https://www.algolia.com/doc/api-reference/api-parameters/allowTyposOnNumericTokens/
*/
allowTyposOnNumericTokens?: boolean;
/**
* If set to true, plural won't be considered as a typo
* default: false
- * https://github.com/algolia/algoliasearch-client-js#ignoreplurals
+ * https://www.algolia.com/doc/api-reference/api-parameters/ignorePlurals/
*/
ignorePlurals?: boolean;
/**
* List of attributes on which you want to disable typo tolerance
- * default: ""
- * https://github.com/algolia/algoliasearch-client-js#disabletypotoleranceonattributes
+ * default: []
+ * https://www.algolia.com/doc/api-reference/api-parameters/disableTypoToleranceOnAttributes/
*/
- disableTypoToleranceOnAttributes?: string;
+ disableTypoToleranceOnAttributes?: string[];
/**
* Search for entries around a given location
* default: ""
- * https://github.com/algolia/algoliasearch-client-js#aroundlatlng
+ * https://www.algolia.com/doc/api-reference/api-parameters/aroundLatLng/
*/
aroundLatLng?: string;
/**
* Search for entries around a given latitude/longitude automatically computed from user IP address.
* default: ""
- * https://github.com/algolia/algoliasearch-client-js#aroundlatlngviaip
+ * https://www.algolia.com/doc/api-reference/api-parameters/aroundLatLngViaIP/
*/
aroundLatLngViaIP?: string;
/**
* Control the radius associated with a geo search. Defined in meters.
* default: null
* You can specify aroundRadius=all if you want to compute the geo distance without filtering in a geo area
- * https://github.com/algolia/algoliasearch-client-js#aroundradius
+ * https://www.algolia.com/doc/api-reference/api-parameters/aroundRadius/
*/
aroundRadius?: number | 'all';
/**
* Control the precision of a geo search
* default: null
- * https://github.com/algolia/algoliasearch-client-js#aroundprecision
+ * https://www.algolia.com/doc/api-reference/api-parameters/aroundPrecision/
*/
aroundPrecision?: number;
/**
* Define the minimum radius used for a geo search when aroundRadius is not set.
* default: null
- * https://github.com/algolia/algoliasearch-client-js#minimumaroundradius
+ * https://www.algolia.com/doc/api-reference/api-parameters/minimumAroundRadius/
*/
minimumAroundRadius?: number;
/**
* Search entries inside a given area defined by the two extreme points of a rectangle
* default: null
- * https://github.com/algolia/algoliasearch-client-js#insideboundingbox
+ * https://www.algolia.com/doc/api-reference/api-parameters/insideBoundingBox/
*/
insideBoundingBox?: number[][];
/**
@@ -375,13 +391,13 @@ declare namespace algoliasearch {
* 'prefixAll' All query words are interpreted as prefixes. This option is not recommended.
* 'prefixLast' Only the last word is interpreted as a prefix (default behavior).
* 'prefixNone' No query word is interpreted as a prefix. This option is not recommended.
- * https://github.com/algolia/algoliasearch-client-js#querytype
+ * https://www.algolia.com/doc/api-reference/api-parameters/queryType/
*/
- queryType?: any;
+ queryType?: "prefixAll"|"prefixLast"|"prefixNone";
/**
* Search entries inside a given area defined by a set of points
* defauly: ''
- * https://github.com/algolia/algoliasearch-client-js#insidepolygon
+ * https://www.algolia.com/doc/api-reference/api-parameters/insidePolygon/
*/
insidePolygon?: number[][];
/**
@@ -391,19 +407,19 @@ declare namespace algoliasearch {
* 'firstWords' When a query does not return any results, the first word will be added as optional
* 'allOptional' When a query does not return any results, a second trial will be made with all words as optional
* 'none' No specific processing is done when a query does not return any results
- * https://github.com/algolia/algoliasearch-client-js#removewordsifnoresults
+ * https://www.algolia.com/doc/api-reference/api-parameters/removeWordsIfNoResults/
*/
- removeWordsIfNoResults?: string;
+ removeWordsIfNoResults?: "none"|"lastWords"|"firstWords"|"allOptional";
/**
* Enables the advanced query syntax
* default: false
- * https://github.com/algolia/algoliasearch-client-js#advancedsyntax
+ * https://www.algolia.com/doc/api-reference/api-parameters/advancedSyntax/
*/
advancedSyntax?: boolean;
/**
* A string that contains the comma separated list of words that should be considered as optional when found in the query
* default: []
- * https://github.com/algolia/algoliasearch-client-js#optionalwords
+ * https://www.algolia.com/doc/api-reference/api-parameters/optionalWords/
*/
optionalWords?: string[];
/**
@@ -411,13 +427,13 @@ declare namespace algoliasearch {
* default: false
* true|false: enable or disable stop words for all 41 supported languages; or
* a list of language ISO codes (as a comma-separated string) for which stop words should be enable
- * https://github.com/algolia/algoliasearch-client-js#removestopwords
+ * https://www.algolia.com/doc/api-reference/api-parameters/removeStopWords/
*/
- removeStopWords?: string[];
+ removeStopWords?: boolean|string[];
/**
* List of attributes on which you want to disable the computation of exact criteria
* default: []
- * https://github.com/algolia/algoliasearch-client-js#disableexactonattributes
+ * https://www.algolia.com/doc/api-reference/api-parameters/disableExactOnAttributes/
*/
disableExactOnAttributes?: string[];
/**
@@ -426,81 +442,90 @@ declare namespace algoliasearch {
* 'none': no exact on single word query
* 'word': exact set to 1 if the query word is found in the record
* 'attribute': exact set to 1 if there is an attribute containing a string equals to the query
- * https://github.com/algolia/algoliasearch-client-js#exactonsinglewordquery
+ * https://www.algolia.com/doc/api-reference/api-parameters/exactOnSingleWordQuery/
*/
- exactOnSingleWordQuery?: string;
+ exactOnSingleWordQuery?: "attribute"|"none"|"word";
/**
* Specify the list of approximation that should be considered as an exact match in the ranking formula
* default: ['ignorePlurals', 'singleWordSynonym']
* 'ignorePlurals': alternative words added by the ignorePlurals feature
* 'singleWordSynonym': single-word synonym (For example "NY" = "NYC")
* 'multiWordsSynonym': multiple-words synonym
- * https://github.com/algolia/algoliasearch-client-js#alternativesasexact
+ * https://www.algolia.com/doc/api-reference/api-parameters/alternativesAsExact/
*/
- alternativesAsExact?: any;
+ alternativesAsExact?: Array<"ignorePlurals"|"singleWordSynonym"|"multiWordsSynonym">;
/**
* If set to 1, enables the distinct feature, disabled by default, if the attributeForDistinct index setting is set.
- * https://github.com/algolia/algoliasearch-client-js#distinct
+ * https://www.algolia.com/doc/api-reference/api-parameters/distinct/
*/
- distinct?: any;
+ distinct?: number|boolean;
/**
* If set to true, the result hits will contain ranking information in the _rankingInfo attribute.
* default: false
- * https://github.com/algolia/algoliasearch-client-js#getrankinginfo
+ * https://www.algolia.com/doc/api-reference/api-parameters/getRankingInfo/
*/
getRankingInfo?: boolean;
/**
+ * @deprecated Use `numericAttributesForFiltering` instead
* All numerical attributes are automatically indexed as numerical filters
* default: ''
- * https://github.com/algolia/algoliasearch-client-js#numericattributestoindex
+ * https://www.algolia.com/doc/api-reference/api-parameters/numericAttributesForFiltering/
*/
numericAttributesToIndex?: string[];
+ /**
+ * All numerical attributes are automatically indexed as numerical filters
+ * default: ''
+ * https://www.algolia.com/doc/api-reference/api-parameters/numericAttributesForFiltering/
+ */
+ numericAttributesForFiltering?: string[];
/**
* @deprecated please use filters instead
* A string that contains the comma separated list of numeric filters you want to apply.
- * https://github.com/algolia/algoliasearch-client-js#numericfilters-deprecated
+ * https://www.algolia.com/doc/api-reference/api-parameters/numericFilters/
*/
numericFilters?: string[];
/**
* @deprecated
+ *
* Filter the query by a set of tags.
- * https://github.com/algolia/algoliasearch-client-js#tagfilters-deprecated
+ * Default: []
+ * https://www.algolia.com/doc/api-reference/api-parameters/tagFilters/
*/
- tagFilters?: string;
+ tagFilters?: string[];
/**
- * @deprecated
* Filter the query by a set of facets.
- * https://github.com/algolia/algoliasearch-client-js#facetfilters-deprecated
+ * Default: []
+ * https://www.algolia.com/doc/api-reference/api-parameters/facetFilters/
*/
- facetFilters?: string;
+ facetFilters?: string[]|string[][];
/**
* If set to false, this query will not be taken into account in the analytics feature.
* default true
- * https://github.com/algolia/algoliasearch-client-js#analytics
+ * https://www.algolia.com/doc/api-reference/api-parameters/analytics/
*/
analytics?: boolean;
/**
* If set, tag your query with the specified identifiers
- * default: null
- * https://github.com/algolia/algoliasearch-client-js#analyticstags
+ * default: []
+ * https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/
*/
analyticsTags?: string[];
/**
* If set to false, the search will not use the synonyms defined for the targeted index.
* default: true
- * https://github.com/algolia/algoliasearch-client-js#synonyms
+ * https://www.algolia.com/doc/api-reference/api-parameters/synonyms/
*/
synonyms?: boolean;
/**
* If set to false, words matched via synonym expansion will not be replaced by the matched synonym in the highlighted result.
* default: true
- * https://github.com/algolia/algoliasearch-client-js#replacesynonymsinhighlight
+ * https://www.algolia.com/doc/api-reference/api-parameters/replaceSynonymsInHighlight/
*/
replaceSynonymsInHighlight?: boolean;
/**
* Configure the precision of the proximity ranking criterion
* default: 1
- * https://github.com/algolia/algoliasearch-client-js#minproximity
+ * https://www.algolia.com/doc/api-reference/api-parameters/minProximity/
*/
minProximity?: number;
@@ -530,42 +555,42 @@ declare namespace algoliasearch {
interface Response {
/**
* Contains all the hits matching the query
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
hits: any[];
/**
* Current page
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
page: number;
/**
* Number of total hits matching the query
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
nbHits: number;
/**
* Number of pages
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
nbPages: number;
/**
* Number of hits per pages
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
hitsPerPage: number;
/**
* Engine processing time (excluding network transfer)
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
processingTimeMS: number;
/**
* Query used to perform the search
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
query: string;
/**
* GET parameters used to perform the search
- * https://github.com/algolia/algoliasearch-client-js#response-format
+ * https://www.algolia.com/doc/api-reference/api-methods/search/?language=javascript#response
*/
params: string;
facets?: {
@@ -579,6 +604,16 @@ declare namespace algoliasearch {
sum: number,
};
};
+ /**
+ * The index name is only set when searching multiple indices.
+ * https://www.algolia.com/doc/api-reference/api-methods/multiple-queries/?language=javascript#response
+ */
+ index?: string;
+ /**
+ * The cursor is only set when browsing the index.
+ * https://www.algolia.com/doc/api-reference/api-methods/browse/
+ */
+ cursor?: string;
}
interface MultiResponse {
diff --git a/types/ali-app/ali-app-tests.ts b/types/ali-app/ali-app-tests.ts
new file mode 100644
index 0000000000..a42301aed1
--- /dev/null
+++ b/types/ali-app/ali-app-tests.ts
@@ -0,0 +1,2153 @@
+(() => {
+ // https://docs.alipay.com/mini/api/ui-navigate
+ my.navigateTo({
+ url: 'new_page?count=100'
+ });
+ // test.js
+ Page({
+ onLoad(query: any) {
+ my.alert({
+ content: JSON.stringify(query),
+ });
+ }
+ });
+ my.redirectTo({
+ url: 'new_page?count=100'
+ });
+ // 注æ„:调用 navigateTo 跳转时,调用该方法的页é¢ä¼šè¢«åŠ å…¥å †æ ˆï¼Œ
+ // 而 redirectTo 方法则ä¸ä¼šã€‚è§ä¸‹æ–¹ç¤ºä¾‹ä»£ç
+
+ // æ¤å¤„是one页é¢
+ my.navigateTo({
+ url: 'two?pageId=10000'
+ });
+
+ // æ¤å¤„是two页é¢
+ my.navigateTo({
+ url: 'one?pageId=99999'
+ });
+
+ // 在three页é¢å†… navigateBack,将返回one页é¢
+ my.navigateBack({
+ delta: 2
+ });
+ my.reLaunch({
+ url: '/page/index'
+ });
+ my.setNavigationBar({
+ title: 'ä½ å¥½',
+ backgroundColor: '#108ee9',
+ success() {
+ my.alert({
+ content: '设置æˆåŠŸ',
+ });
+ },
+ fail() {
+ my.alert({
+ content: '设置是失败',
+ });
+ },
+ });
+ my.showNavigationBarLoading();
+ my.hideNavigationBarLoading();
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/ui-tabbar
+ my.switchTab({
+ url: '/home'
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/ui-feedback
+ my.alert({
+ title: '亲',
+ content: '您本月的账å•已出',
+ buttonText: '我知é“了',
+ success: () => {
+ my.alert({
+ title: '用户点击了「我知é“了ã€',
+ });
+ },
+ });
+ my.confirm({
+ title: '温馨æç¤º',
+ content: 'æ‚¨æ˜¯å¦æƒ³æŸ¥è¯¢å¿«é€’å•å·ï¼š1234567890',
+ confirmButtonText: '马上查询',
+ cancelButtonText: 'æš‚ä¸éœ€è¦',
+ success: (result) => {
+ my.alert({
+ title: `${result.confirm}`,
+ });
+ },
+ });
+ my.prompt({
+ title: 'æ ‡é¢˜å•行',
+ message: '说明当å‰çжæ€ã€æç¤ºç”¨æˆ·è§£å†³æ–¹æ¡ˆï¼Œæœ€å¥½ä¸è¦è¶…过两行。',
+ placeholder: '给朋å‹ç•™è¨€',
+ okButtonText: '确定',
+ cancelButtonText: 'å–æ¶ˆ',
+ success: (result) => {
+ my.alert({
+ title: JSON.stringify(result),
+ });
+ },
+ });
+ my.showToast({
+ type: 'success',
+ content: 'æ“作æˆåŠŸ',
+ duration: 3000,
+ success: () => {
+ my.alert({
+ title: 'toast 消失了',
+ });
+ },
+ });
+ my.hideToast();
+ my.showLoading({
+ content: 'åŠ è½½ä¸...',
+ delay: 1000,
+ });
+
+ my.hideLoading();
+
+ Page({
+ onLoad() {
+ my.showLoading();
+ const that = this;
+ setTimeout(() => {
+ my.hideLoading({
+ page: that, // é˜²æ¢æ‰§è¡Œæ—¶å·²ç»åˆ‡æ¢åˆ°å…¶å®ƒé¡µé¢ï¼Œpage指å‘ä¸å‡†ç¡®
+ });
+ }, 4000);
+ }
+ });
+ my.showNavigationBarLoading();
+ my.hideNavigationBarLoading();
+ my.showActionSheet({
+ title: '支付å®-ActionSheet',
+ items: ['èœå•一', 'èœå•二', 'èœå•三', 'èœå•å››', 'èœå•五'],
+ badges: [
+ { index: 0, type: 'none' },
+ { index: 1, type: 'point' },
+ { index: 2, type: 'num', text: '99' },
+ { index: 3, type: 'text', text: '推è' },
+ { index: 4, type: 'more' }],
+ cancelButtonText: 'å–æ¶ˆå¥½äº†',
+ success: (res) => {
+ const btn = res.index === -1 ? 'å–æ¶ˆ' : `第${res.index}个`;
+ my.alert({
+ title: `ä½ ç‚¹äº†${btn}按钮`
+ });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/ui-pulldown
+ Page({
+ onPullDownRefresh() {
+ my.stopPullDownRefresh();
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/ui-contact
+ my.choosePhoneContact({
+ success: (res) => {
+ my.alert({
+ content: `å§“å:${res.name}\nå·ç :${res.mobile}`
+ });
+ }
+ });
+ my.chooseAlipayContact({
+ count: 2,
+ success: (res) => {
+ my.alert({
+ content: 'chooseAlipayContact response: ' + JSON.stringify(res)
+ });
+ },
+ fail: (res) => {
+ my.alert({
+ content: 'chooseAlipayContact response: ' + JSON.stringify(res)
+ });
+ }
+ });
+ my.chooseContact({
+ chooseType: 'multi', // 多选模å¼
+ includeMe: true, // 包å«è‡ªå·±
+ includeMobileContactMode: 'known', // 仅包å«åŒå‘手机通讯录è”系人,也å³åŒæ–¹æ‰‹æœºé€šè®¯å½•éƒ½å˜æœ‰å¯¹æ–¹å·ç çš„è”系人
+ multiChooseMax: 3, // 最多能选择三个è”系人
+ multiChooseMaxTips: '超过选择的最大人数了',
+ success: (res) => {
+ my.alert({
+ content: 'chooseContact : ' + JSON.stringify(res)
+ });
+ },
+ fail: (res) => {
+ my.alert({
+ content: 'chooseContact : ' + JSON.stringify(res)
+ });
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/ui-city
+ my.chooseCity({
+ cities: [
+ {
+ city: 'æœé˜³åŒº',
+ adCode: '110105',
+ spell: 'chaoyang'
+ },
+ {
+ city: '海淀区',
+ adCode: '110108',
+ spell: 'haidian'
+ },
+ {
+ city: '丰å°åŒº',
+ adCode: '110106',
+ spell: 'fengtai'
+ },
+ {
+ city: '东城区',
+ adCode: '110101',
+ spell: 'dongcheng'
+ },
+ {
+ city: '西城区',
+ adCode: '110102',
+ spell: 'xicheng'
+ },
+ {
+ city: '房山区',
+ adCode: '110111',
+ spell: 'fangshan'
+ }
+ ],
+ hotCities: [
+ {
+ city: 'æœé˜³åŒº',
+ adCode: '110105'
+ },
+ {
+ city: '海淀区',
+ adCode: '110108'
+ },
+ {
+ city: '丰å°åŒº',
+ adCode: '110106'
+ }
+ ],
+ success: (res) => {
+ my.alert({
+ content: `${res.city}:${res.adCode}`
+ });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/ui-date
+ my.datePicker({
+ format: 'yyyy-MM-dd',
+ currentDate: '2012-12-12',
+ startDate: '2012-12-10',
+ endDate: '2012-12-15',
+ success: (res) => {
+ my.alert({
+ content: res.date,
+ });
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/ui-animation
+ const animation = my.createAnimation({
+ transformOrigin: "top right",
+ duration: 3000,
+ timeFunction: "ease-in-out",
+ delay: 100,
+ });
+ Page({
+ data: {
+ animationInfo: {}
+ },
+ onShow() {
+ const animation = my.createAnimation({
+ duration: 1000,
+ timeFunction: 'ease-in-out',
+ });
+
+ this.animation = animation;
+
+ animation.scale(3, 3).rotate(60).step();
+
+ this.setData({
+ animationInfo: animation.export()
+ });
+
+ setTimeout(() => {
+ animation.translate(35).step();
+ this.setData({
+ animationInfo: animation.export(),
+ });
+ }, 1500);
+ },
+ rotateAndScale(this: my.Page) {
+ // æ—‹è½¬åŒæ—¶æ”¾å¤§
+ this.animation.rotate(60).scale(3, 3).step();
+ this.setData({
+ animationInfo: this.animation.export(),
+ });
+ },
+ rotateThenScale(this: my.Page) {
+ // å…ˆæ—‹è½¬åŽæ”¾å¤§
+ this.animation.rotate(60).step();
+ this.animation.scale(3, 3).step();
+ this.setData({
+ animationInfo: this.animation.export(),
+ });
+ },
+ rotateAndScaleThenTranslate(this: my.Page) {
+ // å…ˆæ—‹è½¬åŒæ—¶æ”¾å¤§ï¼Œç„¶åŽå¹³ç§»
+ this.animation.rotate(60).scale(3, 3).step();
+ this.animation.translate(100, 100).step({ duration: 2000 });
+ this.setData({
+ animationInfo: this.animation.export()
+ });
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/ui-canvas
+ const ctx = my.createCanvasContext('awesomeCanvas');
+ ctx.toTempFilePath({
+ success() { },
+ });
+
+ ctx.setTextAlign("left");
+ ctx.fillText("Hello world", 0, 100);
+
+ ctx.setTextBaseline("top");
+ ctx.fillText("Hello world", 0, 100);
+
+ ctx.setFillStyle('blue');
+ ctx.fillRect(50, 50, 100, 175);
+ ctx.draw();
+
+ ctx.setStrokeStyle('blue');
+ ctx.strokeRect(50, 50, 100, 175);
+ ctx.draw();
+
+ ctx.setFillStyle('red');
+ ctx.setShadow(15, 45, 45, 'yellow');
+ ctx.fillRect(20, 20, 100, 175);
+ ctx.draw();
+
+ const grd = ctx.createLinearGradient(10, 10, 150, 10);
+ grd.addColorStop(0, 'yellow');
+ grd.addColorStop(1, 'blue');
+
+ ctx.setFillStyle(grd);
+ ctx.fillRect(20, 20, 250, 180);
+ ctx.draw();
+
+ grd.addColorStop(0, 'blue');
+ grd.addColorStop(1, 'red');
+
+ ctx.setFillStyle(grd);
+ ctx.fillRect(20, 20, 250, 180);
+ ctx.draw();
+
+ grd.addColorStop(0.36, 'orange');
+ grd.addColorStop(0.56, 'cyan');
+ grd.addColorStop(0.63, 'yellow');
+ grd.addColorStop(0.76, 'blue');
+ grd.addColorStop(0.54, 'green');
+ grd.addColorStop(1, 'purple');
+ grd.addColorStop(0.4, 'red');
+
+ ctx.setFillStyle(grd);
+ ctx.fillRect(20, 20, 250, 180);
+ ctx.draw();
+
+ ctx.beginPath();
+ ctx.moveTo(20, 20);
+ ctx.lineTo(250, 10);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.setLineWidth(10);
+ ctx.moveTo(20, 35);
+ ctx.lineTo(250, 30);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.setLineWidth(20);
+ ctx.moveTo(20, 50);
+ ctx.lineTo(250, 55);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.setLineWidth(25);
+ ctx.moveTo(20, 80);
+ ctx.lineTo(250, 85);
+ ctx.stroke();
+
+ ctx.draw();
+
+ ctx.beginPath();
+ ctx.moveTo(10, 10);
+ ctx.lineTo(150, 10);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.setLineCap('round');
+ ctx.setLineWidth(20);
+ ctx.moveTo(20, 70);
+ ctx.lineTo(250, 80);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.setLineCap('butt');
+ ctx.setLineWidth(10);
+ ctx.moveTo(25, 80);
+ ctx.lineTo(250, 30);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.setLineCap('square');
+ ctx.setLineWidth(10);
+ ctx.moveTo(35, 47);
+ ctx.lineTo(230, 120);
+ ctx.stroke();
+
+ ctx.draw();
+
+ ctx.beginPath();
+ ctx.moveTo(20, 30);
+ ctx.lineTo(150, 70);
+ ctx.lineTo(20, 100);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.setLineJoin('round');
+ ctx.setLineWidth(20);
+ ctx.moveTo(100, 20);
+ ctx.lineTo(280, 80);
+ ctx.lineTo(100, 100);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.setLineJoin('bevel');
+ ctx.setLineWidth(20);
+ ctx.moveTo(60, 25);
+ ctx.lineTo(180, 80);
+ ctx.lineTo(90, 100);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.setLineJoin('miter');
+ ctx.setLineWidth(15);
+ ctx.moveTo(130, 70);
+ ctx.lineTo(250, 50);
+ ctx.lineTo(230, 100);
+ ctx.stroke();
+
+ ctx.draw();
+
+ ctx.beginPath();
+ ctx.setLineWidth(15);
+ ctx.setLineJoin('miter');
+ ctx.setMiterLimit(1);
+ ctx.moveTo(10, 10);
+ ctx.lineTo(100, 50);
+ ctx.lineTo(10, 90);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.setLineWidth(15);
+ ctx.setLineJoin('miter');
+ ctx.setMiterLimit(2);
+ ctx.moveTo(50, 10);
+ ctx.lineTo(140, 50);
+ ctx.lineTo(50, 90);
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.setLineWidth(15);
+ ctx.setLineJoin('miter');
+ ctx.setMiterLimit(3);
+ ctx.moveTo(90, 10);
+ ctx.lineTo(180, 50);
+ ctx.lineTo(90, 90);
+ ctx.stroke();
+
+ ctx.draw();
+
+ ctx.rect(20, 20, 250, 80);
+ ctx.setFillStyle('blue');
+ ctx.fill();
+ ctx.draw();
+
+ ctx.fillRect(20, 20, 250, 80);
+ ctx.setFillStyle('blue');
+ ctx.draw();
+
+ ctx.setStrokeStyle('blue');
+ ctx.strokeRect(20, 20, 250, 80);
+ ctx.draw();
+
+ ctx.setFillStyle('blue');
+ ctx.fillRect(250, 10, 250, 200);
+ ctx.setFillStyle('yellow');
+ ctx.fillRect(0, 0, 150, 200);
+ ctx.clearRect(10, 10, 150, 75);
+ ctx.draw();
+
+ ctx.moveTo(20, 20);
+ ctx.lineTo(200, 20);
+ ctx.lineTo(200, 200);
+ ctx.fill();
+ ctx.draw();
+
+ ctx.rect(20, 20, 110, 40);
+ ctx.setFillStyle('blue');
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.rect(20, 30, 150, 40);
+
+ ctx.setFillStyle('yellow');
+ ctx.fillRect(20, 80, 150, 40);
+
+ ctx.rect(20, 150, 150, 40);
+
+ ctx.setFillStyle('red');
+ ctx.fill();
+ ctx.draw();
+
+ ctx.moveTo(20, 20);
+ ctx.lineTo(150, 10);
+ ctx.lineTo(150, 150);
+ ctx.stroke();
+ ctx.draw();
+
+ ctx.rect(10, 10, 100, 30);
+ ctx.setStrokeStyle('blue');
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.rect(20, 50, 150, 50);
+
+ ctx.setStrokeStyle('yellow');
+ ctx.strokeRect(15, 75, 200, 35);
+
+ ctx.rect(20, 200, 150, 30);
+
+ ctx.setStrokeStyle('red');
+ ctx.stroke();
+ ctx.draw();
+
+ ctx.rect(20, 20, 150, 50);
+ ctx.setFillStyle('blue');
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.rect(20, 50, 150, 40);
+
+ ctx.setFillStyle('yellow');
+ ctx.fillRect(20, 170, 150, 40);
+
+ ctx.rect(10, 100, 100, 30);
+
+ ctx.setFillStyle('red');
+ ctx.fill();
+ ctx.draw();
+
+ ctx.moveTo(20, 20);
+ ctx.lineTo(150, 20);
+ ctx.lineTo(150, 150);
+ ctx.closePath();
+ ctx.stroke();
+ ctx.draw();
+
+ ctx.rect(20, 20, 150, 50);
+ ctx.closePath();
+
+ ctx.beginPath();
+ ctx.rect(20, 50, 150, 40);
+
+ ctx.setFillStyle('red');
+ ctx.fillRect(20, 80, 120, 30);
+
+ ctx.rect(20, 150, 150, 40);
+
+ ctx.setFillStyle('blue');
+ ctx.fill();
+ ctx.draw();
+
+ ctx.moveTo(20, 20);
+ ctx.lineTo(150, 15);
+
+ ctx.moveTo(20, 55);
+ ctx.lineTo(120, 60);
+ ctx.stroke();
+ ctx.draw();
+
+ ctx.moveTo(20, 20);
+ ctx.rect(20, 20, 80, 30);
+ ctx.lineTo(120, 80);
+ ctx.stroke();
+ ctx.draw();
+
+ ctx.arc(200, 75, 50, 0, 2 * Math.PI);
+ ctx.setFillStyle('#CCCCCC');
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.moveTo(50, 65);
+ ctx.lineTo(170, 80);
+ ctx.moveTo(200, 35);
+ ctx.lineTo(200, 235);
+ ctx.setStrokeStyle('#AAAAAA');
+ ctx.stroke();
+
+ ctx.setFontSize(12);
+ ctx.setFillStyle('yellow');
+ ctx.fillText('0', 165, 78);
+ ctx.fillText('0.6*PI', 96, 148);
+ ctx.fillText('1*PI', 15, 57);
+ ctx.fillText('1.7*PI', 94, 20);
+
+ ctx.beginPath();
+ ctx.arc(200, 85, 2, 0, 2 * Math.PI);
+ ctx.setFillStyle('blue');
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.arc(200, 35, 2, 0, 2 * Math.PI);
+ ctx.setFillStyle('green');
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.arc(450, 60, 2, 0, 2 * Math.PI);
+ ctx.setFillStyle('red');
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.arc(150, 35, 50, 0, 1.8 * Math.PI);
+ ctx.setStrokeStyle('#666666');
+ ctx.stroke();
+
+ ctx.draw();
+
+ ctx.beginPath();
+ ctx.arc(30, 30, 2, 0, 2 * Math.PI);
+ ctx.setFillStyle('red');
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.arc(250, 25, 2, 0, 2 * Math.PI);
+ ctx.setFillStyle('blue');
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.arc(20, 100, 2, 0, 2 * Math.PI);
+ ctx.arc(200, 100, 2, 0, 2 * Math.PI);
+ ctx.setFillStyle('green');
+ ctx.fill();
+
+ ctx.setFillStyle('yellow');
+ ctx.setFontSize(14);
+
+ ctx.beginPath();
+ ctx.moveTo(30, 30);
+ ctx.lineTo(30, 100);
+ ctx.lineTo(150, 75);
+
+ ctx.moveTo(250, 30);
+ ctx.lineTo(250, 80);
+ ctx.lineTo(70, 75);
+ ctx.setStrokeStyle('#EEEEEE');
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.moveTo(30, 30);
+ ctx.bezierCurveTo(30, 150, 250, 150, 180, 20);
+ ctx.setStrokeStyle('black');
+ ctx.stroke();
+
+ ctx.draw();
+
+ ctx.beginPath();
+ ctx.arc(30, 30, 2, 0, 2 * Math.PI);
+ ctx.setFillStyle('red');
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.arc(250, 20, 2, 0, 2 * Math.PI);
+ ctx.setFillStyle('blue');
+ ctx.fill();
+
+ ctx.beginPath();
+ ctx.arc(30, 200, 2, 0, 2 * Math.PI);
+ ctx.setFillStyle('green');
+ ctx.fill();
+
+ ctx.setFillStyle('black');
+ ctx.setFontSize(12);
+
+ ctx.beginPath();
+ ctx.moveTo(30, 30);
+ ctx.lineTo(30, 150);
+ ctx.lineTo(250, 30);
+ ctx.setStrokeStyle('#AAAAAA');
+ ctx.stroke();
+
+ ctx.beginPath();
+ ctx.moveTo(30, 30);
+ ctx.quadraticCurveTo(30, 150, 250, 25);
+ ctx.setStrokeStyle('black');
+ ctx.stroke();
+
+ ctx.draw();
+
+ ctx.strokeRect(15, 15, 30, 25);
+ ctx.scale(3, 3);
+ ctx.strokeRect(15, 15, 30, 25);
+ ctx.scale(3, 3);
+ ctx.strokeRect(15, 15, 30, 25);
+
+ ctx.draw();
+
+ ctx.strokeRect(200, 20, 180, 150);
+ ctx.rotate(30 * Math.PI / 180);
+ ctx.strokeRect(200, 20, 180, 150);
+ ctx.rotate(30 * Math.PI / 180);
+ ctx.strokeRect(200, 20, 180, 150);
+
+ ctx.draw();
+
+ ctx.strokeRect(20, 20, 250, 80);
+ ctx.translate(30, 30);
+ ctx.strokeRect(20, 20, 250, 80);
+ ctx.translate(30, 30);
+ ctx.strokeRect(20, 20, 250, 80);
+
+ ctx.draw();
+
+ ctx.setFontSize(14);
+ ctx.fillText('14', 20, 20);
+ ctx.setFontSize(22);
+ ctx.fillText('22', 40, 40);
+ ctx.setFontSize(30);
+ ctx.fillText('30', 60, 60);
+ ctx.setFontSize(38);
+ ctx.fillText('38', 90, 90);
+
+ ctx.draw();
+
+ ctx.setFontSize(42);
+ ctx.fillText('Hello', 30, 30);
+ ctx.fillText('alipay', 200, 200);
+
+ ctx.draw();
+
+ ctx.drawImage('https://img.alicdn.com/tfs/TB1GvVMj2BNTKJjy0FdXXcPpVXa-520-280.jpg', 2, 2, 250, 80);
+ ctx.draw();
+
+ ctx.setFillStyle('yellow');
+ ctx.fillRect(10, 10, 150, 100);
+ ctx.setGlobalAlpha(0.2);
+ ctx.setFillStyle('blue');
+ ctx.fillRect(50, 50, 150, 100);
+ ctx.setFillStyle('red');
+ ctx.fillRect(100, 100, 150, 100);
+
+ ctx.draw();
+
+ ctx.setLineDash([5, 15, 25]);
+ ctx.beginPath();
+ ctx.moveTo(0, 100);
+ ctx.lineTo(400, 100);
+ ctx.stroke();
+
+ ctx.draw();
+
+ ctx.rotate(45 * Math.PI / 180);
+ ctx.setFillStyle('red');
+ ctx.fillRect(70, 0, 100, 30);
+
+ ctx.transform(1, 1, 0, 1, 0, 0);
+ ctx.setFillStyle('#000');
+ ctx.fillRect(0, 0, 100, 100);
+
+ ctx.draw();
+
+ ctx.rotate(45 * Math.PI / 180);
+ ctx.setFillStyle('red');
+ ctx.fillRect(70, 0, 100, 30);
+
+ ctx.setTransform(1, 1, 0, 1, 0, 0);
+ ctx.setFillStyle('#000');
+ ctx.fillRect(0, 0, 100, 100);
+
+ ctx.draw();
+
+ ctx.save();
+ ctx.setFillStyle('red');
+ ctx.fillRect(20, 20, 250, 80);
+
+ ctx.restore();
+ ctx.fillRect(60, 60, 155, 130);
+
+ ctx.draw();
+
+ ctx.setFillStyle('blue');
+ ctx.fillRect(20, 20, 180, 80);
+ ctx.draw();
+ ctx.fillRect(60, 60, 250, 120);
+ ctx.draw(true);
+
+ ctx.font = 'italic bold 50px cursive';
+ const { width } = ctx.measureText('hello world');
+ console.log(width);
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/ui-map
+ Page({
+ onReady() {
+ // 使用 my.createMapContext èŽ·å– map 上下文
+ this.mapCtx = my.createMapContext('userMap');
+ },
+ getCenterLocation(this: my.Page) {
+ (this.mapCtx as my.MapContext).getCenterLocation({
+ success(res) {
+ console.log(res.longitude);
+ console.log(res.latitude);
+ }
+ });
+ },
+ moveToLocation() {
+ this.mapCtx.moveToLocation();
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/ui-hidekeyboard
+ my.hideKeyboard();
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/scroll
+ my.pageScrollTo({
+ scrollTop: 100
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/selector-query
+ Page({
+ onReady() {
+ my.createSelectorQuery()
+ .select('#non-exists').boundingClientRect()
+ .select('#one').boundingClientRect()
+ .selectAll('.all').boundingClientRect()
+ .select('#scroll').scrollOffset()
+ .selectViewport().boundingClientRect()
+ .selectViewport().scrollOffset().exec((ret) => {
+ console.log(JSON.stringify(ret, null, 2));
+ });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/ewdxl3
+ my.multiLevelSelect({
+ title: 'nihao', // 级è”é€‰æ‹©æ ‡é¢˜
+ list: [
+ {
+ name: "æå·žå¸‚", // æ¡ç›®åç§°
+ subList: [
+ {
+ name: "西湖区",
+ subList: [
+ {
+ name: "å¤ç¿ è¡—é“"
+ },
+ {
+ name: "文新街é“"
+ }
+ ]
+ },
+ {
+ name: "上城区",
+ subList: [
+ {
+ name: "延安街é“"
+ },
+ {
+ name: "龙翔桥街é“"
+ }
+ ]
+ }
+ ]// 级è”åæ•°æ®åˆ—表
+ }
+ ]// çº§è”æ•°æ®åˆ—表
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/openapi-authorize
+ my.getAuthCode({
+ scopes: 'auth_user',
+ success: (res) => {
+ my.alert({
+ content: res.authCode,
+ });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/userinfo
+ my.getAuthCode({
+ scopes: 'auth_user',
+ success: (res) => {
+ my.getAuthUserInfo({
+ success: (userInfo) => {
+ my.alert({
+ content: userInfo.nickName
+ });
+ my.alert({
+ content: userInfo.avatar
+ });
+ }
+ });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/openapi-pay
+ my.tradePay({
+ tradeNO: '201711152100110410533667792', // 调用统一收å•交易创建接å£ï¼ˆalipay.trade.createï¼‰ï¼ŒèŽ·å¾—è¿”å›žå—æ®µæ”¯ä»˜å®äº¤æ˜“å·trade_no
+ success: (res) => {
+ my.alert({
+ content: JSON.stringify(res),
+ });
+ },
+ fail: (res) => {
+ my.alert({
+ content: JSON.stringify(res),
+ });
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/pay-sign
+ my.paySignCenter({
+ // tslint:disable-next-line:max-line-length
+ signStr: 'biz_content%3D%257B%2522access_params%2522%253A%257B%2522channel%2522%253A%2522ALIPAYAPP%2522%257D%252C%2522external_agreement_no%2522%253A%2522xidong___2317%2522%252C%2522external_logon_id%2522%253A%252213852852877%2522%252C%2522personal_product_code%2522%253A%2522GENERAL_WITHHOLDING_P%2522%252C%2522product_code%2522%253A%2522GENERAL_WITHHOLDING%2522%252C%2522sign_scene%2522%253A%2522INDUSTRY%257CCARRENTAL%2522%252C%2522third_party_type%2522%253A%2522PARTNER%2522%257D%26sign%3Df3pjBDTRftOwXWnCqAMAnkBfGTFlcMmZI8hEgmV6uREZRXVDuLsSjD8WO%252FeZ1fjDG8GqVO9t1AN7q6yCUHKX%252Bw%252FE7efXwpVDWldr4iVuXDtNd3UJDJUiRJhIm6b73czWacVzm1XIery%252F2DyKI2y08tBf5NNWuQCC3d%252FITxziTl8%253D%26timestamp%3D2017-06-27%2B14%253A44%253A00%26sign_type%3DRSA%26notify_url%3Dhttp%253A%252F%252Fapi.test.alipay.net%252Fatinterface%252Freceive_notify.htm%26charset%3DUTF-8%26app_id%3D2017060101317939%26method%3Dalipay.user.agreement.page.sign%26return_url%3Dhttp%253A%252F%252Fapi.test.alipay.net%252Fatinterface%252Freceive_notify.htm%26version%3D1.0',
+ success: (res) => {
+ my.alert({
+ title: 'success', // alertæ¡†çš„æ ‡é¢˜
+ content: JSON.stringify(res)
+ });
+ },
+ fail: (res) => {
+ my.alert({
+ title: 'fail', // alertæ¡†çš„æ ‡é¢˜
+ content: JSON.stringify(res)
+ });
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/card-voucher-ticket
+ my.openCardList();
+ my.openMerchantCardList({ partnerId: '2088xxxxx' });
+ // ä¼ å…¥passIdæ¥æ‰“å¼€
+ my.openCardDetail({ passId: "11xxxxx" });
+ my.openVoucherList();
+ my.openMerchantVoucherList({ partnerId: '2088xxxx' });
+ // ä¼ å…¥passIdæ¥æ‰“å¼€
+ my.openVoucherDetail({ passId: "20170921" });
+
+ // ä¼ å…¥partnerId å’Œ serialNumberæ¥æ‰“å¼€
+ my.openVoucherDetail({
+ partnerId: "2018xxxx",
+ serialNumber: "20170921"
+ });
+ // ä¼ å…¥passIdæ¥æ‰“å¼€
+ my.openKBVoucherDetail({ passId: "20170921" });
+
+ // ä¼ å…¥partnerId å’Œ serialNumberæ¥æ‰“å¼€
+ my.openKBVoucherDetail({
+ partnerId: "2088xxxx",
+ serialNumber: "20170921"
+ });
+ my.openTicketList();
+ my.openMerchantTicketList({ partnerId: '2088xxxx' });
+ // ä¼ å…¥passIdæ¥æ‰“å¼€
+ my.openTicketDetail({ passId: "20170921" });
+
+ // ä¼ å…¥partnerId å’Œ serialNumberæ¥æ‰“å¼€
+ my.openTicketDetail({
+ partnerId: "2088xxxx",
+ serialNumber: "20170921"
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/add-card-auth
+ my.addCardAuth({
+ url: '从 openapi 接å£èŽ·å–到的 url',
+ success: (res) => {
+ my.alert({ content: 'æŽˆæƒæˆåŠŸ' });
+ },
+ fail: (res) => {
+ my.alert({ content: '授æƒå¤±è´¥' });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/zm-service
+ my.startZMVerify({
+ bizNo: 'your-biz-no',
+ success: (res) => {
+ my.alert({ title: 'success:' + JSON.stringify(res) });
+ },
+ fail: (res) => {
+ my.alert({ title: 'fail: ' + JSON.stringify(res) });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/zmcreditborrow
+ my.zmCreditBorrow({
+ credit_biz: "",
+ out_order_no: "",
+ borrow_shop_name: "",
+ goods_name: "",
+ product_code: "w1010100000000002858",
+ rent_unit: "HOUR_YUAN",
+ rent_amount: "0.10",
+ deposit_amount: "0.50",
+ deposit_state: "Y",
+ invoke_return_url: "",
+ invoke_type: "TINYAPP",
+ borrow_time: "2017-04-27 10:01:01",
+ expiry_time: "2017-05-27 10:01:01",
+ rent_info: "2hour-free",
+ success: (res) => {
+ try {
+ const { resultStatus, result } = res;
+ switch (resultStatus) {
+ case '9000':
+ const callbackData = result.callbackData;
+ const decodedCallbackData = decodeURIComponent(callbackData);
+ const json = JSON.parse(decodedCallbackData.match(/{.*}/)!.toString());
+ const jsonStr = JSON.stringify(json, null, 4);
+ if (json.success === true || json.success === 'true') {
+ // åˆ›å»ºè®¢å•æˆåŠŸ, æ¤æ—¶å¯ä»¥è·³è½¬åˆ°è®¢å•详情页é¢
+ my.alert({ content: '䏋啿ˆåŠŸ: ' + jsonStr });
+ } else {
+ // 创建订å•失败, 请æç¤ºç”¨æˆ·åˆ›å»ºå¤±è´¥
+ my.alert({ content: '下å•失败: ' + jsonStr });
+ }
+ // (this as any as my.Page).setData({
+ // callbackData,
+ // decodedCallbackData,
+ // parsedJSON: jsonStr,
+ // });
+ break;
+ case '6001':
+ // 用户点击返回, å–æ¶ˆæ¤æ¬¡æœåŠ¡, æ¤æ—¶å¯ä»¥ç»™æç¤º
+ my.alert({ content: 'å–æ¶ˆ' });
+ break;
+ default:
+ break;
+ }
+ } catch (error) {
+ // 异常, 请在这里æç¤ºç”¨æˆ·ç¨åŽé‡è¯•
+ my.alert({
+ content: '异常' + JSON.stringify(error, null, 4)
+ });
+ }
+ },
+ fail: (error) => {
+ // 调用接å£å¤±è´¥, 请在这里æç¤ºç”¨æˆ·ç¨åŽé‡è¯•
+ my.alert({
+ content: '调用失败' + JSON.stringify(error, null, 4)
+ });
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/templatemessage
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/text-identification
+ my.textRiskIdentification({
+ content: 'åŠ æˆ‘æ”¯ä»˜å®',
+ type: ['keyword', '0', '1', '2', '3'],
+ success: (res) => {
+ my.alert({
+ title: 'ok', // alert æ¡†çš„æ ‡é¢˜
+ content: JSON.stringify(res),
+ });
+ },
+ fail: (res) => {
+ my.alert({
+ title: 'fail', // alert æ¡†çš„æ ‡é¢˜
+ content: JSON.stringify(res),
+ });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/open-miniprogram
+ my.navigateToMiniProgram({
+ appId: 'xxxx',
+ extraData: {
+ data1: "test"
+ },
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ },
+ fail: (res) => {
+ console.log(JSON.stringify(res));
+ }
+ });
+ my.navigateBackMiniProgram({
+ extraData: {
+ data1: "test"
+ },
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ },
+ fail: (res) => {
+ console.log(JSON.stringify(res));
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/webview-context
+ Page({
+ onLoad() {
+ this.webViewContext = my.createWebViewContext('web-view-1');
+ },
+ // 接收æ¥è‡ªH5的消æ¯
+ onMessage(e: any) {
+ console.log(e); // {'sendToMiniProgram': '0'}
+ // å‘H5å‘逿¶ˆæ¯
+ this.webViewContext.postMessage({ sendToWebView: '1' });
+ }
+ });
+ // H5çš„js代ç ä¸éœ€è¦å…ˆå®šä¹‰my.onMessage 用于接收æ¥è‡ªå°ç¨‹åºçš„æ¶ˆæ¯ã€‚
+ my.onMessage = (e) => {
+ console.log(e); // {'sendToWebView': '1'}
+ };
+ // H5想å°ç¨‹åºå‘逿¶ˆæ¯
+ my.postMessage({ sendToMiniProgram: '0' });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/media-image
+ const img = null as any as HTMLImageElement;
+ my.chooseImage({
+ count: 2,
+ success: (res) => {
+ img.src = res.apFilePaths[0];
+ },
+ });
+ my.previewImage({
+ current: 2,
+ urls: [
+ 'https://img.alicdn.com/tps/TB1sXGYIFXXXXc5XpXXXXXXXXXX.jpg',
+ 'https://img.alicdn.com/tps/TB1pfG4IFXXXXc6XXXXXXXXXXXX.jpg',
+ 'https://img.alicdn.com/tps/TB1h9xxIFXXXXbKXXXXXXXXXXXX.jpg'
+ ],
+ });
+ my.saveImage({
+ url: 'https://img.alicdn.com/tps/TB1sXGYIFXXXXc5XpXXXXXXXXXX.jpg'
+ });
+ my.compressImage({
+ apFilePaths: ['https://resource/apmlcc0ed184daffc5a0d8da86b2f518cf7b.image'],
+ // level: 1,
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ }
+ });
+ // 网络图片路径
+ my.getImageInfo({
+ src: 'https://img.alicdn.com/tps/TB1sXGYIFXXXXc5XpXXXXXXXXXX.jpg',
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ }
+ });
+
+ // apFilePath
+ my.chooseImage({
+ success: (res) => {
+ my.getImageInfo({
+ src: res.apFilePaths[0],
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ }
+ });
+ },
+ });
+
+ // 相对路径
+ my.getImageInfo({
+ src: 'image/api.png',
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/storage
+ my.setStorage({
+ key: 'currentCity',
+ data: {
+ cityName: 'æå·ž',
+ adCode: '330100',
+ spell: ' hangzhou',
+ },
+ success() {
+ my.alert({ content: '写入æˆåŠŸ' });
+ }
+ });
+ my.setStorageSync({
+ key: 'currentCity',
+ data: {
+ cityName: 'æå·ž',
+ adCode: '330100',
+ spell: ' hangzhou',
+ }
+ });
+ my.getStorage({
+ key: 'currentCity',
+ success(res) {
+ my.alert({ content: 'èŽ·å–æˆåŠŸï¼š' + res.data.cityName });
+ },
+ fail(res) {
+ my.alert({ content: res.errorMessage });
+ }
+ });
+ const res = my.getStorageSync({ key: 'currentCity' });
+ my.alert({
+ content: JSON.stringify(res.data),
+ });
+ my.removeStorage({
+ key: 'currentCity',
+ success() {
+ my.alert({ content: 'åˆ é™¤æˆåŠŸ' });
+ }
+ });
+ my.removeStorageSync({
+ key: 'currentCity',
+ });
+ my.clearStorage();
+ my.clearStorageSync();
+ my.getStorageInfo({
+ success(res) {
+ console.log(res.keys);
+ console.log(res.currentSize);
+ console.log(res.limitSize);
+ }
+ });
+ const res1 = my.getStorageInfoSync();
+ console.log(res1.keys);
+ console.log(res1.currentSize);
+ console.log(res1.limitSize);
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/file
+ my.chooseImage({
+ success: (res) => {
+ my.saveFile({
+ apFilePath: res.apFilePaths[0],
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ },
+ });
+ },
+ });
+ my.getFileInfo({
+ apFilePath: 'https://resource/apml953bb093ebd2834530196f50a4413a87.video',
+ digestAlgorithm: 'sha1',
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ }
+ });
+ my.getSavedFileInfo({
+ apFilePath: 'https://resource/apml953bb093ebd2834530196f50a4413a87.video',
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ }
+ });
+ my.getSavedFileList({
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ }
+ });
+ my.getSavedFileList({
+ success: (res) => {
+ my.removeSavedFile({
+ apFilePath: res.fileList[0].apFilePath,
+ success: (res) => {
+ console.log('remove success');
+ }
+ });
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/location
+ my.getLocation({
+ success(res) {
+ my.hideLoading();
+ console.log(res);
+ /* that对象为Pageå¯ä»¥è®¾ç½®æ•°æ®åˆ·æ–°ç•Œé¢
+ that.setData({
+ hasLocation: true,
+ location: formatLocation(res.longitude, res.latitude)
+ })
+ */
+ },
+ fail() {
+ my.hideLoading();
+ my.alert({ title: '定ä½å¤±è´¥' });
+ },
+ });
+ my.openLocation({
+ longitude: '121.549697',
+ latitude: '31.227250',
+ name: '支付å®',
+ address: 'æ¨é«˜è·¯åœ°é“ç«™',
+ });
+ my.chooseLocation({
+ success: (res) => {
+ console.log(res);
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/network
+ my.httpRequest({
+ url: 'http://httpbin.org/post',
+ method: 'POST',
+ data: {
+ from: '支付å®',
+ production: 'AlipayJSAPI',
+ },
+ dataType: 'json',
+ success(res) {
+ my.alert({ content: 'success' });
+ },
+ fail(res) {
+ my.alert({ content: 'fail' });
+ },
+ complete(res) {
+ my.hideLoading();
+ my.alert({ content: 'complete' });
+ }
+ });
+ my.uploadFile({
+ url: '请使用自己æœåŠ¡å™¨åœ°å€',
+ fileType: 'image',
+ fileName: 'file',
+ filePath: '...',
+ success: (res) => {
+ my.alert({
+ content: 'ä¸Šä¼ æˆåŠŸ'
+ });
+ },
+ });
+ my.downloadFile({
+ url: 'http://img.alicdn.com/tfs/TB1x669SXXXXXbdaFXXXXXXXXXX-520-280.jpg',
+ success({ apFilePath }) {
+ my.previewImage({
+ urls: [apFilePath],
+ });
+ },
+ fail(res) {
+ my.alert({
+ content: res.errorMessage || res.error,
+ });
+ },
+ });
+ my.connectSocket({
+ url: 'test.php',
+ data: {},
+ header: {
+ 'content-type': 'application/json'
+ },
+ method: 'GET'
+ });
+ my.connectSocket({
+ url: 'test.php',
+ });
+
+ my.onSocketOpen(() => {
+ console.log('WebSocket 连接已打开ï¼');
+ });
+ Page({
+ onLoad() {
+ this.callback = this.callback.bind(this);
+ my.onSocketOpen(this.callback);
+ },
+ onUnload() {
+ my.offSocketOpen(this.callback);
+ },
+ callback() {
+ },
+ });
+ my.connectSocket({
+ url: 'å¼€å‘者的æœåŠ¡å™¨åœ°å€'
+ });
+
+ my.onSocketOpen(() => {
+ console.log('WebSocket 连接已打开ï¼');
+ });
+
+ my.onSocketError(() => {
+ console.log('WebSocket 连接打开失败,请检查ï¼');
+ });
+ Page({
+ onLoad() {
+ this.callback = this.callback.bind(this);
+ my.onSocketError(this.callback);
+ },
+ onUnload() {
+ my.offSocketError(this.callback);
+ },
+ callback() {
+ my.sendSocketMessage({
+ data: this.data.toSendMessage, // 需è¦å‘é€çš„内容
+ success: (res) => {
+ my.alert({ content: 'æ•°æ®å‘é€ï¼' + this.data.toSendMessage });
+ },
+ });
+ },
+ });
+ my.connectSocket({
+ url: 'æœåŠ¡å™¨åœ°å€'
+ });
+
+ my.onSocketMessage((res) => {
+ console.log('收到æœåŠ¡å™¨å†…å®¹ï¼š' + res.data);
+ });
+ my.onSocketOpen(() => {
+ my.closeSocket();
+ });
+
+ my.onSocketClose(() => {
+ console.log('WebSocket 已关é—ï¼');
+ });
+ Page({
+ // onLoad() {
+ onLaunch() {
+ // 注æ„: 回调方法的注册在整个å°ç¨‹åºå¯åŠ¨é˜¶æ®µåªè¦åšä¸€æ¬¡ï¼Œè°ƒå¤šæ¬¡ä¼šæœ‰å¤šæ¬¡å›žè°ƒ
+ my.onSocketClose(() => {
+ my.alert({ content: '连接已关é—ï¼' });
+ this.setData({
+ sendMessageAbility: false,
+ closeLinkAbility: false,
+ });
+ });
+ // 注æ„: 回调方法的注册在整个å°ç¨‹åºå¯åŠ¨é˜¶æ®µåªè¦åšä¸€æ¬¡ï¼Œè°ƒå¤šæ¬¡ä¼šæœ‰å¤šæ¬¡å›žè°ƒ
+ my.onSocketOpen(() => {
+ my.alert({ content: '连接已打开ï¼' });
+ this.setData({
+ sendMessageAbility: true,
+ closeLinkAbility: true,
+ });
+ });
+
+ my.onSocketError((res) => {
+ my.alert({ content: 'WebSocket 连接打开失败,请检查ï¼' + res });
+ });
+
+ // 注æ„: 回调方法的注册在整个å°ç¨‹åºå¯åŠ¨é˜¶æ®µåªè¦åšä¸€æ¬¡ï¼Œè°ƒå¤šæ¬¡ä¼šæœ‰å¤šæ¬¡å›žè°ƒ
+ my.onSocketMessage((res) => {
+ my.alert({ content: '收到数æ®ï¼' + JSON.stringify(res) });
+ });
+ },
+ connect_start() {
+ my.connectSocket({
+ url: 'æœåŠ¡å™¨åœ°å€', // å¼€å‘者æœåŠ¡å™¨æŽ¥å£åœ°å€ï¼Œå¿…须是 wss å议,且域å必须是åŽå°é…ç½®çš„åˆæ³•域å
+ success: (res) => {
+ my.showToast({
+ content: 'success', // æ–‡å—内容
+ });
+ },
+ fail: () => {
+ my.showToast({
+ content: 'fail', // æ–‡å—内容
+ });
+ }
+ });
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/can-i-use
+ my.canIUse('getFileInfo');
+ my.canIUse('closeSocket.object.code');
+ my.canIUse('getLocation.object.type');
+ my.canIUse('getSystemInfo.return.brand');
+ my.canIUse('lifestyle');
+ my.canIUse('button.open-type.share');
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/sdk-version
+ console.log(my.SDKVersion);
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/system-info
+ Page({
+ data: {
+ systemInfo: {}
+ },
+ getSystemInfoPage(this: my.Page) {
+ my.getSystemInfo({
+ success: (res) => {
+ this.setData({
+ systemInfo: res
+ });
+ }
+ });
+ },
+ });
+ Page({
+ data: {
+ systemInfo: {}
+ },
+ getSystemInfoSyncPage(this: my.Page) {
+ this.setData({
+ systemInfo: my.getSystemInfoSync()
+ });
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/network-status
+ Page({
+ data: {
+ hasNetworkType: false
+ },
+ getNetworkType(this: my.Page) {
+ my.getNetworkType({
+ success: (res) => {
+ this.setData({
+ hasNetworkType: true,
+ networkType: res.networkType
+ });
+ }
+ });
+ },
+ clear(this: my.Page) {
+ this.setData({
+ hasNetworkType: false,
+ networkType: ''
+ });
+ },
+ });
+ my.onNetworkStatusChange((res) => {
+ console.log(JSON.stringify(res));
+ });
+ my.offNetworkStatusChange();
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/clipboard
+ Page({
+ data: {
+ text: '3.1415926',
+ copy: '',
+ },
+
+ handlePaste(this: my.Page) {
+ my.getClipboard({
+ success: ({ text }) => {
+ this.setData({ copy: text });
+ },
+ });
+ },
+ });
+ Page({
+ data: {
+ text: '3.1415926',
+ copy: '',
+ },
+
+ handleCopy() {
+ my.setClipboard({
+ text: this.data.text,
+ });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/shake
+ Page({
+ watchShake() {
+ my.watchShake({
+ success() {
+ console.log('动起æ¥äº†');
+ my.alert({ title: '动起æ¥äº† o.o' });
+ }
+ });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/vibrate
+ Page({
+ vibrate() {
+ my.vibrate({
+ success: () => {
+ my.alert({ title: '震动起æ¥äº†' });
+ }
+ });
+ },
+ });
+ Page({
+ vibrateLong() {
+ my.vibrateLong({
+ success: () => {
+ my.alert({ title: '震动起æ¥äº†' });
+ }
+ });
+ },
+ });
+ Page({
+ vibrateShort() {
+ my.vibrateShort({
+ success: () => {
+ my.alert({ title: '震动起æ¥äº†' });
+ }
+ });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/macke-call
+ Page({
+ makePhoneCall() {
+ my.makePhoneCall({ number: '95888' });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/get-server-time
+ // getServerTime(){
+ // my.getServerTime({
+ // success: (res) => {
+ // my.alert({
+ // title: res.time,
+ // });
+ // },
+ // });
+ // };
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/user-capture-screen
+ my.onUserCaptureScreen(() => {
+ my.alert({
+ content: '收到用户截å±äº‹ä»¶'
+ });
+ });
+ my.offUserCaptureScreen();
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/screen-brightness
+ my.setKeepScreenOn({
+ keepScreenOn: true,
+ success: (res) => {
+ },
+ fail: (res) => {
+ },
+ });
+ my.getScreenBrightness({
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ },
+ fail: (res) => {
+ },
+ });
+ my.setScreenBrightness({
+ brightness: 0.5,
+ success: (res) => {
+ console.log(JSON.stringify(res));
+ },
+ fail: (res) => {
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/show-auth-guide
+ my.showAuthGuide({
+ authType: 'LBSSERVICE'
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/scan
+ Page({
+ scan() {
+ my.scan({
+ type: 'qr',
+ success: (res) => {
+ my.alert({ title: res.code });
+ },
+ });
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/bluetooth-intro
+ // åˆå§‹åŒ–
+ my.openBluetoothAdapter({
+ success: (res) => {
+ console.log(res);
+ }
+ });
+ // 注册å‘现事件
+ my.onBluetoothDeviceFound({
+ success: (res) => {
+ const device = res.devices[0];
+ // 连接å‘现的设备
+ my.connectBLEDevice({
+ deviceId,
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ // åœæ¢æœç´¢
+ my.stopBluetoothDevicesDiscovery({
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ }
+ });
+ const deviceId = 'test';
+ const serviceId = 'test';
+ const characteristicId = 'test';
+ // 注册连接事件
+ my.onBLEConnectionStateChanged({
+ success: (res) => {
+ console.log(res);
+ if (res.connected) {
+ // 开始读写notifyç‰æ“作
+ my.notifyBLECharacteristicValueChange({
+ deviceId,
+ serviceId,
+ characteristicId,
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ }
+ }
+ });
+ // 注册接收read或notify的数æ®
+ my.onBLECharacteristicValueChange({
+ success: (res) => {
+ console.log(res);
+ }
+ });
+ // 开始æœç´¢
+ my.startBluetoothDevicesDiscovery({
+ services: ['fff0'],
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+
+ // æ–开连接
+ my.disconnectBLEDevice({
+ deviceId,
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+
+ // 注销事件
+ my.offBluetoothDeviceFound();
+ my.offBLEConnectionStateChanged();
+ my.offBLECharacteristicValueChange();
+
+ // 退出è“牙模å—
+ my.closeBluetoothAdapter({
+ success: (res) => {
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/bluetooth-api
+ my.openBluetoothAdapter({
+ success: (res) => {
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.closeBluetoothAdapter({
+ success: (res) => {
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.getBluetoothAdapterState({
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.startBluetoothDevicesDiscovery({
+ services: ['fff0'],
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.stopBluetoothDevicesDiscovery({
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.getBluetoothDevices({
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.getConnectedBluetoothDevices({
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ const deviceId = 'test';
+ const serviceId = 'test';
+ const characteristicId = 'test';
+ my.connectBLEDevice({
+ // 这里的 deviceId 需è¦åœ¨ä¸Šé¢çš„ getBluetoothDevices 或 onBluetoothDeviceFound 接å£ä¸èŽ·å–
+ deviceId,
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.disconnectBLEDevice({
+ deviceId,
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.writeBLECharacteristicValue({
+ deviceId,
+ serviceId,
+ characteristicId,
+ value: 'fffe',
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.readBLECharacteristicValue({
+ deviceId,
+ serviceId,
+ characteristicId,
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.notifyBLECharacteristicValueChange({
+ deviceId,
+ serviceId,
+ characteristicId,
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.getBLEDeviceServices({
+ deviceId,
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ my.getBLEDeviceCharacteristics({
+ deviceId,
+ serviceId,
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+ Page({
+ onLoad() {
+ this.callback = this.callback.bind(this);
+ my.onBluetoothDeviceFound(this.callback);
+ },
+ onUnload() {
+ my.offBluetoothDeviceFound(this.callback);
+ },
+ callback(res: any) {
+ console.log(res);
+ },
+ });
+ my.offBluetoothDeviceFound();
+ Page({
+ onLoad() {
+ this.callback = this.callback.bind(this);
+ my.onBLECharacteristicValueChange(this.callback);
+ },
+ onUnload() {
+ my.offBLECharacteristicValueChange(this.callback);
+ },
+ callback(res: any) {
+ console.log(res);
+ },
+ });
+ my.offBLECharacteristicValueChange();
+ my.offBLEConnectionStateChanged();
+ my.offBluetoothAdapterStateChange();
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/yqleyc
+ my.startBeaconDiscovery({
+ uuids: ['uuid1', 'uuid2'],
+ success: (res) => {
+ console.log(res);
+ },
+ fail: () => {
+ },
+ complete: () => {
+ }
+ });
+
+ my.stopBeaconDiscovery({
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+
+ my.getBeacons({
+ success: (res) => {
+ console.log(res);
+ },
+ fail: (res) => {
+ },
+ complete: (res) => {
+ }
+ });
+
+ my.onBeaconUpdate({
+ success: (res) => {
+ },
+ });
+
+ my.onBeaconServiceChange({
+ success: (res) => {
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/data-safe
+ Page({
+ data: {
+ inputValue: '',
+ outputValue: '',
+ },
+ onInput(this: my.Page, e: any) {
+ this.setData({ inputValue: e.detail.value });
+ },
+ onEncrypt(this: my.Page) {
+ my.rsa({
+ action: 'encrypt',
+ // 设置公钥
+ // tslint:disable-next-line:max-line-length
+ key: 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKmi0dUSVQ04hL6GZGPMFK8+d6\nGzulagP27qSUBYxIJfE04KT+OHVeFFb6K+8nWDea5mkmZrIgp022zZVDgdWPNM62\n3ouBwHlsfm2ekey8PpQxfXaj8lhM9t8rJlC4FEc0s8Qp7Q5/uYrowQbT9m6t7BFK\n3egOO2xOKzLpYSqfbQIDAQAB',
+ text: this.data.inputValue,
+ success: (result) => {
+ this.setData({ outputValue: result.text });
+ },
+ fail(e) {
+ my.alert({
+ content: e.errorMessage || e.error,
+ });
+ },
+ });
+ },
+ onDecrypt(this: my.Page) {
+ my.rsa({
+ action: 'decrypt',
+ text: this.data.inputValue,
+ // 设置ç§é’¥
+ // tslint:disable-next-line:prefer-template
+ key: 'MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMqaLR1RJVDTiEvo\n' +
+ 'ZkY8wUrz53obO6VqA/bupJQFjEgl8TTgpP44dV4UVvor7ydYN5rmaSZmsiCnTbbN\n' +
+ 'lUOB1Y80zrbei4HAeWx+bZ6R7Lw+lDF9dqPyWEz23ysmULgURzSzxCntDn+5iujB\n' +
+ 'BtP2bq3sEUrd6A47bE4rMulhKp9tAgMBAAECgYBjsfRLPdfn6v9hou1Y2KKg+F5K\n' +
+ 'ZsY2AnIK+6l+sTAzfIAx7e0ir7OJZObb2eyn5rAOCB1r6RL0IH+MWaN+gZANNG9g\n' +
+ 'pXvRgcZzFY0oqdMZDuSJjpMTj7OEUlPyoGncBfvjAg0zdt9QGAG1at9Jr3i0Xr4X\n' +
+ '6WrFhtfVlmQUY1VsoQJBAPK2Qj/ClkZNtrSDfoD0j083LcNICqFIIGkNQ+XeuTwl\n' +
+ '+Gq4USTyaTOEe68MHluiciQ+QKvRAUd4E1zeZRZ02ikCQQDVscINBPTtTJt1JfAo\n' +
+ 'wRfTzA0Lvgig136xLLeQXREcgq1lzgkf+tGyUGYoy9BXsV0mOuYAT9ldja4jhJeq\n' +
+ 'cEulAkEAuSJ5KjV9dyb0RIFAz5C8d8o5KAodwaRIxJkPv5nCZbT45j6t9qbJxDg8\n' +
+ 'N+vghDlHI4owvl5wwVlAO8iQBy8e8QJBAJe9CVXFV0XJR/n/XnER66FxGzJjVi0f\n' +
+ '185nOlFARI5CHG5VxxT2PUCo5mHBl8ctIj+rQvalvGs515VQ6YEVDCECQE3S0AU2\n' +
+ 'BKyFVNtTpPiTyRUWqig4EbSXwjXdr8iBBJDLsMpdWsq7DCwv/ToBoLg+cQ4Crc5/\n5DChU8P30EjOiEo=',
+ success: (result) => {
+ this.setData({ outputValue: result.text });
+ },
+ fail(e) {
+ my.alert({
+ content: e.errorMessage || e.error,
+ });
+ },
+ });
+ },
+ });
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/share_app
+ Page({
+ onShareAppMessage() {
+ return {
+ title: 'å°ç¨‹åºç¤ºä¾‹',
+ desc: 'å°ç¨‹åºå®˜æ–¹ç¤ºä¾‹Demo,展示已支æŒçš„æŽ¥å£èƒ½åŠ›åŠç»„件。',
+ path: 'page/component/component-pages/view/view?param=123'
+ };
+ },
+ });
+
+ my.hideShareMenu();
+})();
+
+(() => {
+ // https://docs.alipay.com/mini/api/report
+ my.reportAnalytics('purchase', {
+ status: 200,
+ reason: 'ok'
+ });
+})();
diff --git a/types/ali-app/index.d.ts b/types/ali-app/index.d.ts
new file mode 100644
index 0000000000..82f7b2bf27
--- /dev/null
+++ b/types/ali-app/index.d.ts
@@ -0,0 +1,3265 @@
+// Type definitions for ali-app 1.0
+// Project: https://docs.alipay.com/mini/api/overview (Does not have to be to GitHub, but prefer linking to a source code repository rather than to a project website.)
+// Definitions by: taoqf
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.3
+
+// 公共部分
+declare namespace my {
+ // #region åŸºæœ¬å‚æ•°
+ interface DataResponse {
+ /** 回调函数返回的内容 */
+ data: any;
+ /** å¼€å‘者æœåŠ¡å™¨è¿”å›žçš„ HTTP 状æ€ç */
+ status: number;
+ /** å¼€å‘者æœåŠ¡å™¨è¿”å›žçš„ HTTP Response Header */
+ headers: object;
+ }
+ interface ErrMsgResponse {
+ /** æˆåŠŸï¼šokï¼Œé”™è¯¯ï¼šè¯¦ç»†ä¿¡æ¯ */
+ errMsg: "ok" | string;
+ }
+ interface TempFileResponse {
+ /** 文件的临时路径 */
+ apFilePath: string;
+ }
+ interface BaseOptions {
+ /** 接å£è°ƒç”¨æˆåŠŸçš„å›žè°ƒå‡½æ•° */
+ success?(res: R): void;
+ /** 接å£è°ƒç”¨å¤±è´¥çš„回调函数 */
+ fail?(res: E): void;
+ /** 接å£è°ƒç”¨ç»“æŸçš„回调函数(调用æˆåŠŸã€å¤±è´¥éƒ½ä¼šæ‰§è¡Œï¼‰ */
+ complete?(res: any): void;
+ }
+ interface ErrCodeResponse {
+ errCode: number;
+ }
+ // #endregion
+}
+
+// 界é¢
+declare namespace my {
+ //#region 导航æ https://docs.alipay.com/mini/api/ui-navigate
+ interface NavigateToOptions extends BaseOptions {
+ /** 需è¦è·³è½¬çš„应用内页é¢çš„路径 */
+ url: string;
+ }
+ /**
+ * ä¿ç•™å½“å‰é¡µé¢ï¼Œè·³è½¬åˆ°åº”用内的æŸä¸ªé¡µé¢ï¼Œä½¿ç”¨wx.navigateBackå¯ä»¥è¿”回到原页é¢ã€‚
+ *
+ * 注æ„:为了ä¸è®©ç”¨æˆ·åœ¨ä½¿ç”¨å°ç¨‹åºæ—¶é€ æˆå›°æ‰°ï¼Œ
+ * 我们规定页é¢è·¯å¾„åªèƒ½æ˜¯äº”层,请尽é‡é¿å…多层级的交互方å¼ã€‚
+ */
+ function navigateTo(options: NavigateToOptions): void;
+
+ interface RedirectToOptions extends BaseOptions {
+ /** 需è¦è·³è½¬çš„应用内页é¢çš„路径 */
+ url: string;
+ }
+ /**
+ * å…³é—当å‰é¡µé¢ï¼Œè·³è½¬åˆ°åº”用内的æŸä¸ªé¡µé¢ã€‚
+ */
+ function redirectTo(options: RedirectToOptions): void;
+
+ interface NavigateBackOptions extends BaseOptions {
+ /** è¿”å›žçš„é¡µé¢æ•°ï¼Œå¦‚æžœ delta å¤§äºŽçŽ°æœ‰æ‰“å¼€çš„é¡µé¢æ•°ï¼Œåˆ™è¿”回到首页 */
+ delta: number;
+ }
+ /**
+ * å…³é—当å‰é¡µé¢ï¼Œè¿”回上一级或多级页é¢ã€‚å¯é€šè¿‡ getCurrentPages 获å–当å‰çš„页颿 ˆä¿¡æ¯ï¼Œå†³å®šéœ€è¦è¿”å›žå‡ å±‚ã€‚
+ */
+ function navigateBack(options?: NavigateBackOptions): void;
+
+ interface ReLaunchOptions extends BaseOptions {
+ /**
+ * 需è¦è·³è½¬çš„应用内页é¢è·¯å¾„ , 路径åŽå¯ä»¥å¸¦å‚数。
+ * 傿•°ä¸Žè·¯å¾„之间使用?åˆ†éš”ï¼Œå‚æ•°é”®ä¸Žå‚数值用=相连,ä¸åŒå‚数用&分隔
+ * 如 'path?key=value&key2=value2',如果跳转的页é¢è·¯å¾„是 tabBar 页é¢åˆ™ä¸èƒ½å¸¦å‚æ•°
+ */
+ url: string;
+ }
+ /**
+ * 关闿‰€æœ‰é¡µé¢ï¼Œæ‰“开到应用内的æŸä¸ªé¡µé¢ã€‚
+ */
+ function reLaunch(options?: ReLaunchOptions): void;
+
+ interface SetNavigationBarOptions extends BaseOptions {
+ /** 页颿 ‡é¢˜ */
+ title: string;
+ /** 图片连接地å€ï¼Œå¿…须是https,请使用3x高清图片。若设置了image则title傿•°å¤±æ•ˆ */
+ image: string;
+ /** 导航æ 背景色,支æŒåå…进制颜色值 */
+ backgroundColor: string;
+ /** 导航æ 底部边框颜色,支æŒåå…进制颜色值。若设置了 backgroundColor,则borderBottomColor ä¸ä¼šç”Ÿæ•ˆï¼Œé»˜è®¤ä¼šå’Œ backgroundColor é¢œè‰²ä¸€æ · */
+ borderBottomColor: string;
+ /** 是å¦é‡ç½®å¯¼èˆªæ 为支付å®é»˜è®¤é…色,默认 false */
+ reset: boolean;
+ }
+ /**
+ * 动æ€è®¾ç½®å½“å‰é¡µé¢çš„æ ‡é¢˜ã€‚
+ */
+ function setNavigationBar(options: Partial): void;
+
+ /**
+ * 显示导航æ loading
+ */
+ function showNavigationBarLoading(): void;
+
+ /** éšè—导航æ loading。 */
+ function hideNavigationBarLoading(): void;
+ //#endregion
+
+ //#region TabBar https://docs.alipay.com/mini/api/ui-tabbar
+ interface SwitchTabOptions extends BaseOptions {
+ /**
+ * 需è¦è·³è½¬çš„ tabBar 页é¢çš„路径
+ * (需在 app.json çš„ tabBar å—æ®µå®šä¹‰çš„页é¢ï¼‰ï¼Œè·¯å¾„åŽä¸èƒ½å¸¦å‚æ•°
+ */
+ url: string;
+ }
+ /**
+ * 跳转到指定 tabBar 页é¢ï¼Œå¹¶å…³é—å…¶ä»–æ‰€æœ‰éž tabBar 页é¢
+ */
+ function switchTab(options: SwitchTabOptions): void;
+ //#endregion
+
+ //#region 交互å馈 https://docs.alipay.com/mini/api/ui-feedback
+
+ interface AlertOptions extends BaseOptions {
+ /** alertæ¡†çš„æ ‡é¢˜ */
+ title: string;
+ /** alert框的内容 */
+ content: string;
+ /** 按钮文å—,默认确定 */
+ buttonText: string;
+ }
+ function alert(options: Partial): void;
+
+ interface ConfirmOptions extends BaseOptions {
+ /** confirmæ¡†çš„æ ‡é¢˜ */
+ title: string;
+ /** confirm框的内容 */
+ content: string;
+ /** 确认按钮文å—,默认‘确定’ */
+ confirmButtonText: string;
+ /** 确认按钮文å—ï¼Œé»˜è®¤â€˜å–æ¶ˆâ€™ */
+ cancelButtonText: string;
+ success(result: { confirm: boolean; }): void;
+ }
+ function confirm(options: Partial): void;
+
+ interface PromptOptions extends BaseOptions {
+ /** promptæ¡†æ ‡é¢˜ */
+ title?: string;
+ /** prompt框文本,默认‘请输入内容’ */
+ message?: string;
+ /** 输入框内的æç¤ºæ–‡æ¡ˆ */
+ placeholder?: string;
+ /** message坹齿–¹å¼ï¼Œå¯ç”¨æžšä¸¾left/center/right,iOS ‘center’, android ‘left’ */
+ align?: 'left' | 'center' | 'right' | string;
+ /** 确认按钮文å—,默认‘确定’ */
+ okButtonText: string;
+ /** 确认按钮文å—ï¼Œé»˜è®¤â€˜å–æ¶ˆâ€™ */
+ cancelButtonText: string;
+ success(result: { ok: boolean; inputValue: string; }): void;
+ }
+ function prompt(options: PromptOptions): void;
+
+ interface ToastOptions extends BaseOptions {
+ /**
+ * æ–‡å—内容
+ */
+ content: string;
+ /** toast ç±»åž‹ï¼Œå±•ç¤ºç›¸åº”å›¾æ ‡ï¼Œé»˜è®¤ noneï¼Œæ”¯æŒ success / fail / exception / noneâ€™ã€‚å…¶ä¸ exception ç±»åž‹å¿…é¡»ä¼ æ–‡å—ä¿¡æ¯ */
+ type?: 'none' | 'success' | 'fail' | 'exception' | string;
+ /**
+ * 显示时长,å•ä½ä¸º ms,默认 2000
+ */
+ duration?: number;
+ }
+ /**
+ * æ˜¾ç¤ºæ¶ˆæ¯æç¤ºæ¡†
+ */
+ function showToast(options: Partial): void;
+ function hideToast(): void;
+
+ interface LoadingOptions extends BaseOptions {
+ /**
+ * loading的文å—内容
+ */
+ content?: string;
+ /**
+ * 延迟显示,å•ä½ ms,默认 0ã€‚å¦‚æžœåœ¨æ¤æ—¶é—´ä¹‹å‰è°ƒç”¨äº† my.hideLoading 则ä¸ä¼šæ˜¾ç¤º
+ */
+ delay?: number;
+ }
+ /**
+ * æ˜¾ç¤ºåŠ è½½æç¤º
+ */
+ function showLoading(options?: LoadingOptions): void;
+ interface HideLoadingOptions {
+ /**
+ * 体指当å‰page实例,æŸäº›åœºæ™¯ä¸‹ï¼Œéœ€è¦æŒ‡æ˜Žåœ¨å“ªä¸ªpage执行hideLoading。
+ */
+ page: any;
+ }
+ /**
+ * éšè—æ¶ˆæ¯æç¤ºæ¡†
+ */
+ function hideLoading(options?: HideLoadingOptions): void;
+
+ interface Badge {
+ /** 需è¦é£˜çº¢çš„选项的索引,从0开始 */
+ index: number;
+ /**
+ * é£˜çº¢ç±»åž‹ï¼Œæ”¯æŒ noneï¼ˆæ— çº¢ç‚¹ï¼‰/ point(纯红点) / num(数å—红点)/ text(文案红点)/ more(...)
+ *
+ */
+ type: 'none' | 'point' | 'num' | 'text' | 'more' | string;
+
+ /**
+ * 自定义飘红文案:
+ *
+ * 1ã€type为none/point/more时本文案å¯ä¸å¡«
+ * 2ã€type为numæ—¶æœ¬æ–‡æ¡ˆä¸ºå°æ•°æˆ–<=0å‡ä¸æ˜¾ç¤º, >100 显示"..."
+ */
+ text: string;
+ }
+ interface ActionSheetOptions extends BaseOptions {
+ /** èœå•æ ‡é¢˜ */
+ title?: string;
+ /**
+ * èœå•æŒ‰é’®æ–‡å—æ•°ç»„
+ */
+ items: string[];
+ /**
+ * å–æ¶ˆæŒ‰é’®æ–‡æ¡ˆã€‚é»˜è®¤ä¸ºâ€˜å–æ¶ˆâ€™ã€‚注:Android平尿¤å—æ®µæ— æ•ˆï¼Œä¸ä¼šæ˜¾ç¤ºå–消按钮。
+ */
+ cancelButtonText?: string;
+ /**
+ * (iOS特殊处ç†ï¼‰æŒ‡å®šæŒ‰é’®çš„索引å·ï¼Œä»Ž0开始,使用场景:需è¦åˆ 除或清除数æ®ç‰ç±»ä¼¼åœºæ™¯ï¼Œé»˜è®¤çº¢è‰²
+ */
+ destructiveBtnIndex?: number;
+ /**
+ * éœ€é£˜çº¢é€‰é¡¹çš„æ•°ç»„ï¼Œæ•°ç»„å†…éƒ¨å¯¹è±¡å—æ®µè§ä¸‹è¡¨
+ */
+ badges?: Array>;
+ /**
+ * 接å£è°ƒç”¨æˆåŠŸçš„å›žè°ƒå‡½æ•°
+ */
+ success?(res: {
+ /**
+ * 用户点击的按钮,从上到下的顺åºï¼Œä»Ž0开始
+ */
+ index: number;
+ }): void;
+ }
+ /**
+ * 显示æ“作èœå•
+ */
+ function showActionSheet(options: ActionSheetOptions): void;
+ //#endregion
+
+ //#region 下拉刷新 https://docs.alipay.com/mini/api/ui-pulldown
+ /**
+ * Page 实现的接å£å¯¹è±¡
+ */
+ interface PageOptions {
+ /**
+ * 下拉刷新
+ * 在 Page ä¸å®šä¹‰ onPullDownRefresh 处ç†å‡½æ•°ï¼Œç›‘å¬è¯¥é¡µé¢ç”¨æˆ·ä¸‹æ‹‰åˆ·æ–°äº‹ä»¶ã€‚
+ * 需è¦åœ¨é¡µé¢å¯¹åº”çš„ .json é…置文件ä¸é…ç½® "pullRefresh": true 选项,æ‰èƒ½å¼€å¯ä¸‹æ‹‰åˆ·æ–°äº‹ä»¶ã€‚
+ * 当处ç†å®Œæ•°æ®åˆ·æ–°åŽï¼Œè°ƒç”¨ my.stopPullDownRefresh å¯ä»¥åœæ¢å½“å‰é¡µé¢çš„下拉刷新。
+ */
+ onPullDownRefresh?(this: Page): void;
+ }
+ /**
+ * åœæ¢å½“å‰é¡µé¢çš„下拉刷新。
+ */
+ function stopPullDownRefresh(): void;
+ //#endregion
+
+ //#region è”系人 https://docs.alipay.com/mini/api/ui-contact
+ interface ChoosePhoneContactOptions extends BaseOptions {
+ success(result: {
+ name: string; // 选ä¸çš„è”系人姓å
+ mobile: string; // 选ä¸çš„è”系人手机å·
+ }): void;
+ /**
+ * 10 没有æƒé™
+ * 11 ç”¨æˆ·å–æ¶ˆæ“作(或设备未授æƒä½¿ç”¨é€šè®¯å½•)
+ */
+ fail?(error: 10 | 11): void;
+ }
+ /**
+ * é€‰æ‹©æœ¬åœ°ç³»ç»Ÿé€šä¿¡å½•ä¸æŸä¸ªè”系人的电è¯ã€‚
+ */
+ function choosePhoneContact(options: ChoosePhoneContactOptions): void;
+
+ interface ChooseAlipayContactOptions extends BaseOptions {
+ /** 啿¬¡æœ€å¤šé€‰æ‹©è”系人个数,默认 1,最大 10 */
+ count: number;
+ success(result: {
+ realName: string; // è´¦å·çš„真实姓å
+ mobile: string; // è´¦å·å¯¹åº”的手机å·ç
+ email: string; // è´¦å·çš„邮箱
+ avatar: string; // è´¦å·çš„头åƒé“¾æŽ¥
+ userId: string; // 支付å®è´¦å·å”¯ä¸€ userId
+ }): void;
+ /**
+ * 10 没有æƒé™
+ * 11 ç”¨æˆ·å–æ¶ˆæ“作(或设备未授æƒä½¿ç”¨é€šè®¯å½•)
+ */
+ fail?(error: 10 | 11): void;
+ }
+ /**
+ * 唤起支付å®é€šè®¯å½•,选择一个或者多个支付å®è”系人。
+ */
+ function chooseAlipayContact(options: ChooseAlipayContactOptions): void;
+
+ interface ContactsDic {
+ /**
+ * 支付å®è´¦å·å”¯ä¸€ userId
+ */
+ userId: string;
+ /**
+ * è´¦å·çš„头åƒé“¾æŽ¥
+ */
+ avatar: string;
+ /**
+ * è´¦å·å¯¹åº”的手机å·ç
+ */
+ mobile: string;
+ /**
+ * è´¦å·çš„真实姓å
+ */
+ realName: string;
+ /**
+ * è´¦å·çš„æ˜¾ç¤ºåç§°ï¼šä¹Ÿå³æ”¯ä»˜å®è®¾ç½®çš„备注å称,默认为朋å‹åœˆé‡Œé¢çš„æ˜µç§°
+ */
+ displayName: string; // è´¦å·çš„æ˜¾ç¤ºåç§°ï¼šä¹Ÿå³æ”¯ä»˜å®è®¾ç½®çš„备注å称,默认为朋å‹åœˆé‡Œé¢çš„æ˜µç§°
+ }
+ interface ChooseContactOptions extends BaseOptions {
+ /** 选择类型,值为single(å•选)或者 multi(多选) */
+ chooseType: 'single' | 'multi' | string;
+ /** åŒ…å«æ‰‹æœºé€šè®¯å½•è”系人的模å¼ï¼šé»˜è®¤ä¸ºä¸åŒ…å«ï¼ˆnoneï¼‰ã€æˆ–者仅仅包å«åŒå‘通讯录è”系人(knownï¼‰ã€æˆ–è€…åŒ…å«æ‰‹æœºé€šè®¯å½•è”系人(all) */
+ includeMobileContactMode?: 'none' | 'known' | 'all' | string;
+ /** 是å¦åŒ…å«è‡ªå·± */
+ includeMe?: boolean;
+ /** 最大选择人数,仅 chooseType 为 multi æ—¶æ‰æœ‰æ•ˆ */
+ multiChooseMax?: number;
+ /** 多选达到上é™çš„æ–‡æ¡ˆï¼Œä»… chooseType 为 multi æ—¶æ‰æœ‰æ•ˆ */
+ multiChooseMaxTips?: string;
+
+ success(result: {
+ contactsDicArray: ContactsDic[];
+ }): void;
+ }
+ /**
+ * 唤起选人组件,默认åªåŒ…嫿”¯ä»˜å®è”系人,å¯ä»¥é€šè¿‡ä¿®æ”¹å‚æ•°åŒ…å«æ‰‹æœºé€šè®¯å½•è”系人或者åŒå‘通讯录è”系人。
+ */
+ function chooseContact(options: ChooseContactOptions): void;
+ //#endregion
+
+ //#region 选择城市 https://docs.alipay.com/mini/api/ui-city
+ interface City {
+ city: string; // 城市å
+ adCode: string; // 行政区划代ç
+ spell?: string; // 城市å对应拼音拼写,方便用户æœç´¢
+ }
+ interface ChooseCityOptions extends BaseOptions {
+ showLocatedCity: boolean; // æ˜¯å¦æ˜¾ç¤ºå½“å‰å®šä½åŸŽå¸‚,默认 false
+ showHotCities: boolean; // æ˜¯å¦æ˜¾ç¤ºçƒé—¨åŸŽå¸‚,默认 true
+ cities: City[]; // è‡ªå®šä¹‰åŸŽå¸‚åˆ—è¡¨ï¼Œåˆ—è¡¨å†…å¯¹è±¡å—æ®µè§ä¸‹è¡¨
+ hotCities: City[]; // 自定义çƒé—¨åŸŽå¸‚åˆ—è¡¨ï¼Œåˆ—è¡¨å†…å¯¹è±¡å—æ®µè§ä¸‹è¡¨
+ success(result: { city: string; adCode: string; }): void;
+ }
+ /**
+ * 打开城市选择列表
+ *
+ * 如果用户没有选择任何城市直接点击了返回,将ä¸ä¼šè§¦å‘回调函数。
+ */
+ function chooseCity(options: Partial): void;
+ //#endregion
+
+ //#region 选择日期 https://docs.alipay.com/mini/api/ui-date
+ interface DatePickerOptions extends BaseOptions {
+ /**
+ * è¿”å›žçš„æ—¥æœŸæ ¼å¼ï¼Œ
+ * 1. yyyy-MM-dd(默认)
+ * 2. HH:mm
+ * 3. yyyy-MM-dd HH:mm
+ * 4. yyyy-MM (最低基础库:1.1.1, å¯ç”¨ canIUse('datePicker.object.format.yyyy-MM') 判æ–)
+ * 5. yyyy (最低基础库:1.1.1,å¯ç”¨ canIUse('datePicker.object.format.yyyy') 判æ–)
+ */
+ format: 'yyyy-MM-dd' | 'HH:mm' | 'yyyy-MM-dd HH:mm' | 'yyyy-MM' | 'yyyy';
+ /** åˆå§‹é€‰æ‹©çš„æ—¥æœŸæ—¶é—´ï¼Œé»˜è®¤å½“剿—¶é—´ */
+ currentDate: string;
+ /** æœ€å°æ—¥æœŸæ—¶é—´ */
+ startDate: string;
+ /** 最大日期时间 */
+ endDate: string;
+ success(result: { date: string; }): void;
+ /** 11 ç”¨æˆ·å–æ¶ˆæ“作 */
+ fail(error: 11): void;
+ }
+ /**
+ * 打开日期选择列表
+ */
+ function datePicker(optiosn: Partial): void;
+ //#endregion
+
+ //#region 动画 https://docs.alipay.com/mini/api/ui-animation
+ type TimingFunction =
+ | "linear"
+ | "ease"
+ | "ease-in"
+ | "ease-in-out"
+ | "ease-out"
+ | "step-start"
+ | "step-end";
+ interface CreateAnimationOptions {
+ /** 动画æŒç»æ—¶é—´ï¼Œå•ä½ms,默认值 400 */
+ duration: number;
+ /** 定义动画的效果,默认值"linear",有效值:"linear","ease","ease-in","ease-in-out","ease-out","step-start","step-end" */
+ timeFunction: TimingFunction;
+ /** 动画æŒç»æ—¶é—´ï¼Œå•ä½ ms,默认值 0 */
+ delay: number;
+ /** 设置transform-origin,默认为"50% 50% 0" */
+ transformOrigin: string;
+ }
+ interface Animator {
+ actions: AnimationAction[];
+ }
+ interface AnimationAction {
+ animates: Animate[];
+ option: AnimationActionOption;
+ }
+ interface AnimationActionOption {
+ transformOrigin: string;
+ transition: AnimationTransition;
+ }
+ interface AnimationTransition {
+ delay: number;
+ duration: number;
+ timingFunction: TimingFunction;
+ }
+ interface Animate {
+ type: string;
+ args: any[];
+ }
+ /**
+ * 创建动画实例 animationã€‚è°ƒç”¨å®žä¾‹çš„æ–¹æ³•æ¥æè¿°åŠ¨ç”»ï¼Œæœ€åŽé€šè¿‡åŠ¨ç”»å®žä¾‹çš„export方法将动画数æ®å¯¼å‡ºå¹¶ä¼ 递给组件的animation属性。
+ *
+ * 注æ„: export æ–¹æ³•æ¯æ¬¡è°ƒç”¨åŽä¼šæ¸…掉之å‰çš„动画æ“作
+ */
+ function createAnimation(options: Partial): Animation;
+ /** 动画实例å¯ä»¥è°ƒç”¨ä»¥ä¸‹æ–¹æ³•æ¥æè¿°åŠ¨ç”»ï¼Œè°ƒç”¨ç»“æŸåŽä¼šè¿”回自身,支æŒé“¾å¼è°ƒç”¨çš„写法。 */
+ interface Animation {
+ /**
+ * 调用动画æ“作方法åŽè¦è°ƒç”¨ step() æ¥è¡¨ç¤ºä¸€ç»„动画完æˆï¼Œ
+ * å¯ä»¥åœ¨ä¸€ç»„动画ä¸è°ƒç”¨ä»»æ„多个动画方法,
+ * 一组动画ä¸çš„æ‰€æœ‰åŠ¨ç”»ä¼šåŒæ—¶å¼€å§‹ï¼Œ
+ * 一组动画完æˆåŽæ‰ä¼šè¿›è¡Œä¸‹ä¸€ç»„动画。
+ * @param options 指定当å‰ç»„动画的é…ç½®
+ */
+ step(options?: CreateAnimationOptions): void;
+ /**
+ * 导出动画æ“作
+ *
+ * 注æ„: export æ–¹æ³•æ¯æ¬¡è°ƒç”¨åŽä¼šæ¸…掉之å‰çš„动画æ“作
+ */
+ export(): Animator;
+ /** 逿˜Žåº¦ï¼Œå‚数范围 0~1 */
+ opacity(value: number): Animation;
+ /** 颜色值 */
+ backgroundColor(color: string): Animation;
+ /** é•¿åº¦å€¼ï¼Œå¦‚æžœä¼ å…¥ Number 则默认使用 px,å¯ä¼ 入其他自定义å•ä½çš„长度值 */
+ width(length: number): Animation;
+ /** é•¿åº¦å€¼ï¼Œå¦‚æžœä¼ å…¥ Number 则默认使用 px,å¯ä¼ 入其他自定义å•ä½çš„长度值 */
+ height(length: number): Animation;
+ /** é•¿åº¦å€¼ï¼Œå¦‚æžœä¼ å…¥ Number 则默认使用 px,å¯ä¼ 入其他自定义å•ä½çš„长度值 */
+ top(length: number): Animation;
+ /** é•¿åº¦å€¼ï¼Œå¦‚æžœä¼ å…¥ Number 则默认使用 px,å¯ä¼ 入其他自定义å•ä½çš„长度值 */
+ left(length: number): Animation;
+ /** é•¿åº¦å€¼ï¼Œå¦‚æžœä¼ å…¥ Number 则默认使用 px,å¯ä¼ 入其他自定义å•ä½çš„长度值 */
+ bottom(length: number): Animation;
+ /** é•¿åº¦å€¼ï¼Œå¦‚æžœä¼ å…¥ Number 则默认使用 px,å¯ä¼ 入其他自定义å•ä½çš„长度值 */
+ right(length: number): Animation;
+ /** deg的范围-180~180,从原点顺时针旋转一个deg角度 */
+ rotate(deg: number): Animation;
+ /** deg的范围-180~180,在X轴旋转一个deg角度 */
+ rotateX(deg: number): Animation;
+ /** deg的范围-180~180,在Y轴旋转一个deg角度 */
+ rotateY(deg: number): Animation;
+ /** deg的范围-180~180,在Z轴旋转一个deg角度 */
+ rotateZ(deg: number): Animation;
+ /** åŒtransform-function rotate3d */
+ rotate3d(x: number, y: number, z: number, deg: number): Animation;
+ /**
+ * ä¸€ä¸ªå‚æ•°æ—¶ï¼Œè¡¨ç¤ºåœ¨Xè½´ã€Yè½´åŒæ—¶ç¼©æ”¾sx倿•°ï¼›
+ * ä¸¤ä¸ªå‚æ•°æ—¶è¡¨ç¤ºåœ¨X轴缩放sx倿•°ï¼Œåœ¨Y轴缩放sy倿•°
+ */
+ scale(sx: number, sy?: number): Animation;
+ /** 在X轴缩放sx倿•° */
+ scaleX(sx: number): Animation;
+ /** 在Y轴缩放sy倿•° */
+ scaleY(sy: number): Animation;
+ /** 在Z轴缩放sy倿•° */
+ scaleZ(sz: number): Animation;
+ /** 在X轴缩放sx倿•°ï¼Œåœ¨Y轴缩放sy倿•°ï¼Œåœ¨Z轴缩放sz倿•° */
+ scale3d(sx: number, sy: number, sz: number): Animation;
+ /**
+ * ä¸€ä¸ªå‚æ•°æ—¶ï¼Œè¡¨ç¤ºåœ¨Xè½´åç§»tx,å•ä½pxï¼›
+ * ä¸¤ä¸ªå‚æ•°æ—¶ï¼Œè¡¨ç¤ºåœ¨Xè½´åç§»tx,在Yè½´åç§»ty,å•ä½px。
+ */
+ translate(tx: number, ty?: number): Animation;
+ /**
+ * 在Xè½´åç§»tx,å•ä½px
+ */
+ translateX(tx: number): Animation;
+ /**
+ * 在Yè½´åç§»tx,å•ä½px
+ */
+ translateY(ty: number): Animation;
+ /**
+ * 在Zè½´åç§»tx,å•ä½px
+ */
+ translateZ(tz: number): Animation;
+ /**
+ * 在Xè½´åç§»tx,在Yè½´åç§»ty,在Zè½´åç§»tz,å•ä½px
+ */
+ translate3d(tx: number, ty: number, tz: number): Animation;
+ /**
+ * 傿•°èŒƒå›´-180~180ï¼›
+ * ä¸€ä¸ªå‚æ•°æ—¶ï¼ŒYè½´åæ ‡ä¸å˜ï¼ŒXè½´åæ ‡å»¶é¡ºæ—¶é’ˆå€¾æ–œax度;
+ * ä¸¤ä¸ªå‚æ•°æ—¶ï¼Œåˆ†åˆ«åœ¨X轴倾斜ax度,在Y轴倾斜ay度
+ */
+ skew(ax: number, ay?: number): Animation;
+ /** 傿•°èŒƒå›´-180~180ï¼›Yè½´åæ ‡ä¸å˜ï¼ŒXè½´åæ ‡å»¶é¡ºæ—¶é’ˆå€¾æ–œax度 */
+ skewX(ax: number): Animation;
+ /** 傿•°èŒƒå›´-180~180ï¼›Xè½´åæ ‡ä¸å˜ï¼ŒYè½´åæ ‡å»¶é¡ºæ—¶é’ˆå€¾æ–œay度 */
+ skewY(ay: number): Animation;
+ /**
+ * åŒtransform-function matrix
+ */
+ matrix(
+ a: number,
+ b: number,
+ c: number,
+ d: number,
+ tx: number,
+ ty: number
+ ): Animation;
+ /** åŒtransform-function matrix3d */
+ matrix3d(
+ a1: number,
+ b1: number,
+ c1: number,
+ d1: number,
+ a2: number,
+ b2: number,
+ c2: number,
+ d2: number,
+ a3: number,
+ b3: number,
+ c3: number,
+ d3: number,
+ a4: number,
+ b4: number,
+ c4: number,
+ d4: number
+ ): Animation;
+ }
+ //#endregion
+
+ //#region 画布 https://docs.alipay.com/mini/api/ui-canvas
+ interface ToTempFilePathOptions extends BaseOptions {
+ x: number; // 画布 x 轴起点,默认为 0
+ y: number; // 画布 y 轴起点,默认为 0
+ width: number; // 画布宽度,默认为 canvas 宽度 - x
+ height: number; // 画布高度,默认为 canvas 高度 - y
+ destWidth: number; // 输出的图片宽度,默认为 width
+ destHeight: number; // 输出的图片高度,默认为 height
+ }
+ type Color = string | number[] | number | CanvasAction;
+
+ interface CanvasAction {
+ /**
+ * 创建一个颜色的æ¸å˜ç‚¹ã€‚
+ * å°äºŽæœ€å° stop çš„éƒ¨åˆ†ä¼šæŒ‰æœ€å° stop çš„ color æ¥æ¸²æŸ“,大于最大 stop 的部分会按最大 stop çš„ color æ¥æ¸²æŸ“。
+ *
+ * @param stop æ¸å˜ç‚¹ä½ç½®ï¼Œå€¼å¿…须在 [0,1] 范围内
+ * @param color 颜色值
+ */
+ addColorStop(stop: number, color: Color): void;
+ }
+
+ interface TextMetrics {
+ width: number;
+ }
+
+ interface ConvasContext {
+ font: string;
+ /**
+ * 把当å‰ç”»å¸ƒçš„内容导出生æˆå›¾ç‰‡ï¼Œå¹¶è¿”回文件路径。
+ */
+ toTempFilePath(options?: Partial): void;
+ /**
+ * textAlign 是 Canvas 2D API æè¿°ç»˜åˆ¶æ–‡æœ¬æ—¶ï¼Œæ–‡æœ¬çš„坹齿–¹å¼çš„属性。注æ„ï¼Œè¯¥å¯¹é½æ˜¯åŸºäºŽ
+ * CanvasRenderingContext2D.fillText 方法的x的值。所以如果 textAlign="center",那么该文本将画在 x-50%*width
+ */
+ setTextAlign(textAlign: 'left' | 'right' | 'center' | 'start' | 'end'): void;
+ /**
+ * textBaseline 是 Canvas 2D API æè¿°ç»˜åˆ¶æ–‡æœ¬æ—¶ï¼Œå½“剿–‡æœ¬åŸºçº¿çš„属性。
+ */
+ setTextBaseline(textBaseline: 'top' | 'hanging' | 'middle' | 'alphabetic' | 'ideographic' | 'bottom'): void;
+ /**
+ * 设置填充色。
+ *
+ * 如果没有设置 fillStyle,则默认颜色为 black。
+ */
+ setFillStyle(color: Color): void;
+ /**
+ * 设置边框颜色。
+ *
+ * 如果没有设置 strokeStyle,则默认颜色为 black。
+ */
+ setStrokeStyle(color: Color): void;
+ /**
+ * è®¾ç½®é˜´å½±æ ·å¼ã€‚
+ * 如果没有设置,offsetX 的默认值为 0, offsetY 的默认值为 0, blur 的默认值为 0,color 的默认值为 black。
+ * @param offsetX 阴影相对于形状水平方å‘çš„åç§»
+ * @param offsetY 阴影相对于形状竖直方å‘çš„åç§»
+ * @param blur 0~100 阴影的模糊级别,值越大越模糊
+ * @param color 阴影颜色
+ */
+ setShadow(offsetX: number, offsetY: number, blur: number, color: Color): void;
+
+ /**
+ * 创建一个线性的æ¸å˜è‰²ã€‚
+ *
+ * @param x0 起点 x åæ ‡
+ * @param y0 起点 y åæ ‡
+ * @param x1 终点 x åæ ‡
+ * @param y1 终点 y åæ ‡
+ */
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasAction;
+
+ /**
+ * 创建一个圆形的æ¸å˜è‰²ã€‚
+ * 起点在圆心,终点在圆环。
+ * 需è¦ä½¿ç”¨ addColorStop() æ¥æŒ‡å®šæ¸å˜ç‚¹ï¼Œè‡³å°‘需è¦ä¸¤ä¸ªã€‚
+ * @param x 圆心 x åæ ‡
+ * @param y 圆心 y åæ ‡
+ * @param r 圆åŠå¾„
+ * @returns
+ */
+ createCircularGradient(x: number, y: number, r: number): CanvasAction;
+
+ /**
+ * 设置线æ¡çš„宽度。
+ * @param lineWidth 线æ¡å®½åº¦ï¼Œå•ä½ä¸º px
+ */
+ setLineWidth(lineWidth: number): void;
+
+ /**
+ * 设置线æ¡çš„ç«¯ç‚¹æ ·å¼ã€‚
+ *
+ * @param lineCap 线æ¡çš„结æŸç«¯ç‚¹æ ·å¼
+ */
+ setLineCap(lineCap: 'round' | 'butt' | 'square'): void;
+
+ /**
+ * 设置线æ¡çš„äº¤ç‚¹æ ·å¼ã€‚
+ *
+ * @param lineJoin 线æ¡çš„结æŸäº¤ç‚¹æ ·å¼
+ */
+ setLineJoin(lineJoin: 'round' | 'bevel' | 'miter'): void;
+
+ /**
+ * 设置最大斜接长度,斜接长度指的是在两æ¡çº¿äº¤æ±‡å¤„内角和外角之间的è·ç¦»ã€‚ 当 setLineJoin() 为 miter æ—¶æ‰æœ‰æ•ˆã€‚超过最大倾斜长度的,连接处将以 lineJoin 为 bevel æ¥æ˜¾ç¤º
+ *
+ * @param miterLimit 最大斜接长度
+ */
+ setMiterLimit(miterLimit: number): void;
+
+ /**
+ * 创建一个矩形。
+ *
+ * @param x 矩形左上角的 x åæ ‡
+ * @param y 矩形左上角的 y åæ ‡
+ * @param width 矩形路径宽度
+ * @param height 矩形路径高度
+ */
+ rect(x: number, y: number, width: number, height: number): void;
+
+ /**
+ * 填充矩形。
+ * 用 setFillStyle() 设置矩形的填充色,如果没设置则默认是 black。
+ * @param x 矩形左上角的 x åæ ‡
+ * @param y 矩形左上角的 y åæ ‡
+ * @param width 矩形路径宽度
+ * @param height 矩形路径高度
+ */
+ fillRect(x: number, y: number, width: number, height: number): void;
+
+ /**
+ * 画一个矩形(éžå¡«å……)。
+ * 用 setFillStroke() 设置矩形线æ¡çš„颜色,如果没设置默认是 black。
+ * @param x 矩形左上角的 x åæ ‡
+ * @param y 矩形左上角的 y åæ ‡
+ * @param width 矩形路径宽度
+ * @param height 矩形路径高度
+ */
+ strokeRect(x: number, y: number, width: number, height: number): void;
+
+ /**
+ * 清除画布上在该矩形区域内的内容。
+ * clearRect å¹¶éžç”»ä¸€ä¸ªç™½è‰²çš„矩形在地å€åŒºåŸŸï¼Œè€Œæ˜¯æ¸…空,为了有直观感å—,å¯ä»¥å¯¹ canvas åŠ äº†ä¸€å±‚èƒŒæ™¯è‰²ã€‚
+ * @param x 矩形左上角的 x åæ ‡
+ * @param y 矩形左上角的 y åæ ‡
+ * @param width 矩形路径宽度
+ * @param height 矩形路径高度
+ */
+ clearRect(x: number, y: number, width: number, height: number): void;
+
+ /**
+ * 对当å‰è·¯å¾„ä¸çš„内容进行填充。默认的填充色为黑色。
+ *
+ */
+ fill(): void;
+
+ /**
+ * 画出当å‰è·¯å¾„的边框。默认 black。
+ * stroke() æç»˜çš„的路径是从 beginPath() 开始计算,但是ä¸ä¼šå°† strokeRect() 包å«è¿›åŽ»
+ */
+ stroke(): void;
+
+ /**
+ * å…³é—一个路径
+ * å…³é—路径会连接起点和终点。
+ * 如果关é—è·¯å¾„åŽæ²¡æœ‰è°ƒç”¨ fill() 或者 stroke() å¹¶å¼€å¯äº†æ–°çš„路径,那之å‰çš„路径将ä¸ä¼šè¢«æ¸²æŸ“。
+ */
+ beginPath(): void;
+
+ /**
+ * å…³é—一个路径
+ * å…³é—路径会连接起点和终点。
+ *
+ */
+ closePath(): void;
+
+ /**
+ * 把路径移动到画布ä¸çš„æŒ‡å®šç‚¹ï¼Œä¸åˆ›å»ºçº¿æ¡ã€‚
+ * 用 stroke() 方法æ¥ç”»çº¿æ¡
+ * @param x ç›®æ ‡ä½ç½® x åæ ‡
+ * @param y ç›®æ ‡ä½ç½® y åæ ‡
+ */
+ moveTo(x: number, y: number): void;
+
+ /**
+ * lineTo æ–¹æ³•å¢žåŠ ä¸€ä¸ªæ–°ç‚¹ï¼Œç„¶åŽåˆ›å»ºä¸€æ¡ä»Žä¸Šæ¬¡æŒ‡å®šç‚¹åˆ°ç›®æ ‡ç‚¹çš„线。
+ * 用 stroke() 方法æ¥ç”»çº¿æ¡
+ *
+ * @param x ç›®æ ‡ä½ç½® x åæ ‡
+ * @param y ç›®æ ‡ä½ç½® y åæ ‡
+ */
+ lineTo(x: number, y: number): void;
+
+ /**
+ * 画一æ¡å¼§çº¿ã€‚
+ * 创建一个圆å¯ä»¥ç”¨ arc() 方法指定其实弧度为0,终æ¢å¼§åº¦ä¸º 2 * Math.PI。
+ *
+ * @param x
+ * @param y
+ * @param r
+ * @param sAngle
+ * @param eAngle
+ */
+ arc(x: number, y: number, r: number, sAngle: number, eAngle: number): void;
+
+ /**
+ * 创建三次方è´å¡žå°”曲线路径。
+ * 曲线的起始点为路径ä¸å‰ä¸€ä¸ªç‚¹ã€‚
+ * @param cp1x
+ * @param cp1y
+ * @param cp2x
+ * @param cp2y
+ * @param x
+ * @param y
+ */
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
+
+ /**
+ * 将当å‰åˆ›å»ºçš„路径设置为当å‰å‰ªåˆ‡è·¯å¾„。
+ *
+ */
+ clip(): void;
+
+ /**
+ * 创建二次è´å¡žå°”曲线路径。
+ * 曲线的起始点为路径ä¸å‰ä¸€ä¸ªç‚¹ã€‚
+ * @param cpx è´å¡žå°”控制点 x åæ ‡
+ * @param cpy è´å¡žå°”控制点 y åæ ‡
+ * @param x 结æŸç‚¹ x åæ ‡
+ * @param y 结æŸç‚¹ y åæ ‡
+ */
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
+
+ /**
+ * 在调用scale方法åŽï¼Œä¹‹åŽåˆ›å»ºçš„è·¯å¾„å…¶æ¨ªçºµåæ ‡ä¼šè¢«ç¼©æ”¾ã€‚多次调用scaleï¼Œå€æ•°ä¼šç›¸ä¹˜ã€‚
+ *
+ * @param scaleWidth æ¨ªåæ ‡ç¼©æ”¾å€æ•° (1 = 100%,0.5 = 50%,2 = 200%)
+ * @param scaleHeight çºµåæ ‡è½´ç¼©æ”¾å€æ•° (1 = 100%,0.5 = 50%,2 = 200%)
+ */
+ scale(scaleWidth: number, scaleHeight: number): void;
+
+ /**
+ * 以原点为ä¸å¿ƒï¼ŒåŽŸç‚¹å¯ä»¥ç”¨ translate方法修改。顺时针旋转当å‰åæ ‡è½´ã€‚å¤šæ¬¡è°ƒç”¨rotate,旋转的角度会å åŠ ã€‚
+ *
+ * @param rotate 旋转角度,以弧度计(degrees * Math.PI/180;degrees 范围为0~360)
+ */
+ rotate(rotate: number): void;
+
+ /**
+ * 对当å‰åæ ‡ç³»çš„åŽŸç‚¹(0, 0)è¿›è¡Œå˜æ¢ï¼Œé»˜è®¤çš„åæ ‡ç³»åŽŸç‚¹ä¸ºé¡µé¢å·¦ä¸Šè§’。
+ *
+ * @param x æ°´å¹³åæ ‡å¹³ç§»é‡
+ * @param y ç«–ç›´åæ ‡å¹³ç§»é‡
+ */
+ translate(x: number, y: number): void;
+
+ /**
+ * 设置å—体大å°ã€‚
+ *
+ * @param fontSize å—å·
+ */
+ setFontSize(fontSize: number): void;
+
+ /**
+ * 在画布上绘制被填充的文本。
+ *
+ * @param text 文本
+ * @param x 绘制文本的左上角 x åæ ‡
+ * @param y 绘制文本的左上角 y åæ ‡
+ */
+ fillText(text: string, x: number, y: number): void;
+
+ /**
+ * 绘制图åƒï¼Œå›¾åƒä¿æŒåŽŸå§‹å°ºå¯¸ã€‚
+ *
+ * @param imageResource 图片资æº, åªæ”¯æŒçº¿ä¸Š cdn åœ°å€æˆ–离线包地å€ï¼Œçº¿ä¸Š cdn 需返回头 Access-Control-Allow-Origin: *
+ * @param x 图åƒå·¦ä¸Šè§’ x åæ ‡
+ * @param y 图åƒå·¦ä¸Šè§’ y åæ ‡
+ * @param width 图åƒå®½åº¦
+ * @param height 图åƒé«˜åº¦
+ */
+ drawImage(imageResource: string, x: number, y: number, width: number, height: number): void;
+
+ /**
+ * è®¾ç½®å…¨å±€ç”»ç¬”é€æ˜Žåº¦ã€‚
+ *
+ * @param alpha 逿˜Žåº¦ï¼Œ0 è¡¨ç¤ºå®Œå…¨é€æ˜Žï¼Œ1 表示ä¸é€æ˜Ž 范围 [0, 1]
+ */
+ setGlobalAlpha(alpha: number): void;
+
+ /**
+ * è®¾ç½®è™šçº¿çš„æ ·å¼
+ *
+ * @param segments 一组æè¿°äº¤æ›¿ç»˜åˆ¶çº¿æ®µå’Œé—´è·ï¼ˆåæ ‡ç©ºé—´å•ä½ï¼‰é•¿åº¦çš„æ•°å—。 å¦‚æžœæ•°ç»„å…ƒç´ çš„æ•°é‡æ˜¯å¥‡æ•°ï¼Œ æ•°ç»„çš„å…ƒç´ ä¼šè¢«å¤åˆ¶å¹¶é‡å¤ã€‚例如, [5, 15, 25] ä¼šå˜æˆ [5, 15, 25, 5, 15, 25]。
+ */
+ setLineDash(segments: number[]): void;
+
+ /**
+ * 使用矩阵多次å åŠ å½“å‰å˜æ¢çš„æ–¹æ³•ï¼ŒçŸ©é˜µç”±æ–¹æ³•çš„å‚æ•°è¿›è¡Œæè¿°ã€‚ä½ å¯ä»¥ç¼©æ”¾ã€æ—‹è½¬ã€ç§»åŠ¨å’Œå€¾æ–œä¸Šä¸‹æ–‡ã€‚
+ *
+ * @param scaleX 水平缩放
+ * @param skewX 水平倾斜
+ * @param skewY 垂直倾斜
+ * @param scaleY 垂直缩放
+ * @param translateX 水平移动
+ * @param translateY 垂直移动
+ */
+ transform(scaleX: number, skewX: number, skewY: number, scaleY: number, translateX: number, translateY: number): void;
+
+ /**
+ * 使用å•ä½çŸ©é˜µé‡æ–°è®¾ç½®ï¼ˆè¦†ç›–)当å‰çš„å˜æ¢å¹¶è°ƒç”¨å˜æ¢çš„æ–¹æ³•,æ¤å˜æ¢ç”±æ–¹æ³•çš„å˜é‡è¿›è¡Œæè¿°ã€‚
+ *
+ * @param scaleX 水平缩放
+ * @param skewX 水平倾斜
+ * @param skewY 垂直倾斜
+ * @param scaleY 垂直缩放
+ * @param translateX 水平移动
+ * @param translateY 垂直移动
+ */
+ setTransform(scaleX: number, skewX: number, skewY: number, scaleY: number, translateX: number, translateY: number): void;
+
+ /**
+ * ä¿å˜å½“å‰çš„绘图上下文。
+ *
+ */
+ save(): void;
+
+ /**
+ * æ¢å¤ä¹‹å‰ä¿å˜çš„绘图上下文。
+ */
+ restore(): void;
+
+ /**
+ * 将之å‰åœ¨ç»˜å›¾ä¸Šä¸‹æ–‡ä¸çš„æè¿°ï¼ˆè·¯å¾„ã€å˜å½¢ã€æ ·å¼ï¼‰ç”»åˆ° canvas ä¸ã€‚
+ * 绘图上下文需è¦ç”± my.createCanvasContext(canvasId) æ¥åˆ›å»ºã€‚
+ * @param [reserve] æœ¬æ¬¡ç»˜åˆ¶æ˜¯å¦æŽ¥ç€ä¸Šä¸€æ¬¡ç»˜åˆ¶ï¼Œå³ reserve 傿•°ä¸º false 时则在本次调用 drawCanvasç»˜åˆ¶ä¹‹å‰ native 层应先清空画布å†ç»§ç»ç»˜åˆ¶ï¼›è‹¥ reserver 傿•°ä¸ºtrue 时,则ä¿ç•™å½“å‰ç”»å¸ƒä¸Šçš„内容,本次调用drawCanvas绘制的内容覆盖在上é¢ï¼Œé»˜è®¤ false
+ */
+ draw(reserve?: boolean): void;
+
+ measureText(text: string): TextMetrics;
+ }
+ /**
+ * 创建 canvas 绘图上下文
+ *
+ * 该绘图上下文åªä½œç”¨äºŽå¯¹åº” canvasId çš„
+ */
+ function createCanvasContext(canvasId: string): ConvasContext;
+ //#endregion
+
+ //#region 地图 https://docs.alipay.com/mini/api/ui-map
+ interface GetCenterLocationOptions extends BaseOptions {
+ success?(res: { longitude: string; latitude: string; }): void;
+ }
+
+ interface MapContext extends BaseOptions {
+ /**
+ * 获å–当å‰åœ°å›¾ä¸å¿ƒçš„ç»çº¬åº¦ï¼Œè¿”回 gcj02 åæ ‡ç³»çš„值,å¯ä»¥ç”¨äºŽ my.openLocation
+ *
+ * @param options
+ */
+ getCenterLocation(options: GetCenterLocationOptions): void;
+ /**
+ * 将地图ä¸å¿ƒç§»åŠ¨åˆ°å½“å‰å®šä½ç‚¹ï¼Œéœ€è¦é…åˆ map 组件的 show-location 使用
+ */
+ moveToLocation(): void;
+ }
+
+ /**
+ * 创建并返回一个 map 上下文对象 mapContext。
+ *
+ * @param mapId
+ * @returns
+ */
+ function createMapContext(mapId: string): MapContext;
+
+ //#endregion
+
+ //#region 键盘 https://docs.alipay.com/mini/api/ui-hidekeyboard
+ /**
+ * éšè—键盘
+ *
+ */
+ function hideKeyboard(): void;
+ //#endregion
+
+ //#region 滚动 https://docs.alipay.com/mini/api/scroll
+ interface PageScrollToOptions {
+ scrollTop: number; // 滚动到页é¢çš„ç›®æ ‡ä½ç½®ï¼Œå•ä½ px
+ }
+
+ /**
+ * 滚动到页é¢çš„ç›®æ ‡ä½ç½®
+ *
+ * @param options
+ */
+ function pageScrollTo(options: PageScrollToOptions): void;
+ //#endregion
+
+ //#region 节点查询 https://docs.alipay.com/mini/api/selector-query
+ interface RectArea {
+ /** èŠ‚ç‚¹çš„å·¦è¾¹ç•Œåæ ‡ */
+ left: number;
+ /** 节点的å³è¾¹ç•Œåæ ‡ */
+ right: number;
+ /** èŠ‚ç‚¹çš„ä¸Šè¾¹ç•Œåæ ‡ */
+ top: number;
+ /** èŠ‚ç‚¹çš„ä¸‹è¾¹ç•Œåæ ‡ */
+ bottom: number;
+ /** 节点的宽度 */
+ width: number;
+ /** 节点的高度 */
+ height: number;
+ }
+ interface NodesRefRect extends RectArea {
+ /** 节点的ID */
+ id: string;
+ /** 节点的dataset */
+ dataset: any;
+ }
+ interface NodeRefOffset {
+ /** 节点的ID */
+ id: string;
+ /** 节点的dataset */
+ dataset: any;
+ /** 节点的水平滚动ä½ç½® */
+ scrollLeft: number;
+ /** 节点的竖直滚动ä½ç½® */
+ scrollTop: number;
+ }
+ interface NodesRef {
+ /**
+ * æ·»åŠ èŠ‚ç‚¹çš„å¸ƒå±€ä½ç½®çš„æŸ¥è¯¢è¯·æ±‚,相对于显示区域,以åƒç´ 为å•ä½ã€‚
+ * 其功能类似于DOM的getBoundingClientRect。
+ * 返回值是nodesRef对应的selectorQuery。
+ * 返回的节点信æ¯ä¸ï¼Œæ¯ä¸ªèŠ‚ç‚¹çš„ä½ç½®ç”¨
+ * leftã€rightã€topã€bottomã€widthã€heightå—æ®µæè¿°ã€‚
+ * 如果æä¾›äº†callback回调函数,在执行selectQueryçš„exec方法åŽ
+ * 节点信æ¯ä¼šåœ¨callbackä¸è¿”回。
+ */
+ boundingClientRect(
+ callback?: (rect: T) => void
+ ): SelectorQuery;
+ /**
+ * æ·»åŠ èŠ‚ç‚¹çš„æ»šåŠ¨ä½ç½®æŸ¥è¯¢è¯·æ±‚,以åƒç´ 为å•ä½ã€‚
+ * 节点必须是scroll-view或者viewport。
+ * 返回值是nodesRef对应的selectorQuery。
+ * 返回的节点信æ¯ä¸ï¼Œæ¯ä¸ªèŠ‚ç‚¹çš„æ»šåŠ¨ä½ç½®ç”¨scrollLeftã€scrollHeightå—æ®µæè¿°ã€‚
+ * 如果æä¾›äº†callback回调函数,在执行selectQueryçš„exec方法åŽï¼ŒèŠ‚ç‚¹ä¿¡æ¯ä¼šåœ¨callbackä¸è¿”回。
+ */
+ scrollOffset(callback?: (rect: NodeRefOffset) => void): SelectorQuery;
+ // /**
+ // * 获å–节点的相关信æ¯ï¼Œéœ€è¦èŽ·å–çš„å—æ®µåœ¨fields䏿Œ‡å®šã€‚
+ // * 返回值是nodesRef对应的selectorQuery。
+ // */
+ // fields(
+ // fields: NodeRefFieldsOptions,
+ // callback?: (result: any) => void
+ // ): SelectorQuery;
+ }
+ /**
+ * SelectorQuery对象实例
+ */
+ interface SelectorQuery {
+ // /**
+ // * 将选择器的选å–范围更改为自定义组件component内
+ // * (åˆå§‹æ—¶ï¼Œé€‰æ‹©å™¨ä»…选å–页é¢èŒƒå›´çš„节点,ä¸ä¼šé€‰å–任何自定义组件ä¸çš„节点
+ // * @version 1.6.0
+ // */
+ // in(component: Component