diff --git a/.editorconfig b/.editorconfig index d3bd86c3ba..404ff0701c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,5 +5,5 @@ indent_size = 4 trim_trailing_whitespace = true insert_final_newline = true -[{*.json,*.yml}] +[{*.json,*.yml,*.ts}] indent_style = space diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f4f973d6c8..930f751c85 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -2,4872 +2,4955 @@ # Add yourself to the "Definitions by:" list instead. # See https://github.com/DefinitelyTyped/DefinitelyTyped#edit-an-existing-package -/types/a-big-triangle/ @MathiasPaumgarten -/types/abbrev/ @BendingBender -/types/abs/ @AyaMorisawa -/types/absolute/ @AyaMorisawa -/types/abstract-leveldown/ @MeirionHughes @danwbyrne -/types/acc-wizard/ @cyrilschumacher -/types/accept-language-parser/ @kampfgnom -/types/accepts/ @bomret @brikou -/types/accounting/ @gerich-home @chrisleck -/types/ace/ @Diullei -/types/ace-diff/ @innovation-team -/types/acl/ @tkQubo -/types/acorn/ @RReverser @e-cloud -/types/actioncable/ @zhu1230 -/types/actions-on-google/ @joelhegg -/types/activedirectory2/ @pasthelod -/types/activex-access/ @zspitz -/types/activex-adodb/ @zspitz -/types/activex-adox/ @zspitz -/types/activex-dao/ @zspitz -/types/activex-diskquota/ @zspitz -/types/activex-excel/ @zspitz -/types/activex-faxcomexlib/ @zspitz -/types/activex-infopath/ @zspitz -/types/activex-interop/ @zspitz -/types/activex-iwshruntimelibrary/ @zspitz -/types/activex-libreoffice/ @zspitz -/types/activex-msforms/ @zspitz -/types/activex-mshtml/ @zspitz -/types/activex-msxml2/ @zspitz -/types/activex-office/ @zspitz -/types/activex-outlook/ @zspitz -/types/activex-powerpoint/ @zspitz -/types/activex-scripting/ @zspitz -/types/activex-shdocvw/ @zspitz -/types/activex-shell/ @zspitz -/types/activex-stdole/ @zspitz -/types/activex-vbide/ @zspitz -/types/activex-wia/ @zspitz -/types/activex-word/ @zspitz -/types/adal-angular/ @unindented @aciccarello -/types/add-zero/ @Roaders -/types/adm-zip/ @jvilk @abner -/types/adone/ @s0m3on3 @maxveres -/types/aframe/ @devpaul @bertoritger @twastvedt -/types/agenda/ @meirgottlieb @princjef -/types/agent-base/ @Shinigami92 -/types/aggregate-error/ @BendingBender -/types/agora-rtc-sdk/ @menthays -/types/ajv-errors/ @afshawnlotfi -/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/allure-js-commons/ @zaqqaz -/types/almost-equal/ @cmaddalozzo -/types/alt/ @Shearerbeard -/types/amazon-cognito-auth-js/ @scottescue -/types/amazon-product-api/ @MattiLehtinen @alien35 -/types/amcharts/ @ldrick -/types/amp/ @jewbre -/types/amp-message/ @jewbre -/types/amphtml-validator/ @kevincharm -/types/amplify/ @joeriks -/types/amplify-deferred/ @joeriks @laurentiustamate94 -/types/amplitude-js/ @Asido -/types/amqp/ @seikho @jonnysparkplugs -/types/amqp-connection-manager/ @rogierschouten -/types/amqp-rpc/ @wokim -/types/amqplib/ @mnahkies @abreits @nfantone @zelein -/types/analytics-node/ @fongandrew @thomasthiebaud -/types/anchor-js/ @xt0rted -/types/angular/ @diegovilar @thorn0 @calebstdenis @leonard-thieu @scipper -/types/angular-agility/ @rolandzwaga -/types/angular-animate/ @michelsalib @adidahiya @rasch @codyschaaf -/types/angular-block-ui/ @lassebn @sclassen @renjfk -/types/angular-bootstrap-calendar/ @Odrin -/types/angular-bootstrap-lightbox/ @rolandzwaga -/types/angular-breadcrumb/ @marctalary -/types/angular-clipboard/ @bradfordwagner -/types/angular-cookie/ @borislavjivkov -/types/angular-cookies/ @diegovilar @aciccarello -/types/angular-deferred-bootstrap/ @Ritzlgrmft -/types/angular-desktop-notification/ @Dona278 -/types/angular-dialog-service/ @wcomartin -/types/angular-dynamic-locale/ @stephenlautier -/types/angular-environment/ @terrawheat -/types/angular-es/ @mbutsykin -/types/angular-feature-flags/ @borislavjivkov -/types/angular-file-saver/ @deenairn -/types/angular-file-upload/ @cyrilgandon -/types/angular-formly/ @scatcher -/types/angular-fullscreen/ @julienpa -/types/angular-gettext/ @AkosLukacs -/types/angular-google-analytics/ @cyrilschumacher @Toxantron -/types/angular-gridster/ @jpmnteiro -/types/angular-growl-v2/ @mkp05 -/types/angular-hotkeys/ @jlz27 @reppners @cyrilgandon -/types/angular-http-auth/ @vvakame -/types/angular-httpi/ @Kukks -/types/angular-idle/ @mthamil -/types/angular-jwt/ @rerezz -/types/angular-load/ @david-gang -/types/angular-loading-bar/ @stephenlautier @tyronedougherty -/types/angular-local-storage/ @kenfdev @dona278 -/types/angular-localforage/ @reppners -/types/angular-locker/ @nkovacic -/types/angular-material/ @blbigelow @PeterHajdu @Dona278 @geertjansen @eknowles -/types/angular-media-queries/ @jpmnteiro -/types/angular-meteor/ @pgrm -/types/angular-mocks/ @diegovilar @daltin @thorn0 -/types/angular-modal/ @paullessing -/types/angular-oauth2/ @anteriovieira -/types/angular-pdfjs-viewer/ @bastienmoulia -/types/angular-permission/ @vmishevski -/types/angular-promise-tracker/ @rufusl -/types/angular-q-extras/ @mistic100 -/types/angular-q-spread/ @rafw87 -/types/angular-resource/ @diegovilar @miffels -/types/angular-route/ @park9140 @gkalpak -/types/angular-sanitize/ @diegovilar -/types/angular-scenario/ @RomanoLindano -/types/angular-scroll/ @samherrmann -/types/angular-signalr-hub/ @AdamSantaniello -/types/angular-spinner/ @Biegal -/types/angular-storage/ @mdekrey -/types/angular-strap/ @samherrmann @mkannwischer -/types/angular-toastr/ @nkovacic @trodi -/types/angular-toasty/ @muenchdo -/types/angular-tooltips/ @leonard-thieu -/types/angular-translate/ @michelsalib @GabrielGil -/types/angular-ui-bootstrap/ @xt0rted @ry8806 @alfiej -/types/angular-ui-router/ @michelsalib @matiishyn @mikehaas763 -/types/angular-ui-scroll/ @marknadig -/types/angular-ui-sortable/ @thgreasi -/types/angular-ui-tree/ @CalvinFernandez -/types/angular-websocket/ @nickveys -/types/angular-wizard/ @mjurisic @rwwilden -/types/angular-xeditable/ @jpmnteiro -/types/angular.throttle/ @reppners -/types/angularfire/ @thSoft -/types/angularlocalstorage/ @horiuchi -/types/angulartics/ @bateast2 -/types/animation-frame/ @qinfchen -/types/animejs/ @A-Babin -/types/annyang/ @hisham @theluk -/types/ansi-colors/ @rogierschouten -/types/ansi-escape-sequences/ @aomarks -/types/ansi-escapes/ @jacobbubu -/types/ansi-regex/ @mvachhar -/types/ansi-styles/ @brynbellomy @plylrnsdy -/types/ansicolors/ @rogierschouten -/types/antlr4/ @mcchatman8009 -/types/any-db/ @rogierschouten -/types/any-db-transaction/ @rogierschouten -/types/anybar/ @khoomeister -/types/anymatch/ @BendingBender -/types/apex.js/ @y13i -/types/aphrodite/ @asvetliakov -/types/api-error-handler/ @tkrotoff -/types/apicache/ @danielsogl -/types/apigee-access/ @CasperSkydt -/types/apollo-codegen/ @bradleyayers @kostspielig -/types/apollo-upload-client/ @Slessi -/types/app-root-dir/ @chenyang-biu -/types/app-root-path/ @shantmarouti -/types/appdmg/ @unindented -/types/appframework/ @kyo-ago -/types/applepayjs/ @martincostello -/types/appletvjs/ @brainded -/types/applicationinsights-js/ @kamilszostak @markwolff -/types/aqb/ @Athenkosi-Mase -/types/arangodb/ @pluma -/types/arbiter/ @arash16 -/types/arcgis-js-api/v3/ @Esri @bsvensson -/types/arcgis-js-api/ @Esri @bsvensson -/types/arcgis-rest-api/ @JeffJacobson -/types/arcgis-to-geojson-utils/ @JeffJacobson -/types/archiver/ @dolanmiu @crevil -/types/archy/ @vvakame -/types/are-we-there-yet/ @brianloveswords -/types/argon2-browser/ @ivangabriele -/types/argparse/ @arcticwaters @tlaziuk @eps1lon -/types/args/ @Slessi -/types/argv/ @hookclaw -/types/arr-union/ @mrmlnc -/types/array-find-index/ @samverschueren -/types/array-foreach/ @skysteve -/types/array-sort/ @DanielMSchmidt -/types/array-uniq/ @DanielRosenwasser -/types/array-unique/ @CSLTech -/types/arrify/ @wanganjun -/types/artillery/ @kmccoan-allocadia -/types/asana/ @tkqubo -/types/asap/ @fpascutti -/types/ascii2mathml/ @RagibHasin -/types/asenv/ @remisery -/types/asn1js/ @microshine -/types/aspnet-identity-pw/ @jt000 -/types/assert-equal-jsx/ @seryl -/types/assert-plus/ @KostyaTretyak -/types/assertsharp/ @brunolm -/types/assets-webpack-plugin/ @kryops -/types/async/ @borisyankov @kern0 @Penryn @fenying @pascalmartin -/types/async-cache/ @BendingBender -/types/async-lock/ @elisee @afharo @rhymmor -/types/async-polling/ @Goldsmith42 -/types/async-retry/ @albertywu @MeLlamoPablo -/types/async.nexttick/ @pyrho -/types/asynciterator/ @rubensworks -/types/atlaskit__button/ @dijimsta -/types/atlaskit__calendar/ @lstanden -/types/atlaskit__inline-edit/ @lstanden -/types/atlaskit__layer/ @lstanden -/types/atlaskit__single-select/ @lstanden -/types/atlassian-crowd-client/ @mtgto -/types/atmosphere.js/ @toedter @Mory1879 @Scipion -/types/atob/ @johngeorgewright -/types/atom/ @GlenCFL @smhxx @lierdakil -/types/atom-keymap/ @GlenCFL -/types/atom-mocha-test-runner/ @GlenCFL -/types/atpl/ @soywiz -/types/audiosprite/ @Perlmint -/types/auth0/ @wbhob @westy92 @amiram -/types/auth0-angular/ @homesar -/types/auth0-js/v7/ @advancedrei -/types/auth0-js/ @adrianchia @mdurrant @peterblazejewicz -/types/auth0-lock/ @carusology @goldcaddy77 @lfaudreejr @willcaul -/types/auth0.widget/ @advancedrei -/types/auto-bind/ @sseppola -/types/auto-launch/ @rhysd @unindented -/types/auto-sni/ @janwo -/types/autobahn/ @darkl @valepu -/types/autolinker/ @leonyu -/types/autoprefixer/ @odnamrataizem -/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 -/types/aws-serverless-express/ @threesquared @jcaffey @mattmeye @albertovasquez -/types/aws4/ @ajcrites -/types/axe-webdriverjs/ @JoshuaKGoldberg -/types/axel/ @ruslan-molodyko -/types/axios-token-interceptor/ @innovation-team -/types/axon/ @jewbre -/types/azure/ @AndrewGaspar @antiveeranna @SomaticIT -/types/azure-mobile-services-client/ @dmorosinotto -/types/azure-sb/ @Azure -/types/b_/ @outring -/types/babel-code-frame/ @mohsen1 -/types/babel-core/ @yortus @marvinhagemeister -/types/babel-generator/ @yortus @johnnyestilles -/types/babel-plugin-react-pug/ @jpap -/types/babel-plugin-syntax-jsx/ @marvinhagemeister -/types/babel-template/ @yortus @marvinhagemeister -/types/babel-traverse/ @yortus @marvinhagemeister @rpetrich -/types/babel-types/ @yortus @baxtersa @marvinhagemeister @bcherny -/types/babel-webpack-plugin/ @j-f1 -/types/babel__code-frame/ @mohsen1 @ForbesLindesay -/types/babel__core/ @yortus @marvinhagemeister @mgroenhoff -/types/babel__generator/ @yortus @johnnyestilles @mgroenhoff -/types/babel__parser/ @yortus @marvinhagemeister @mgroenhoff -/types/babel__template/ @yortus @marvinhagemeister @mgroenhoff -/types/babel__traverse/ @yortus @marvinhagemeister @rpetrich @mgroenhoff -/types/babelify/ @TeamworkGuy2 @marvinhagemeister -/types/babylon/ @yortus @marvinhagemeister -/types/babylon-walk/ @czbuchi -/types/babyparse/ @cdiddy77 -/types/backbone/ @borisyankov @nvivo @kenjiru -/types/backbone-associations/ @craigbrett17 -/types/backbone-fetch-cache/ @delphinus35 -/types/backbone-relational/ @eirikhm -/types/backbone.layoutmanager/ @hejiang2000 -/types/backbone.localstorage/ @lgrignon -/types/backbone.marionette/ @zhamid @nvivo @sventschui @razorness @confususs -/types/backbone.paginator/ @Nyamazing -/types/backbone.radio/ @alphaleonis -/types/backgrid/ @jlujan -/types/backlog-js/ @vvatanabe -/types/backo2/ @Retsam -/types/backoff/ @BendingBender -/types/baconjs/ @alexander-matsievsky @gekkio -/types/bagpipes/ @micmro -/types/barbellweights/ @evelijn -/types/barcode/ @pvomhoff -/types/bardjs/ @TepigMC -/types/base-64/ @dolanmiu -/types/base-x/ @chrootsu -/types/base16/ @alechill -/types/base64-arraybuffer/ @jbencook -/types/base64-js/ @pe8ter -/types/base64-url/ @urish -/types/base64topdf/ @lucasriondel -/types/bases/ @harikv -/types/bash-glob/ @mrmlnc -/types/basic-auth/ @moonpyk @vesse -/types/batch-stream/ @drudge -/types/bazinga-translator/ @alexndlm -/types/bcrypt/ @codeanimal @IOAyman @dstapleton92 -/types/bcryptjs/ @RafaelKr -/types/bdfjs/ @jeremejevs -/types/beats/ @urish -/types/bech32/ @micksatana -/types/behavior3/ @carrrywu -/types/bell/ @SimonSchick -/types/bem-cn/ @selkinvitaly -/types/bencode/ @tobenna -/types/better-curry/ @pocesar -/types/better-queue/ @maozedong -/types/better-scroll/ @stoneChen -/types/better-sqlite3/ @Morfent @matrumz -/types/bezier-easing/ @ptlis -/types/bezier-js/ @danmarshall -/types/bgiframe/ @sumegizoltan -/types/bidirectional-map/ @helenanderson -/types/big.js/ @nycdotnet @googol -/types/bigi/ @mhegazy -/types/bigint/ @Evgenus -/types/bignum/ @Patman64 -/types/bigscreen/ @dduugg -/types/bin-pack/ @orentrutner -/types/binary-parser/ @riggs @dolanmiu -/types/bind-ponyfill/ @skysteve -/types/bindings/ @unindented -/types/bintrees/ @CjS77 -/types/bip21/ @stefanhuber -/types/bip38/ @micksatana -/types/bip39/ @micksatana -/types/bit-array/ @mudkipme -/types/bitcoinjs-lib/ @mhegazy @dlebrecht @rbuckton @micksatana @youssefgh @kento1218 -/types/bitcore-lib/ @lautarodragan -/types/bittorrent-protocol/ @feross @tlaziuk -/types/bitwise-xor/ @rogierschouten -/types/bl/ @Bartvds -/types/blacklist/ @mhegazy -/types/blazy/ @julienpa -/types/blessed/ @brynbellomy @skellock -/types/blissfuljs/ @fskorzec -/types/blob-stream/ @erichillah -/types/blob-to-buffer/ @nrlquaker -/types/blob-util/ @WorldMaker -/types/blocked/ @l-jonas -/types/blockies/ @LogvinovLeon -/types/blocks/ @ksmigiel -/types/bloem/ @danwbyrne -/types/bloomfilter/ @slawiko -/types/blue-tape/ @sodatea -/types/bluebird/v1/ @Bartvds -/types/bluebird/v2/ @Bartvds @falsandtru -/types/bluebird/ @lhecker -/types/bluebird-global/ @d-ph -/types/bluebird-retry/ @pvomhoff -/types/blueimp-md5/ @rmartone @mkohlmyr -/types/bn.js/ @LogvinovLeon @HenryNguyen5 -/types/body-parser/ @santialbo @vilic @dreampulse @blendsdk @tlaziuk @jwalton -/types/body-parser-xml/ @tbounsiar -/types/bonjour/ @quentin-ol @octo-sniffle -/types/bookshelf/ @arcticwaters @vesse -/types/boom/v3/ @rogatty -/types/boom/v4/ @rogatty @AJamesPhillips @jineshshah36 @danielmachado -/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/ @denisname -/types/bootstrap-3-typeahead/ @AndersonFriaca -/types/bootstrap-datepicker/ @borisyankov -/types/bootstrap-fileinput/ @CheCoxshall -/types/bootstrap-growl-ifightcrime/ @AndersonFriaca -/types/bootstrap-maxlength/ @danmana -/types/bootstrap-notify/ @niemyjski @mouse0270 @robert-voica -/types/bootstrap-select/ @LKay -/types/bootstrap-slider/ @dbeckwith @leonard-thieu -/types/bootstrap-switch/ @johnmbaughman -/types/bootstrap-table/ @talatbaig -/types/bootstrap-touchspin/ @albinsunnanbo -/types/bootstrap-treeview/ @jbtronics -/types/bootstrap-validator/ @BradyLiles -/types/bootstrap.paginator/ @derikwhittaker -/types/bootstrap.timepicker/ @derikwhittaker @heatherbooker -/types/bootstrap.v3.datetimepicker/v3/ @bayitajesi -/types/bootstrap.v3.datetimepicker/ @katonap -/types/bootstrap3-dialog/ @nakupanda @cnboland -/types/bounce.js/ @cherrry -/types/box2d/ @jbaldwin -/types/bpmn-moddle/ @haydos89 -/types/brace-expansion/ @BendingBender -/types/braces/ @vemoo -/types/braft-editor/ @me -/types/braintree-web/ @chlela -/types/breeze/ @borisyankov -/types/bricks.js/ @kondi -/types/bro-fs/ @ffflorian -/types/brorand/ @chrootsu -/types/browser-bunyan/ @PaulLockwood @kryops -/types/browser-fingerprint/ @LKay -/types/browser-harness/ @scriby -/types/browser-pack/ @TeamworkGuy2 -/types/browser-report/ @JTOne123 -/types/browser-resolve/ @marionebl -/types/browser-sync/ @joeskeen @aznnomness -/types/browserify/ @AndrewGaspar @jvilk @leonard-thieu -/types/bs58/ @chrootsu -/types/bson/ @horiuchi @CaselIT -/types/btoa/ @johngeorgewright -/types/bucks/ @zaneli -/types/buffer-compare/ @chrootsu -/types/buffer-equal/ @Bartvds -/types/buffer-from/ @burnnat -/types/buffer-reader/ @nrlquaker -/types/buffers/ @rhencke -/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/bump-regex/ @silkentrance -/types/bunnymq/ @cyrilschumacher -/types/bunyan/ @amikhalev -/types/bunyan-blackhole/ @olivr70 -/types/bunyan-bugsnag/ @pasieronen -/types/bunyan-config/ @cyrilschumacher -/types/bunyan-format/ @dex4er -/types/bunyan-prettystream/ @jasonswearingen @enlight -/types/bunyan-winston-adapter/ @stevehipwell -/types/busboy/ @jacobbaskin -/types/business-rules-engine/ @rsamec -/types/bwip-js/ @MugeSo -/types/byline/ @reppners -/types/bytebuffer/ @cappellin -/types/bytes/ @danny8002 @believer -/types/c3/ @mcliment @gerinjacob @denyo @dmitryshindin @timn -/types/cache-manager/ @GausSim -/types/cal-heatmap/ @RetroChrisB -/types/callsite/ @newclear -/types/callsites/ @BendingBender -/types/calq/ @eirikhm -/types/camaro/ @tuananh -/types/camelcase/ @samverschueren -/types/camelcase-keys/ @mhegazy -/types/camo/ @lucasmciruzzi -/types/cancan/ @Vincent-Pang -/types/cannon/ @clark-stevenson @Gelio -/types/canvas-confetti/ @matracey -/types/canvas-gauges/ @Mikhus -/types/canvasjs/ @brutalimp -/types/capitalize/ @frederickfogerty -/types/capture-console/ @AustonZ -/types/card-validator/ @ChanceM -/types/case-sensitive-paths-webpack-plugin/ @r3nya -/types/caseless/ @downace @mastermatt -/types/cash/ @akvlko -/types/casperjs/ @jedmao @urielch -/types/cassandra-driver/ @Svjard @pc-jedi -/types/catbox/v7/ @jasonswearingen @AJamesPhillips -/types/catbox/ @jasonswearingen @AJamesPhillips @saboya -/types/catbox-redis/ @SimonSchick -/types/cbor/ @pushplay -/types/ccap/ @taoqf -/types/cesium/ @Zuzon @hnipps @szechyjs @golyalpha -/types/chai/v2/ @Bartvds @AGBrown -/types/chai/ @jedmao @Bartvds @AGBrown @olivr70 @mwistrand @joshuakgoldberg @shaunluttin @Naktibalda @micksatana @ErikSchierboom -/types/chai-arrays/ @clementprevot -/types/chai-as-promised/ @jt000 @Kuniwak @leonard-thieu @lazerwalker @mattbishop -/types/chai-datetime/ @cliffburger @mattbishop -/types/chai-dom/ @mattlewis92 -/types/chai-enzyme/ @asvetliakov -/types/chai-fuzzy/ @Bartvds -/types/chai-http/ @Nemo157 @G1itcher @CaselIT @bas-l -/types/chai-jest-snapshot/ @mattvperry -/types/chai-jquery/ @kazimanzurrashid -/types/chai-json-schema/ @ulrichheiniger -/types/chai-oequal/ @mizunashi-mana -/types/chai-roughly/ @swist -/types/chai-spies/ @kuzn-ilya @harm-less @jounisuo -/types/chai-string/ @nmalaguti -/types/chai-subset/ @delta62 @AGBrown -/types/chai-uuid/ @harm-less -/types/chai-webdriverio/ @sherlock1982 -/types/chai-xml/ @jedigo -/types/chance/ @cbowdon @brikou @cafesanu -/types/change-emitter/ @iskandersierra -/types/chardet/ @Gebatzens -/types/charm/ @Xananax -/types/charset/ @cspotcode -/types/chart.js/ @anuti @FabienLavocat @KentarouTakeda @larrybahr @mernen @josefpaij @danmana @guillaume-ro-fr @chicoxyzzy @archy-bold @braincore @gebeto @frabnt @alexdor @mahnuh -/types/chartist/ @mtgibbs @psimonski @clottman @affilnost @sunnyrjuneja -/types/chartmogul-node/ @chartmogul -/types/chayns/ @HenningKuehl -/types/check-sum/ @BendingBender -/types/check-types/ @idchlife -/types/checkstyle-formatter/ @mhegazy -/types/checksum/ @rogierschouten -/types/cheerio/ @blittle @wmaurer @umarniz @LiJinyao @chennakrishna8 -/types/chessboardjs/ @sliverb @davidmpaz -/types/chmodr/ @BendingBender -/types/chokidar/ @reppners @felixfbecker @bayssmekanique -/types/chosen-js/ @borisyankov @denisname -/types/chownr/ @BendingBender -/types/chroma-js/v0/ @invliD -/types/chroma-js/ @invliD @mpacholec -/types/chrome/ @matthewkimber @otiai10 @couven92 @rreverser @sreimer15 -/types/chrome-apps/ @niikoo @AdamLay @pine613 @mzsm @RReverser @pyle @matthewkimber @otiai10 @couven92 @rreverser @sreimer15 -/types/chromecast-caf-receiver/ @craigrbruce -/types/chromecast-caf-sender/ @samuelmaddock -/types/chromedriver/ @pe8ter -/types/circuit-breaker-js/ @DeTeam -/types/circular-json/ @jpevarnek -/types/ckeditor/v2/ @wittwert -/types/ckeditor/ @wittwert @stuartlong -/types/clamp-js/ @Hikariii -/types/clamp-js-main/ @sinziananicolae -/types/classnames/ @adidahiya @JKillian @seansfkelley @mradamczyk @marvinhagemeister -/types/cldrjs/ @RamanBut-Husaim @gcastre -/types/clean-css/ @tkrotoff -/types/clean-stack/ @BendingBender -/types/clean-webpack-plugin/ @j-f1 -/types/clear-require/ @dan-j -/types/clearbladejs-client/ @ClearBlade -/types/clearbladejs-node/ @ClearBlade -/types/clearbladejs-server/ @ClearBlade -/types/cleave.js/ @clentfort @jasongi-at-sportsbet @sashashakun -/types/cli/ @kayahr -/types/cli-color/ @ChaosinaCan -/types/cli-progress/ @mhegazy -/types/cli-spinner/ @janslow -/types/cli-table/ @arylo -/types/cli-table2/ @mgroenhoff -/types/cli-truncate/ @danwbyrne -/types/client-sessions/ @netroy -/types/clientjs/ @icopp -/types/cliff/ @brynbellomy -/types/clipboard/ @impworks -/types/clipboard-js/ @markwongsk -/types/clipboardy/ @BendingBender -/types/clmtrackr/ @hellochar -/types/clndr/ @jasperjn -/types/clockpicker/ @jfcere -/types/cloneable-readable/ @qlonik -/types/cloner/ @matrumz -/types/closure-compiler/ @mprobst -/types/cloud-env/ @Morfent -/types/cloudflare-apps/ @MartynasZilinskas -/types/cls-hooked/ @aleung -/types/clusterize.js/ @Pr1st0n -/types/cmd-shim/ @cspotcode -/types/co-body/ @geoffreak -/types/co-views/ @devlee @geoffreak -/types/code/ @prashaantt -/types/codemirror/ @mihailik @nrbernard @Pr1st0n @rileymiller -/types/codependency/ @morphatic -/types/coffeeify/ @tkQubo -/types/coinbase/ @rogierschouten -/types/coinstring/ @mhegazy -/types/collections/ @scarabedore -/types/color/v0/ @LKay -/types/color/v1/ @LKay -/types/color/v2/ @Airlun -/types/color/ @Airlun @jameswlane -/types/color-convert/ @Airlun -/types/color-name/ @Ailrun -/types/color-namer/ @in19farkt -/types/color-string/ @BendingBender @danmarshall -/types/colorbrewer/ @mtraynham -/types/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/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/common-errors/ @icopp -/types/common-prefix/ @seangenabe -/types/common-tags/ @zuzusik @tzupengwang -/types/commondir/ @leonard-thieu -/types/commonmark/ @nicojs @leonard-thieu -/types/compare-version/ @jpevarnek -/types/compare-versions/ @LogvinovLeon -/types/complex/ @AyaMorisawa -/types/component-emitter/ @psnider -/types/compose-function/ @denis-sokolov -/types/compressible/ @BendingBender -/types/compression/ @santialbo @rburgt -/types/compression-webpack-plugin/ @dublicator -/types/compute-stdev/ @mrmlnc -/types/concat-stream/ @jmarianer -/types/concaveman/ @DenisCarriere -/types/conf/v0/ @SamVerschueren -/types/conf/ @SamVerschueren @BendingBender -/types/confidence/ @jppellerin -/types/config/ @RWander @forrestbice @jndonald3 @albertovasquez -/types/config-yaml/ @me -/types/configstore/ @ArcticLight -/types/configurable/ @jewbre -/types/confit/ @ethanresnick -/types/connect/ @SomaticIT @EvanHahn -/types/connect-busboy/ @pinguet62 -/types/connect-ensure-login/ @0x6368656174 -/types/connect-flash/ @AndreasGassmann -/types/connect-history-api-fallback/ @douglasduteil -/types/connect-livereload/ @SomaticIT -/types/connect-modrewrite/ @tinganho -/types/connect-mongo/ @Syati -/types/connect-mongodb-session/ @NattapongSiri -/types/connect-pg-simple/ @pasieronen -/types/connect-redis/ @xstoudi @morcerf -/types/connect-slashes/ @samherrmann -/types/connect-timeout/ @cyrilschumacher -/types/console-log-level/ @ofrobots -/types/console-stamp/ @ericbyers @guusdegraeve -/types/consolidate/ @soywiz @theosherry @nicolashenry -/types/consul/ @chrootsu -/types/content-disposition/ @bomret -/types/content-type/ @horiuchi @BendingBender -/types/contentful-resolve-response/ @antonkarsten -/types/contextjs/ @kernhanda -/types/continuation-local-storage/ @rath @heycalmdown @aboveyou00 -/types/convert-hrtime/ @BendingBender -/types/convert-layout/ @xeningem -/types/convert-source-map/ @AndrewGaspar @mgroenhoff @TeamworkGuy2 -/types/convict/ @Nemo157 @vesse @elyscape @vanthiyathevan -/types/cookie/ @pine613 -/types/cookie-parser/ @santialbo @BendingBender -/types/cookie-session/ @borislavjivkov -/types/cookie-signature/ @lith-light-g -/types/cookie_js/ @slawiko -/types/cookiejar/ @paroxp -/types/cookies/ @WangZishi @jkeylu @BendingBender -/types/copy-paste/ @SrTobi -/types/copy-text-to-clipboard/ @BendingBender -/types/copy-webpack-plugin/ @flying-sheep -/types/cordova-ionic/ @hendrikmaus -/types/cordova-plugin-app-version/ @Ritzlgrmft -/types/cordova-plugin-background-mode/ @Lordnoname -/types/cordova-plugin-badge/ @timbru31 -/types/cordova-plugin-ble-central/ @gjunge -/types/cordova-plugin-canvascamera/ @lordazzi -/types/cordova-plugin-device-name/ @larrybahr -/types/cordova-plugin-file-opener2/ @cyrilgandon -/types/cordova-plugin-ibeacon/ @Ritzlgrmft -/types/cordova-plugin-insomnia/ @Ritzlgrmft -/types/cordova-plugin-keyboard/ @danmana @jkfb -/types/cordova-plugin-mapsforge/ @rafw87 -/types/cordova-plugin-ms-adal/ @KaiWalter -/types/cordova-plugin-native-keyboard/ @lobo87 -/types/cordova-plugin-ouralabs/ @Justin-Credible -/types/cordova-plugin-qrscanner/ @bitjson @jab -/types/cordova-plugin-spinner/ @Justin-Credible -/types/cordova-plugin-x-socialsharing/ @Ritzlgrmft @larrybahr -/types/cordova-sqlite-storage/ @rafw87 -/types/cordova-universal-links-plugin/ @broder -/types/cordova_app_version_plugin/ @larrybahr -/types/cordovarduino/ @hendrikmaus -/types/core-js/ @rbuckton @mfdeveloper -/types/correlation-id/ @natemara -/types/cors/ @pluma -/types/cosmiconfig/v4/ @ozum -/types/cosmiconfig/ @ozum @szeck87 @saadq @jinwoo -/types/cote/ @makepost -/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/coverup/ @bevalorous -/types/cp-file/ @BendingBender -/types/cpx/ @alan-agius4 -/types/cpy/ @mhegazy @BendingBender -/types/cqrs-domain/ @blissi -/types/cradle/ @panuhorsmalahti -/types/crc/ @YuJianrong -/types/create-error/ @tkrotoff -/types/create-react-class/ @jgoz -/types/create-subscription/ @Asana @vsiao -/types/createjs/ @evilangelist @gyohk -/types/createjs-lib/ @evilangelist @gyohk -/types/credential/ @phuvo -/types/credit-card-type/ @LKay -/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/cryptiles/ @awendland -/types/crypto-js/ @misak113 -/types/crypto-random-string/ @MrManny -/types/cryptojs/ @giabao -/types/cson/ @stpettersens -/types/csprng/ @winksaville -/types/csrf/ @markis -/types/css/ @ilich -/types/css-font-loading-module/ @slikts -/types/css-modules/ @NeekSandhu -/types/css-to-style/ @bengry -/types/cssbeautify/ @rictic -/types/cssnano/ @odnamrataizem -/types/csso/ @screendriver -/types/csurf/ @horiuchi -/types/csv-parse/ @davidm77 @obi-jan-kenobi -/types/csv-stringify/ @rogierschouten @arjenvanderende -/types/csv2json/ @dex4er -/types/csvrow/ @codeanimal -/types/csvtojson/ @EricByers @wcarson -/types/cucumber/v1/ @abraaoalves @jan-molak @isoung @BendingBender -/types/cucumber/v3/ @abraaoalves @jan-molak @isoung @BendingBender @ErikSchierboom -/types/cucumber/ @abraaoalves @jan-molak @isoung @BendingBender @ErikSchierboom -/types/currency-formatter/ @mhegazy @davidmpaz -/types/custom-error-generator/ @thmiceli -/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-axis/ @tomwanzek @gustavderdrache @borisyankov @denisname -/types/d3-box/ @lk-chen -/types/d3-brush/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-chord/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-collection/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-color/ @tomwanzek @gustavderdrache @borisyankov @denisname @ledragon -/types/d3-contour/ @tomwanzek @Ledragon -/types/d3-dispatch/ @tomwanzek @gustavderdrache @borisyankov @denisname -/types/d3-drag/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-dsv/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-ease/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-fetch/ @ledragon -/types/d3-force/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-format/ @tomwanzek @gustavderdrache @borisyankov @denisname -/types/d3-geo/ @ledragon @tomwanzek @gustavderdrache @borisyankov -/types/d3-hexbin/ @uncovertruth @tomwanzek -/types/d3-hierarchy/ @tomwanzek @gustavderdrache @borisyankov @denisname -/types/d3-hsv/ @arrayjam @denisname -/types/d3-interpolate/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-path/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-polygon/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-quadtree/ @tomwanzek @gustavderdrache @borisyankov @denisname -/types/d3-queue/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-random/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-request/ @Ledragon @gustavderdrache @borisyankov @tomwanzek -/types/d3-sankey/ @tomwanzek @gustavderdrache -/types/d3-scale/v1/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-scale/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-scale-chromatic/ @Ledragon @gustavderdrache @borisyankov @henriquefm -/types/d3-selection/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-selection-multi/ @gustavderdrache @borisyankov -/types/d3-shape/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-time/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-time-format/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-timer/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-tip/ @brspnnggrt -/types/d3-transition/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-voronoi/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-zoom/ @tomwanzek @gustavderdrache @borisyankov -/types/d3.cloud.layout/ @hansrwindhoff -/types/d3.slider/ @lk-chen -/types/d3kit/ @morphatic -/types/d3pie/ @mc-petry -/types/dagre/ @qinfchen @Frankrike @vilterp @rustedgrail -/types/dagre-d3/ @markwongsk -/types/dagre-layout/ @qinfchen @Frankrike @vilterp -/types/dargs/ @BendingBender -/types/dashify/ @rokt33r -/types/dat.gui/ @gyohk @sonic3d @rroylance -/types/data-driven/ @mrhen -/types/datadog-metrics/ @pushplay -/types/datadog-tracer/ @dineshsaravanan -/types/datatables.net/ @Silver-Connection @omidkrad @pragmatrix @CNBoland -/types/datatables.net-autofill/ @andy-maca -/types/datatables.net-buttons/ @Silver-Connection @SammyG4Free @jimhartford -/types/datatables.net-colreorder/ @andy-maca -/types/datatables.net-fixedheader/ @szechyjs @Silver-Connection -/types/datatables.net-rowgroup/ @maixiu -/types/datatables.net-rowreorder/ @baywet -/types/datatables.net-scroller/ @RohdeK -/types/datatables.net-select/ @szechyjs -/types/date-arithmetic/ @HeeL -/types/date.format.js/ @balrob -/types/dateformat/ @aicest -/types/datejs/ @rupertavery -/types/daterangepicker/ @SirMartin @smasala @nertzy -/types/dav/ @ToastHawaii -/types/db-migrate-base/ @nickiannone -/types/db-migrate-pg/ @nickiannone -/types/db.js/ @cgwrench -/types/dc/ @hansrwindhoff @mtraynham @MatthiasJobst -/types/dd-trace/ @ColinBradley @alloy -/types/deasync/ @Sicilica -/types/debessmann/ @vkorehov -/types/debounce/ @denis-sokolov -/types/debug/ @swook @galtalmor @zamb3zi -/types/decamelize/ @samverschueren -/types/decay/ @enaeseth -/types/decompress/ @plantain-00 @jbethke -/types/decompress-response/ @DanielRosenwasser -/types/decorum/ @dflor003 -/types/dedent/ @douglasduteil -/types/deep-assign/ @souldreamer -/types/deep-diff/ @ZauberNerd -/types/deep-equal/ @remojansen @janslow -/types/deep-extend/ @rhysd -/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 -/types/defined/ @BendingBender -/types/deglob/ @saadq -/types/deku/ @pocka -/types/del/v2/ @AyaMorisawa -/types/del/ @AyaMorisawa @BendingBender @bitjson -/types/delaunator/ @DenisCarriere -/types/delay/ @BendingBender -/types/deline/ @iarroyo5 -/types/deluge/ @Diasiare -/types/denodeify/ @joaomoreno -/types/deoxxa-content-type/ @pine613 -/types/depcheck/ @ark120202 -/types/depd/ @danny8002 @BendingBender -/types/dependency-tree/ @joscha -/types/deployjava/ @cyrilschumacher -/types/derhuerst__cli-on-key/ @jacobbubu -/types/destroy/ @BendingBender -/types/destroy-on-hwm/ @BendingBender -/types/detect-browser/ @rogierschouten -/types/detect-hover/ @thomastilkema -/types/detect-indent/v0/ @Bartvds -/types/detect-indent/ @Bartvds @BendingBender -/types/detect-it/ @thomastilkema -/types/detect-newline/ @BendingBender -/types/detect-node/ @LogvinovLeon -/types/detect-passive-events/ @thomastilkema -/types/detect-pointer/ @thomastilkema -/types/detect-port/ @lith-light-g -/types/detect-touch-events/ @thomastilkema -/types/detox/ @TareqElMasri -/types/devexpress-aspnetcore-bootstrap/ @devexpress @skubarenko -/types/df-visible/ @Litee -/types/dhtmlxgantt/ @mkozhukh @chriscamicas -/types/dhtmlxscheduler/ @mkozhukh -/types/di/ @johnjbarton -/types/di-lite/ @dcrusader -/types/diacritics/ @otociulis -/types/dialogflow/ @dyladan -/types/diff/ @vvakame @szdc -/types/diff2html/ @rtfpessoa -/types/dir-resolve/ @andy-ms -/types/discontinuous-range/ @OiCMudkips -/types/discourse-sso/ @championswimmer -/types/dispatchr/ @Ragg- -/types/disposable-email-domains/ @geoffreak -/types/dnssd/ @angelmerino @Maxr1998 -/types/doccookies/ @jonegerton -/types/dockerode/ @seikho @nlaplante @isac322 @lazarusx @meisenzahl @thegecko -/types/docopt/ @giggio -/types/doctrine/ @rictic -/types/document-promises/ @NotWoods -/types/document-ready/ @Jack-Works -/types/documentdb/ @NoelAbrahams @brettferdosi @ctstone @yifanwu -/types/documentdb-server/ @lith-light-g -/types/documentdb-session/ @DanielRosenwasser -/types/dojo/ @vansimke -/types/dom-clipboard-api/ @43081j -/types/dom-inputevent/ @diagramatics -/types/dom-to-image/ @JipSterk -/types/dom4/ @adidahiya @giladgray -/types/domo/ @Steve-Fenton -/types/dompurify/ @bazuzi -/types/domready/ @dotnetnerd -/types/donna/ @vvakame -/types/dookie/ @swanest -/types/dot/ @ZombieHunter -/types/dot-object/ @nkovacic -/types/dot-prop/v2/ @samverschueren -/types/dot-prop/ @samverschueren @BendingBender -/types/dotdir-regex/ @mrmlnc -/types/dotdotdot/ @milanjaros -/types/dotenv/v2/ @jussikinnula @borekb @enaeseth -/types/dotenv/ @jussikinnula @borekb @enaeseth -/types/dotenv-safe/ @krenor -/types/dotenv-webpack/ @karol-majewski -/types/dotfile-regex/ @mrmlnc -/types/dottie/ @domarmstrong -/types/double-ended-queue/ @dsagal -/types/doublearray/ @mzsm -/types/doubleclick-gpt/ @johngeorgewright @steven-joyce -/types/download/ @nicojs -/types/downloadjs/ @cwmoo740 -/types/draft-js/ @dmitryrogozhny @eelco @ghotiphud @schwers @michael-yx-wu @willisplummer @smvilar @sulf -/types/drag-timetable/ @chinkan -/types/draggabilly/ @jaydubu -/types/dragster/ @zskovacs -/types/dragula/ @pwelter34 @abruzzihraig -/types/dropboxjs/ @Steve-Fenton @xperiments -/types/dropkickjs/ @VorobeY1326 -/types/dropzone/v4/ @nvivo @outring @renuo @Hikariii -/types/dropzone/ @nvivo @outring @renuo @Hikariii @tedbcsgpro @dwaxweiler -/types/dts-generator/ @mtraynham -/types/duplexer2/ @Goldsmith42 -/types/duplexer3/ @BendingBender -/types/duplexify/ @strax -/types/duplicate-package-checker-webpack-plugin/ @mtraynham -/types/durandal/ @BlueSpire -/types/dustjs-linkedin/ @mdezem -/types/dvtng-jss/ @Ptival -/types/dw-bxslider-4/ @namerci -/types/dwt/v12/ @yushulx -/types/dwt/ @yushulx @jbh @lincoln2018 @Tom-Dynamsoft -/types/dygraphs/ @danvk -/types/dymo-label-framework/ @thijskuipers -/types/dynatable/ @francoismassart -/types/dynogels/ @SpartanLabs @ramondeklein @stephentuso -/types/each/ @misak113 -/types/earcut/ @NaridaL -/types/easeljs/ @evilangelist -/types/eases/ @MathiasPaumgarten -/types/easy-api-request/ @DeadAlready -/types/easy-jsend/ @DeadAlready -/types/easy-session/ @DeadAlready -/types/easy-table/ @nikeee -/types/easy-xapi/ @DeadAlready -/types/easy-xapi-utils/ @DeadAlready -/types/ebongarde-root/ @Ebongarde -/types/echarts/ @xieisabug @AntiMoron @liveangela @Ovilia -/types/ecma-proposal-math-extensions/ @ksm2 -/types/ecurve/ @mhegazy -/types/ed25519/ @erikma -/types/ed2curve/ @ffflorian -/types/egg-mock/ @sheperdwind -/types/egg.js/ @ToastHawaii -/types/egjs__axes/ @naver -/types/egjs__component/ @naver -/types/ej.web.all/ @syncfusion -/types/ejs/ @benliddicott -/types/ejs-locals/ @jt000 -/types/ejson/ @shantanubhadoria -/types/elasticsearch/ @CasperSkydt @bfsmith @ddunkin @pushplay @mlamp @ahmadferdous @SimonSchick @brabster @deerawan -/types/electron-config/ @mrfunkycold @unindented -/types/electron-debug/ @unindented -/types/electron-devtools-installer/ @gamesmaxed @mfatihmar -/types/electron-is-dev/ @trodi -/types/electron-json-storage/ @stpettersens @nrlquaker @jbw91 -/types/electron-notifications/ @djpereira -/types/electron-notify/ @djpereira -/types/electron-packager/ @SomaticIT @cortopy @jkleinsc @shiftkey -/types/electron-settings/v2/ @leonard-thieu -/types/electron-settings/ @icopp @nrlquaker -/types/electron-spellchecker/ @unindented -/types/electron-store/ @unindented @jsynowiec -/types/electron-unhandled/ @jeremejevs -/types/electron-util/ @kputh -/types/electron-window-state/ @rhysd -/types/electron-winstaller/ @shiftkey @unindented -/types/elegant-spinner/ @danwbyrne -/types/element-ready/ @BendingBender -/types/element-resize-detector/ @saranshkataria -/types/element-resize-event/ @rogierschouten @plgregoire -/types/elementtree/ @dwieeb -/types/elm/ @thSoft -/types/email-templates/ @cyrilschumacher @gurisko @blankstar85 -/types/ember/v1/ @jedmao -/types/ember/ @jedmao @bttf @dwickern @chriskrycho @theroncross @mfeckie @alexlafroscia @mike-north -/types/ember-data/ @dwickern @mike-north @chriskrycho -/types/ember-feature-flags/ @tansongyang -/types/ember-mocha/ @dwickern @simonihmig -/types/ember-modal-dialog/ @tansongyang -/types/ember-qunit/v2/ @dwickern -/types/ember-qunit/ @dwickern -/types/ember-resolver/ @dfreeman -/types/ember-test-helpers/ @dwickern -/types/ember-testing-helpers/ @chriskrycho -/types/ember__test-helpers/ @dfreeman @jamescdavis -/types/emissary/ @vvakame -/types/emoji-mart/ @Kovensky @Nicell -/types/emoji-regex/ @iKBAHT -/types/emojione/ @dbrgn -/types/empower/ @vvakame -/types/emscripten/ @zakki @periklis -/types/end-of-stream/ @strax -/types/engine.io/ @KentarouTakeda -/types/engine.io-client/ @KentarouTakeda -/types/enhanced-resolve/ @e-cloud @onigoetz @johnnyreilly -/types/enigma.js/ @konne -/types/enquire.js/ @screendriver -/types/ent/ @rogierschouten -/types/entities/ @aliceklipper -/types/env-paths/ @danwbyrne -/types/env-to-object/ @MugeSo -/types/envify/ @tkQubo -/types/enzyme/ @MarianPalkus @NoHomey @jwbay @huhuanming @MartynasZilinskas @thovden @hotell -/types/enzyme-adapter-react-15/ @tkrotoff -/types/enzyme-adapter-react-15.4/ @nali -/types/enzyme-adapter-react-16/ @tkrotoff -/types/enzyme-redux/ @knegusen -/types/enzyme-to-json/ @joscha -/types/eonasdan-bootstrap-datetimepicker/ @ToastHawaii -/types/epiceditor/ @borisyankov -/types/epilogue/ @micksatana -/types/epub/ @julien-c -/types/eq.js/ @stephenlautier -/types/error-subclass/ @fitbit -/types/errorhandler/ @santialbo -/types/es-feature-detection/ @Jack-Works -/types/es6-collections/ @rbuckton -/types/es6-promisify/ @harryshipton @bschlenk -/types/es6-shim/ @rbuckton -/types/es6-weak-map/ @pine -/types/escape-html/ @elisee -/types/escape-latex/ @olsio -/types/escape-regexp/ @jewbre -/types/escape-string-regexp/ @kruncher @faergeek -/types/escodegen/ @simondel -/types/eslint/ @pmdartus @j-f1 @saadq -/types/eslint-plugin-prettier/ @ikatyang -/types/eslint-scope/ @mysticatea -/types/eslint-visitor-keys/ @mysticatea -/types/esprima/v2/ @teppeis @RReverser -/types/esprima/ @teppeis @RReverser @peter-scott -/types/esprima-walk/ @tswaters -/types/espruino/ @stasberkov @createdbyjurand -/types/esri-leaflet/ @strajuser -/types/esri-leaflet-geocoder/ @BendingBender -/types/estraverse/ @sanex3339 -/types/estree/ @RReverser -/types/etag/ @BendingBender -/types/eth-lightwallet/ @LogvinovLeon -/types/ethereum-protocol/ @LogvinovLeon -/types/ethereumjs-abi/ @LogvinovLeon -/types/ethereumjs-tx/ @LogvinovLeon -/types/ethereumjs-util/ @cortopy -/types/ethjs-signer/ @doppio -/types/eureka-js-client/ @Schnillz -/types/evaporate/ @kookster @chrisrhoden @ailrun -/types/event-emitter/ @LKay -/types/event-emitter-es6/ @ahstro -/types/event-hooks-webpack-plugin/ @pine -/types/event-kit/ @GlenCFL -/types/event-loop-lag/ @rogierschouten -/types/event-stream/ @flcdrg -/types/event-to-promise/ @flying-sheep -/types/events/ @yasupeke -/types/eventsource/ @scottleedavis @afroozeh -/types/evernote/ @corps -/types/ex-react-native-i18n/ @maplerichie -/types/excel-style-dataformatter/ @SanderDeWaal1992 -/types/exceljs/ @rogierschouten @alitaheri -/types/execa/ @douglasduteil @BendingBender @borekb @mickdekkers -/types/exenv/ @christianchown -/types/exit/ @Bartvds -/types/exit-hook/ @BendingBender -/types/exorcist/ @TeamworkGuy2 -/types/expect/ @jmreidy @merrywhether -/types/expect-puppeteer/ @JoshuaKGoldberg @tkrotoff -/types/expect.js/ @teppeis -/types/expectations/ @vvakame -/types/expired-storage/ @intolerance -/types/expo/v23/ @KonstantinKai -/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__status-bar-height/ @dawnmist -/types/expo__vector-icons/ @incleaf -/types/express/ @borisyankov -/types/express-brute/ @cyrilschumacher -/types/express-brute-memcached/ @cyrilschumacher -/types/express-brute-mongo/ @cyrilschumacher -/types/express-brute-redis/ @scottharwell -/types/express-bunyan-logger/ @shreyjain1994 -/types/express-busboy/ @pinguet62 -/types/express-cluster/ @nenadalm -/types/express-correlation-id/ @natemara -/types/express-debug/ @federicobond -/types/express-domain-middleware/ @hookclaw -/types/express-ejs-layouts/ @erikma -/types/express-enforces-ssl/ @kevinstubbs -/types/express-fileupload/ @Naktibalda @silkimen -/types/express-flash/ @iMobs -/types/express-flash-2/ @mathsalmi -/types/express-flash-notification/ @Mister4Eyes -/types/express-formidable/ @tdolsen @evanshortiss -/types/express-graphql/ @isman-usoh @nitintutlani @hubel @zya @mlamp @firede -/types/express-handlebars/ @stpettersens @yhaskell -/types/express-jsonschema/ @atd-schubert -/types/express-jwt/ @wokim @kacepe @Sl1MBoy @milan-mimra -/types/express-less/ @xieyubo -/types/express-minify/ @borislavjivkov -/types/express-mongo-sanitize/ @ericbyers -/types/express-mung/ @cyrilschumacher -/types/express-myconnection/ @Cellule -/types/express-mysql-session/ @Akim95 -/types/express-oauth-server/ @atd-schubert -/types/express-openapi/ @mugeso -/types/express-paginate/ @AmirTugi -/types/express-partials/ @jt000 -/types/express-promise-router/ @wanganjun -/types/express-rate-limit/ @cyrilschumacher @makepost -/types/express-redis-cache/ @ajliv -/types/express-route-fs/ @kripod -/types/express-routemap/ @icopp -/types/express-sanitized/ @cjbarth -/types/express-serve-static-core/ @borisyankov @19majkel94 @kacepe @micksatana @samijaber -/types/express-session/ @horiuchi @jacobbogers @builtinnya @ry7n -/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-xml-bodyparser/ @noticeMaker @macedigital -/types/extend/ @reppners -/types/extjs/ @brian428 -/types/extract-files/ @Slessi -/types/extract-stack/ @BendingBender -/types/extract-text-webpack-plugin/ @flying-sheep @katyo -/types/extract-zip/ @mizunashi-mana -/types/extsprintf/ @AlexHankins -/types/eyes/ @brynbellomy -/types/ez-plus/ @AndersonFriaca -/types/f1/ @neolwc -/types/fabric/ @oklemencic @joewashear007 @mrand01 @NotWoods @bmartinson @RogerioTeixeira -/types/facebook-instant-games/ @menushka @oyvindjam -/types/facebook-js-sdk/ @amritk @mahmoudzohdi -/types/facebook-pixel/ @noctishsu -/types/faker/v3/ @Kuniwak -/types/faker/ @bensw @basp @Kuniwak @mattbishop -/types/falcor/ @Quramy -/types/falcor-express/ @Quramy -/types/falcor-http-datasource/ @Quramy -/types/falcor-json-graph/ @Quramy -/types/falcor-router/ @Quramy @cdhgee -/types/famous/ @borisvasilenko -/types/fancy-log/ @pine -/types/fancybox/ @borisyankov -/types/farbtastic/ @EnableSoftware -/types/fast-diff/ @djrenren -/types/fast-levenshtein/ @mizunashi-mana -/types/fast-list/ @BendingBender -/types/fast-stats/ @rogierschouten -/types/fastclick/ @shinnn -/types/favico.js/ @drowse314-dev-ymat -/types/favicons/ @mohsen1 -/types/fb/ @JoshStrobl -/types/fb-watchman/ @whtsky -/types/fbemitter/ @kmxz -/types/feather-icons/ @jineshshah36 -/types/featherlight/ @xStrom -/types/feathersjs__authentication/ @AbraaoAlves @j2L4e -/types/feathersjs__authentication-client/ @AbraaoAlves @j2L4e -/types/feathersjs__authentication-jwt/ @j2L4e -/types/feathersjs__authentication-local/ @j2L4e -/types/feathersjs__authentication-oauth1/ @j2L4e -/types/feathersjs__authentication-oauth2/ @j2L4e -/types/feathersjs__configuration/ @j2L4e -/types/feathersjs__errors/ @j2L4e -/types/feathersjs__express/ @j2L4e @DadUndead -/types/feathersjs__feathers/ @j2L4e @AbraaoAlves -/types/feathersjs__primus/ @j2L4e -/types/feathersjs__primus-client/ @j2L4e -/types/feathersjs__rest-client/ @j2L4e -/types/feathersjs__socket-commons/ @j2L4e -/types/feathersjs__socketio/ @j2L4e -/types/feathersjs__socketio-client/ @j2L4e -/types/feedme/ @codeanimal -/types/feedparser/ @cortopy -/types/fetch-jsonp/ @tkrotoff -/types/fetch-mock/ @asvetliakov @tamird @merrywhether @chrissinclair @matttennison @quentinbouygues -/types/fetch.io/ @newraina -/types/ffi/ @loyd @waitingsong -/types/ffi-napi/ @keerthi16 @KiranNiranjan -/types/ffmpeg-static/ @iamstevetran -/types/ffprobe-static/ @iamstevetran -/types/fhir-js-client/ @rmchndrng -/types/fibers/ @soywiz -/types/fibjs/ @richardo2016 -/types/figlet/ @Ailrun -/types/figures/ @BendingBender -/types/file-exists/ @BendingBender -/types/file-saver/ @cyrilschumacher @DaIgeb @chrismbarr -/types/file-type/ @tcaesvk @BendingBender -/types/file-url/ @coderslagoon -/types/filenamify/ @rokt33r -/types/filesize/ @GiedriusGrabauskas @renchap -/types/fill-pdf/ @westy92 -/types/filter-invalid-dom-props/ @icopp -/types/finalhandler/ @chrootsu -/types/finch/ @DavidSichau -/types/find/ @andypyrope -/types/find-parent-dir/ @ikatyang -/types/find-project-root/ @ikatyang -/types/find-root/ @Alorel -/types/find-up/ @BendingBender -/types/find-versions/ @LogvinovLeon -/types/findup-sync/ @Bartvds @ngbrown -/types/fingerprintjs/ @zaneli -/types/fingerprintjs2/ @curtstate -/types/firebase-client/ @fpsscarecrow -/types/firebase-token-generator/ @dotdotcommadot -/types/firebird/ @karak -/types/firefox/ @vvakame -/types/firefox-webext-browser/ @bomjacob -/types/firmata/ @troywweber7 -/types/first-mate/ @GlenCFL -/types/fixed-data-table/ @pepaar @stephenjelfs -/types/fixed-data-table-2/ @ilivit -/types/flat/ @chrootsu -/types/flexslider/ @diullei -/types/flickity/ @clmcgrath @wagich -/types/flight/ @jonathanhedren -/types/flightplan/ @borislavjivkov -/types/flipsnap/ @kubosho @gsino @mayuki -/types/float-regex/ @wanganjun -/types/flot/ @burlandm @Anticom @admiralsmaster -/types/flowjs/ @ryan10132 -/types/fluent-ffmpeg/ @tcaesvk @DingWeizhe -/types/flush-write-stream/ @djcsdy -/types/flux/ @stkb @GiedriusGrabauskas -/types/fluxible/ @xbim -/types/fluxible-router/ @xbim -/types/fluxxor/ @mrk21 -/types/fm-websync/ @markusmauch -/types/fnv-lite/ @marcind -/types/focus-within/ @eramdam -/types/fontfaceobserver/ @RandScullard -/types/fontoxml/ @rolandzwaga -/types/forever-agent/ @yavanosta -/types/forever-monitor/ @shuntksh @wrboyce -/types/forge-di/ @adamcarr -/types/form-data/ @soywiz @leonyu @BendingBender -/types/form-serialize/ @tyler-johnson -/types/form-serializer/ @flqw -/types/form-urlencoded/ @alepee -/types/format-duration/ @Roaders -/types/format-io/ @amitbeck -/types/format-unicorn/ @kruncher -/types/formidable/ @Nemo157 -/types/forms/ @suXinjke -/types/forwarded/ @BendingBender -/types/fossil-delta/ @endel -/types/foundation/ @borisyankov -/types/fpsmeter/ @alampros -/types/framebus/ @kbukum -/types/frctl__fractal/ @pmccloghrylaing -/types/freedom/ @jpevarnek -/types/freeport/ @atd-schubert -/types/fresh/ @BendingBender -/types/freshy/ @qlonik -/types/friendly-errors-webpack-plugin/ @bahlo -/types/frisby/v0/ @johnny4753 -/types/frisby/ @cwoodland @johnny4753 -/types/from/ @Bartvds -/types/from2/ @BendingBender -/types/fromjs/ @glenndierckx -/types/fromnow/ @marinewater -/types/fs-cson/ @dex4er -/types/fs-ext/ @OguzhanE -/types/fs-extra/v4/ @alan-agius4 @midknight41 @shiftkey @mees- -/types/fs-extra/ @alan-agius4 @midknight41 @shiftkey @mees- @jrockwood -/types/fs-extra-promise/ @midknight41 @jasonswearingen @HiromiShikata -/types/fs-extra-promise-es6/ @midknight41 @jasonswearingen @geoffreak @HiromiShikata -/types/fs-finder/ @misak113 -/types/fs-mock/ @rogierschouten -/types/fs-plus/ @unindented -/types/fs-promise/ @tarruda -/types/fs-readdir-recursive/ @pscanf -/types/fs-readfile-promise/ @mtsg -/types/fscreen/ @joscha @terrymun -/types/fsevents/ @BendingBender -/types/ftdomdelegate/ @dotnetnerd -/types/ftp/ @rogierschouten -/types/ftpd/ @rogierschouten -/types/fullname/ @kayahr -/types/fullpage.js/ @jodiwarren -/types/fusioncharts/ @rohitkr @shivarajkv -/types/fuzzaldrin/ @mhegazy -/types/fuzzaldrin-plus/ @jeancroy @jkillian @reyronald -/types/fuzzyset/ @lgrignon @narainsagar -/types/fuzzyset.js/ @lgrignon @narainsagar -/types/fxn/ @charrondev -/types/gae.channel.api/ @vvakame -/types/gamedig/ @ivansieder -/types/gamequery/ @Laubi -/types/ganache-core/ @LogvinovLeon -/types/gandi-livedns/ @xstoudi -/types/gapi/ @sgtfrankieboy -/types/gapi.analytics/ @gatsbimantico -/types/gapi.auth2/ @flawless2011 -/types/gapi.calendar/ @tkrotoff -/types/gapi.client/ @Bolisov -/types/gapi.client.acceleratedmobilepageurl/ @Bolisov -/types/gapi.client.adexchangebuyer/ @Bolisov -/types/gapi.client.adexchangebuyer2/ @Bolisov -/types/gapi.client.adexchangeseller/ @Bolisov -/types/gapi.client.adexperiencereport/ @Bolisov -/types/gapi.client.admin/ @Bolisov -/types/gapi.client.adsense/ @Bolisov -/types/gapi.client.adsensehost/ @Bolisov -/types/gapi.client.analytics/ @Bolisov -/types/gapi.client.analyticsreporting/ @Bolisov -/types/gapi.client.androiddeviceprovisioning/ @Bolisov -/types/gapi.client.androidenterprise/ @Bolisov -/types/gapi.client.androidmanagement/ @Bolisov -/types/gapi.client.androidpublisher/ @Bolisov -/types/gapi.client.appengine/ @Bolisov -/types/gapi.client.appsactivity/ @Bolisov -/types/gapi.client.appstate/ @Bolisov -/types/gapi.client.bigquery/ @Bolisov -/types/gapi.client.bigquerydatatransfer/ @Bolisov -/types/gapi.client.blogger/ @Bolisov -/types/gapi.client.books/ @Bolisov -/types/gapi.client.calendar/ @Bolisov -/types/gapi.client.civicinfo/ @Bolisov -/types/gapi.client.classroom/ @Bolisov -/types/gapi.client.cloudbilling/ @Bolisov -/types/gapi.client.cloudbuild/ @Bolisov -/types/gapi.client.clouddebugger/ @Bolisov -/types/gapi.client.clouderrorreporting/ @Bolisov -/types/gapi.client.cloudfunctions/ @Bolisov -/types/gapi.client.cloudiot/ @Bolisov -/types/gapi.client.cloudkms/ @Bolisov -/types/gapi.client.cloudmonitoring/ @Bolisov -/types/gapi.client.cloudresourcemanager/ @Bolisov -/types/gapi.client.cloudtasks/ @Bolisov -/types/gapi.client.cloudtrace/ @Bolisov -/types/gapi.client.clouduseraccounts/ @Bolisov -/types/gapi.client.compute/ @Bolisov -/types/gapi.client.consumersurveys/ @Bolisov -/types/gapi.client.container/ @Bolisov -/types/gapi.client.content/ @Bolisov -/types/gapi.client.customsearch/ @Bolisov -/types/gapi.client.dataflow/ @Bolisov -/types/gapi.client.dataproc/ @Bolisov -/types/gapi.client.datastore/ @Bolisov -/types/gapi.client.deploymentmanager/ @Bolisov -/types/gapi.client.dfareporting/ @Bolisov -/types/gapi.client.discovery/ @Bolisov -/types/gapi.client.dlp/ @Bolisov -/types/gapi.client.dns/ @Bolisov -/types/gapi.client.doubleclickbidmanager/ @Bolisov -/types/gapi.client.doubleclicksearch/ @Bolisov -/types/gapi.client.drive/ @Bolisov -/types/gapi.client.firebasedynamiclinks/ @Bolisov -/types/gapi.client.firebaseremoteconfig/ @Bolisov -/types/gapi.client.firebaserules/ @Bolisov -/types/gapi.client.firestore/ @Bolisov -/types/gapi.client.fitness/ @Bolisov -/types/gapi.client.fusiontables/ @Bolisov -/types/gapi.client.games/ @Bolisov -/types/gapi.client.gamesconfiguration/ @Bolisov -/types/gapi.client.gamesmanagement/ @Bolisov -/types/gapi.client.genomics/ @Bolisov -/types/gapi.client.gmail/ @Bolisov -/types/gapi.client.groupsmigration/ @Bolisov -/types/gapi.client.groupssettings/ @Bolisov -/types/gapi.client.iam/ @Bolisov -/types/gapi.client.identitytoolkit/ @Bolisov -/types/gapi.client.kgsearch/ @Bolisov -/types/gapi.client.language/ @Bolisov -/types/gapi.client.licensing/ @Bolisov -/types/gapi.client.logging/ @Bolisov -/types/gapi.client.manufacturers/ @Bolisov -/types/gapi.client.mirror/ @Bolisov -/types/gapi.client.ml/ @Bolisov -/types/gapi.client.monitoring/ @Bolisov -/types/gapi.client.oauth2/ @Bolisov -/types/gapi.client.oslogin/ @Bolisov -/types/gapi.client.pagespeedonline/ @Bolisov -/types/gapi.client.partners/ @Bolisov -/types/gapi.client.people/ @Bolisov -/types/gapi.client.playcustomapp/ @Bolisov -/types/gapi.client.playmoviespartner/ @Bolisov -/types/gapi.client.plus/ @Bolisov -/types/gapi.client.plusdomains/ @Bolisov -/types/gapi.client.prediction/ @Bolisov -/types/gapi.client.proximitybeacon/ @Bolisov -/types/gapi.client.pubsub/ @Bolisov -/types/gapi.client.qpxexpress/ @Bolisov -/types/gapi.client.reseller/ @Bolisov -/types/gapi.client.resourceviews/ @Bolisov -/types/gapi.client.runtimeconfig/ @Bolisov -/types/gapi.client.safebrowsing/ @Bolisov -/types/gapi.client.script/ @Bolisov -/types/gapi.client.searchconsole/ @Bolisov -/types/gapi.client.servicecontrol/ @Bolisov -/types/gapi.client.servicemanagement/ @Bolisov -/types/gapi.client.serviceuser/ @Bolisov -/types/gapi.client.sheets/ @Bolisov -/types/gapi.client.siteverification/ @Bolisov -/types/gapi.client.slides/ @Bolisov -/types/gapi.client.sourcerepo/ @Bolisov -/types/gapi.client.spanner/ @Bolisov -/types/gapi.client.spectrum/ @Bolisov -/types/gapi.client.speech/ @Bolisov -/types/gapi.client.sqladmin/ @Bolisov -/types/gapi.client.storage/ @Bolisov -/types/gapi.client.storagetransfer/ @Bolisov -/types/gapi.client.streetviewpublish/ @Bolisov -/types/gapi.client.surveys/ @Bolisov -/types/gapi.client.tagmanager/ @Bolisov -/types/gapi.client.taskqueue/ @Bolisov -/types/gapi.client.tasks/ @Bolisov -/types/gapi.client.testing/ @Bolisov -/types/gapi.client.toolresults/ @Bolisov -/types/gapi.client.translate/ @Bolisov -/types/gapi.client.urlshortener/ @Bolisov -/types/gapi.client.vault/ @Bolisov -/types/gapi.client.videointelligence/ @Bolisov -/types/gapi.client.vision/ @Bolisov -/types/gapi.client.webfonts/ @Bolisov -/types/gapi.client.webmasters/ @Bolisov -/types/gapi.client.youtube/ @Bolisov -/types/gapi.client.youtubeanalytics/ @Bolisov -/types/gapi.client.youtubereporting/ @Bolisov -/types/gapi.drive/ @baxtersa -/types/gapi.pagespeedonline/ @sgtfrankieboy -/types/gapi.people/ @tkrotoff -/types/gapi.plus/ @tkrotoff -/types/gapi.translate/ @sgtfrankieboy -/types/gapi.urlshortener/ @sgtfrankieboy -/types/gapi.youtube/ @sgtfrankieboy -/types/gapi.youtubeanalytics/ @sgtfrankieboy -/types/gaussian/ @scttcper -/types/gc-stats/ @vfernandestoptal -/types/geetest/ @plantain-00 -/types/gen-readlines/ @CodeAnimal -/types/generate-changelog/ @ffflorian -/types/generate-json-webpack-plugin/ @rynclark -/types/generic-functions/ @stpettersens -/types/generic-pool/ @jerray @wrboyce -/types/gently/ @bonnici -/types/geodesy/ @DenisCarriere @HandyG52 @excelulous -/types/geojson/ @cobster @atd-schubert @JeffJacobson @icholy -/types/geojson2osm/ @DenisCarriere -/types/geokdbush/ @DenisCarriere -/types/geometry-dom/ @nakakura -/types/geopattern/ @Gaelan -/types/gestalt/ @serranoarevalo -/types/get-caller-file/ @ajafff -/types/get-folder-size/ @mszczepanczyk -/types/get-node-dimensions/ @vincekovacs -/types/get-stdin/ @DanielRosenwasser -/types/get-stream/ @douglasduteil @BendingBender -/types/get-value/ @DanielRosenwasser -/types/getopts/ @azasypkin -/types/getos/ @BendingBender -/types/gettext.js/ @jucrouzet -/types/gifffer/ @gatimus -/types/gijgo/ @atatanasov -/types/giraffe/ @darthapo -/types/git/ @vvakame -/types/git-branch/ @rynclark -/types/git-config/ @stpettersens -/types/git-remote-origin-url/ @janslow -/types/git-url-parse/ @ajafff -/types/github-url-to-object/ @ajafff -/types/github-username-regex/ @BehindTheMath -/types/gitlab/ @yanqing6628780 @Arylo -/types/gl-matrix/ @mattijskneppers @tatchx @nbabanov @auzmartist @surtr-isaz -/types/gl-shader/ @MathiasPaumgarten -/types/gl-texture2d/ @MathiasPaumgarten -/types/gldatepicker/ @qcz -/types/glidejs/ @milanjaros -/types/glob/ @vvakame @voy -/types/glob-base/ @alan-agius4 -/types/glob-expand/ @vvakame -/types/glob-parent/ @mrmlnc -/types/glob-stream/ @Bartvds @mrmlnc -/types/glob-to-regexp/ @whatasoda -/types/global-tunnel-ng/ @BendingBender -/types/globalize/ @gcastre @afromogli @bryanforbes -/types/globalize-compiler/ @iclanton -/types/globby/ @douglasduteil @ikatyang -/types/globule/ @durad -/types/glue/ @garfty -/types/gm/ @ChaosinaCan @maartenvanvliet -/types/go/ @NorthwoodsSoftware -/types/google-adwords-scripts/ @jafaircl -/types/google-apps-script/ @motemen @grant -/types/google-apps-script-oauth2/ @dhayab -/types/google-cloud__datastore/ @beaulac @ogawa0071 @ThomasdenH -/types/google-cloud__pubsub/ @pheromonez @LunaPg @msiviero -/types/google-cloud__storage/ @blove @nbperry @welkie @ogawa0071 -/types/google-earth/ @icholy -/types/google-images/ @dolanmiu -/types/google-libphonenumber/ @leonyu @winfinit -/types/google-map-react/ @honzabrecka -/types/google-maps/ @DeividasBakanas @GiedriusGrabauskas -/types/google-protobuf/ @marcuslongmuir -/types/google.analytics/ @tyler-murphy -/types/google.feeds/ @RodneyJT -/types/google.fonts/ @danmarshall -/types/google.geolocation/ @vbortone -/types/google.picker/ @grapswiz -/types/google.visualization/ @danludwig @gmoore-sjcorg @danmana @mlcheng @IvanBisultanov @glebm -/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/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/graphql-date/ @enaeseth -/types/graphql-deduplicator/ @lfades -/types/graphql-depth-limit/ @eritikass -/types/graphql-iso-date/ @jwaldrip -/types/graphql-list-fields/ @filipows -/types/graphql-relay/ @arvitaly @nitintutlani @Grelinfo -/types/graphql-resolve-batch/ @nayni -/types/graphql-type-json/ @schfkt -/types/graphviz/ @mhfrantz -/types/grasp/ @agnoster -/types/gravatar/ @denis-sokolov -/types/gravatar-url/ @ivangabriele -/types/greasemonkey/ @kotas -/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/grunt/ @jeffmay @basarat -/types/gsap/ @codebelt @ProbablePrime @philipbulley -/types/gtin/ @RafaelKr -/types/guid/ @maroy1986 -/types/gulp/ @GiedriusGrabauskas -/types/gulp-angular-templatecache/ @amanmahajan7 -/types/gulp-babel/ @AyaMorisawa -/types/gulp-batch/ @alvarollmenezes @vizeke -/types/gulp-bump/ @silkentrance -/types/gulp-cache/ @aravindarun -/types/gulp-cached/ @tomc974 -/types/gulp-change/ @Aankhen -/types/gulp-changed/ @tomc974 -/types/gulp-cheerio/ @tkQubo -/types/gulp-clean-dest/ @andypyrope -/types/gulp-coffeeify/ @tkQubo -/types/gulp-coffeelint/ @tkQubo -/types/gulp-concat/ @k-kagurazaka -/types/gulp-connect/ @andrewiggins -/types/gulp-copy/ @aravindarun -/types/gulp-csso/ @tkrotoff -/types/gulp-debug/ @tkrotoff -/types/gulp-diff/ @ikatyang -/types/gulp-dtsm/ @AyaMorisawa -/types/gulp-espower/ @tkQubo -/types/gulp-file-include/ @DanielRosenwasser -/types/gulp-filter/ @tkrotoff -/types/gulp-flatten/ @k-kagurazaka -/types/gulp-gzip/ @tkQubo -/types/gulp-help/ @tkQubo -/types/gulp-help-doc/ @Mikhus -/types/gulp-html-replace/ @peterjuras -/types/gulp-htmlmin/ @tkrotoff -/types/gulp-if/ @joeskeen -/types/gulp-image/ @Aankhen -/types/gulp-image-resize/ @Aankhen -/types/gulp-imagemin/ @romain-faust -/types/gulp-inject/ @k-kagurazaka -/types/gulp-insert/ @shantmarouti -/types/gulp-install/ @peterjuras -/types/gulp-jade/ @berwyn -/types/gulp-jasmine/ @andypyrope -/types/gulp-jasmine-browser/ @tkrotoff -/types/gulp-json-editor/ @peterjuras -/types/gulp-jsonmin/ @romain-faust -/types/gulp-jsonminify/ @pine -/types/gulp-jspm/ @peterjuras -/types/gulp-less/ @k-kagurazaka -/types/gulp-load-plugins/ @joeskeen -/types/gulp-minify-css/ @k-kagurazaka -/types/gulp-minify-html/ @tkrotoff -/types/gulp-modernizr/ @remisery -/types/gulp-newer/ @tomc974 -/types/gulp-ng-annotate/ @tkQubo -/types/gulp-nodemon/ @tkQubo -/types/gulp-plumber/ @joeskeen -/types/gulp-protractor/ @tkrotoff -/types/gulp-pug/ @remisery -/types/gulp-pug-i18n/ @romain-faust -/types/gulp-remember/ @tomc974 -/types/gulp-responsive-images/ @aankhen -/types/gulp-rev/ @tkrotoff -/types/gulp-rev-replace/ @tkrotoff -/types/gulp-ruby-sass/ @agnislav -/types/gulp-shell/ @tkqubo -/types/gulp-size/ @tkrotoff @remisery -/types/gulp-sort/ @joeskeen -/types/gulp-strip-comments/ @Aqours -/types/gulp-strip-debug/ @peterjuras -/types/gulp-svg-sprite/ @tkqubo -/types/gulp-svgmin/ @Aankhen -/types/gulp-task-listing/ @joeskeen -/types/gulp-template/ @pe8ter -/types/gulp-tsd/ @k-kagurazaka -/types/gulp-uglify/ @ChristopherHaws @leonard-thieu -/types/gulp-useref/ @tkrotoff -/types/gulp-util/ @jedmao -/types/gulp-watch/ @tkrotoff -/types/gulp-zip/ @dudeofawesome -/types/gzip-js/ @rhysd -/types/gzip-size/v3/ @plantain-00 -/types/gzip-size/ @plantain-00 @jimivdw @andrewiggins -/types/h2o2/ @jasonswearingen @AJamesPhillips -/types/halfred/ @dherges -/types/halogen/ @steller -/types/hammerjs/ @milkisevil @codler -/types/handlebars/ @borisyankov @evil-shrike -/types/hapi/v8/ @jasonswearingen -/types/hapi/v12/ @jasonswearingen -/types/hapi/v15/ @jasonswearingen -/types/hapi/v16/ @jasonswearingen @AJamesPhillips -/types/hapi/ @rafaelsouzaf @jhsimms @SimonSchick -/types/hapi-auth-basic/ @AJamesPhillips @saboya -/types/hapi-auth-jwt2/v7/ @warrenseymour -/types/hapi-auth-jwt2/ @warrenseymour @SimonSchick -/types/hapi-decorators/ @kenhowardpdx -/types/har-format/ @micmro -/types/hard-rejection/ @BendingBender -/types/hard-source-webpack-plugin/ @woitechen -/types/harmony-proxy/ @remojansen -/types/has-ansi/ @BendingBender -/types/hash-file/ @HiromiShikata -/types/hash-stream/ @BendingBender -/types/hash-sum/ @DanielRosenwasser -/types/hasha/ @BendgingBender -/types/hasher/ @flyfishMT -/types/hashids/ @pocesar -/types/hashmap/ @outring -/types/hat/ @tup1tsa -/types/haversine/ @screendriver -/types/hbs/ @davidm77 -/types/hdkey/ @LogvinovLeon -/types/he/ @sedwards2009 @lokidokicoki -/types/headroom/ @hakubo -/types/heap/ @ryan10132 -/types/heapdump/ @weekens -/types/heatmap.js/ @lookuptable @rhys-vdw -/types/hedron/ @dborysov -/types/hellojs/ @PavelPZ @vuorinem @baywet -/types/hellosign-embedded/ @xt0rted -/types/helmet/ @cyrilschumacher @EvanHahn @bluehatbrit -/types/heredatalens/ @denyo -/types/heremaps/ @Josh-ES @denyo @fx88 -/types/heroku-logger/ @kylevogt -/types/hex-rgba/ @r3nya -/types/hexo-bunyan/ @segayuu -/types/hexo-fs/ @segayuu -/types/hexo-log/ @segayuu -/types/hexo-util/ @segayuu -/types/highcharts/ @damianog @baltie @AlbertOzimek @hanssens -/types/highcharts-ng/ @scatcher -/types/highland/ @Bartvds @hgwood @iwllyu @alvis @notbobthebuilder -/types/highlight.js/ @nikeee @sourrust @joshuakgoldberg -/types/hiredis/ @titan -/types/history/v2/ @sergey-buturlakin @ngbrown -/types/history/v3/ @sergey-buturlakin @ngbrown @LKay -/types/history/ @sergey-buturlakin @ngbrown @rokoroku -/types/history.js/ @borisyankov @gjunge -/types/historykana/ @h-shiratsuki -/types/hjson/ @crunchie84 -/types/hls.js/ @jgainfort -/types/hoek/ @prashaantt -/types/hoist-non-react-statics/ @JounQin -/types/holderjs/ @renjfk -/types/hooker/ @misak113 -/types/hopscotch/ @pimterry @Aurimas1 -/types/howler/ @xperiments @tdukart @alien35 @nicholashza -/types/hpp/ @kryops -/types/html-entities/ @xstoudi -/types/html-minifier/v1/ @tkrotoff -/types/html-minifier/ @tkrotoff @rikuayanokozy -/types/html-pdf/ @westy92 -/types/html-tag-names/ @sandersn -/types/html-to-text/ @erykwarren -/types/html-void-elements/ @rhysd -/types/html-webpack-plugin/ @deevus @bumbleblym @tlaziuk -/types/html-webpack-template/ @bumbleblym -/types/html2canvas/ @rwhepburn @tan9 @sschocke -/types/htmlbars-inline-precompile/ @chriskrycho -/types/htmlparser2/ @staticfunction @LinusU -/types/htmltojsx/ @basarat -/types/http-assert/ @jkeylu -/types/http-aws-es/ @marcogrcr -/types/http-codes/ @mhegazy -/types/http-context/ @mtraynham -/types/http-errors/ @tkrotoff @BendingBender -/types/http-graceful-shutdown/ @dlee-nvisia -/types/http-link-header/ @screendriver -/types/http-proxy/ @SomaticIT @Raigen @DanielMSchmidt -/types/http-proxy-agent/ @mrmlnc -/types/http-proxy-middleware/ @zebMcCorkle @BendingBender -/types/http-rx/ @L2jLiga -/types/http-server/ @plantain-00 -/types/http-status/ @misak113 -/types/http-string-parser/ @pine613 -/types/httperr/ @yortus -/types/hubot/ @dirk @KeesCBakker -/types/hubspot-pace/ @borislavjivkov -/types/humane/ @jmvrbanac -/types/humanize-plus/ @DenisCarriere -/types/humanize-string/ @ragnarok56 -/types/humanparser/ @MichalPodeszwa -/types/humps/ @nikeee -/types/hyco-ws/ @mrcabellom -/types/hyperscript/ @spacejack @jmfirth -/types/hypertext-application-language/ @maks3w -/types/hystrixjs/ @igorsechyn -/types/i18n/ @SomaticIT @FindQ -/types/i18n-js/ @ypresto -/types/i18next/v2/ @mxl @deerawan @GiedriusGrabauskas -/types/i18next/ @mxl @deerawan @GiedriusGrabauskas -/types/i18next-browser-languagedetector/v0/ @cyrilschumacher @GiedriusGrabauskas -/types/i18next-browser-languagedetector/ @cyrilschumacher @GiedriusGrabauskas -/types/i18next-express-middleware/ @cyrilschumacher -/types/i18next-ko/ @dwaxweiler -/types/i18next-node-fs-backend/ @cyrilschumacher -/types/i18next-sprintf-postprocessor/ @cyrilschumacher -/types/i18next-xhr-backend/ @jamuhl @GiedriusGrabauskas -/types/i2c-bus/ @101100 -/types/iarna__toml/ @ajafff -/types/iban/ @cyrilschumacher -/types/ibm-mobilefirst/ @nacho4d -/types/ibm_db/ @agov -/types/icepick/ @ngbrown @tobico -/types/icheck/ @qcz -/types/iconv/ @delphinus35 -/types/idyll/ @iocat -/types/idyll-ast/ @iocat -/types/idyll-compiler/ @iocat -/types/idyll-document/ @iocat -/types/iferr/ @segayuu -/types/iframe-resizer/ @arminbaljic -/types/ignite-ui/ @IgniteUI -/types/ignore-styles/ @tai2 -/types/iltorb/ @Alorel @reconbot -/types/image-size/ @elisee -/types/imagemagick/ @soywiz -/types/imagemagick-native/ @horiuchi -/types/imagemapster/ @delphinus35 -/types/imagemin/ @romain-faust -/types/imagemin-gifsicle/ @romain-faust -/types/imagemin-jpegtran/ @romain-faust -/types/imagemin-optipng/ @romain-faust -/types/imagemin-svgo/ @romain-faust -/types/images/ @DingWeizhe -/types/imagesloaded/ @coldacid @apexskier -/types/imap/ @psnider -/types/imap-simple/ @pushplay -/types/imgur-rest-api/ @lukewestby -/types/imperium/ @gaetansenn -/types/impress/ @borisyankov -/types/in-app-purchase/ @l-jonas -/types/in-range/ @DanielRosenwasser -/types/inboxsdk/ @rdoursenaud @amiram -/types/incremental-dom/ @basarat @lanthaler @vvakame -/types/indent-string/ @mhegazy -/types/inert/v4/ @nycdotnet @AJamesPhillips -/types/inert/ @nycdotnet @AJamesPhillips @lenovouser -/types/inflected/ @dsci -/types/inflection/ @shiwano -/types/inherits/ @chrootsu -/types/ini/ @marcinporebski -/types/iniparser/ @chrootsu -/types/inline-css/ @philipisapain -/types/inline-style-prefixer/ @ahz @dpetrezselyova -/types/inquirer/ @tkQubo @ppathan @jouderianjr @bang88 @bitjson @synarque @jrockwood @kwkelly @Ailrun -/types/insert-module-globals/ @leonard-thieu -/types/insight/ @vvakame -/types/integer/ @Morfent -/types/intercom-client/ @jineshshah36 @peping -/types/intercom-web/ @fongandrew @salbahra @onatm -/types/intercomjs/ @spencerwi -/types/internal-ip/ @BendingBender -/types/intl/ @RagibHasin -/types/intl-locales-supported/ @Slessi -/types/intl-messageformat/ @mhegazy -/types/intl-relativeformat/ @mohsen1 -/types/intl-tel-input/ @fdnhkj @leonard-thieu -/types/into-stream/ @BendingBender -/types/intrinsic-scale/ @shalomdotnet -/types/intro.js/ @anahkiasen -/types/invariant/ @bennett000 -/types/inversify-devtools/ @inversify -/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/iota.lib.js/ @fogsh -/types/ip/ @codeanimal -/types/ip-address/ @danwbyrne -/types/ip-regex/ @unindented -/types/ipcheck/ @bengry -/types/irc/ @phillips1012 -/types/iron/ @simonschick @rafaelsouzaf -/types/is/ @cabralRodrigo -/types/is-absolute-url/ @mhegazy -/types/is-alphanumerical/ @vutran -/types/is-archive/ @mhegazy -/types/is-array/ @pine -/types/is-binary-path/ @DanielRosenwasser -/types/is-callable/ @nieltg -/types/is-ci/ @atd-schubert -/types/is-color/ @VitorLuizC -/types/is-compressed/ @mhegazy -/types/is-empty/ @termosa -/types/is-finite/ @mhegazy -/types/is-glob/ @mrmlnc -/types/is-hotkey/ @petester42 -/types/is-ip/ @coderslagoon -/types/is-mobile/ @LogvinovLeon -/types/is-my-json-valid/ @kruncher -/types/is-negated-glob/ @ajafff -/types/is-number/ @harryshipton -/types/is-object/ @wbhob -/types/is-path-cwd/ @DanielRosenwasser -/types/is-path-in-cwd/ @mhegazy -/types/is-promise/ @DanielRosenwasser -/types/is-relative-url/ @mhegazy -/types/is-root/ @mhegazy -/types/is-root-path/ @mhegazy -/types/is-running/ @danwbyrne -/types/is-scoped/ @postcrafter -/types/is-stream/ @me -/types/is-svg/ @BendingBender -/types/is-text-path/ @mhegazy -/types/is-touch-device/ @screendriver -/types/is-url/ @RyotaMurohoshi -/types/is-url-superb/ @kryops -/types/is-uuid/ @tedre191 -/types/is-windows/ @mizunashi-mana -/types/isbn-utils/ @elhaard -/types/iscroll/ @csrakowski @devlato -/types/ismobilejs/ @Ty3uK -/types/iso-3166-2/ @sicilica -/types/iso8601-localizer/ @avielfedida -/types/isomorphic-fetch/ @toddlucas -/types/isotope-layout/ @avidenic @malinushj -/types/istanbul/ @tkrotoff -/types/istanbul-lib-coverage/ @jason0x43 -/types/istanbul-lib-hook/ @jason0x43 -/types/istanbul-lib-instrument/ @jason0x43 -/types/istanbul-lib-report/ @jason0x43 -/types/istanbul-lib-source-maps/ @jason0x43 -/types/istanbul-middleware/ @hookclaw -/types/istanbul-reports/ @jason0x43 -/types/ityped/ @DanielRosenwasser -/types/ix.js/ @Igorbek -/types/jackrabbit/ @elvisvoer -/types/jade/ @panuhorsmalahti -/types/jalaali-js/ @alitaheri -/types/japanese-holidays/ @syamatoo -/types/jasmine/ @borisyankov @theodorejb @davidparsson @gmoothart @lukas-zech-software @Engineer2B -/types/jasmine-ajax/ @lgrignon -/types/jasmine-data_driven_tests/ @AnthonyMacKinnon -/types/jasmine-enzyme/ @bolatovumar -/types/jasmine-es6-promise-matchers/ @stephenlautier -/types/jasmine-fixture/ @craigbrett17 -/types/jasmine-given/ @shairez -/types/jasmine-jquery/ @gstamac -/types/jasmine-matchers/ @Bartvds -/types/jasmine-node/ @svi3c -/types/jasmine-promise-matchers/ @matthewjh -/types/jasmine_dom_matchers/ @devoto13 -/types/jasminewd2/ @sjelin -/types/java/ @jimlloyd @hrl7 @darti -/types/java-applet/ @cyrilschumacher -/types/javascript-astar/ @ptlis -/types/javascript-bignum/ @sandersn -/types/javascript-obfuscator/ @sanex3339 -/types/javascript-state-machine/ @borisyankov @mdocter @MrBigDog2U @samael65535 @taoqf -/types/jbinary/ @tbureck -/types/jcanvas/ @rogierschouten -/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-axe/ @JoshuaKGoldberg -/types/jest-diff/ @myabc -/types/jest-docblock/ @ikatyang -/types/jest-each/ @theutz @nickmccurdy -/types/jest-environment-puppeteer/ @joshuakgoldberg -/types/jest-get-type/ @myabc -/types/jest-image-snapshot/ @dawnmist -/types/jest-in-case/ @geovanisouza92 -/types/jest-json-schema/ @deadNightTiger -/types/jest-matcher-utils/ @myabc -/types/jest-matchers/ @joscha -/types/jest-specific-snapshot/ @dawnmist -/types/jest-validate/ @ikatyang -/types/jexl/ @m-tomczyk -/types/jfs/ @tlaziuk -/types/jira-client/ @KOPTE3 @orta -/types/jjv/ @Nemo157 -/types/jjve/ @Nemo157 -/types/jmespath/ @pushplay -/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/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus @wanganjun @rafaelkallis @aconanlai @zaphoyd -/types/joigoose/ @boothwhack -/types/josa/ @vichyssoise -/types/jotform-css.js/ @pandawood -/types/jpeg-js/ @DanielRosenwasser -/types/jpegtran-bin/ @hikoma -/types/jpm/ @github-account-because-they-want-it -/types/jqgrid/ @lokeshpeta -/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-ajax-chain/ @humana-fragilitas -/types/jquery-alertable/ @stever -/types/jquery-animate-scroll/ @AndersonFriaca -/types/jquery-awesome-cursor/ @zskovacs -/types/jquery-backstretch/ @dkulyk -/types/jquery-countdown/ @AndersonFriaca -/types/jquery-countto/ @AndersonFriaca -/types/jquery-cropbox/ @PerKastman -/types/jquery-deparam/ @patsissons -/types/jquery-drawer/ @pine -/types/jquery-easy-loading/ @delphinus35 -/types/jquery-editable-select/ @baywet -/types/jquery-focus-exit/ @AndersonFriaca -/types/jquery-focusable/ @AndersonFriaca -/types/jquery-fullscreen/ @bgrieder -/types/jquery-galleria/ @rimig -/types/jquery-gray/ @AndersonFriaca -/types/jquery-handsontable/ @intelorca -/types/jquery-jcrop/ @joeskeen -/types/jquery-jsonrpcclient/ @Ty3uK -/types/jquery-knob/ @iain8 -/types/jquery-lazyload/ @AndersonFriaca -/types/jquery-loading-overlay/ @AndersonFriaca -/types/jquery-mask-plugin/ @avidenic @AndersonFriaca -/types/jquery-maskmoney/ @AndersonFriaca -/types/jquery-match-height/ @kbytesys -/types/jquery-mockjax/ @laszlojakab @vladeck @hasaki -/types/jquery-mouse-exit/ @AndersonFriaca -/types/jquery-mousewheel/ @xt0rted -/types/jquery-next-id/ @AndersonFriaca -/types/jquery-notifier/ @allipierre -/types/jquery-param/ @patsissons -/types/jquery-slugify/ @AndersonFriaca -/types/jquery-sortable/ @Seltzer -/types/jquery-steps/ @jblank @nickwph -/types/jquery-sticky/ @maixiu -/types/jquery-tags-input/ @AndersonFriaca -/types/jquery-timeentry/ @marknadig -/types/jquery-toast-plugin/ @viqashussain @astegmaier -/types/jquery-toastmessage-plugin/ @joeskeen -/types/jquery-truncate-html/ @abraaoalves -/types/jquery-urlparam/ @stpettersens -/types/jquery-validation-unobtrusive/ @EnableSoftware -/types/jquery.address/ @martinduparc @mardaneus86 -/types/jquery.appear/ @AndersonFriaca -/types/jquery.are-you-sure/ @jonegerton -/types/jquery.autosize/ @kingdango -/types/jquery.bbq/ @sunetos -/types/jquery.bootstrap.wizard/ @niemyjski @dennisahlin -/types/jquery.browser/ @AndersonFriaca -/types/jquery.cleditor/ @pushplay -/types/jquery.clientsidelogging/ @diullei -/types/jquery.color/ @derekcicerone -/types/jquery.colorbox/ @gjunge -/types/jquery.colorpicker/ @pushplay -/types/jquery.contextmenu/ @nvivo -/types/jquery.cookie/ @RoyGoode @BenLorantfy -/types/jquery.customselect/ @adamcoulombe -/types/jquery.cycle2/ @dnadolny -/types/jquery.dropotron/ @cyrilschumacher -/types/jquery.dynatree/ @fdecampredon -/types/jquery.elang/ @sumegizoltan -/types/jquery.fancytree/ @alphaleonis @abedi-ir @niikoo @Nitecube -/types/jquery.filtertable/ @totpero -/types/jquery.finger/ @maxackley -/types/jquery.flagstrap/ @felipedgarcia -/types/jquery.fullscreen/ @piraveen -/types/jquery.gridster/ @jbaldwin -/types/jquery.growl/ @yeganemehr -/types/jquery.highlight-bartaz/ @Pro -/types/jquery.jnotify/ @jamescurran -/types/jquery.joyride/ @vbortone -/types/jquery.jsignature/ @pjmagee -/types/jquery.leanmodal/ @FinelySliced -/types/jquery.livestampjs/ @vbortone -/types/jquery.nicescroll/ @Wkalmar -/types/jquery.notify/ @evil-shrike -/types/jquery.notifybar/ @zaneli -/types/jquery.noty/ @kingdango @thelfensdrfer -/types/jquery.payment/ @ejsmith @johnrutherford -/types/jquery.pin/ @AndersonFriaca -/types/jquery.pjax/ @lijunle -/types/jquery.placeholder/ @majorsilence @EnableSoftware -/types/jquery.pnotify/ @DavidSichau @FUNExtreme -/types/jquery.postmessage/ @lijunle -/types/jquery.prettyphoto/ @pgaske -/types/jquery.qrcode/ @danmana -/types/jquery.rateit/ @gjunge -/types/jquery.rowgrid/ @vinayak-garg -/types/jquery.scrollto/ @nestalk -/types/jquery.simplemodal/ @ForNeVeR -/types/jquery.simplepagination/ @nvivo -/types/jquery.simulate/ @derekcicerone -/types/jquery.slimscroll/ @Promact -/types/jquery.soap/ @tigerxy -/types/jquery.sortelements/ @tbureck -/types/jquery.stickem/ @davidmpaz -/types/jquery.superlink/ @niemyjski -/types/jquery.tagsmanager/ @vbortone -/types/jquery.tile/ @zaneli -/types/jquery.timepicker/ @anwarjaved -/types/jquery.timer/ @JoshStrobl -/types/jquery.tinycarousel/ @csrakowski -/types/jquery.tinyscrollbar/ @csrakowski -/types/jquery.tipsy/ @bdukes -/types/jquery.tools/ @joeskeen -/types/jquery.total-storage/ @JeremyCBrooks -/types/jquery.transit/ @MrBigDog2U -/types/jquery.ui.datetimepicker/ @dougajmcdonald -/types/jquery.ui.layout/ @Steve-Fenton @drarmstr -/types/jquery.uniform/ @flyfishMT -/types/jquery.validation/ @fdecampredon @johnnyreilly @avidenic -/types/jquery.watermark/ @anwarjaved -/types/jquerymobile/ @borisyankov -/types/jqueryui/ @borisyankov @johnnyreilly -/types/js-base64/ @DenisCarriere @tlent -/types/js-beautify/ @JoshuaKGoldberg @hansrwindhoff -/types/js-clipper/ @omni360 -/types/js-combinatorics/ @outring -/types/js-cookie/ @theodorejb @BendingBender -/types/js-data-angular/ @reppners -/types/js-fixtures/ @kazimanzurrashid -/types/js-git/ @Bartvds -/types/js-md5/ @mwmccarthy -/types/js-money/ @kanatkubash -/types/js-nacl/ @ethanfrey -/types/js-quantities/ @wrummler -/types/js-schema/ @marcinporebski @roblabat -/types/js-search/ @guoyunhe -/types/js-sha512/ @nicojs -/types/js-string-escape/ @viralpickaxe -/types/js-to-java/ @skyitachi -/types/js-url/ @pine613 -/types/js-yaml/ @Bartvds @sclausen -/types/js.spec/ @mattbishop -/types/jsbn/ @Evgenus @al2xed -/types/jschannel/ @yitzchok -/types/jscrollpane/ @qcz -/types/jsdeferred/ @minodisk -/types/jsdom/ @leonard-thieu -/types/jsen/ @vladeck -/types/jsend/ @CaselIT -/types/jsesc/ @Bartvds -/types/jsfl/ @soywiz -/types/jsforce/ @dolanmiu @netes @amphro @tnoonan-salesforce @whiteabelincoln -/types/jsgraph/ @rosinbum -/types/jshamcrest/ @dharkness -/types/jsmockito/ @shiver-me-timbers -/types/jsnox/ @stkb @DovydasNavickas -/types/json-js/ @NN--- -/types/json-merge-patch/ @senyaarseniy -/types/json-parse-better-errors/ @DanielRosenwasser -/types/json-patch/ @vvakame -/types/json-patch-gen/ @RohdeK -/types/json-pointer/ @Bartvds -/types/json-query/ @mtraynham -/types/json-rpc-ws/ @npenin @mlamp -/types/json-schema/ @bcherny @cyrilletuzi @lucianbuzzo @rolandjitsu -/types/json-socket/ @svi3c -/types/json-stable-stringify/ @mhfrantz -/types/json-stringify-safe/ @BendingBender -/types/json2csv/ @juanjoDiaz -/types/json2md/ @MartynasZilinskas -/types/json3/ @NN--- -/types/json5/ @Esemesek -/types/jsonata/ @nick121212 -/types/jsoneditor/ @alejo90 @errietta -/types/jsoneditor-for-react/ @joshuakgoldberg -/types/jsoneditoronline/ @vbortone -/types/jsonfile/ @dbowring -/types/jsonic/ @jacobbubu -/types/jsonminify/ @no23reason -/types/jsonnet/ @hookclaw -/types/jsonp/ @surenkov -/types/jsonpath/ @horiuchi @ikatyang -/types/jsonrpc-serializer/ @Akim95 @many20 -/types/jsonstream/ @Bartvds -/types/jsontoxml/ @benstevens48 -/types/jsonwebtoken/ @SomaticIT @danielheim @brikou @vpk -/types/jsonwebtoken-promisified/ @SomaticIT @danielheim @brikou @aneilbaboo -/types/jspdf/ @amberjs -/types/jsqrcode/ @lordazzi -/types/jsrender/ @zakki -/types/jsreport-core/ @taoqf -/types/jsreport-html-to-xlsx/v1/ @me -/types/jsreport-html-to-xlsx/ @me -/types/jsreport-jsrender/ @taoqf -/types/jsreport-phantom-pdf/ @taoqf -/types/jsreport-xlsx/ @taoqf -/types/jsrp/ @harryshipton -/types/jss/ @appsforartists @kof @pelotom @eps1lon -/types/jssha/ @randombk @SrTobi -/types/jstimezonedetect/ @olamothe -/types/jstorage/ @dflor003 -/types/jstree/ @adaskothebeast -/types/jsts/ @StephaneAlie @jrocha -/types/jsuite/ @darrenhillconsulting -/types/jsuri/ @coldacid @flqw -/types/jsurl/ @agorshkov23 -/types/jsx-chai/ @nupplaphil -/types/jszip/ @mzeiher @forabi -/types/jug/ @yevt -/types/jui/ @easylogic -/types/jui-core/ @easylogic -/types/jui-grid/ @easylogic -/types/just-extend/ @pe8ter -/types/jweixin/ @taoqf @gomydodo -/types/jwplayer/ @martinduparc @kutomer @philippguertler @danielmcgraw @bpdsw -/types/jws/ @JustinBeckwith -/types/jwt-client/ @timoteoponce -/types/jwt-decode/v1/ @QuatroDevOfficial -/types/jwt-decode/ @GiedriusGrabauskas @madsmadsen -/types/jwt-express/ @nickp10 -/types/jwt-simple/ @kenfdev @GaelMagnan -/types/kafka-node/ @dansitu @bkim54 @sfrooster @amiram -/types/karma/ @tkrotoff @43081j -/types/karma-chai/ @JayAndCatchFire -/types/karma-chai-sinon/ @vasek17 -/types/karma-coverage/ @tkrotoff -/types/karma-fixture/ @evictor @afshawnlotfi -/types/karma-jasmine/ @michelsalib -/types/karma-viewport/ @karak -/types/karma-webpack/ @mtraynham -/types/katex/ @mrand01 -/types/kcors/ @Xstoudi @izayoiko -/types/kdbush/ @DenisCarriere -/types/keen-tracking/ @rui-ferreira -/types/kefir/ @AyaMorisawa @HitoriSensei -/types/kendo-ui/ @telerik -/types/keyboardjs/ @vbortone @piranha771 -/types/keygrip/ @jkeylu -/types/keymaster/ @nitram509 -/types/keymirror/ @jfahrenkrug -/types/keypress.js/ @rcchen -/types/keysym/ @harryshipton -/types/keytar/ @miniak @shiftkey @juturu -/types/keyv/ @Arylo -/types/kik-browser/ @joelday -/types/klaw/v1/ @mceachen -/types/klaw/ @mceachen -/types/klaw-sync/ @shiftkey -/types/kms-json/ @sunnyone -/types/knex/ @tkQubo @MeLlamoPablo @mastermatt @micksatana @shreyjain1994 -/types/knex-postgis/ @vesse -/types/knockback/ @borisyankov -/types/knockout/ @borisyankov @Igorbek @moonpyk @EnableSoftware @BenjaminEckardt @ffMathy -/types/knockout-amd-helpers/ @DavidSichau -/types/knockout-secure-binding/ @pine613 -/types/knockout-transformations/ @johnnyreilly @Nemo157 -/types/knockout.deferred.updates/ @sgaliano -/types/knockout.editables/ @borisyankov -/types/knockout.es5/ @sgaliano -/types/knockout.kogrid/ @huer12 -/types/knockout.mapper/ @BMeyerKC -/types/knockout.mapping/ @borisyankov @ffMathy -/types/knockout.projections/ @johnnyreilly -/types/knockout.punches/ @johnnyreilly -/types/knockout.rx/ @Igorbek -/types/knockout.validation/ @danludwig -/types/knockout.viewmodel/ @oising -/types/knockstrap/ @adaskothebeast -/types/knuddels-userapps-api/ @Knuddels -/types/ko.plus/ @conficient -/types/koa/ @DavidCai1993 @jkeylu @brikou -/types/koa-basic-auth/ @Tobias4872 -/types/koa-better-body/ @danwbyrne -/types/koa-bodyparser/ @hellopao @anup-2s -/types/koa-cache-control/ @pe8ter -/types/koa-compose/ @jkeylu -/types/koa-compress/ @hellopao -/types/koa-conditional-get/ @wingsbob -/types/koa-convert/ @danwbyrne -/types/koa-cors/ @romain-faust -/types/koa-csrf/ @haskaalo -/types/koa-etag/ @wingsbob -/types/koa-favicon/ @hellopao -/types/koa-generic-session/ @nsimmons @Ragg- -/types/koa-hbs/ @jcbmln @mudkipme -/types/koa-helmet/ @me -/types/koa-html-minifier/ @romain-faust -/types/koa-joi-router/ @wingsbob @move-zig -/types/koa-json/ @brooklyndev -/types/koa-json-error/ @mudkipme -/types/koa-logger/ @geoffreak @tlaziuk -/types/koa-logger-winston/ @stevehipwell -/types/koa-morgan/ @vesse -/types/koa-mount/ @amirsaber @tlaziuk -/types/koa-multer/ @benstevens48 -/types/koa-passport/ @horiuchi @tlaziuk @brendtumi -/types/koa-pino-logger/ @khell -/types/koa-pug/ @Xstoudi -/types/koa-range/ @strax -/types/koa-redis/ @nsimmons -/types/koa-redis-cache/ @dimamukhin -/types/koa-response-time/ @thorsedeke @sjmcdowall -/types/koa-route/ @migstopheles @jacogr -/types/koa-router/ @hellopao @schfkt @JounQin @romain-faust -/types/koa-send/ @pe8ter @tlaziuk -/types/koa-session/ @kerol2r20 @tlaziuk -/types/koa-session-minimal/ @longztian -/types/koa-sslify/ @wingsbob -/types/koa-static/ @hellopao @tlaziuk -/types/koa-static-cache/ @JounQin -/types/koa-views/ @brooklyndev -/types/koa-webpack/ @malj @leebenson @miZyind @tlaziuk -/types/koa-websocket/ @moimael @jacogr @zdila -/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/kraken-js/ @darkwebdev @micksatana -/types/kramed/ @tonicblue -/types/kss/ @giladgray -/types/kue/ @drudge @amiram @pc-jedi @deerawan -/types/kurento-utils/ @nenadalm @riggs -/types/kuromoji/ @mzsm @kgtkr -/types/lab/ @prashaantt -/types/ladda/ @dflor003 @leemicw -/types/lasso/ @darkwebdev -/types/later/ @jasond-s -/types/latinize/ @GiedriusGrabauskas -/types/latlon-geohash/ @rimig -/types/launchpad/ @rictic -/types/lazy-value/ @ikatyang -/types/lazy.js/ @Bartvds -/types/lazypipe/ @tomc974 -/types/ldapjs/ @cvillemure @peterkooijmans -/types/leadfoot/ @theintern -/types/leaflet/v0/ @rgripper -/types/leaflet/ @alejo90 @atd-schubert @mcauer -/types/leaflet-areaselect/ @awallat -/types/leaflet-curve/ @onikiienko -/types/leaflet-draw/ @matt-guest @reblace @YunS-Stacy @beschoenen -/types/leaflet-editable/ @dalie -/types/leaflet-fullscreen/ @DenisCarriere -/types/leaflet-geocoder-mapzen/ @leezu -/types/leaflet-gpx/ @soucekv @molnarm -/types/leaflet-imageoverlay-rotated/ @tkleinke -/types/leaflet-label/ @Nemo157 -/types/leaflet-mouse-position/ @Hanyon -/types/leaflet-polylinedecorator/ @soucekv -/types/leaflet-providers/ @BendingBender -/types/leaflet-rotatedmarker/ @robert-prib-polestar -/types/leaflet-routing-machine/ @chanakadrathnayaka -/types/leaflet.awesome-markers/v0/ @Odrin @sebek64 -/types/leaflet.awesome-markers/ @sebek64 -/types/leaflet.fullscreen/ @wcomartin -/types/leaflet.gridlayer.googlemutant/ @ernest-rhinozeros -/types/leaflet.heat/ @onderceylan -/types/leaflet.locatecontrol/ @DenisCarriere -/types/leaflet.markercluster/ @rimig -/types/leaflet.markercluster.layersupport/ @AsamK -/types/leaflet.pancontrol/ @Brictarus -/types/leaflet.pm/ @tkleinke -/types/leaflet.polylinemeasure/ @RiON69 -/types/leapmotionts/ @logotype -/types/legal-eagle/ @j-f1 -/types/lerna-get-packages/ @LogvinovLeon -/types/less/ @thasner @pranaygp @dwaxweiler -/types/less-middleware/ @federicobond -/types/less2sass/ @gatimus -/types/lestate/ @thelambdaparty -/types/level-sublevel/ @basp -/types/leveldown/ @tarruda @LinusU -/types/levelup/ @blittle @tarruda -/types/leven/ @jmalonzo -/types/levenshtein/ @geoffreak -/types/libpq/ @Lodin -/types/libsodium-wrappers/ @ffflorian -/types/libxmljs/ @fdecampredon @ComFreek -/types/libxslt/ @alejo90 -/types/license-checker/ @rogierschouten @unindented -/types/lil-uuid/ @Pr1st0n -/types/lime-js/ @arthur-xavier -/types/line-by-line/ @etomsen -/types/line-reader/ @stpettersens -/types/linear-gradient/ @Jack-Works -/types/lingui__core/ @huan086 -/types/lingui__react/ @huan086 -/types/linkify-it/ @praxxis -/types/listr/ @durad -/types/lls/ @borislavjivkov -/types/load-json-file/ @SamVerschueren -/types/loader-runner/ @e-cloud -/types/loader-utils/ @Perlmint @TotooriaHyperion -/types/loadjs/ @screendriver -/types/loadware/ @ALyman -/types/lobibox/ @itboy87 -/types/local-dynamo/ @Sicilica -/types/local-storage/ @tup1tsa -/types/localized-countries/ @coderslagoon -/types/localizejs-library/ @salbahra -/types/locate-path/ @me -/types/lockfile/v0/ @Bartvds -/types/lockfile/ @Bartvds @BendingBender -/types/lockr/ @droritos -/types/locutus/ @hookclaw -/types/lodash/v3/ @bczengel @chrootsu -/types/lodash/ @bczengel @chrootsu @stepancar @aj-r @ailrun @e-cloud @thorn0 @jtmthf @DomiR -/types/lodash-es/ @stephenlautier @e-cloud -/types/lodash-webpack-plugin/ @bumbleblym -/types/lodash.add/ @bczengel @chrootsu @stepancar -/types/lodash.after/ @bczengel @chrootsu @stepancar -/types/lodash.ary/ @bczengel @chrootsu @stepancar -/types/lodash.assign/ @bczengel @chrootsu @stepancar -/types/lodash.assignin/ @bczengel @chrootsu @stepancar -/types/lodash.assigninwith/ @bczengel @chrootsu @stepancar -/types/lodash.assignwith/ @bczengel @chrootsu @stepancar -/types/lodash.at/ @bczengel @chrootsu @stepancar -/types/lodash.attempt/ @bczengel @chrootsu @stepancar -/types/lodash.before/ @bczengel @chrootsu @stepancar -/types/lodash.bind/ @bczengel @chrootsu @stepancar -/types/lodash.bindall/ @bczengel @chrootsu @stepancar -/types/lodash.bindkey/ @bczengel @chrootsu @stepancar -/types/lodash.camelcase/ @bczengel @chrootsu @stepancar -/types/lodash.capitalize/ @bczengel @chrootsu @stepancar -/types/lodash.castarray/ @bczengel @chrootsu @stepancar -/types/lodash.ceil/ @bczengel @chrootsu @stepancar -/types/lodash.chunk/ @bczengel @chrootsu @stepancar -/types/lodash.clamp/ @bczengel @chrootsu @stepancar -/types/lodash.clone/ @bczengel @chrootsu @stepancar -/types/lodash.clonedeep/ @bczengel @chrootsu @stepancar -/types/lodash.clonedeepwith/ @bczengel @chrootsu @stepancar -/types/lodash.clonewith/ @bczengel @chrootsu @stepancar -/types/lodash.compact/ @bczengel @chrootsu @stepancar -/types/lodash.concat/ @bczengel @chrootsu @stepancar -/types/lodash.cond/ @bczengel @chrootsu @stepancar -/types/lodash.constant/ @bczengel @chrootsu @stepancar -/types/lodash.countby/ @bczengel @chrootsu @stepancar -/types/lodash.create/ @bczengel @chrootsu @stepancar -/types/lodash.curry/ @bczengel @chrootsu @stepancar -/types/lodash.curryright/ @bczengel @chrootsu @stepancar -/types/lodash.debounce/ @bczengel @chrootsu @stepancar -/types/lodash.deburr/ @bczengel @chrootsu @stepancar -/types/lodash.defaults/ @bczengel @chrootsu @stepancar -/types/lodash.defaultsdeep/ @bczengel @chrootsu @stepancar -/types/lodash.defer/ @bczengel @chrootsu @stepancar -/types/lodash.delay/ @bczengel @chrootsu @stepancar -/types/lodash.difference/ @bczengel @chrootsu @stepancar -/types/lodash.differenceby/ @bczengel @chrootsu @stepancar -/types/lodash.differencewith/ @bczengel @chrootsu @stepancar -/types/lodash.divide/ @bczengel @chrootsu @stepancar -/types/lodash.drop/ @bczengel @chrootsu @stepancar -/types/lodash.dropright/ @bczengel @chrootsu @stepancar -/types/lodash.droprightwhile/ @bczengel @chrootsu @stepancar -/types/lodash.dropwhile/ @bczengel @chrootsu @stepancar -/types/lodash.endswith/ @bczengel @chrootsu @stepancar -/types/lodash.eq/ @bczengel @chrootsu @stepancar -/types/lodash.escape/ @bczengel @chrootsu @stepancar -/types/lodash.escaperegexp/ @bczengel @chrootsu @stepancar -/types/lodash.every/ @bczengel @chrootsu @stepancar -/types/lodash.fill/ @bczengel @chrootsu @stepancar -/types/lodash.filter/ @bczengel @chrootsu @stepancar -/types/lodash.find/ @bczengel @chrootsu @stepancar -/types/lodash.findindex/ @bczengel @chrootsu @stepancar -/types/lodash.findkey/ @bczengel @chrootsu @stepancar -/types/lodash.findlast/ @bczengel @chrootsu @stepancar -/types/lodash.findlastindex/ @bczengel @chrootsu @stepancar -/types/lodash.findlastkey/ @bczengel @chrootsu @stepancar -/types/lodash.first/ @bczengel @chrootsu @stepancar -/types/lodash.flatmap/ @bczengel @chrootsu @stepancar -/types/lodash.flatmapdeep/ @bczengel @chrootsu @stepancar -/types/lodash.flatmapdepth/ @bczengel @chrootsu @stepancar -/types/lodash.flatten/ @bczengel @chrootsu @stepancar -/types/lodash.flattendeep/ @bczengel @chrootsu @stepancar -/types/lodash.flattendepth/ @bczengel @chrootsu @stepancar -/types/lodash.flip/ @bczengel @chrootsu @stepancar -/types/lodash.floor/ @bczengel @chrootsu @stepancar -/types/lodash.flow/ @bczengel @chrootsu @stepancar -/types/lodash.flowright/ @bczengel @chrootsu @stepancar -/types/lodash.foreach/ @bczengel @chrootsu @stepancar -/types/lodash.foreachright/ @bczengel @chrootsu @stepancar -/types/lodash.forin/ @bczengel @chrootsu @stepancar -/types/lodash.forinright/ @bczengel @chrootsu @stepancar -/types/lodash.forown/ @bczengel @chrootsu @stepancar -/types/lodash.forownright/ @bczengel @chrootsu @stepancar -/types/lodash.frompairs/ @bczengel @chrootsu @stepancar -/types/lodash.functions/ @bczengel @chrootsu @stepancar -/types/lodash.functionsin/ @bczengel @chrootsu @stepancar -/types/lodash.get/ @bczengel @chrootsu @stepancar -/types/lodash.groupby/ @bczengel @chrootsu @stepancar -/types/lodash.gt/ @bczengel @chrootsu @stepancar -/types/lodash.gte/ @bczengel @chrootsu @stepancar -/types/lodash.has/ @bczengel @chrootsu @stepancar -/types/lodash.hasin/ @bczengel @chrootsu @stepancar -/types/lodash.head/ @bczengel @chrootsu @stepancar -/types/lodash.identity/ @bczengel @chrootsu @stepancar -/types/lodash.includes/ @bczengel @chrootsu @stepancar -/types/lodash.indexof/ @bczengel @chrootsu @stepancar -/types/lodash.initial/ @bczengel @chrootsu @stepancar -/types/lodash.inrange/ @bczengel @chrootsu @stepancar -/types/lodash.intersection/ @bczengel @chrootsu @stepancar -/types/lodash.intersectionby/ @bczengel @chrootsu @stepancar -/types/lodash.intersectionwith/ @bczengel @chrootsu @stepancar -/types/lodash.invert/ @bczengel @chrootsu @stepancar -/types/lodash.invertby/ @bczengel @chrootsu @stepancar -/types/lodash.invoke/ @bczengel @chrootsu @stepancar -/types/lodash.invokemap/ @bczengel @chrootsu @stepancar -/types/lodash.isarguments/ @bczengel @chrootsu @stepancar -/types/lodash.isarray/ @bczengel @chrootsu @stepancar -/types/lodash.isarraybuffer/ @bczengel @chrootsu @stepancar -/types/lodash.isarraylike/ @bczengel @chrootsu @stepancar -/types/lodash.isarraylikeobject/ @bczengel @chrootsu @stepancar -/types/lodash.isboolean/ @bczengel @chrootsu @stepancar -/types/lodash.isbuffer/ @bczengel @chrootsu @stepancar -/types/lodash.isdate/ @bczengel @chrootsu @stepancar -/types/lodash.iselement/ @bczengel @chrootsu @stepancar -/types/lodash.isempty/ @bczengel @chrootsu @stepancar -/types/lodash.isequal/ @bczengel @chrootsu @stepancar -/types/lodash.isequalwith/ @bczengel @chrootsu @stepancar -/types/lodash.iserror/ @bczengel @chrootsu @stepancar -/types/lodash.isfinite/ @bczengel @chrootsu @stepancar -/types/lodash.isfunction/ @bczengel @chrootsu @stepancar -/types/lodash.isinteger/ @bczengel @chrootsu @stepancar -/types/lodash.islength/ @bczengel @chrootsu @stepancar -/types/lodash.ismap/ @bczengel @chrootsu @stepancar -/types/lodash.ismatch/ @bczengel @chrootsu @stepancar -/types/lodash.ismatchwith/ @bczengel @chrootsu @stepancar -/types/lodash.isnan/ @bczengel @chrootsu @stepancar -/types/lodash.isnative/ @bczengel @chrootsu @stepancar -/types/lodash.isnil/ @bczengel @chrootsu @stepancar -/types/lodash.isnull/ @bczengel @chrootsu @stepancar -/types/lodash.isnumber/ @bczengel @chrootsu @stepancar -/types/lodash.isobject/ @bczengel @chrootsu @stepancar -/types/lodash.isobjectlike/ @bczengel @chrootsu @stepancar -/types/lodash.isplainobject/ @bczengel @chrootsu @stepancar -/types/lodash.isregexp/ @bczengel @chrootsu @stepancar -/types/lodash.issafeinteger/ @bczengel @chrootsu @stepancar -/types/lodash.isset/ @bczengel @chrootsu @stepancar -/types/lodash.isstring/ @bczengel @chrootsu @stepancar -/types/lodash.issymbol/ @bczengel @chrootsu @stepancar -/types/lodash.istypedarray/ @bczengel @chrootsu @stepancar -/types/lodash.isundefined/ @bczengel @chrootsu @stepancar -/types/lodash.isweakmap/ @bczengel @chrootsu @stepancar -/types/lodash.isweakset/ @bczengel @chrootsu @stepancar -/types/lodash.iteratee/ @bczengel @chrootsu @stepancar -/types/lodash.join/ @bczengel @chrootsu @stepancar -/types/lodash.kebabcase/ @bczengel @chrootsu @stepancar -/types/lodash.keyby/ @bczengel @chrootsu @stepancar -/types/lodash.keys/ @bczengel @chrootsu @stepancar -/types/lodash.keysin/ @bczengel @chrootsu @stepancar -/types/lodash.last/ @bczengel @chrootsu @stepancar -/types/lodash.lastindexof/ @bczengel @chrootsu @stepancar -/types/lodash.lowercase/ @bczengel @chrootsu @stepancar -/types/lodash.lowerfirst/ @bczengel @chrootsu @stepancar -/types/lodash.lt/ @bczengel @chrootsu @stepancar -/types/lodash.lte/ @bczengel @chrootsu @stepancar -/types/lodash.mapkeys/ @bczengel @chrootsu @stepancar -/types/lodash.mapvalues/ @bczengel @chrootsu @stepancar -/types/lodash.matches/ @bczengel @chrootsu @stepancar -/types/lodash.matchesproperty/ @bczengel @chrootsu @stepancar -/types/lodash.max/ @bczengel @chrootsu @stepancar -/types/lodash.maxby/ @bczengel @chrootsu @stepancar -/types/lodash.mean/ @bczengel @chrootsu @stepancar -/types/lodash.meanby/ @bczengel @chrootsu @stepancar -/types/lodash.memoize/ @bczengel @chrootsu @stepancar -/types/lodash.merge/ @bczengel @chrootsu @stepancar -/types/lodash.mergewith/ @bczengel @chrootsu @stepancar -/types/lodash.method/ @bczengel @chrootsu @stepancar -/types/lodash.methodof/ @bczengel @chrootsu @stepancar -/types/lodash.min/ @bczengel @chrootsu @stepancar -/types/lodash.minby/ @bczengel @chrootsu @stepancar -/types/lodash.mixin/ @bczengel @chrootsu @stepancar -/types/lodash.negate/ @bczengel @chrootsu @stepancar -/types/lodash.noop/ @bczengel @chrootsu @stepancar -/types/lodash.now/ @bczengel @chrootsu @stepancar -/types/lodash.nth/ @bczengel @chrootsu @stepancar -/types/lodash.ntharg/ @bczengel @chrootsu @stepancar -/types/lodash.omit/ @bczengel @chrootsu @stepancar -/types/lodash.omitby/ @bczengel @chrootsu @stepancar -/types/lodash.once/ @bczengel @chrootsu @stepancar -/types/lodash.orderby/ @bczengel @chrootsu @stepancar -/types/lodash.over/ @bczengel @chrootsu @stepancar -/types/lodash.overargs/ @bczengel @chrootsu @stepancar -/types/lodash.overevery/ @bczengel @chrootsu @stepancar -/types/lodash.oversome/ @bczengel @chrootsu @stepancar -/types/lodash.pad/ @bczengel @chrootsu @stepancar -/types/lodash.padend/ @bczengel @chrootsu @stepancar -/types/lodash.padstart/ @bczengel @chrootsu @stepancar -/types/lodash.parseint/ @bczengel @chrootsu @stepancar -/types/lodash.partial/ @bczengel @chrootsu @stepancar -/types/lodash.partialright/ @bczengel @chrootsu @stepancar -/types/lodash.partition/ @bczengel @chrootsu @stepancar -/types/lodash.pick/ @bczengel @chrootsu @stepancar -/types/lodash.pickby/ @bczengel @chrootsu @stepancar -/types/lodash.property/ @bczengel @chrootsu @stepancar -/types/lodash.propertyof/ @bczengel @chrootsu @stepancar -/types/lodash.pull/ @bczengel @chrootsu @stepancar -/types/lodash.pullall/ @bczengel @chrootsu @stepancar -/types/lodash.pullallby/ @bczengel @chrootsu @stepancar -/types/lodash.pullallwith/ @bczengel @chrootsu @stepancar -/types/lodash.pullat/ @bczengel @chrootsu @stepancar -/types/lodash.random/ @bczengel @chrootsu @stepancar -/types/lodash.range/ @bczengel @chrootsu @stepancar -/types/lodash.rangeright/ @bczengel @chrootsu @stepancar -/types/lodash.rearg/ @bczengel @chrootsu @stepancar -/types/lodash.reduce/ @bczengel @chrootsu @stepancar -/types/lodash.reduceright/ @bczengel @chrootsu @stepancar -/types/lodash.reject/ @bczengel @chrootsu @stepancar -/types/lodash.remove/ @bczengel @chrootsu @stepancar -/types/lodash.repeat/ @bczengel @chrootsu @stepancar -/types/lodash.replace/ @bczengel @chrootsu @stepancar -/types/lodash.rest/ @bczengel @chrootsu @stepancar -/types/lodash.result/ @bczengel @chrootsu @stepancar -/types/lodash.reverse/ @bczengel @chrootsu @stepancar -/types/lodash.round/ @bczengel @chrootsu @stepancar -/types/lodash.sample/ @bczengel @chrootsu @stepancar -/types/lodash.samplesize/ @bczengel @chrootsu @stepancar -/types/lodash.set/ @bczengel @chrootsu @stepancar -/types/lodash.setwith/ @bczengel @chrootsu @stepancar -/types/lodash.shuffle/ @bczengel @chrootsu @stepancar -/types/lodash.size/ @bczengel @chrootsu @stepancar -/types/lodash.slice/ @bczengel @chrootsu @stepancar -/types/lodash.snakecase/ @bczengel @chrootsu @stepancar -/types/lodash.some/ @bczengel @chrootsu @stepancar -/types/lodash.sortby/ @bczengel @chrootsu @stepancar -/types/lodash.sortedindex/ @bczengel @chrootsu @stepancar -/types/lodash.sortedindexby/ @bczengel @chrootsu @stepancar -/types/lodash.sortedindexof/ @bczengel @chrootsu @stepancar -/types/lodash.sortedlastindex/ @bczengel @chrootsu @stepancar -/types/lodash.sortedlastindexby/ @bczengel @chrootsu @stepancar -/types/lodash.sortedlastindexof/ @bczengel @chrootsu @stepancar -/types/lodash.sorteduniq/ @bczengel @chrootsu @stepancar -/types/lodash.sorteduniqby/ @bczengel @chrootsu @stepancar -/types/lodash.split/ @bczengel @chrootsu @stepancar -/types/lodash.spread/ @bczengel @chrootsu @stepancar -/types/lodash.startcase/ @bczengel @chrootsu @stepancar -/types/lodash.startswith/ @bczengel @chrootsu @stepancar -/types/lodash.subtract/ @bczengel @chrootsu @stepancar -/types/lodash.sum/ @bczengel @chrootsu @stepancar -/types/lodash.sumby/ @bczengel @chrootsu @stepancar -/types/lodash.tail/ @bczengel @chrootsu @stepancar -/types/lodash.take/ @bczengel @chrootsu @stepancar -/types/lodash.takeright/ @bczengel @chrootsu @stepancar -/types/lodash.takerightwhile/ @bczengel @chrootsu @stepancar -/types/lodash.takewhile/ @bczengel @chrootsu @stepancar -/types/lodash.template/ @bczengel @chrootsu @stepancar -/types/lodash.throttle/ @bczengel @chrootsu @stepancar -/types/lodash.times/ @bczengel @chrootsu @stepancar -/types/lodash.toarray/ @bczengel @chrootsu @stepancar -/types/lodash.tofinite/ @bczengel @chrootsu @stepancar -/types/lodash.tointeger/ @bczengel @chrootsu @stepancar -/types/lodash.tolength/ @bczengel @chrootsu @stepancar -/types/lodash.tolower/ @bczengel @chrootsu @stepancar -/types/lodash.tonumber/ @bczengel @chrootsu @stepancar -/types/lodash.topairs/ @bczengel @chrootsu @stepancar -/types/lodash.topairsin/ @bczengel @chrootsu @stepancar -/types/lodash.topath/ @bczengel @chrootsu @stepancar -/types/lodash.toplainobject/ @bczengel @chrootsu @stepancar -/types/lodash.tosafeinteger/ @bczengel @chrootsu @stepancar -/types/lodash.tostring/ @bczengel @chrootsu @stepancar -/types/lodash.toupper/ @bczengel @chrootsu @stepancar -/types/lodash.transform/ @bczengel @chrootsu @stepancar -/types/lodash.trim/ @bczengel @chrootsu @stepancar -/types/lodash.trimend/ @bczengel @chrootsu @stepancar -/types/lodash.trimstart/ @bczengel @chrootsu @stepancar -/types/lodash.truncate/ @bczengel @chrootsu @stepancar -/types/lodash.unary/ @bczengel @chrootsu @stepancar -/types/lodash.unescape/ @bczengel @chrootsu @stepancar -/types/lodash.union/ @bczengel @chrootsu @stepancar -/types/lodash.unionby/ @bczengel @chrootsu @stepancar -/types/lodash.unionwith/ @bczengel @chrootsu @stepancar -/types/lodash.uniq/ @bczengel @chrootsu @stepancar -/types/lodash.uniqby/ @bczengel @chrootsu @stepancar -/types/lodash.uniqueid/ @bczengel @chrootsu @stepancar -/types/lodash.uniqwith/ @bczengel @chrootsu @stepancar -/types/lodash.unset/ @bczengel @chrootsu @stepancar -/types/lodash.unzip/ @bczengel @chrootsu @stepancar -/types/lodash.unzipwith/ @bczengel @chrootsu @stepancar -/types/lodash.update/ @bczengel @chrootsu @stepancar -/types/lodash.updatewith/ @bczengel @chrootsu @stepancar -/types/lodash.uppercase/ @bczengel @chrootsu @stepancar -/types/lodash.upperfirst/ @bczengel @chrootsu @stepancar -/types/lodash.values/ @bczengel @chrootsu @stepancar -/types/lodash.valuesin/ @bczengel @chrootsu @stepancar -/types/lodash.without/ @bczengel @chrootsu @stepancar -/types/lodash.words/ @bczengel @chrootsu @stepancar -/types/lodash.wrap/ @bczengel @chrootsu @stepancar -/types/lodash.xor/ @bczengel @chrootsu @stepancar -/types/lodash.xorby/ @bczengel @chrootsu @stepancar -/types/lodash.xorwith/ @bczengel @chrootsu @stepancar -/types/lodash.zip/ @bczengel @chrootsu @stepancar -/types/lodash.zipobject/ @bczengel @chrootsu @stepancar -/types/lodash.zipobjectdeep/ @bczengel @chrootsu @stepancar -/types/lodash.zipwith/ @bczengel @chrootsu @stepancar -/types/log-symbols/ @BendingBender -/types/log-update/ @BendingBender -/types/logat/ @krvikash35 -/types/logform/ @DABH -/types/logg/ @blittle -/types/loggly/ @rmartone @geoffreak -/types/loglevel/ @Pro @szmeti @screendriver -/types/logrotate-stream/ @rogierschouten -/types/lokijs/ @TeamworkGuy2 @thomasconner -/types/lolex/ @Nemo157 @joshuakgoldberg @rogierschouten -/types/long/ @peterkooijmans -/types/loopback/ @kattsushi @enko @sequoia @drmikecrowe @karimsa -/types/loopback-boot/ @kattsushi -/types/lorem-ipsum/ @durad -/types/lory.js/ @kubosho @milkisevil -/types/loud-rejection/ @BendingBender -/types/lovefield/ @freshp86 -/types/lowdb/ @typicode @niieani -/types/lowlight/ @NoHomey -/types/lozad/ @plantain-00 -/types/lru-cache/ @Bartvds @BendingBender -/types/lscache/ @Chris-Martinezz -/types/ltx/ @PJakcson -/types/luaparse/ @stpettersens -/types/lunr/v0/ @sebastian-lenz -/types/lunr/ @seantanly -/types/lusca/ @crutchcorn -/types/luxon/ @colbydehart @FourwingsY @jsiebern -/types/lwip/ @AyaMorisawa -/types/lz-string/ @M0ns1gn0r -/types/magic-number/ @stpettersens -/types/magicsuggest/ @leonardochaia -/types/magnet-uri/ @tlaziuk -/types/mailcheck/ @pocesar -/types/maildev/ @cyrilschumacher @zbarbuto -/types/mailgen/ @vothanhkiet @jordanfarrer -/types/mailgun-js/ @sampsonjoliver -/types/mailparser/ @psnider -/types/main-bower-files/ @k-kagurazaka -/types/make-dir/ @ikatyang @BendingBender -/types/maker.js/ @danmarshall -/types/mali/ @danwbyrne -/types/mandrill-api/ @pocesar -/types/map-obj/ @BendingBender -/types/mapbox/ @anahkiasen -/types/mapbox-gl/ @dobrud @patrickr -/types/mapbox-gl-leaflet/ @agorshkov23 -/types/mapbox__geo-viewport/ @fnberta -/types/mapbox__geojson-area/ @n0nick -/types/mapbox__polyline/ @Kern0 @mklopets -/types/mapbox__shelf-pack/ @Perlmint -/types/mapnik/ @ipv4sec -/types/mapsjs/ @davismj -/types/mariasql/ @bennett000 -/types/mark.js/ @renjfk @RomanGotsiy -/types/markdown-it/ @rapropos -/types/markdown-it-anchor/ @seryl -/types/markdown-it-container/ @hronex -/types/markdown-pdf/ @MonsieurMan -/types/markdownlint/ @ark120202 -/types/marked/ @worr @BendingBender @CrossR -/types/marker-animate-unobtrusive/ @viskin -/types/markerclustererplus/ @enanox @mxl -/types/markitup/ @drillbits -/types/marko/ @darkwebdev -/types/maskedinput/ @lokeshpeta -/types/masonry-layout/ @m-a-wilson @warriorrocker -/types/massive/v3/ @swissspidy @clarenceh -/types/massive/ @swissspidy @clarenceh @AmazingTurtle -/types/match-media-mock/ @asvetliakov -/types/match-sorter/ @claasahl -/types/material-components-web/ @BrentDouglas @ckosti -/types/material-design-lite/ @bradzacher -/types/material-ui/ @ngbrown @theigor @alitaheri @herrmanno @DaIgeb @allienna @schlesingermatthias @InsidersByte @artyomsv @dan-j @minodisk @samwalshnz @reggino -/types/material-ui-datatables/ @coding2012 -/types/material__animation/ @BrentDouglas @ckosti -/types/material__auto-init/ @BrentDouglas @ckosti -/types/material__base/ @BrentDouglas @ckosti -/types/material__checkbox/ @BrentDouglas @ckosti -/types/material__chips/ @BrentDouglas @ckosti -/types/material__dialog/ @BrentDouglas @ckosti -/types/material__drawer/ @BrentDouglas @ckosti -/types/material__floating-label/ @BrentDouglas @ckosti -/types/material__form-field/ @BrentDouglas @ckosti -/types/material__grid-list/ @BrentDouglas @ckosti -/types/material__icon-toggle/ @BrentDouglas @ckosti -/types/material__line-ripple/ @BrentDouglas @ckosti -/types/material__linear-progress/ @BrentDouglas @ckosti -/types/material__menu/ @BrentDouglas @ckosti -/types/material__notched-outline/ @BrentDouglas @ckosti -/types/material__radio/ @BrentDouglas @ckosti -/types/material__ripple/ @BrentDouglas @ckosti -/types/material__select/ @BrentDouglas @ckosti -/types/material__selection-control/ @BrentDouglas @ckosti -/types/material__slider/ @BrentDouglas @ckosti -/types/material__snackbar/ @BrentDouglas @ckosti -/types/material__tab/ @BrentDouglas @ckosti -/types/material__tabs/ @BrentDouglas @ckosti -/types/material__textfield/ @BrentDouglas @ckosti -/types/material__toolbar/ @BrentDouglas @ckosti -/types/material__top-app-bar/ @BrentDouglas @ckosti -/types/materialize-css/v0/ @eriklieben @leonyu @SinghSukhdeep @jfcere @scote @LiadIdan -/types/materialize-css/ @huww98 @MaximBalaganskiy @MonizDave @broccoliarchy -/types/math3d/ @laszlojakab @jimsmart -/types/mathjax/ @rolandzwaga -/types/mathjs/ @siavol @andnp @bradbesserman -/types/matter-js/ @piranha771 @hasparus -/types/maxmind/ @geoffreak -/types/mcustomscrollbar/ @flurg -/types/md5/ @arcdev1 @jprogrammer -/types/mdns/ @reppners -/types/mdurl/ @rokt33r -/types/media-typer/ @BendingBender -/types/medium-editor/ @keika299 @pascaliske -/types/mem/ @SamVerschueren -/types/mem-fs/ @MyFoodBag -/types/mem-fs-editor/ @MyFoodBag -/types/memcached/ @KentarouTakeda -/types/memjs/ @leizongmin -/types/memoize-one/ @karol-majewski @franklixuefei -/types/memoizee/ @juanpicado -/types/memory-cache/ @jedigo @thieman -/types/memory-fs/ @e-cloud -/types/memwatch-next/ @cyrilschumacher -/types/meow/ @KnisterPeter @praxxis @bitjson -/types/merge-descriptors/ @danny8002 -/types/merge-stream/ @k-kagurazaka @tomxtobin @daniel-zazula @djcsdy -/types/merge2/ @tkrotoff @smac89 -/types/merkle/ @kerol2r20 -/types/mermaid/ @ggilmore -/types/mersenne-twister/ @KentarouTakeda -/types/meshblu/ @fnipo -/types/mess/ @Nemo157 -/types/messenger/ @derekcicerone -/types/meteor/ @barbatus @fullflavedave @orefalo @dagatsoin @birkskyum @ardatan @stefanholzapfel @andrei-markeev -/types/meteor-accounts-phone/ @DAB0mB -/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-roles/ @vangorra @mattmm3d -/types/meteor-universe-i18n/ @mathewmeconry -/types/method-override/ @santialbo -/types/methods/ @cprecioso -/types/metric-suffix/ @davidm77 -/types/mfiles/ @avonwyss -/types/micro/ @kaoDev -/types/micro-cors/ @CallumDenby -/types/micromatch/v2/ @glen-84 -/types/micromatch/ @glen-84 @vemoo -/types/microrouter/ @mathieudutour -/types/microsoft-ajax/ @pjmagee -/types/microsoft-live-connect/ @jvilk -/types/microsoft-sdk-soap/ @markusmauch -/types/microsoftteams/ @WrathOfZombies @jayongg @ydogandjiev -/types/microtime/ @vincekovacs -/types/milkcocoa/ @odangosan -/types/millisecond/ @xeoneux -/types/mime/ @jedigo @dhritzkiv -/types/mime-db/ @AJamesPhillips -/types/mime-types/ @Perlmint -/types/mimos/ @AJamesPhillips -/types/mina/ @lhk @mattanja @kant2002 -/types/mini-css-extract-plugin/ @JounQin -/types/minimal-bit-array/ @jeremejevs -/types/minimatch/ @vvakame @shantmarouti -/types/minimist/ @Bartvds @Necroskillz @kamranayub -/types/minimist-options/ @ikatyang -/types/minio/ @barinbritva @castorw @loremaps -/types/minipass/ @BendingBender -/types/mirrorx/ @aaronphy -/types/mithril/ @spacejack @andraaspar @isiahmeadows -/types/mithril-global/ @spacejack @isiahmeadows -/types/mitm/ @alejo90 -/types/mixpanel/ @hjellek @Manduro -/types/mixto/ @vvakame -/types/mjml/ @aahoughton -/types/mkdirp/ @Bartvds @mrmlnc -/types/mkdirp-promise/ @pluma -/types/mkpath/ @optical -/types/mobx-apollo/ @pselden -/types/mobx-devtools-mst/ @pluma -/types/mocha/ @kazimanzurrashid @otiai10 @jt000 @enlight @cspotcode @1999 -/types/mocha-each/ @magnostherobot -/types/mocha-phantomjs/ @ErikSchierboom -/types/mocha-steps/ @Arylo -/types/mochaccino/ @thomas-p -/types/mock-aws-s3/ @bluehatbrit -/types/mock-fs/ @Nemo157 @tkqubo -/types/mock-knex/ @jessezhang91 -/types/mock-raf/ @djpereira -/types/mock-require/ @gDelgado14 -/types/mockdate/ @brunolm -/types/mockery/ @jt000 -/types/modernizr/ @borisyankov @theodorejb @leonyu @lucax88x @nhardy -/types/modesl/ @neeschit -/types/module-alias/ @KevinRamharak -/types/moji/ @yasupeke -/types/moment-business/ @wonbyte -/types/moment-business-time/ @swist -/types/moment-duration-format/ @SwintDC @TwoStone @leonard-thieu @bendykowski -/types/moment-holiday/ @rwdalpe -/types/moment-jalaali/ @alitaheri -/types/moment-range/ @Burgov @wilgert @franjuan @MartynasZilinskas -/types/moment-round/ @jacobbaskin -/types/moment-shortformat/ @whatasoda -/types/moment-strftime2/ @dex4er -/types/moment-timezone/ @michelsalib @alanblins -/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 -/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 -/types/mongoose-auto-increment/ @AyaMorisawa -/types/mongoose-deep-populate/ @AyaMorisawa -/types/mongoose-geojson-schema/ @bondz -/types/mongoose-mock/ @jt000 -/types/mongoose-paginate/ @linusbrolin @simonxca -/types/mongoose-promise/ @simonxca -/types/mongoose-seeder/ @Crevil -/types/mongoose-sequence/ @linusbrolin -/types/mongoose-simple-random/ @rsxdalv -/types/mongoose-unique-validator/ @stevehipwell -/types/mongorito/ @pinguet62 -/types/moo/ @deltaidea @MofX -/types/moonjs/ @DanielRosenwasser -/types/morgan/ @staticfunction @pscanf -/types/morphdom/ @arvitaly -/types/morris.js/ @mareek @sindilevich -/types/mosca/ @GabrielGouv @jerray -/types/motor-hat/ @muntyan -/types/mousetrap/ @qcz -/types/move-concurrently/ @mgroenhoff -/types/moviedb/ @basarat @0x6368656174 -/types/moxios/ @itoasuka -/types/mozilla-readability/ @charlesvdv -/types/mozjpeg/ @hikoma -/types/mpromise/ @sgkim126 -/types/mri/ @shiftkey @j-f1 -/types/ms/ @danny8002 -/types/msgpack-lite/ @endel @efokschaner -/types/msgpack5/ @wokim @heycalmdown -/types/msnodesql/ @borisyankov @SomaticIT -/types/msportalfx-test/ @julioct -/types/mssql/ @jaminfarr @buzinas @mrrichar @elhaard @pkeuter @mcdado -/types/mu2/ @jedigo -/types/muicss/ @samuelneff -/types/multer/ @jt000 @DavidBR-SW @mxl @hyunseob -/types/multer-gridfs-storage/v1/ @devconcept -/types/multer-gridfs-storage/ @devconcept -/types/multer-s3/ @tcaesvk @galtalmor @terski -/types/multi-typeof/ @mhegazy -/types/multimatch/ @stephenlautier -/types/multiparty/ @kenfdev -/types/multiplexjs/ @KamyarNazeri -/types/multisort/ @CzBuCHi -/types/multistream/ @mrmlnc @kenzierocks -/types/muri/ @jloveridge -/types/murmurhash/ @atd-schubert -/types/murmurhash-js/ @cvle -/types/murmurhash3js/ @dlee-nvisia -/types/musicmetadata/ @Xstoudi -/types/mustache/ @markashleybell @manuth -/types/mv/ @nenadalm -/types/mysql/ @wjohnsto @kacepe @kpping @jdmunro -/types/mz/ @ThomasHickman -/types/n3/ @phreed @rubensworks -/types/named-regexp-groups/ @jewbre -/types/named-routes/ @qqilihq -/types/nano/ @timjacobi @vincekovacs -/types/nanoajax/ @nathancahill -/types/nanoevents/ @nju33 -/types/nanographql/ @cdaringe -/types/nanoid/ @bash @fadezhanger -/types/nanomsg/ @titan -/types/nanoscroller/ @zihark17 -/types/nanp/ @karn -/types/nats-hemera/ @vforv -/types/natsort/ @mgroenhoff -/types/natural/ @dmoonfire -/types/natural-sort/ @a-morales @fluggo -/types/navermaps/ @ckboyjiy -/types/navigation/ @grahammendick -/types/navigation-react/ @grahammendick -/types/navigo/ @aersamkull @dancespiele @deini -/types/nblas/ @erikgerrits -/types/nconf/ @jedigo @jmthibault -/types/ncp/ @bartvds -/types/ndarray/ @pawsong @taoqf -/types/nearley/ @deltaidea @BendingBender -/types/nedb/ @reppners @anthonynichols -/types/nedb-logger/ @thisboyiscrazy -/types/needle/v0/ @bigsan -/types/needle/v1/ @bigsan @nikeee -/types/needle/ @bigsan @nikeee @sindilevich -/types/negotiator/ @BendingBender -/types/neo4j/ @cyrilschumacher -/types/nes/ @NoHomey @saboya -/types/nested-error-stacks/ @woutervh- -/types/net-keepalive/ @hertzg -/types/netmask/ @mhfrantz -/types/network-interfaces/ @anderswestberg -/types/new-relic-browser/ @renehamburger @piotrkubisa -/types/newline-remove/ @OpenByteDev -/types/newman/ @LogvinovLeon -/types/newrelic/ @mastermatt -/types/nexpect/ @vvakame -/types/next/ @dru89 @brikou @jthegedus @resir014 @scottdj92 @joaovieira -/types/next-redux-wrapper/ @stevegeek @Jungwoo-An -/types/ng-command/ @stephenlautier -/types/ng-cordova/ @ksachdeva -/types/ng-dialog/ @stephenlautier -/types/ng-facebook/ @Crevil -/types/ng-file-upload/ @johnnyreilly @thewarpaint -/types/ng-flow/ @ryan10132 -/types/ng-grid/ @smithkl42 @rolandzwaga @kentcooper -/types/ng-i18next/ @cyrilschumacher -/types/ng-notify/ @nzamosenchuk -/types/ng-stomp/ @lpotapczuk -/types/ng-tags-input/ @GiorgosPap -/types/ngbootbox/ @stpettersens -/types/ngeohash/ @erkie -/types/ngkookies/ @martinmcwhorter -/types/ngmap/ @nkovacic -/types/ngprogress/ @martinmcwhorter -/types/ngprogress-lite/ @LukeForder -/types/ngreact/ @velveret -/types/ngsijs/ @guillermofr -/types/ngstorage/ @kubiq -/types/ngtoaster/ @btesser -/types/ngwysiwyg/ @patrick-mackay -/types/nightmare/ @horiuchi @samyang-au @Bleser92 -/types/nightwatch/ @rkavalap @schlesiger -/types/nivo-slider/ @AndersonFriaca -/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-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-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-gcm/ @horiuchi -/types/node-geocoder/ @rosek86 -/types/node-getopt/ @kcauchy -/types/node-hid/ @mhegazy @ert78gb @thegecko -/types/node-horseman/ @apratheek -/types/node-hue-api/ @fjmorel -/types/node-int64/ @x3cion @kevin-greene-ck -/types/node-ipc/ @arvitaly @gjurgens -/types/node-jsfl-runner/ @mrand01 -/types/node-json-db/ @kuzn-ilya -/types/node-memwatch/ @Kroisse -/types/node-mysql-wrapper/ @kataras -/types/node-notifier/ @tkQubo -/types/node-polyglot/ @timjk -/types/node-powershell/ @rodrigoff -/types/node-pushnotifications/ @menushka -/types/node-ral/ @ssddi456 -/types/node-red/ @andersea @tbowmo -/types/node-rsa/ @alitaheri @xm -/types/node-schedule/ @cyrilschumacher @flowpl -/types/node-slack/ @tkQubo -/types/node-snap7/ @heilingbrunner -/types/node-sprite-generator/ @Perlmint -/types/node-ssdp/ @OrionNebula -/types/node-static/ @Morfent -/types/node-statsd/ @alexturek @convoyinc -/types/node-telegram-bot-api/ @ammuench @agadar @Dabolus @Kallu609 @XC-Zhang -/types/node-uuid/ @jeffmay -/types/node-validator/ @kengorab -/types/node-vault/ @YuJianrong -/types/node-wit/ @julienduf -/types/node-xmpp-client/ @PJakcson -/types/node-xmpp-core/ @PJakcson -/types/node-zookeeper-client/ @plantain-00 @jessezhang91 -/types/node-zopfli/ @Alorel -/types/node-zopfli-es/ @Alorel -/types/node_redis/ @borisyankov -/types/nodecredstash/ @migstopheles -/types/nodegit/ @dolanmiu @tniessen -/types/nodemailer/v3/ @rogierschouten -/types/nodemailer/ @rogierschouten @dex4er @bioball -/types/nodemailer-direct-transport/ @rogierschouten -/types/nodemailer-mailgun-transport/ @otociulis -/types/nodemailer-pickup-transport/ @psnider -/types/nodemailer-ses-transport/ @westy92 -/types/nodemailer-smtp-pool/ @rogierschouten -/types/nodemailer-smtp-transport/ @rogierschouten -/types/nodemailer-stub-transport/ @cyrilschumacher -/types/nodeunit/ @jedigo -/types/noisejs/ @izmhr -/types/nomnom/ @panopticoncentral -/types/nopt/ @jbondc -/types/normalize-package-data/ @jdxcode -/types/normalize-url/ @odin3 @BendingBender -/types/notie/ @mateusdemboski -/types/notify/ @hellochar -/types/notifyjs/ @soundTricker @NateScarlet -/types/notifyjs-browser/ @bahman616 -/types/notyf/ @gurov -/types/nouislider/v7/ @acoreyj -/types/nouislider/v8/ @bleuarg -/types/nouislider/ @bleuarg @lagaffe -/types/novnc-core/ @smithkl42 @BendingBender -/types/npm/ @SomaticIT -/types/npm-package-arg/ @mgroenhoff -/types/npm-packlist/ @ajafff -/types/npmlog/ @DanielMSchmidt @littlepiggy03 -/types/ns-api/ @Archcry -/types/nslog/ @unindented -/types/nsqjs/ @cezaryrk -/types/nuka-carousel/ @Romic -/types/number-is-nan/ @mhegazy -/types/number-to-words/ @frederickfogerty -/types/numeral/ @vbortone @BehindTheMath @klujanrosas -/types/numjs/ @taoqf @mattmm3d -/types/nunjucks/ @RubenSlabbert -/types/nunjucks-date/ @kruncher -/types/nvd3/ @PjMitchell -/types/nw.gui/ @xperiments -/types/nw.js/ @alirdn -/types/o.js/ @IceOnFire @bradzacher @janhommes @jcchalte -/types/oauth/ @nonAlgebraic -/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/object-assign/ @chbrown -/types/object-diff/ @rogierschouten -/types/object-hash/ @misak113 -/types/object-inspect/ @demurgos -/types/object-keys/ @VitorLuizC -/types/object-map/ @wolfgang42 -/types/object-merge/ @OpenByteDev -/types/object-path/ @pocesar -/types/object-refs/ @3fd -/types/object.getownpropertydescriptors/ @VitorLuizC -/types/oblo-util/ @Oblosys -/types/oboe/ @optical -/types/observe-js/ @herrmanno -/types/oclazyload/ @rolandzwaga -/types/odata/ @janhommes @jcchalte -/types/ofe/ @Morfent -/types/office-js/ @OfficeDev @LanceEA @Zlatkovsky @kbrandl @Rick-Kirkham @AlexJerabek @ElizabethSamuel-MSFT -/types/offline-js/ @cgwrench -/types/oibackoff/ @geoffreak -/types/oidc-token-manager/ @rosieks -/types/oja/ @buffcode -/types/okta__okta-vue/ @innovation-team -/types/ol/ @yairtawil -/types/omggif/ @ffflorian -/types/on-finished/ @czechboy0 @BendingBender -/types/on-headers/ @jjeffery @BendingBender -/types/once/ @denis-sokolov @BendingBender -/types/onesignal-cordova-plugin/ @broder -/types/onetime/ @BendingBender -/types/oniguruma/ @smhxx -/types/onoff/ @marcel-ernst -/types/open/ @Bartvds -/types/opener/ @tikurahul -/types/openfin/v17/ @chrisbarker -/types/openfin/ @chrisbarker @rdepena -/types/openjscad/ @danmarshall -/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/openstack-wrapper/ @sanjaymadane -/types/opentok/ @westy92 @CatGuardian -/types/opentype.js/ @danmarshall @edzis -/types/opn/ @shinnn @SomaticIT @tlent -/types/optics-agent/ @crevil -/types/optimist/ @soywiz @chbrown -/types/optimize-css-assets-webpack-plugin/ @odnamrataizem -/types/ora/v0/ @basarat @screendriver -/types/ora/ @basarat @screendriver @BendingBender @azasypkin -/types/oracledb/ @Bigous -/types/orchestrator/ @tkQubo @TeamworkGuy2 -/types/orderedmap/ @bradleyayers -/types/orientjs/ @saeedtabrizi -/types/os-homedir/ @mhegazy -/types/os-locale/v1/ @AyaMorisawa @BendingBender -/types/os-locale/ @AyaMorisawa @BendingBender -/types/os-name/ @BendingBender -/types/os-tmpdir/ @mhegazy -/types/osmosis/ @jurajkocan @evanshortiss -/types/osmtogeojson/ @tkqubo -/types/osrm/ @DenisCarriere -/types/otplib/ @renjfk -/types/overwatch-api/ @JoshuaHall -/types/owasp-password-strength-test/ @stephtr -/types/owl.carousel/ @igorissen @KennethanCeyer -/types/owlcarousel/ @dpiatkowski -/types/p-all/ @BendingBender -/types/p-any/ @BendingBender -/types/p-cancelable/ @BendingBender -/types/p-catch-if/ @LinusU -/types/p-debounce/ @BendingBender -/types/p-defer/ @SamVerschueren -/types/p-do-whilst/ @BendingBender -/types/p-each-series/ @BendingBender -/types/p-event/ @BendingBender -/types/p-every/ @BendingBender -/types/p-lazy/ @BendingBender -/types/p-limit/ @BendingBender @LinusU -/types/p-loading/ @renjfk -/types/p-locate/ @BendingBender -/types/p-log/ @BendingBender -/types/p-map/ @BendingBender -/types/p-map-series/ @BendingBender -/types/p-memoize/ @forabi -/types/p-one/ @BendingBender -/types/p-props/ @BendingBender -/types/p-queue/ @BendingBender @evanshortiss -/types/p-reduce/ @BendingBender -/types/p-reflect/ @BendingBender -/types/p-retry/ @BendingBender -/types/p-series/ @BendingBender -/types/p-settle/ @natesilva -/types/p-some/ @BendingBender -/types/p-tap/ @BendingBender -/types/p-throttle/ @BendingBender -/types/p-timeout/ @BendingBender -/types/p-try/ @BendingBender @LinusU -/types/p-wait-for/ @BendingBender -/types/p-whilst/ @BendingBender -/types/p2/ @clark-stevenson -/types/package-json/ @jinwoo -/types/packery/ @piraveen @hanssens -/types/pad/ @mhegazy -/types/page/ @43081j -/types/paho-mqtt/ @amikhalev -/types/pako/ @cappellin @calebegg -/types/pangu/ @plantain-00 -/types/papaparse/ @torpedro @rainshen49 @jfloff @johnnyreilly @albertorestifo @BehindTheMath @3af -/types/paper/ @clark-stevenson @Xakaloz @sebaswebdev @rfried -/types/parallel-transform/ @djcsdy -/types/paralleljs/ @jbaldwin -/types/parcel-env/ @fathyb -/types/parent-package-json/ @sgmccli -/types/parity-pmd/ @leovujanic @jewbre -/types/parity-pmr/ @leovujanic -/types/parity-poe/ @leovujanic -/types/parse/ @dpoetzsch @jaeggerr @flavionegrao @wesleygrimes @owsas -/types/parse-git-config/ @leonard-thieu @deltaidea -/types/parse-github-url/ @ajafff -/types/parse-glob/ @glen-84 -/types/parse-json/ @mrmlnc -/types/parse-link-header/ @zelein -/types/parse-mockdb/ @dpoetzsch -/types/parse-ms/ @Roaders -/types/parse-torrent/ @niieani @tlaziuk -/types/parse-torrent-file/ @tlaziuk -/types/parse-unit/ @Jack-Works -/types/parse5/v4/ @inikulin @andnp -/types/parse5/ @inikulin -/types/parse5-htmlparser2-tree-adapter/ @inikulin -/types/parse5-parser-stream/ @inikulin -/types/parse5-plain-text-conversion-stream/ @inikulin -/types/parse5-sax-parser/ @inikulin -/types/parse5-serializer-stream/ @inikulin -/types/parsecurrency/ @cristianrgreco -/types/parseurl/ @bomret -/types/parsimmon/ @Bartvds @mizunashi-mana @bcherny @bvanreeven @leonard-thieu @MrJohz -/types/passport/ @horiuchi @enaeseth @theigor @tlaziuk @danielpa9708 -/types/passport-anonymous/ @0x6368656174 -/types/passport-beam/ @AtlasDev -/types/passport-cognito/ @mbutsykin -/types/passport-discord/ @kzay -/types/passport-facebook/ @staticfunction @lucasmacosta -/types/passport-facebook-token/ @rmartone @mrand01 -/types/passport-github/ @yasupeke -/types/passport-github2/ @yasupeke @mthmulders @codepunkt -/types/passport-google-oauth/ @staticfunction -/types/passport-google-oauth2/ @bluehatbrit -/types/passport-http/ @krizalys @tlaziuk @cjbarth -/types/passport-http-bearer/ @isman-usoh -/types/passport-jwt/ @jindev -/types/passport-kakao/ @Park9eon -/types/passport-local/ @SomaticIT -/types/passport-local-mongoose/ @linusbrolin -/types/passport-naver/ @Park9eon -/types/passport-oauth2/ @pasieronen @WangZishi -/types/passport-oauth2-client-password/ @akaNightmare -/types/passport-remember-me-extended/ @AylaJK -/types/passport-saml/ @cjbarth @dassennato -/types/passport-steam/ @kzay -/types/passport-strategy/ @liorm -/types/passport-twitter/ @staticfunction -/types/passport-unique-token/ @briman0094 @SomaticIT -/types/password-hash/ @mugeso -/types/password-hash-and-salt/ @alitaheri -/types/path-exists/v1/ @shiwano -/types/path-exists/ @shiwano @BendingBender -/types/path-is-absolute/ @mhegazy -/types/path-is-inside/ @aomarks -/types/pathfinding/ @BNedry -/types/pathjs/ @lokeshpeta -/types/pathwatcher/ @GlenCFL -/types/pause/ @BendingBender -/types/payment/ @apare -/types/paypal-cordova-plugin/ @Justin-Credible -/types/paypal-rest-sdk/ @trainerbill -/types/pbf/ @cschwarz -/types/pbkdf2/ @timonegk -/types/pdfjs-dist/ @jbaldwin -/types/pdfkit/ @erichillah -/types/pdfmake/ @m1llen1um @radziksh -/types/pdfobject/ @nielsboogaard -/types/pebblekitjs/ @makotokw -/types/peer-dial/ @RealTYPICAL -/types/peerjs/ @nakakura -/types/pegjs/ @vvakame @SrTobi @siegebell -/types/pem/ @tony19 @DethAriel -/types/pem-jwk/ @alessiopcc -/types/persona/ @Nycto -/types/pet-finder-api/ @me -/types/pg/v6/ @pspeter3 -/types/pg/ @pspeter3 -/types/pg-ears/ @bradleyayers -/types/pg-escape/ @khell -/types/pg-format/ @zopf -/types/pg-large-object/ @mateuszkrupa -/types/pg-pool/ @aleung -/types/pg-query-stream/ @asmarques -/types/pg-types/ @waratuman -/types/pgwmodal/ @pine613 -/types/phantom/ @horiuchi @llRandom -/types/phantomcss/ @abauzac -/types/phantomjs/ @jedhunsaker @keesey -/types/phoenix/ @mciastek -/types/phone/ @DxCx -/types/phone-formatter/ @westy92 -/types/phonegap/ @borisyankov @DickvdBrink -/types/phonegap-facebook-plugin/ @Justin-Credible -/types/phonegap-nfc/ @michaeldesigaud -/types/phonon/ @kserin -/types/photonui/ @florentpoujol -/types/photoswipe/ @hellochar -/types/physijs/ @gyohk -/types/pi-spi/ @marcel-ernst -/types/pick-weight/ @rsxdalv -/types/pickadate/ @theodorejb @leonard-thieu -/types/picturefill/ @alaz -/types/pidusage/ @cyrilschumacher @mx601595686 -/types/pify/ @samverschueren @mad-mike @c7hm4r -/types/pigpio/ @manerfan -/types/pikaday/ @MidnightDesign @wake42 -/types/pikaday-time/ @Sayan751 -/types/pinkyswear/ @chances -/types/pino/v3/ @psnider -/types/pino/ @psnider @BendingBender @screendriver @paambaati -/types/pino-multi-stream/ @JakeGinnivan -/types/pinterest-sdk/ @adamburmister -/types/pinyin/ @wanganjun -/types/piwik-tracker/ @lbguilherme -/types/pixelmatch/ @iamolegga -/types/pixi.js/ @clark-stevenson -/types/pkg-conf/ @jorgegonzalez -/types/pkg-dir/ @NK-WEB-Git -/types/pkijs/ @microshine -/types/platform/ @JakeH -/types/playcanvas/ @Neoflash1979 -/types/playerframework/ @ricardosabino -/types/playmusic/ @nickp10 -/types/pleasejs/ @nakakura -/types/plotly.js/ @chrisgervang @martinduparc @frederikaalund @taoqf @Dadstart @szechyjs @MercifulCode @soorajpudiyadath @jonfreedman @meganrm -/types/plugapi/ @BNedry -/types/plugin-error/ @rogierschouten -/types/plupload/ @patrickbussmann -/types/pluralize/ @ukyo @karol-majewski -/types/png-async/ @kanreisa -/types/png.js/ @ffflorian -/types/pngjs/ @jason0x43 -/types/pngquant-bin/ @hikoma -/types/podcast/ @nikeee -/types/podium/ @AJamesPhillips -/types/point-in-polygon/ @dyst5422 @kogai -/types/polyfill-service/ @Alorel -/types/polylabel/ @DenisCarriere -/types/polyline/ @Kern0 -/types/polymer/ @lgrignon @laco0416 -/types/polymer-ts/ @lgrignon -/types/popcorn/ @grapswiz -/types/portscanner/ @douglasduteil -/types/postal/ @lokeshpeta @myitcv -/types/postman-collection/ @kbuzby -/types/postmark/ @benbayard -/types/pouch-redux-middleware/ @charrondev -/types/pouchdb/ @AGBrown @geppy @fredgalvao -/types/pouchdb-adapter-fruitdown/ @spaulg @geppy @fredgalvao -/types/pouchdb-adapter-http/ @spaulg @geppy @fredgalvao -/types/pouchdb-adapter-idb/ @spaulg @geppy @fredgalvao -/types/pouchdb-adapter-leveldb/ @spaulg @geppy @fredgalvao -/types/pouchdb-adapter-localstorage/ @spaulg @geppy @fredgalvao -/types/pouchdb-adapter-memory/ @spaulg @geppy @fredgalvao -/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-find/ @trubit @tiangolo -/types/pouchdb-http/ @spaulg @geppy @fredgalvao -/types/pouchdb-mapreduce/ @spaulg @geppy @fredgalvao -/types/pouchdb-node/ @spaulg @geppy @fredgalvao -/types/pouchdb-replication/ @trubit @tiangolo -/types/pouchdb-upsert/ @keithdmoore @hotforfeature @apolkingg8 @zamb3zi -/types/power-assert/ @vvakame -/types/power-assert-formatter/ @vvakame -/types/powerbi-visuals-tools/ @zBritva @Microsoft -/types/precise/ @codeanimal -/types/precond/ @olsio -/types/preloadjs/ @endel -/types/prelude-ls/ @AyaMorisawa -/types/prettier/ @ikatyang -/types/pretty-bytes/v4/ @plantain-00 -/types/pretty-bytes/ @plantain-00 @danielasy -/types/pretty-format/ @ikatyang -/types/pretty-ms/ @BendingBender @ocboogie -/types/printf/ @AluisioASG -/types/priorityqueuejs/ @geoffreak -/types/prismic-dom/ @nickw444 @sbilstein -/types/prismjs/ @eriklieben @andrewiggins @mmiszy -/types/private-ip/ @coderslagoon -/types/procfs-stats/ @cyrilschumacher -/types/progress/ @sebastian-lenz -/types/progressbar/ @atd-schubert -/types/progressjs/ @zaneli -/types/proj4/ @DenisCarriere -/types/proj4leaflet/ @BendingBender -/types/project-oxford/ @scsouthw -/types/promise-dag/ @OSjoerdWie -/types/promise-ftp/ @coolreader18 -/types/promise-ftp-common/ @coolreader18 -/types/promise-map-limit/ @kohlmannj -/types/promise-pg/ @coldacid -/types/promise-polyfill/ @skysteve -/types/promise-pool/ @vilic -/types/promise-queue/ @LachlanStuart -/types/promise-retry/ @shirakaba -/types/promise-sftp/ @coolreader18 -/types/promise-timeout/ @Aankhen -/types/promise.prototype.finally/ @slavik57 @BendingBender -/types/promised-temp/ @rokadias -/types/promisify-node/ @borekb -/types/promisify-supertest/ @aleung -/types/prompt-sync/ @MugeSo -/types/prompt-sync-history/ @MugeSo -/types/promptly/ @danrspencer -/types/prop-types/ @DovydasNavickas @ferdaber -/types/proper-lockfile/ @qlonik -/types/properties-reader/ @Goldsmith42 -/types/prosemirror-collab/ @bradleyayers @davidka @timjb @patsimm -/types/prosemirror-commands/ @bradleyayers @davidka @timjb @patsimm -/types/prosemirror-gapcursor/ @bradleyayers @davidka @timjb @patsimm -/types/prosemirror-history/ @bradleyayers @davidka @timjb @patsimm -/types/prosemirror-inputrules/ @bradleyayers @davidka @timjb @patsimm -/types/prosemirror-keymap/ @bradleyayers @davidka @timjb @patsimm -/types/prosemirror-markdown/ @bradleyayers @davidka @timjb @patsimm -/types/prosemirror-menu/ @bradleyayers @davidka @timjb @patsimm -/types/prosemirror-model/ @bradleyayers @davidka @timjb @neknalb @patsimm -/types/prosemirror-schema-basic/ @bradleyayers @davidka @timjb @patsimm -/types/prosemirror-schema-list/ @bradleyayers @davidka @timjb @patsimm -/types/prosemirror-state/ @bradleyayers @davidka @timjb @patsimm -/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/protractor-browser-logs/ @rokadias -/types/protractor-helpers/ @johncant -/types/protractor-http-mock/ @Crevil -/types/provinces/ @gatimus -/types/proxy-addr/ @BendingBender -/types/proxy-lists/ @BehindTheMath -/types/proxy-verifier/ @BehindTheMath -/types/proxyquire/ @jt000 -/types/ps-tree/ @alessiopcc -/types/ptomasroos__react-native-multi-slider/ @Slessi -/types/pty.js/ @enlight -/types/public-ip/ @BendingBender -/types/pubnub/ @bitbankinc @rollymaduk @vitosamson -/types/pubsub-js/ @borisyankov -/types/pug/ @TonyPythoneer @19majkel94 -/types/pulltorefreshjs/ @DanielRosenwasser @humpedli -/types/pump/ @tlaziuk -/types/pumpify/ @JustinBeckwith @aoberoi -/types/pupa/ @nju33 -/types/puppeteer/v0/ @marvinhagemeister @cdeutsch -/types/puppeteer/ @marvinhagemeister @cdeutsch @ksm2 -/types/pure-render-decorator/ @seansfkelley -/types/purl/ @danfma -/types/pusher-js/ @tkqubo @cainlevy -/types/pvutils/ @microshine -/types/python-shell/ @dolanmiu @WORMSS -/types/q/v0/ @bnemetchek @johnnyreilly -/types/q/ @bnemetchek @AndrewGaspar @johnnyreilly @mboudreau @TeamworkGuy2 -/types/q-io/ @Bartvds -/types/q-retry/ @vilic -/types/qhistory/ @Kovensky -/types/qiniu-js/ @taoqf -/types/qlik/ @RubenSlabbert @AginicX -/types/qlik-engineapi/ @konne -/types/qlik-visualizationextensions/ @konne -/types/qr-image/ @taoqf -/types/qrcode/ @plantain-00 -/types/qrcode.react/ @mleko -/types/qs/ @RWander @leonyu @tehbelinda @zyml @artursvonda @CarlosBonetti -/types/qtip2/ @Seltzer @leonard-thieu -/types/query-string/ @SamVerschueren @tkrotoff @huhuanming @MadaraUchiha @shssoichiro -/types/querystringify/ @ilich -/types/quick-lru/ @BendingBender -/types/quill/ @sumitkm @guillaume-ro-fr @43081j @AnielloFalcone @mhamri -/types/quixote/ @greybax -/types/qunit/v1/ @diullei -/types/qunit/ @waratuman @mike-north -/types/qunit-dom/ @happycollision -/types/quoted-printable/ @pushplay -/types/qwest/ @lindsayevans -/types/r-script/ @NaridaL -/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/random-js/ @pistacchio -/types/random-number/ @OpenByteDev -/types/random-seed/ @endel -/types/random-string/ @stpettersens -/types/randomcolor/ @feitzi @BradyLiles -/types/range-parser/ @tlaziuk -/types/rangyinputs/ @ersimont -/types/raphael/ @CheCoxshall -/types/rappid/ @DenEwout -/types/raspi/ @nebrius -/types/raspi-board/ @nebrius -/types/raspi-gpio/ @nebrius -/types/raspi-i2c/ @nebrius -/types/raspi-led/ @nebrius -/types/raspi-onewire/ @nebrius -/types/raspi-peripheral/ @nebrius -/types/raspi-pwm/ @nebrius -/types/raspi-serial/ @nebrius -/types/raspi-soft-pwm/ @nebrius -/types/ratelimiter/ @AyaMorisawa -/types/raty/ @terrawheat -/types/raven/ @scttcper @1999 @shreyjain1994 -/types/raven-for-redux/ @chiubaka -/types/raygun4js/ @xt0rted @BenjaminHarding -/types/rbac-a/ @tlaziuk -/types/rc/ @DanielRosenwasser -/types/rc-select/ @DenisTirilis -/types/rc-slider/ @mantasmarcinkus @mattoni @paustint @j-fro @Deanna2 -/types/rc-tree/ @johnnyreilly @Methuselah96 -/types/rcloader/ @panuhorsmalahti -/types/rdf-data-model/ @rubensworks -/types/rdf-js/ @rubensworks -/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-alice-carousel/ @endigo -/types/react-amplitude/ @rayzor65 -/types/react-animate-on-scroll/ @ralbuque -/types/react-app/ @prakarshpandey -/types/react-aria-menubutton/ @forabi @crohlfs -/types/react-aria-modal/ @forabi -/types/react-autocomplete/ @lstanden -/types/react-autosuggest/ @nicolas-schmitt @pjo256 @robessog @tbayne @cdeutsch @rosskevin -/types/react-avatar-editor/ @diogocorrea @gabsprates -/types/react-beautiful-dnd/ @varHarrie @bradleyayers @paustint @marknelissen -/types/react-big-calendar/ @piotrwitek @paustint @pikpok @eps1lon -/types/react-body-classname/ @mhegazy -/types/react-bootstrap/ @walkerburgin @vsiao @danilojrr @Batbold-Gansukh @octatone @chengsieuly @mretolaza @katbusch @vitosamson @LKay @aaronbeall @jrakotoharisoa @r3nya @t49tran -/types/react-bootstrap-date-picker/ @LKay @ssi-hu-antal-bodnar -/types/react-bootstrap-daterangepicker/ @ianks -/types/react-bootstrap-table/v2/ @flaub @alelode @UJosue10 -/types/react-bootstrap-table/ @flaub @alelode @UJosue10 @dawnmist @Ogglas -/types/react-bootstrap-typeahead/ @Guymestef @radziksh @PaitoAnderson -/types/react-breadcrumbs/ @KostyaEsmukov -/types/react-breadcrumbs-dynamic/ @mitsuruog -/types/react-broadcast/ @kandros -/types/react-burger-menu/ @radziksh -/types/react-calendar-heatmap/ @9renpoto -/types/react-calendar-timeline/ @radziksh @acemac -/types/react-cartographer/ @trevonmckay -/types/react-circular-progressbar/ @lstanden -/types/react-click-outside/ @screendriver -/types/react-codemirror/ @velveret @rudi-c -/types/react-coinhive/ @sktbcbbs -/types/react-collapse/ @Kimahriman -/types/react-collapsible/ @knegusen -/types/react-color/ @LKay @markspolakovs @mntdn -/types/react-confirm/ @santiagodoldan -/types/react-content-loader/ @alaatm @samwalshnz -/types/react-copy-to-clipboard/ @mabels @BernabeFelix -/types/react-copy-write/ @samhh @davej -/types/react-credit-cards/ @vstrimaitis @olefrank -/types/react-cropper/ @stepancar -/types/react-css-modules/ @KostyaEsmukov @skirsdeda -/types/react-css-transition-replace/ @LKay -/types/react-custom-scrollbars/v3/ @David-LeBlanc-git -/types/react-custom-scrollbars/ @David-LeBlanc-git @kittimiyo -/types/react-data-grid/v1/ @SupernaviX -/types/react-data-grid/ @SupernaviX @KieranPeat @martinnov92 -/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 -/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-title/ @cleverguy25 -/types/react-dom/v15/ @MartynasZilinskas -/types/react-dom/ @MartynasZilinskas @theruther4d -/types/react-dom-factories/ @jgoz -/types/react-dragtastic/ @nscarcella -/types/react-dropzone/v2/ @matdube @LynxEyes @goblindegook @benbayard -/types/react-dropzone/v3/ @matdube @LynxEyes @goblindegook @benbayard @LKay -/types/react-dropzone/ @matdube @LynxEyes @goblindegook @benbayard @LKay @codeaid @jurosh @ekilah -/types/react-dynamic-number/ @eugrdn -/types/react-easy-chart/ @danzel -/types/react-event-listener/ @asvetliakov -/types/react-fa/ @flaub @patsissons @LKay -/types/react-facebook-login/ @apare @jankarres -/types/react-faux-dom/ @alitaheri @cleverguy25 @deviousm @hanai -/types/react-file-input/ @dmitryrogozhny -/types/react-file-reader-input/ @dmitryrogozhny @alitaheri -/types/react-flag-icon-css/ @jonfreedman -/types/react-flags-select/ @senukartur -/types/react-flatpickr/ @begincalendar -/types/react-flex/ @pushplay -/types/react-flexr/ @pushplay -/types/react-fontawesome/ @timurrustamov @dublicator @vincaslt @gavingregory -/types/react-form/v1/ @cameron-mcateer -/types/react-form/ @cameron-mcateer @TiuSh -/types/react-foundation/ @danielearwicker -/types/react-gateway/ @jsonunger -/types/react-geosuggest/ @brmenchl -/types/react-google-maps-loader/ @vasilysn -/types/react-google-places-suggest/ @vasilysn -/types/react-google-recaptcha/ @KoalaHuman -/types/react-gravatar/ @invliD -/types/react-grid-layout/ @abirkholz @alitaheri @ZheyangSong @andrewhathaway -/types/react-hamburger-menu/ @grzesie2k -/types/react-hammerjs/ @jsonunger -/types/react-helmet/v4/ @evanbb @isman-usoh -/types/react-helmet/ @evanbb @isman-usoh @lith-light-g @sammkj @yuit -/types/react-helmet-async/ @forabi -/types/react-highlight/ @joshuakgoldberg -/types/react-highlight-words/ @mhegazy @diogodca -/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-gallery/ @adamwpc -/types/react-imageloader/ @stephenjelfs -/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-input-autosize/ @jsonunger @franklixuefei -/types/react-input-calendar/ @stepancar -/types/react-input-mask/v1/ @apare -/types/react-input-mask/ @apare @dima7a14 -/types/react-intl/v1/ @bgrieder -/types/react-intl/ @bgrieder @cdroulers @gyzerok @tillwolff @LKay @bhouser @kristerkari @formatlos -/types/react-intl-redux/ @LKay -/types/react-is/ @AviVahl -/types/react-is-deprecated/ @seansfkelley -/types/react-joyride/ @DanielRosenwasser @bendxn -/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-lazyload/ @m0a -/types/react-lazylog/ @benjaminRomano -/types/react-leaflet/ @danzel @davschne @yuit -/types/react-list/ @buptyyf @tomshen -/types/react-loadable/ @Kovensky @odensc @ianks @tlaziuk @iMobs -/types/react-loader/ @artfuldev -/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-mixin/ @tkqubo -/types/react-modal/ @radziksh @drewnoakes @homburg @ttamminen @hallowatcher @peterblazejewicz -/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-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-communications/ @huhuanming @PaitoAnderson -/types/react-native-custom-tabs/ @philnova -/types/react-native-datepicker/ @jacobbaskin -/types/react-native-dialog/ @MrLuje -/types/react-native-dialogflow/ @jasonmerino -/types/react-native-doc-viewer/ @iRoachie -/types/react-native-document-picker/ @plantain-00 -/types/react-native-drawer/ @jnbt @suniahk -/types/react-native-drawer-layout/ @jmfirth -/types/react-native-elevated-view/ @fhelwanger -/types/react-native-fabric/ @josephroque -/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-htmlview/ @ifiokjr -/types/react-native-i18n/ @VincentLanglet -/types/react-native-indicators/ @ifiokjr -/types/react-native-keep-awake/ @huhuanming -/types/react-native-keyboard-spacer/ @VincentLanglet -/types/react-native-keychain/ @DavidFarinha -/types/react-native-loading-spinner-overlay/ @fhelwanger -/types/react-native-material-design-searchbar/ @iRoachie -/types/react-native-material-kit/ @iRoachie @timwangdev -/types/react-native-material-textfield/ @mindhivefi @iRoachie -/types/react-native-material-ui/ @iRoachie -/types/react-native-mixpanel/ @r3nya -/types/react-native-modalbox/ @iRoachie -/types/react-native-multi-slider/ @Slessi -/types/react-native-navbar/ @ryokik -/types/react-native-orientation/ @MoLow -/types/react-native-permissions/ @vincentlanglet -/types/react-native-photo-view/ @christianchown -/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-safari-view/ @mrand01 -/types/react-native-scrollable-tab-view/ @CaiHuan @egorshulga -/types/react-native-sensor-manager/ @SahinVardar -/types/react-native-settings-list/ @MrLuje -/types/react-native-share/ @marknelissen -/types/react-native-snap-carousel/ @jnbt @j-fro @gazaret @VitorLuizC -/types/react-native-sortable-grid/ @j-fro -/types/react-native-sortable-list/ @sivolobov @RookY2K -/types/react-native-sqlite-storage/ @dryganets @cavarzan -/types/react-native-star-rating/ @iRoachie -/types/react-native-svg-charts/ @krzysztof-miemiec -/types/react-native-svg-uri/ @iRoachie -/types/react-native-swiper/ @CaiHuan @huhuanming @mhcgrq -/types/react-native-tab-navigator/ @iRoachie -/types/react-native-tab-view/ @kaoDev @iRoachie @timwangdev -/types/react-native-text-input-mask/ @RodrigoAWeber -/types/react-native-toast-native/ @bm-software -/types/react-native-touch-id/ @huhuanming @gazaret @jinshin1013 -/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 -/types/react-navigation-material-bottom-tabs/ @iRoachie -/types/react-no-ssr/ @rafalfilipek -/types/react-notification-system/ @GiedriusGrabauskas @DeividasBakanas @LKay @sztobar -/types/react-notification-system-redux/ @LKay -/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-overlays/ @aaronbeall @vitosamson -/types/react-owl-carousel/ @tbounsiar @igorissen @KennethanCeyer -/types/react-paginate/v4/ @deevus @wouterhardeman @pegel03 @archy-bold -/types/react-paginate/ @deevus @wouterhardeman @pegel03 @archy-bold @yasupeke -/types/react-places-autocomplete/ @guilhermehubner @r3nya -/types/react-plotly.js/ @jonfreedman -/types/react-pointable/ @istefo @mdibyo -/types/react-popover/ @jacoporicare -/types/react-portal/v3/ @shuntksh -/types/react-portal/ @shuntksh @HorusGoul -/types/react-primitives/ @aghoneim92 -/types/react-props-decorators/ @tkqubo -/types/react-qr-reader/ @davidkevork -/types/react-radio-group/ @jsonunger -/types/react-recaptcha/ @mhegazy @zzanol -/types/react-redux/v5/ @tkqubo @thasner @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva -/types/react-redux/ @tkqubo @thasner @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva @kallikrein @val1984 @jrakotoharisoa -/types/react-redux-epic/ @forabi -/types/react-redux-i18n/ @clementdevos -/types/react-redux-toastr/ @Smiche @artyomsv @kulmajaba -/types/react-relay/ @graphcool @voxmatt @alloy @npirotte @ckknight @kastermester -/types/react-request/ @dannycochran -/types/react-resize-detector/ @matthew-matvei @aMoniker @rdrgn -/types/react-resolver/ @forabi -/types/react-responsive/v1/ @asvetliakov -/types/react-responsive/ @asvetliakov @alechill @xaviergonz -/types/react-rnd/ @Ragg- @fsubal -/types/react-router/v2/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov -/types/react-router/v3/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @ssorallen -/types/react-router/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @tkrotoff @huy-nguyen @grmiade @DaIgeb @egorshulga @neuoy @rraina @pret-a-porter @t49tran -/types/react-router-bootstrap/ @vlesierse @LKay @olmobrutall -/types/react-router-config/ @lith-light-g -/types/react-router-dom/ @tkrotoff @huy-nguyen @p-jackson -/types/react-router-hash-link/ @zoompie -/types/react-router-native/ @ezintz @fhelwanger -/types/react-router-navigation/ @kaoDev -/types/react-router-navigation-core/ @kaoDev -/types/react-router-param-link/ @mtsg -/types/react-router-redux/v3/ @isman-usoh @noah79 @rosendi -/types/react-router-redux/v4/ @isman-usoh @noah79 @rosendi @LKay @DovydasNavickas -/types/react-router-redux/ @huy-nguyen @8398a7 @mykolas -/types/react-s-alert/ @mitsuruog -/types/react-scroll/ @sudoplz @GiedriusGrabauskas -/types/react-scrollbar/ @stephenjelfs -/types/react-select/v1/ @Hesquibet @giladgray @iebaker @skirsdeda @vujevits @devrelm @MartynasZilinskas @onatm @ninjaferret @tehbi4 @misantronic @darkartur @eps1lon @endurance @RCGuillaume -/types/react-select/ @claasahl @jonfreedman -/types/react-share/ @icopp -/types/react-show-more/ @naortor -/types/react-side-effect/ @remojansen @0xcaff -/types/react-sidebar/ @jeroenvervaeke -/types/react-sketchapp/ @ricokahler @DomiR -/types/react-slick/ @andrewBalekha @GiedriusGrabauskas @r3nya -/types/react-slider/ @jsonunger -/types/react-smooth-scrollbar/ @asvetliakov -/types/react-sortable-hoc/ @NoHomey @charlesrey -/types/react-sortable-pane/ @rhysd -/types/react-sortable-tree/ @wouterhardeman @jzoric @kevinsperrine @acemac -/types/react-sound/ @koss-lebedev -/types/react-spinkit/v1/ @tkqubo @mleko @pelotom -/types/react-spinkit/ @tkqubo @mleko @pelotom @zzanol -/types/react-sticky/ @curtisw0 @ajhyndman -/types/react-sticky-el/ @jbraithwaite -/types/react-stickynode/ @tstirrat -/types/react-stripe-elements/ @dan-j @santiagodoldan @sonnysangha @9y5 @thchia -/types/react-svg-inline/ @kiyopikko -/types/react-svg-pan-zoom/ @huy-nguyen -/types/react-swf/ @stepancar -/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-tabs/ @danez -/types/react-tag-input/ @Ogglas @jankarres @matthewberryman -/types/react-tagcloud/ @wassname -/types/react-tagsinput/ @mykter -/types/react-tap-event-plugin/ @mxl -/types/react-test-renderer/v15/ @arvitaly @lochbrunner @lochbrunner @johnnyreilly -/types/react-test-renderer/ @arvitaly @lochbrunner @johnnyreilly @jgoz -/types/react-tether/ @ryprice -/types/react-text-mask/ @guilhermehubner @cavarzan @needpower -/types/react-textarea-autosize/ @asvetliakov @zry656565 -/types/react-timeout/ @kerwynrg -/types/react-toastify/ @icopp -/types/react-toastr/ @shssoichiro @DanRegazzi -/types/react-toggle/v2/ @LKay @jsonunger -/types/react-toggle/ @LKay -/types/react-tooltip/ @DeividasBakanas -/types/react-touch/ @grzesie2k -/types/react-tracking/ @alloy -/types/react-transition-group/v1/ @LKay -/types/react-transition-group/ @LKay @Epskampie @ybiquitous -/types/react-treeview/ @janslow -/types/react-truncate/ @mattvperry -/types/react-twitter-auth/ @paulfasola @loginwashere -/types/react-user-tour/ @ccancellieri -/types/react-vertical-timeline-component/ @stephane-monnot -/types/react-virtual-keyboard/ @bsurai -/types/react-virtualized/ @kaoDev @guntherjh @wasd171 @szabolcsx @kraenhansen @Stevearzh @mgoszcz2 @brandonhall -/types/react-virtualized-select/ @seansfkelley -/types/react-webcam/ @squat -/types/react-weui/ @tairan -/types/react-widgets/ @rogierschouten @sanyatuning @frodehansen2 @r3nya @MBillemaz -/types/react-widgets-moment/ @dawnmist -/types/react-youtube/ @kgtkr -/types/react-youtube-embed/ @charles-salmon -/types/reactable/ @spielc -/types/reactcss/ @chrisgervang @LKay -/types/reactstrap/v4/ @alihammad @mfal @danilobjr @fabiopaiva -/types/reactstrap/ @alihammad @mfal @danilobjr @FaithForHumans @KurtPreston @timc13 @patrickrgaffney -/types/read/ @timjk -/types/read-chunk/ @crispybee -/types/read-package-tree/ @mgroenhoff -/types/read-pkg/ @jdxcode -/types/read-pkg-up/ @dudeofawesome @jdxcode -/types/readdir-enhanced/ @mrmlnc -/types/readdir-stream/ @Bartvds -/types/readline-sync/ @jonestristand -/types/readline-transform/ @dex4er -/types/reapop/ @Barrokgl -/types/recaptcha2/ @l-jonas -/types/recase/ @18steps -/types/recharts/ @mthmulders @rapmue @royxue @ZheyangSong @richbai90 @caspeco-dan @pkeuter @jrsaunde @paulmelnikow @crusectrl @apalugniok -/types/recluster/ @dex4er -/types/recompose/ @iskandersierra @mrapogee @clayne11 @Pajn @lucasterra -/types/reconnect-core/ @thw0rted -/types/reconnectingwebsocket/ @nguarracino -/types/recursive-readdir/v1/ @elisee -/types/recursive-readdir/ @elisee @MicahZoltu -/types/redis/ @soywiz @CodeAnimal @MugeSo @UppaJung @Rokt33r @43081j @barnski -/types/redis-errors/ @43081j -/types/redis-mock/ @BendingBender -/types/redis-rate-limiter/ @westy92 -/types/redis-scripto/ @westy92 -/types/redlock/v2/ @chrootsu -/types/redlock/ @chrootsu @BendingBender -/types/redom/ @RauliL @nemoinho -/types/reduce-reducers/ @huy-nguyen -/types/redux-action/ @newraina -/types/redux-action-utils/ @tkqubo -/types/redux-actions/ @jaysoo @alexgorbatchev @alechill @alexey-pelykh -/types/redux-async-queue/ @andreiho -/types/redux-auth-wrapper/v1/ @LKay -/types/redux-auth-wrapper/ @LKay -/types/redux-batched-subscribe/ @mDibyo -/types/redux-debounced/ @seansfkelley -/types/redux-devtools/ @mc-petry -/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-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-immutable-state-invariant/ @remojansen @highflying -/types/redux-infinite-scroll/ @silkyfray -/types/redux-injectable-store/ @unindented -/types/redux-little-router/ @priecint -/types/redux-localstorage/ @LKay -/types/redux-localstorage-debounce/ @LKay -/types/redux-localstorage-filter/ @LKay -/types/redux-logger/ @arusakov @kgroat -/types/redux-mock-store/v0/ @MarianPalkus -/types/redux-mock-store/ @MarianPalkus -/types/redux-optimistic-ui/ @asvetliakov -/types/redux-orm/ @keenondrums -/types/redux-pack/ @tansongyang @quicksnap @no-stack-dub-sack -/types/redux-persist-transform-encrypt/ @LKay @dante-101 -/types/redux-persist-transform-filter/ @LKay -/types/redux-promise/ @molekilla @xStrom -/types/redux-promise-middleware/ @ianks -/types/redux-recycle/ @LKay -/types/redux-router/ @stepancar -/types/redux-saga-tester/ @BenLorantfy -/types/redux-shortcuts/ @tstirrat -/types/redux-socket.io/ @snakeego -/types/redux-storage/ @asvetliakov -/types/redux-storage-engine-jsurl/ @screendriver -/types/redux-storage-engine-localstorage/ @screendriver -/types/redux-test-utils/ @huwmartin -/types/redux-testkit/ @Bookler96 -/types/redux-ui/ @andyshuxin -/types/ref/ @loyd -/types/ref-array/ @loyd -/types/ref-array-di/ @keerthi16 @KiranNiranjan -/types/ref-napi/ @keerthi16 @KiranNiranjan -/types/ref-struct/ @loyd -/types/ref-struct-di/ @keerthi16 @KiranNiranjan -/types/ref-union/ @loyd -/types/ref-union-di/ @keerthi16 @KiranNiranjan -/types/reflux/v0/ @mauricedb -/types/reflux/ @mauricedb @LiangZugeng -/types/registry-auth-token/ @mauricedb @LiangZugeng -/types/relateurl/ @tkrotoff -/types/relaxed-json/ @18steps -/types/relay-runtime/ @voxmatt @alloy -/types/remarkable/ @makepost -/types/remote-redux-devtools/ @ColinEberhardt @unindented @mamodom @colindekker -/types/remove-markdown/ @RagibHasin -/types/rename/ @Aankhen -/types/replace-ext/ @DeividasBakanas -/types/req-cwd/ @Alorel -/types/request/ @soywiz @bonnici @Bartvds @joeskeen @ccurrens @lookfirst @mastermatt @josecolella -/types/request-as-curl/ @atd-schubert -/types/request-ip/ @mrhen -/types/request-promise/ @cglantschnig @joeskeen @AyaMorisawa @mastermatt -/types/request-promise-native/ @gustavohenke @mastermatt -/types/requestidlecallback/ @hax -/types/requestretry/ @EricByers @trainerbill -/types/require-dir/ @weekens -/types/require-directory/ @Igmat -/types/require-from-string/ @ikatyang -/types/require-relative/ @MattiasBuelens -/types/requirejs/ @jbaldwin -/types/requirejs-domready/ @lefb766 -/types/resemblejs/ @pimterry -/types/reservoir/ @danvk -/types/resolve/ @marionebl @ajafff -/types/resolve-from/ @unional -/types/resourcejs/ @shaunluttin -/types/response-time/ @urossmolnik @TonyPythoneer -/types/rest/ @Nemo157 -/types/restangular/ @borisyankov -/types/restful.js/ @tkqubo -/types/restify/v4/ @blittle @stevehipwell -/types/restify/v5/ @blittle @stevehipwell @leanazulyoro -/types/restify/ @blittle @stevehipwell @leanazulyoro @mgebundy -/types/restify-cookies/ @weekens -/types/restify-cors-middleware/ @dthunell -/types/restify-errors/ @stevehipwell -/types/restify-plugins/ @KostyaTretyak -/types/restler/ @cyrilschumacher -/types/restling/ @loghorn -/types/resumablejs/ @DanielMcAssey -/types/rethinkdb/ @alexgorbatchev @AdrianFarmadin @kondi @hoishin -/types/retry/ @krenor -/types/retry-as-promised/ @Raigen -/types/rev-hash/ @ikatyang -/types/revalidate/ @alex3165 -/types/revalidator/ @brewsoftware -/types/reveal/ @robertop87 @Nava2 -/types/rewire/ @borislavjivkov @CaselIT -/types/rfc2047/ @mugifly -/types/rgrove__parse-xml/ @petejohanson -/types/rheostat/ @SashaBayan @kourge -/types/rickshaw/ @niemyjski -/types/rimraf/ @soywiz @e-cloud @bash -/types/riot/ @Stubb0rn -/types/riot-api-nodejs/ @zafixlrp -/types/riot-games-api/ @xstoudi -/types/riot-route/ @karak -/types/riotcontrol/ @chrootsu -/types/riotjs/ @vvakame -/types/rison/ @impworks -/types/rivets/ @TrevorDev @matjanos -/types/rmfr/ @pluma -/types/roads/ @dancespiele -/types/roads-server/ @dancespiele -/types/roll/ @icopp -/types/rolling-rate-limiter/ @l-jonas -/types/rollup-plugin-json/ @asmockler @hotell -/types/ronomon__crypto-async/ @BendingBender -/types/rosie/ @abner @subvertallchris @abukurov -/types/roslib/ @Pro @skycoop @dgorobopec -/types/rot-js/ @atiaxi -/types/round-to/ @seangenabe -/types/route-parser/ @ianks @bobbuehler -/types/routie/ @Adilson -/types/royalslider/ @csrakowski -/types/rpio/ @DominikPalo @Pencl -/types/rrc/ @DeividasBakanas -/types/rsmq/ @MugeSo -/types/rsmq-worker/ @MugeSo -/types/rss/ @secondwtq -/types/rsvp/ @chriskrycho -/types/rsync/ @philippstucki -/types/rtree/ @oefirouz -/types/run-parallel/ @mrmlnc -/types/run-parallel-limit/ @mrmlnc -/types/run-sequence/ @k-kagurazaka -/types/runes/ @viralpickaxe -/types/rword/ @icopp -/types/rx/ @Igorbek -/types/rx-angular/ @mickdelaney -/types/rx-core/ @Igorbek @mizunashi-mana -/types/rx-core-binding/ @Igorbek -/types/rx-dom/ @oliverw -/types/rx-jquery/ @Igorbek -/types/rx-lite/ @Igorbek -/types/rx-lite-aggregates/ @Igorbek -/types/rx-lite-async/ @zoetrope @Igorbek -/types/rx-lite-backpressure/ @Igorbek -/types/rx-lite-coincidence/ @Igorbek -/types/rx-lite-experimental/ @Igorbek -/types/rx-lite-joinpatterns/ @Igorbek -/types/rx-lite-testing/ @Igorbek -/types/rx-lite-time/ @Igorbek -/types/rx-lite-virtualtime/ @Igorbek -/types/rx.wamp/ @darkl -/types/s3-download-stream/ @everettcaleb -/types/s3-upload-stream/ @geoffreak -/types/safari-extension/ @luukd -/types/safari-extension-content/ @luukd -/types/safe-compare/ @bevalorous -/types/safe-json-stringify/ @ericbyers -/types/safe-regex/ @mhegazy -/types/sails.io.js/ @arvitaly -/types/saml2-js/ @horiuchi -/types/saml20/ @HackerUndKoch -/types/samlp/ @horiuchi -/types/sammy/ @borisyankov @oising -/types/sanctuary/ @davidchambers @cortopy @piq9117 -/types/sandboxed-module/ @svi3c -/types/sane/ @BendingBender -/types/sane-email-validation/ @ForbesLindesay -/types/sanitize-filename/ @Nemo157 -/types/sanitize-html/ @rogierschouten @afshin @BehindTheMath @biermeester -/types/sap__xsenv/ @mad-mike -/types/sass-graph/ @marvinhagemeister -/types/sass-webpack-plugin/ @AepKill -/types/sat/ @omni360 -/types/satnav/ @DotNetNerd -/types/saywhen/ @SeanSobey -/types/scalike/ @ryoppy -/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-profiler/ @ramblurr -/types/scriptjs/ @ssttevee -/types/scroll-into-view/ @zivni -/types/scroller/ @haskellcamargo -/types/scrollreveal/ @Davidblkx -/types/scrolltofixed/ @bmdixon -/types/scrypt/ @WhiteAbeLincoln -/types/scrypt-async/ @xStrom @stesix -/types/scryptsy/ @micksatana -/types/sdp-transform/ @loc -/types/seamless/ @danmana -/types/seamless-immutable/ @alex3165 @xsburg @geirsagberg -/types/secp256k1/ @anler -/types/seed-random/ @l-jonas -/types/seededshuffle/ @urish -/types/seedrandom/ @kernhanda -/types/segment-analytics/ @fongandrew -/types/select2/v3/ @borisyankov -/types/select2/ @borisyankov @denisname -/types/selectables/ @renjfk -/types/selectize/ @adidahiya @naBausch -/types/selenium-standalone/ @SanderDeWaal1992 -/types/selenium-webdriver/v2/ @BillArmstrong @Kuniwak @cnishina -/types/selenium-webdriver/ @BillArmstrong @Kuniwak @cnishina @SupernaviX @bendxn -/types/semantic-ui/ @leonard-thieu -/types/semantic-ui-accordion/ @leonard-thieu -/types/semantic-ui-api/ @leonard-thieu -/types/semantic-ui-checkbox/ @leonard-thieu -/types/semantic-ui-dimmer/ @leonard-thieu -/types/semantic-ui-dropdown/ @leonard-thieu -/types/semantic-ui-embed/ @leonard-thieu -/types/semantic-ui-form/ @leonard-thieu -/types/semantic-ui-modal/ @leonard-thieu -/types/semantic-ui-nag/ @leonard-thieu -/types/semantic-ui-popup/ @leonard-thieu -/types/semantic-ui-progress/ @leonard-thieu -/types/semantic-ui-rating/ @leonard-thieu -/types/semantic-ui-search/ @leonard-thieu -/types/semantic-ui-shape/ @leonard-thieu -/types/semantic-ui-sidebar/ @leonard-thieu -/types/semantic-ui-site/ @leonard-thieu -/types/semantic-ui-sticky/ @leonard-thieu -/types/semantic-ui-tab/ @leonard-thieu -/types/semantic-ui-transition/ @leonard-thieu -/types/semantic-ui-visibility/ @leonard-thieu -/types/semaphore/ @mhfrantz @Alorel -/types/semver/ @Bartvds @BendingBender @LucianBuzzo -/types/semver-compare/ @vincekovacs -/types/semver-diff/ @chrismbarr -/types/semver-sort/ @LogvinovLeon -/types/sencha_touch/ @brian428 -/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-cursor-pagination/ @pilagod -/types/sequelize-fixtures/ @cschwarz -/types/sequencify/ @npenin -/types/sequester/ @Strate -/types/serialize-error/ @thomasthiebaud -/types/serialize-javascript/ @lith-light-g -/types/serialport/v4/ @codefoster -/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/servicenow/ @bryceg -/types/session-file-store/ @blendsdk @rokt33r -/types/set-cookie-parser/ @nickp10 -/types/set-value/ @DanielRosenwasser -/types/settings/ @shreyjain1994 -/types/sha1/ @arcdev1 -/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/sheetify/ @toddself -/types/shell-escape/ @nenadalm -/types/shell-quote/ @jason0x43 -/types/shelljs/ @nikeee @voy @gkalpak @pheromonez -/types/shelljs-exec-proxy/ @qlonik -/types/shimmer/ @kjin -/types/shipit/ @cyrilschumacher -/types/shipit-utils/ @cyrilschumacher -/types/shopify-buy/ @openminder @straiforos @totemika -/types/shortid/ @stpettersens @despairblue -/types/shot/ @AJamesPhillips -/types/should-sinon/ @Arylo -/types/showdown/ @cbowdon @tan9 @arielsaldana -/types/shrink-ray/ @forabi -/types/siema/ @Irmiz @0x6368656174 @samnau -/types/siesta/ @bquarmby -/types/sigmajs/ @qinfchen -/types/sigmund/ @BendingBender -/types/signale/ @resir014 @kingdaro @rjoydip -/types/signalr/ @borisyankov @keesey @GiedriusGrabauskas -/types/signalr-no-jquery/ @gjoshevski -/types/signals/ @diullei -/types/signature_pad/ @AbubakerB @jrmihalick @leejaedus -/types/simple-assign/ @NoHomey -/types/simple-cw-node/ @vvakame -/types/simple-lru/ @NN--- -/types/simple-mock/ @leonyu -/types/simple-oauth2/v1/ @mad-mike @troy-lamerton @netux -/types/simple-oauth2/ @mad-mike @troy-lamerton @netux -/types/simple-peer/ @tlaziuk -/types/simple-url-cache/ @a-lucas -/types/simple-websocket/ @dex4er -/types/simple-xml/ @notVitaliy -/types/simplebar/v1/ @gregonnet @leonard-thieu -/types/simplebar/ @gregonnet @leonard-thieu -/types/simplemde/ @Scalesoft -/types/simplesmtp/ @rogierschouten -/types/simplestorage.js/ @axelcostaspena @mxl -/types/single-line-log/ @ffflorian -/types/single-spa-react/ @Garrett-Smith-iq -/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j @joshuakgoldberg -/types/sinon-as-promised/ @igrayson -/types/sinon-chai/v2/ @kazimanzurrashid @jedmao -/types/sinon-chai/ @kazimanzurrashid @jedmao @elpdpt -/types/sinon-chrome/ @pimterry @crimx @kobanyan -/types/sinon-express-mock/ @jpchip @tlaziuk -/types/sinon-mongoose/ @stevehipwell -/types/sinon-stub-promise/ @vintem @tstackhouse -/types/sinon-test/ @mummybot -/types/sip.js/ @decyrus -/types/sipml/ @chookies -/types/sitemap2/ @shundy -/types/six-runtime/ @493636333 -/types/sizzle/ @leonard-thieu -/types/sjcl/ @Evgenus -/types/skatejs/ @Hotell -/types/ski/ @AyaMorisawa -/types/skyway/ @nakakura -/types/slack-mock/ @kkalavantavanich -/types/slack-node/ @geoffreak -/types/slack-winston/ @BlueHatbRit -/types/slackdown/ @nju33 -/types/slackify-html/ @hypexr -/types/slate/ @andykent @majelbstoat @JanLoebel @YangusKhan @kalley @Kornil -/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 -/types/sleep/ @rajarz -/types/slickgrid/ @jbaldwin -/types/slideout/ @ToastHawaii -/types/slimerjs/ @alexwall -/types/slocket/ @BendingBender -/types/slug/ @mhegazy -/types/smart-fox-server/ @ChanceM -/types/smoothscroll-polyfill/ @kryops -/types/smtp-server/v1/ @markisme @Taisiias -/types/smtp-server/ @markisme @Taisiias @dex4er -/types/smtpapi/ @a-morales -/types/snappy/ @reconbot -/types/snapsvg/ @lhk @mattanja @kant2002 -/types/snazzy-info-window/ @milosd92 -/types/snekfetch/ @ANekoIsFineToo @ShayBox @Dev-Yukine -/types/snoowrap/ @vitosamson @TheAppleFreak -/types/snowboy/ @dolanmiu -/types/socket.io/ @progre @divillysausages @florentpoujol @KentarouTakeda @gigi @BrainMaestro -/types/socket.io-client/ @progre @divillysausages @florentpoujol -/types/socket.io-parser/ @plantain-00 -/types/socket.io-redis/ @nupplaphil @seeLuck -/types/socket.io.users/ @kataras -/types/socketio-jwt/ @ehallander9591 -/types/socketio-jwt-auth/ @codeanimal -/types/socketio-wildcard/ @BendingBender -/types/socketty/ @Nax -/types/sockjs/ @pmccloghrylaing -/types/sockjs-client/ @vladev @arusakov @BendingBender @renjfk -/types/solidity-parser-antlr/ @LogvinovLeon @albrow -/types/solr-client/ @liul85 -/types/solution-center-communicator/ @dami-gg -/types/sort-array/ @mrmlnc -/types/sortablejs/ @Maw-Fox -/types/soundmanager2/ @elton2048 -/types/soupbintcp/ @jewbre -/types/source-list-map/ @e-cloud -/types/source-map-support/ @Bartvds @jason0x43 -/types/space-pen/ @vvakame -/types/spark-md5/ @bastienmoulia -/types/sparkly/ @BendingBender -/types/sparkpost/v1/ @geoffreak -/types/sparkpost/ @geoffreak @bondz @vvu -/types/sparqljs/ @AlexeyMz -/types/spatialite/ @atd-schubert -/types/spdx-correct/ @jinwoo -/types/spdx-satisfies/ @jinwoo -/types/spdy/ @tony19 -/types/speakeasy/ @legendecas @mrOlorin @xeoneux -/types/speakingurl/ @Goldsmith42 -/types/spectacle/ @zmaybury -/types/spectrum/ @M-Zuber @Ailrun -/types/split/ @marcinporebski -/types/split.js/ @icholy -/types/split2/ @mugeso -/types/splunk-bunyan-logger/ @bricka -/types/splunk-logging/ @bricka -/types/spotify-api/ @skovmand -/types/spotify-web-playback-sdk/ @Festify @mraerino @NeoLegends -/types/sprintf/ @soywiz @BendingBender -/types/sprintf-js/ @jasonswearingen @BendingBender -/types/sql-bricks/ @adn05 @paleo -/types/sql.js/ @Hozuki -/types/sqlanywhere/ @pkeuter -/types/sqlite3/ @nmalaguti @dpyro @BehindTheMath -/types/sqlstring/ @marvinhagemeister -/types/squirejs/ @bradleyayers -/types/srp/ @Patman64 -/types/ssh-key-decrypt/ @BendingBender -/types/ssh2/ @tkQubo @rbuckton -/types/ssh2-sftp-client/ @igrayson @ascariandrea @kartik2406 -/types/ssh2-streams/ @rbuckton -/types/sshpk/ @mabels -/types/stack-mapper/ @rogierschouten -/types/stack-trace/ @exceptionless -/types/stack-utils/ @BendingBender -/types/stacktrace-js/ @exceptionless @pilagod -/types/stale-lru-cache/ @cxcorp -/types/stampit/v2/ @koresar -/types/stampit/ @koresar @lummish -/types/stamplay-js-sdk/ @ridermansb -/types/starwars-names/ @claasahl -/types/stat-mode/ @BendingBender -/types/stats.js/ @gregolai @hberntsen @danvk -/types/statsd-client/ @peterkooijmans @chrisleck -/types/statuses/ @tkrotoff @BendingBender -/types/std-mocks/ @jdxcode -/types/steam/ @kant2002 -/types/steam-client/ @Slessi -/types/steam-login/ @Nicell -/types/steam-totp/ @phenomax -/types/steamid/ @Slessi -/types/steed/ @Paul-Isache -/types/stellar-sdk/ @carl-foster @tristonj @pselden @maxbause -/types/stemmer/ @will-ockmore -/types/sticky-cluster/ @paustint -/types/stompjs/ @jimic @Dr4k4n -/types/stoppable/ @EricByers -/types/store/ @vbortone @harry0000 @Ky6uk -/types/storybook-addon-jsx/ @jameslnewell -/types/storybook__addon-a11y/ @hyunseob -/types/storybook__addon-actions/ @joscha @jicjjang -/types/storybook__addon-backgrounds/ @hyunseob -/types/storybook__addon-centered/ @kiyopikko -/types/storybook__addon-info/ @mkornblum @fyrkant -/types/storybook__addon-jest/ @halfmatthalfcat -/types/storybook__addon-knobs/ @joscha @martynaskadisa @amacleay -/types/storybook__addon-links/ @joscha @jessepinho -/types/storybook__addon-notes/ @joscha @amacleay -/types/storybook__addon-options/ @joscha @simonhn @amacleay -/types/storybook__addon-storyshots/ @bradleyayers -/types/storybook__react/ @joscha @wapgear -/types/storybook__react-native/ @joscha @wapgear @alechill @iRoachie -/types/storybook__vue/ @pntgupta -/types/stream-buffers/ @Jason3S -/types/stream-chain/ @uhop -/types/stream-csv-as-json/ @uhop -/types/stream-each/ @djcsdy -/types/stream-json/ @uhop -/types/stream-meter/ @mugeso -/types/stream-series/ @k-kagurazaka -/types/stream-shift/ @djcsdy -/types/stream-to-array/v0/ @Bartvds -/types/stream-to-array/ @Bartvds @BendingBender -/types/stream-to-promise/ @Alorel -/types/streaming-json-stringify/ @BendingBender -/types/streamjs/ @erosb -/types/streamtest/ @lummish -/types/strftime/ @cyrilschumacher -/types/strict-uri-encode/ @hoishin -/types/string/ @basp -/types/string-format/ @lal12 -/types/string-hash/ @ethanrubio -/types/string-similarity/ @ragtime -/types/string-template/ @TonyPythoneer -/types/string-width/ @jacobbubu -/types/string_score/ @marcinporebski -/types/stringify-object/ @khoomeister -/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-checkout/ @cgwrench -/types/stripe-v2/ @ejsmith @amritk @adamcmiel @jleider @galuszkak -/types/stripe-v3/ @ejsmith @amritk @adamcmiel @jleider @galuszkak -/types/strong-cluster-control/ @shuntksh -/types/strong-error-handler/ @blankstar85 -/types/strong-log-transformer/ @azasypkin -/types/strophe/ @DavidKDeutsch -/types/structured-source/ @azu -/types/styled-components/ @Igorbek -/types/styled-jsx/ @R1ZZU -/types/styled-system/ @maxdeviant @phobon @zephraph @damassi @alloy @maoueh @lavoaster -/types/stylelint/v7/ @alan-agius4 -/types/stylelint/ @alan-agius4 -/types/stylelint-webpack-plugin/ @bahlo -/types/stylus/ @SomaticIT -/types/subscribe-ui-event/ @wangcheng678 -/types/subsume/ @BendingBender -/types/succinct/ @EnableSoftware -/types/sudo-block/ @BendingBender -/types/suitescript/ @darrenhillconsulting -/types/summernote/ @wstaelens @nusantara-cloud -/types/sumo-logger/ @forabi @clementallen -/types/suncalc/ @horiuchi -/types/superagent/v2/ @varju @NicoZelaya @mxl -/types/superagent/ @NicoZelaya @mxl @paplorinc @shreyjain1994 @zopf @beeequeue -/types/superagent-bunyan/ @bricka -/types/superagent-no-cache/ @mxl -/types/superagent-prefix/ @mxl -/types/supercluster/ @DenisCarriere -/types/superstruct/ @edwardsnare -/types/supertest/ @varju -/types/supertest-as-promised/ @tkrotoff -/types/supports-color/v3/ @mgroenhoff -/types/supports-color/ @mgroenhoff @mtraynham -/types/svg-injector/ @poke -/types/svg-parser/ @mrmlnc -/types/svg-path-bounding-box/ @NotWoods -/types/svg-path-parser/ @tyru -/types/svg-sprite/ @tkqubo -/types/svg-sprite-loader/ @rynclark -/types/svg2png/ @hansrwindhoff @sccgithub -/types/svg4everybody/ @BendingBender -/types/svgjs.draggable/ @LiFeleSs -/types/svgjs.resize/ @jkevingutierrez -/types/svgo/ @bradleyayers @giladgray @Aankhen -/types/sw-precache/ @JounQin -/types/sw-precache-webpack-plugin/ @JounQin -/types/swag/ @shiwano -/types/swagger-express-middleware/ @alexandreroba -/types/swagger-express-mw/ @micmro -/types/swagger-express-validator/ @pinguet62 -/types/swagger-hapi/ @micmro -/types/swagger-jsdoc/ @drGrove -/types/swagger-node-runner/ @micmro -/types/swagger-parser/ @Tobias4872 @EricHenry -/types/swagger-restify-mw/ @micmro -/types/swagger-sails-hook/ @micmro -/types/swagger-schema-official/ @mohsen1 @bsouthga @nimerritt -/types/swagger-tools/ @bricka -/types/swagger-ui-dist/ @haowen737 -/types/swagger-ui-express/ @dmitryrogozhny -/types/swaggerize-express/ @mugeso @nickmorton -/types/swe-validation/ @hjalmers -/types/swfobject/ @rou -/types/swiftclick/ @Laurence-C -/types/swig/ @CodeAnimal @soywiz -/types/swig-email-templates/ @mrhen @micksatana -/types/swipe/ @kant2002 -/types/swiper/v3/ @sgaliano @lucax88x -/types/swiper/ @sgaliano @lucax88x @ematseruk -/types/swipeview/ @borisyankov -/types/switchery/ @bgrieder @claylaut -/types/swiz/ @jedigo -/types/sylvester/ @StephaneAlie -/types/synaptic/ @ToastHawaii @austincummings -/types/systeminformation/ @PixelcrabAT -/types/systemjs/ @ludohenin @NathanWalker @GiedriusGrabauskas @aluanhaddad -/types/table/ @evanshortiss @mrmlnc -/types/tableau/ @protip -/types/tabris-plugin-firebase/ @eclipsesource -/types/tabtab/ @vojtechhabarta -/types/tabulator/ @euginio -/types/tail/ @spacejack -/types/tapable/v0/ @e-cloud -/types/tapable/ @e-cloud @johnnyreilly -/types/tape/ @Bartvds @sodatea @DennisSchwartz @mikehenrty -/types/tar/ @SomaticIT @connor4312 -/types/tar-fs/ @Umoxfo -/types/tar-stream/ @glicht -/types/task-graph-runner/ @mgroenhoff -/types/tcp-ping/ @stegano -/types/teddy/ @lannonbr -/types/tedious/ @rogierschouten @cjthompson @v-suhame -/types/tedious-connection-pool/ @sandorfr -/types/telebot/ @mariotsi -/types/temp/ @DanielRosenwasser -/types/temp-write/ @BendingBender -/types/tempfile/ @SamVerschueren @BendingBender -/types/tempy/ @douglasduteil -/types/terminal-menu/ @aravindarun -/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-utf-8/ @trxcllnt -/types/text-table/ @saadq -/types/textarea-caret/ @shiftkey -/types/textract/ @lal12 -/types/textversionjs/ @aaronosher -/types/tgfancy/ @Dabolus -/types/theming/ @eps1lon -/types/thepiratebay/ @jsorrell -/types/three/ @gyohk @florentpoujol @SereznoKot @omni360 @ivoisbelongtous @piranha771 @qszhusightp @nakakura @s093294 @Pro @efokschaner @PsychoSTS @dhritzkiv @apurvaojas @NotWoods @sethk @elk941 @Methuselah96 -/types/thrift/ @kamek-pf @kevin-greene-ck @jessezhang91 -/types/throng/ @cyrilschumacher @tatethurston -/types/throttle/ @BendingBender -/types/throttle-debounce/ @czbuchi @franklixuefei -/types/through/ @AndrewGaspar -/types/through2/v0/ @Bartvds @jedmao -/types/through2/ @Bartvds @jedmao @valotas @TeamworkGuy2 -/types/through2-map/ @LucasHill -/types/tile-reduce/ @DenisCarriere -/types/tilebelt/ @DenisCarriere -/types/time-span/ @BendingBender @mdvorscak -/types/timelinejs/ @rolandzwaga -/types/timelinejs3/ @MikeMatusz -/types/timer-machine/ @dolanmiu -/types/timezone-js/ @bonnici -/types/tinajs__tina/ @Jimexist -/types/tinajs__tina-redux/ @Jimexist -/types/tinder/ @pingec -/types/tingle.js/ @ajafff -/types/tiny-slider-react/ @screendriver -/types/tinycolor2/ @M-Zuber @geertjansen @nvh @Ailrun -/types/tinycon/ @dwaxweiler -/types/tinycopy/ @vvatanabe -/types/tinymce/ @martinduparc @ipoul @nicohartto -/types/titanium/ @appcelerator @janvennemann -/types/title/ @fa7ad -/types/tldjs/ @geoffreak -/types/tlds/ @ajshres -/types/tmp/ @optical @Perlmint -/types/to-absolute-glob/ @ajafff -/types/to-camel-case/ @j-f1 -/types/to-markdown/ @SuperPaintman -/types/to-snake-case/ @LogvinovLeon -/types/to-title-case-gouch/ @stpettersens -/types/toastr/ @borisyankov -/types/tocktimer/ @evanshortiss -/types/tokgen/ @l-jonas -/types/toobusy-js/ @atd-schubert -/types/tooltipster/ @stephenlautier @pjmagee @VorobeY1326 @leonard-thieu @janhi @joeskeen -/types/topojson/ @ricardo-mello @chenzhutian @denisname -/types/topojson-client/ @denisname @ricardo-mello -/types/topojson-simplify/ @denisname @ricardo-mello -/types/topojson-specification/ @denisname -/types/toposort/ @danwbyrne -/types/torrent-stream/ @xstoudi -/types/touch/ @mizunashi-mana @BendingBender -/types/touch-events/ @kevinb7 -/types/tough-cookie/ @leonard-thieu @LiJinyao @no2chem -/types/traceback/ @misak113 -/types/tracking/ @pimterry -/types/transducers-js/ @colinkahn @dphilipson @NaridaL -/types/transducers.js/ @dphilipson -/types/transliteration/ @tony19 -/types/trash/ @matthew-matvei @hoishin -/types/traverse/ @newclear -/types/traverson/ @marcinporebski -/types/travis-fold/ @andy-ms -/types/trayballoon/ @korve -/types/tress/ @sindilevich -/types/trim/ @skysteve -/types/triple-beam/ @danwbyrne -/types/triplesec/ @threesquared -/types/trunk8/ @niemyjski -/types/tryer/ @bengry -/types/tspromise/ @soywiz -/types/ttf2woff2/ @ThomasdenH -/types/tunnel/ @BendingBender -/types/tus-js-client/ @kevhiggins -/types/tv4/ @Bartvds @psnider -/types/tween.js/ @Amos47 @sunetos @jzarnikov @alexburner -/types/tweenjs/ @evilangelist @jcyuan -/types/tweezer.js/ @praxxis -/types/twig/ @soywiz @enko -/types/twilio/ @nickiannone @ashleybrener -/types/twit/ @Volox @sapphiredev @abraham @siwalikm @plhery -/types/twitch-ext/ @beheh -/types/twitter/ @chitoku-k -/types/twitter-stream-channels/ @adrianbardan -/types/twitter-text/ @rhysd -/types/twix/ @j3ko -/types/type-check/ @hansrwindhoff -/types/type-detect/v0/ @Bartvds -/types/type-detect/ @Bartvds -/types/type-is/ @BendingBender -/types/type-name/ @armorik83 -/types/typeahead/ @igochkov @gjunge -/types/typedarray-pool/ @pawsong -/types/typeof/ @OpenByteDev -/types/typescript-deferred/ @DirtyHairy -/types/tz-format/ @samverschueren -/types/ua-parser-js/ @superduper @legendecas @MeLlamoPablo -/types/uglify-es/ @alan-agius4 -/types/uglify-js/v2/ @tkrotoff -/types/uglify-js/ @alan-agius4 @tkrotoff @johnnyreilly -/types/uglifycss/ @blendsdk -/types/uglifyjs-webpack-plugin/ @vajkayrene -/types/ui-grid/ @btesser @joeskeen @pbojanczyk -/types/ui-router-extras/ @mputters @marcel-k @LaserUnicorns -/types/ui-select/ @nkovacic -/types/uid-safe/ @geoffreak -/types/uikit/ @giovannicandido @s0x -/types/uinput/ @Fidge123 -/types/ultra-strftime/ @dex4er -/types/umbraco/ @DeCareSystemsIreland -/types/umd/ @TeamworkGuy2 -/types/umzug/ @drinchev @mlamp @trodi @emmanuelgautier -/types/underscore/ @borisyankov @jbaldwin @ccurrens @clottman @confususs -/types/underscore-ko/ @MagicMau -/types/underscore.string/ @rygine -/types/undertaker/ @tkqubo @GiedriusGrabauskas -/types/undertaker-registry/ @GiedriusGrabauskas -/types/unidecode/ @vfernandestoptal -/types/uniq/ @hansrwindhoff -/types/uniqid/ @idchlife -/types/unique-hash-stream/ @BendingBender -/types/unique-random/ @Kuniwak -/types/unist/ @bizen241 -/types/unity-webapi/ @jmvrbanac -/types/universal-analytics/ @Bartvds @DarkerTV -/types/universal-cookie/ @tomi -/types/universal-router/ @jtmthf @tlaziuk @Lodin -/types/unorm/ @chbrown -/types/untildify/ @BendingBender -/types/unused-filename/ @BendingBender -/types/unzip/ @coding2012 -/types/unzipper/ @s73obrien @natemara @bartje321 -/types/update-notifier/v1/ @vvakame @nchen63 -/types/update-notifier/ @vvakame @nchen63 @bitjson -/types/upng-js/ @plantain-00 -/types/uppercamelcase/ @plantain-00 -/types/urbanairship-cordova/ @Justin-Credible -/types/uri-templates/ @Bartvds @barnski -/types/urijs/ @RodneyJT @xt0rted @petejohanson -/types/uritemplate/ @teyc @rubensworks -/types/url-assembler/ @wolfgang42 -/types/url-join/ @rogierschouten @devrelm -/types/url-metadata/ @mrkmg -/types/url-params/ @danielsogl -/types/url-parse/ @ChernenkoPaul @harisiva @DimitryDushkin -/types/url-regex/ @unindented @sosukesuzuki -/types/url-safe-base64/ @johngeorgewright -/types/url-search-params/ @nick121212 @nrathi -/types/url-template/ @marcinporebski -/types/urllib/ @sorayama -/types/urlparser/ @OpenByteDev -/types/urlrouter/ @soywiz -/types/urlsafe-base64/ @tkrotoff -/types/usage/ @pvomhoff -/types/usb/ @underscorebrody @thegecko -/types/user-home/ @mhegazy -/types/useragent/ @geoffreak -/types/username/ @kayahr @krivachy -/types/utf8/ @zelein -/types/util-deprecate/ @BendingBender -/types/util.promisify/ @adamvoss -/types/utils-merge/ @chrootsu -/types/uuid/ @iamolivinius @felipeochoa @cjbarth -/types/uuid-1345/ @mugeso -/types/uuid-js/ @mhegazy -/types/uuid-parse/ @screendriver -/types/uuid-validate/ @HiromiShikata -/types/uws/ @plantain-00 @orblazer -/types/valdr/ @ilbertz -/types/valdr-message/ @ilbertz -/types/valerie/ @conficient -/types/vali-date/ @SamVerschueren -/types/valiant/ @whatasoda -/types/valid-url/ @stevehipwell -/types/validator/ @tgfjt @chrootsu @IOAyman @louy @kacepe @deptno @builtinnya @qqilihq -/types/validatorjs/ @LKay @danmana -/types/vanilla-modal/ @samnau -/types/vanilla-tilt/ @BrunnerLivio -/types/varint/ @dbrockman -/types/vary/ @BendingBender -/types/vast-client/ @jgainfort -/types/vec3/ @xstoudi -/types/vectorious/ @erikgerrits -/types/vega/ @pelotom -/types/velocity-animate/ @smrq -/types/verror/ @svi3c @max4t -/types/vertx3-eventbus-client/ @oddeirik -/types/vex-js/ @gdcohan -/types/vexdb/ @MayorMonty -/types/vexflow/ @rquiring @sebastianhaas @bohoffi @sschmidTU -/types/vfile/ @bizen241 @rokt33r -/types/vfile-location/ @ikatyang -/types/victory/ @asvetliakov @snerks @Havret @alredyExist -/types/video.js/ @vbortone @scleriot @SWBennett06 @IgelCampus @giofreitas @gjanblaszczyk @sroucheray @AkxeOne -/types/viewability-helper/ @lironzluf -/types/viewerjs/ @lrh3321 -/types/viewport-mercator-project/ @fnberta -/types/viewporter/ @borisyankov -/types/vimeo/ @DazWilkin -/types/vimeo__player/ @denisyilmaz @timc13 @terrymun -/types/vinyl/v0/ @jedmao -/types/vinyl/ @vvakame @jedmao @thorn0 -/types/vinyl-buffer/ @tkQubo -/types/vinyl-fs/ @vvakame @remisery -/types/vinyl-paths/ @tkQubo -/types/virtual-dom/ @chbrown -/types/virtual-keyboard/ @bsurai -/types/vis/ @MichaelBitard @macleodbroad-wf @adripanico @seveves @kaktus40 @mmaitre314 @supercargo @takato1314 @alex-kachura @dcop @avrahamcool -/types/vision/v4/ @jasonswearingen @AJamesPhillips -/types/vision/ @jasonswearingen @AJamesPhillips @lenovouser -/types/vitalsigns/ @cyrilschumacher -/types/vivus/ @DanielRosenwasser @lekhmanrus -/types/vkbeautify/ @sch3lp -/types/vnu-jar/ @Umoxfo -/types/voca/ @pine -/types/void-elements/ @ajafff -/types/voronoi-diagram/ @michaelneu -/types/vortex-web-client/ @Pro -/types/voximplant-websdk/ @aylarov -/types/vue-color/ @me -/types/vue-markdown/ @neodon -/types/vue-resource/ @kaorun343 -/types/vue-scrollto/ @vincekovacs -/types/vue-select/ @silh -/types/vue2-datepicker/ @ChristianStornowski -/types/vuex-i18n/ @jaeggerr @noamkfir -/types/w2ui/ @Ptival -/types/w3c-generic-sensor/ @kenchris -/types/w3c-image-capture/ @cosium -/types/w3c-permissions/ @jberube -/types/w3c-screen-orientation/ @kenchris -/types/w3c-web-usb/ @larsgk -/types/waitme/ @totpero -/types/wake_on_lan/ @SrTobi -/types/wallabyjs/ @andrewconnell -/types/wallpaper/ @BendingBender -/types/wampy/ @KSDaemon -/types/warning/ @cvle -/types/watch/ @soywiz @Perlmint -/types/watchify/ @TeamworkGuy2 -/types/watchpack/ @e-cloud -/types/waterline/ @arvitaly -/types/watson-developer-cloud/ @waldo000000 @Naktibalda -/types/waypoints/ @dominikbulaj @Koloto @evil-shrike -/types/wcwidth/ @rokt33r -/types/weak/ @int0h -/types/weapp-api/ @vargeek -/types/web-animations-js/ @kritollm -/types/web-bluetooth/ @urish -/types/web3/ @simon-jentzsch @nitzantomer @zurbo @yxliang01 @phra @naddison36 @icaroharry @linusnorton @jpeletier @anneau @matrushka @andrevmatos @levino @zlumer @archangel-irk -/types/web3-eth-abi/ @LogvinovLeon -/types/web3-provider-engine/ @LogvinovLeon -/types/webappsec-credential-management/ @iainmcgin -/types/webassembly-js-api/ @periklis -/types/webassembly-web-api/ @jhenninger -/types/webcl/ @NCARalph -/types/webcomponents.js/ @adidahiya -/types/webcrypto/ @iislucas -/types/webdriverio/ @nmalaguti @timbru31 @fsmedberg-tc @tanvirislam06 @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-assets-manifest/ @FranklinWhale -/types/webpack-bundle-analyzer/ @kryops -/types/webpack-chain/ @eirikurn @psachs21 -/types/webpack-chunk-hash/ @mtraynham -/types/webpack-cleanup-plugin/ @malj -/types/webpack-config-utils/ @hotell -/types/webpack-dev-middleware/v1/ @bumbleblym @reduckted -/types/webpack-dev-middleware/ @bumbleblym @reduckted @chrisabrams -/types/webpack-dev-server/ @maestroh @daveparslow @ZheyangSong @alan-agius4 @arturovt -/types/webpack-dotenv-plugin/ @kryops -/types/webpack-env/ @use-strict @rhonsby -/types/webpack-fail-plugin/ @deevus -/types/webpack-hot-client/ @rynclark @ZSkycat -/types/webpack-hot-middleware/ @bumbleblym @icylace @chrisabrams -/types/webpack-manifest-plugin/ @r3nya -/types/webpack-merge/v0/ @deevus -/types/webpack-merge/ @deevus @mtraynham -/types/webpack-node-externals/ @mtraynham -/types/webpack-notifier/ @bumbleblym -/types/webpack-serve/v1/ @rynclark @Jokcy @ZSkycat -/types/webpack-serve/ @rynclark @Jokcy @ZSkycat -/types/webpack-sources/ @e-cloud @chriseppstein -/types/webpack-stream/ @iclanton @bumbleblym -/types/webpack-validator/ @deevus -/types/webpackbar/ @rynclark -/types/webpagetest/ @ksm2 -/types/webrtc/ @nakakura -/types/webscopeio__react-textarea-autocomplete/ @michauzo -/types/websequencediagrams/ @ffflorian -/types/website-scraper/ @screendriver -/types/websocket/ @loyd @flynetworks @zhaoleimxd @jdneo -/types/websocket-async/ @bigbeno37 -/types/websql/ @TeamworkGuy2 -/types/webtorrent/ @niieani @tlaziuk -/types/webvr-api/ @efokschaner -/types/week/ @sindrenm -/types/wegame-api/ @jcyuan -/types/weighted/ @ccitro -/types/weixin-app/ @taoqf @AlexStacker @Jimexist -/types/wellknown/ @yairtawil -/types/wepy/ @Jimexist -/types/wepy-redux/ @Jimexist -/types/whatwg-mimetype/ @petejohanson -/types/whatwg-streams/ @saschanaz @ksm2 @MattiasBuelens -/types/whatwg-url/ @aomarks -/types/wheel/ @BTOdell -/types/when/ @derekcicerone @Nemo157 -/types/which/ @vvakame @cspotcode -/types/which-pm/ @jorgegonzalez -/types/wicg-mediasession/ @jucrouzet -/types/wif/ @danwbyrne -/types/wiiu/ @mzsm -/types/window-or-global/ @vvakame -/types/window-size/ @pmkary -/types/windows-1251/ @RomanGolovanov -/types/windows-script-host/ @zspitz -/types/windows-service/ @rogierschouten -/types/winjs/v1/ @adamhewitt627 @craigktreasure @xirzec -/types/winjs/v2/ @adamhewitt627 @craigktreasure @xirzec -/types/winjs/ @adamhewitt627 @craigktreasure @xirzec -/types/wink-tokenizer/ @lal12 -/types/winreg/ @RX14 @BobBuehler -/types/winrt-uwp/ @saschanaz @taylor224 -/types/winston-dynamodb/ @nickiannone -/types/winston-mail/ @idono87 -/types/winston-syslog/v1/ @cjbarth -/types/winston-syslog/ @cjbarth @felix-hoc -/types/wiring-pi/ @NoHomey -/types/wnumb/ @acoreyj -/types/wonder.js/ @yyc-git -/types/word-list-json/ @dovidm -/types/wordcloud/ @joeskeen -/types/words-to-numbers/ @James-Frowen -/types/workbox-sw/ @wessberg -/types/workerpool/ @Alorel -/types/wpapi/ @guoyunhe -/types/wrap-ansi/v2/ @kayahr -/types/wrap-ansi/ @kayahr -/types/wreck/v7/ @marcinporebski -/types/wreck/ @marcinporebski @saboya -/types/wrench/ @soywiz -/types/write-file-atomic/ @BendingBender -/types/write-file-atomically/ @Aankhen -/types/write-json-file/ @DenisCarriere -/types/write-pkg/ @azasypkin -/types/ws/ @loyd @elithrar @mlamp @TitaneBoy @orblazer -/types/wtfnode/ @dex4er -/types/wu/ @phiresky -/types/wx-js-sdk-dt/ @agasbzj -/types/x-editable/ @sirkirby -/types/x-ray/ @mtraynham -/types/x-ray-crawler/ @mtraynham -/types/xdate/ @yamada28go -/types/xdg-basedir/ @tlaziuk -/types/xml/ @YuJianrong -/types/xml-parser/ @mhfrantz -/types/xml2js/ @michelsalib @jasonrm @ccurrens @edwardhinkle @BehindTheMath @claasahl -/types/xml2json/ @dolanmiu -/types/xmlbuilder/ @wallymathieu -/types/xmldoc/ @Xstoudi @ajsheehan @notlaforge -/types/xmldom/ @tkqubo -/types/xmlpoke/ @garthk -/types/xmltojson/ @traviscrowe -/types/xmpp__jid/ @PJakcson -/types/xregexp/ @Bartvds @jfahrenkrug @sigo -/types/xrm/v7/ @daryllabar -/types/xrm/v8/ @6ix4our @mattngan @markusmauch @daryllabar @clownwilleatme @mariusagur -/types/xrm/ @6ix4our @mattngan @markusmauch @daryllabar @clownwilleatme @scottdurow -/types/xsd-schema-validator/ @Goldsmith42 -/types/xsockets/ @pushplay -/types/xxhashjs/ @mDibyo -/types/yallist/ @BendingBender -/types/yandex-maps/ @Delagen -/types/yandex-money-sdk/ @chrootsu -/types/yar/ @SimonSchick -/types/yargs/v8/ @poelstra @mizunashi-mana @pushplay @jeffkenney -/types/yargs/v10/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC -/types/yargs/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC -/types/yargs-interactive/ @szeck87 -/types/yauzl/ @ffflorian -/types/yauzl-promise/ @dlee-nvisia -/types/yayson/ @Codesleuth -/types/yazl/ @taoqf -/types/ydn-db/ @yathit @gabrielmaldi -/types/yeoman-generator/ @armorik83 @janslow @ikatyang -/types/yeoman-test/ @ikatyang -/types/yesql/ @Sumolari -/types/yoctodelay/ @seangenabe -/types/yog-bigpipe/ @ssddi456 -/types/yog-log/ @ssddi456 -/types/yog2-kernel/ @ssddi456 -/types/yoga-layout/ @tnobody -/types/yosay/ @armorik83 -/types/youtube/ @DazWilkin @JoshuaKGoldberg @eliotfallon213 -/types/youtube-dl/ @bsurai -/types/yui/ @giabao -/types/yup/ @dhardtke @vtserman @MoretonBayRC @sseppola -/types/z-schema/ @pgonzal -/types/zapier-platform-core/ @bradleyayers -/types/zeit__next-typescript/ @icopp -/types/zen-observable/ @aicest @JounQin @itomtom -/types/zen-push/ @daprahamian -/types/zenscroll/ @HamedFathi -/types/zepto/ @jbaldwin -/types/zeroclipboard/v1/ @ejsmith @niemyjski @balassy @leonyu -/types/zeroclipboard/ @ejsmith @niemyjski @balassy @leonyu -/types/zeromq/ @davemckeown @erikma @TitaneBoy -/types/zip-webpack-plugin/ @blaise-io -/types/zip.js/ @lgrignon -/types/zipcodes/ @headdetect @dobesv -/types/zipkin-context-cls/ @plantain-00 -/types/zipkin-instrumentation-express/ @plantain-00 -/types/zipkin-instrumentation-fetch/ @plantain-00 -/types/zipkin-javascript-opentracing/ @laurentgilly -/types/zipkin-transport-http/ @plantain-00 -/types/zmq/ @davemckeown -/types/zookeeper/ @xialeistudio -/types/zopflipng-bin/ @hikoma -/types/zui/ @yuanxu -/types/zxcvbn/ @mtraynham +/types/a-big-triangle/ @MathiasPaumgarten +/types/abbrev/ @BendingBender +/types/abs/ @AyaMorisawa +/types/absolute/ @AyaMorisawa +/types/abstract-leveldown/ @MeirionHughes @danwbyrne +/types/acc-wizard/ @cyrilschumacher +/types/accept-language-parser/ @kampfgnom +/types/accepts/ @bomret @brikou +/types/accounting/ @gerich-home @chrisleck +/types/ace/ @Diullei +/types/ace-diff/ @innovation-team +/types/acl/ @tkQubo +/types/acorn/ @RReverser @e-cloud +/types/actioncable/ @zhu1230 +/types/actions-on-google/ @joelhegg +/types/activedirectory2/ @pasthelod +/types/activex-access/ @zspitz +/types/activex-adodb/ @zspitz +/types/activex-adox/ @zspitz +/types/activex-dao/ @zspitz +/types/activex-diskquota/ @zspitz +/types/activex-excel/ @zspitz +/types/activex-faxcomexlib/ @zspitz +/types/activex-infopath/ @zspitz +/types/activex-interop/ @zspitz +/types/activex-iwshruntimelibrary/ @zspitz +/types/activex-libreoffice/ @zspitz +/types/activex-msforms/ @zspitz +/types/activex-mshtml/ @zspitz +/types/activex-msxml2/ @zspitz +/types/activex-office/ @zspitz +/types/activex-outlook/ @zspitz +/types/activex-powerpoint/ @zspitz +/types/activex-scripting/ @zspitz +/types/activex-shdocvw/ @zspitz +/types/activex-shell/ @zspitz +/types/activex-stdole/ @zspitz +/types/activex-vbide/ @zspitz +/types/activex-wia/ @zspitz +/types/activex-word/ @zspitz +/types/adal-angular/ @unindented @aciccarello +/types/add-zero/ @Roaders +/types/adm-zip/ @jvilk @abner +/types/adone/ @s0m3on3 @maxveres +/types/aframe/ @devpaul @bertoritger @twastvedt +/types/agenda/ @meirgottlieb @princjef +/types/agent-base/ @Shinigami92 +/types/aggregate-error/ @BendingBender +/types/agora-rtc-sdk/ @menthays +/types/ajv-errors/ @afshawnlotfi +/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/allure-js-commons/ @zaqqaz +/types/almost-equal/ @cmaddalozzo +/types/alt/ @Shearerbeard +/types/amazon-cognito-auth-js/ @scottescue +/types/amazon-product-api/ @MattiLehtinen @alien35 +/types/amcharts/ @ldrick +/types/amp/ @jewbre +/types/amp-message/ @jewbre +/types/amphtml-validator/ @kevincharm +/types/amplify/ @joeriks +/types/amplify-deferred/ @joeriks @laurentiustamate94 +/types/amplitude-js/ @Asido +/types/amqp/ @seikho @jonnysparkplugs +/types/amqp-connection-manager/ @rogierschouten +/types/amqp-rpc/ @wokim +/types/amqplib/ @mnahkies @abreits @nfantone @zelein +/types/analytics-node/ @fongandrew @thomasthiebaud +/types/anchor-js/ @xt0rted +/types/angular/ @diegovilar @thorn0 @calebstdenis @leonard-thieu @scipper +/types/angular-agility/ @rolandzwaga +/types/angular-animate/ @michelsalib @adidahiya @rasch @codyschaaf +/types/angular-block-ui/ @lassebn @sclassen @renjfk +/types/angular-bootstrap-calendar/ @Odrin +/types/angular-bootstrap-lightbox/ @rolandzwaga +/types/angular-breadcrumb/ @marctalary +/types/angular-clipboard/ @bradfordwagner +/types/angular-cookie/ @borislavjivkov +/types/angular-cookies/ @diegovilar @aciccarello +/types/angular-deferred-bootstrap/ @Ritzlgrmft +/types/angular-desktop-notification/ @Dona278 +/types/angular-dialog-service/ @wcomartin +/types/angular-dynamic-locale/ @stephenlautier +/types/angular-environment/ @terrawheat +/types/angular-es/ @mbutsykin +/types/angular-feature-flags/ @borislavjivkov +/types/angular-file-saver/ @deenairn +/types/angular-file-upload/ @cyrilgandon +/types/angular-formly/ @scatcher +/types/angular-fullscreen/ @julienpa +/types/angular-gettext/ @AkosLukacs +/types/angular-google-analytics/ @cyrilschumacher @Toxantron +/types/angular-gridster/ @jpmnteiro +/types/angular-growl-v2/ @mkp05 +/types/angular-hotkeys/ @jlz27 @reppners @cyrilgandon +/types/angular-http-auth/ @vvakame +/types/angular-httpi/ @Kukks +/types/angular-idle/ @mthamil +/types/angular-jwt/ @rerezz +/types/angular-load/ @david-gang +/types/angular-loading-bar/ @stephenlautier @tyronedougherty +/types/angular-local-storage/ @kenfdev @dona278 +/types/angular-localforage/ @reppners +/types/angular-locker/ @nkovacic +/types/angular-material/ @blbigelow @PeterHajdu @Dona278 @geertjansen @eknowles +/types/angular-media-queries/ @jpmnteiro +/types/angular-meteor/ @pgrm +/types/angular-mocks/ @diegovilar @daltin @thorn0 +/types/angular-modal/ @paullessing +/types/angular-oauth2/ @anteriovieira +/types/angular-pdfjs-viewer/ @bastienmoulia +/types/angular-permission/ @vmishevski +/types/angular-promise-tracker/ @rufusl +/types/angular-q-extras/ @mistic100 +/types/angular-q-spread/ @rafw87 +/types/angular-resource/ @diegovilar @miffels +/types/angular-route/ @park9140 @gkalpak +/types/angular-sanitize/ @diegovilar +/types/angular-scenario/ @RomanoLindano +/types/angular-scroll/ @samherrmann +/types/angular-signalr-hub/ @AdamSantaniello +/types/angular-spinner/ @Biegal +/types/angular-storage/ @mdekrey +/types/angular-strap/ @samherrmann @mkannwischer +/types/angular-toastr/ @nkovacic @trodi +/types/angular-toasty/ @muenchdo +/types/angular-tooltips/ @leonard-thieu +/types/angular-translate/ @michelsalib @GabrielGil +/types/angular-ui-bootstrap/ @xt0rted @ry8806 @alfiej +/types/angular-ui-router/ @michelsalib @matiishyn @mikehaas763 +/types/angular-ui-scroll/ @marknadig +/types/angular-ui-sortable/ @thgreasi +/types/angular-ui-tree/ @CalvinFernandez +/types/angular-websocket/ @nickveys +/types/angular-wizard/ @mjurisic @rwwilden +/types/angular-xeditable/ @jpmnteiro +/types/angular.throttle/ @reppners +/types/angularfire/ @thSoft +/types/angularlocalstorage/ @horiuchi +/types/angulartics/ @bateast2 +/types/animation-frame/ @qinfchen +/types/animejs/ @A-Babin +/types/annyang/ @hisham @theluk +/types/ansi-colors/ @rogierschouten +/types/ansi-escape-sequences/ @aomarks +/types/ansi-escapes/ @jacobbubu +/types/ansi-regex/ @mvachhar +/types/ansi-styles/ @brynbellomy @plylrnsdy +/types/ansicolors/ @rogierschouten +/types/antlr4/ @mcchatman8009 +/types/antlr4-autosuggest/ @jonfreedman +/types/any-db/ @rogierschouten +/types/any-db-transaction/ @rogierschouten +/types/anybar/ @khoomeister +/types/anymatch/ @BendingBender +/types/apex.js/ @y13i +/types/aphrodite/ @asvetliakov +/types/api-error-handler/ @tkrotoff +/types/apicache/ @danielsogl +/types/apigee-access/ @CasperSkydt +/types/apollo-codegen/ @bradleyayers @kostspielig +/types/apollo-upload-client/ @Slessi +/types/app-root-dir/ @chenyang-biu +/types/app-root-path/ @shantmarouti +/types/appdmg/ @unindented +/types/appframework/ @kyo-ago +/types/applepayjs/ @martincostello +/types/appletvjs/ @brainded +/types/applicationinsights-js/ @markwolff @jpiyali @barustum +/types/aqb/ @Athenkosi-Mase +/types/arangodb/ @pluma +/types/arbiter/ @arash16 +/types/arcgis-js-api/v3/ @Esri @bsvensson +/types/arcgis-js-api/ @Esri @bsvensson +/types/arcgis-rest-api/ @JeffJacobson +/types/arcgis-to-geojson-utils/ @JeffJacobson +/types/archiver/ @dolanmiu @crevil +/types/archy/ @vvakame +/types/are-we-there-yet/ @brianloveswords +/types/argon2-browser/ @ivangabriele +/types/argparse/ @arcticwaters @tlaziuk @eps1lon +/types/args/ @Slessi +/types/argv/ @hookclaw +/types/arr-union/ @mrmlnc +/types/array-find-index/ @samverschueren +/types/array-foreach/ @skysteve +/types/array-sort/ @DanielMSchmidt +/types/array-uniq/ @DanielRosenwasser +/types/array-unique/ @CSLTech +/types/arrify/ @wanganjun +/types/artillery/ @kmccoan-allocadia +/types/asana/ @tkqubo +/types/asap/ @fpascutti +/types/ascii2mathml/ @RagibHasin +/types/asenv/ @remisery +/types/asn1js/ @microshine +/types/aspnet-identity-pw/ @jt000 +/types/assert-equal-jsx/ @seryl +/types/assert-plus/ @KostyaTretyak +/types/assertsharp/ @brunolm +/types/assets-webpack-plugin/ @kryops +/types/async/ @borisyankov @kern0 @Penryn @fenying @pascalmartin +/types/async-cache/ @BendingBender +/types/async-lock/ @elisee @afharo @rhymmor +/types/async-polling/ @Goldsmith42 +/types/async-retry/ @albertywu @MeLlamoPablo +/types/async.nexttick/ @pyrho +/types/asynciterator/ @rubensworks +/types/atlaskit__button/ @dijimsta +/types/atlaskit__calendar/ @lstanden +/types/atlaskit__inline-edit/ @lstanden +/types/atlaskit__layer/ @lstanden +/types/atlaskit__single-select/ @lstanden +/types/atlassian-crowd-client/ @mtgto +/types/atmosphere.js/ @toedter @Mory1879 @Scipion +/types/atob/ @johngeorgewright +/types/atom/ @GlenCFL @smhxx @lierdakil +/types/atom-keymap/ @GlenCFL +/types/atom-mocha-test-runner/ @GlenCFL +/types/atpl/ @soywiz +/types/audiosprite/ @Perlmint +/types/auth0/ @wbhob @westy92 @amiram +/types/auth0-angular/ @homesar +/types/auth0-js/v7/ @advancedrei +/types/auth0-js/ @adrianchia @mdurrant @peterblazejewicz +/types/auth0-lock/ @carusology @goldcaddy77 @lfaudreejr @willcaul +/types/auth0.widget/ @advancedrei +/types/auto-bind/ @sseppola +/types/auto-launch/ @rhysd @unindented +/types/auto-sni/ @janwo +/types/autobahn/ @darkl @valepu +/types/autolinker/ @leonyu +/types/autoprefixer/ @odnamrataizem +/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-serverless-express/ @threesquared @jcaffey @mattmeye @albertovasquez +/types/aws4/ @ajcrites +/types/axe-webdriverjs/ @JoshuaKGoldberg +/types/axel/ @ruslan-molodyko +/types/axios-token-interceptor/ @innovation-team +/types/axon/ @jewbre +/types/azure/ @AndrewGaspar @antiveeranna @SomaticIT +/types/azure-mobile-services-client/ @dmorosinotto +/types/azure-sb/ @Azure +/types/b_/ @outring +/types/babel-code-frame/ @mohsen1 +/types/babel-core/ @yortus @marvinhagemeister +/types/babel-generator/ @yortus @johnnyestilles +/types/babel-plugin-react-pug/ @jpap +/types/babel-plugin-syntax-jsx/ @marvinhagemeister +/types/babel-template/ @yortus @marvinhagemeister +/types/babel-traverse/ @yortus @marvinhagemeister @rpetrich +/types/babel-types/ @yortus @baxtersa @marvinhagemeister @bcherny +/types/babel-webpack-plugin/ @j-f1 +/types/babel__code-frame/ @mohsen1 @ForbesLindesay +/types/babel__core/ @yortus @marvinhagemeister @mgroenhoff +/types/babel__generator/ @yortus @johnnyestilles @mgroenhoff +/types/babel__parser/ @yortus @marvinhagemeister @mgroenhoff +/types/babel__template/ @yortus @marvinhagemeister @mgroenhoff +/types/babel__traverse/ @yortus @marvinhagemeister @rpetrich @mgroenhoff +/types/babelify/ @TeamworkGuy2 @marvinhagemeister +/types/babylon/ @yortus @marvinhagemeister +/types/babylon-walk/ @czbuchi +/types/babyparse/ @cdiddy77 +/types/backbone/ @borisyankov @nvivo @kenjiru +/types/backbone-associations/ @craigbrett17 +/types/backbone-fetch-cache/ @delphinus35 +/types/backbone-relational/ @eirikhm +/types/backbone.layoutmanager/ @hejiang2000 +/types/backbone.localstorage/ @lgrignon +/types/backbone.marionette/ @zhamid @nvivo @sventschui @razorness @confususs +/types/backbone.paginator/ @Nyamazing +/types/backbone.radio/ @alphaleonis +/types/backgrid/ @jlujan +/types/backlog-js/ @vvatanabe +/types/backo2/ @Retsam +/types/backoff/ @BendingBender +/types/baconjs/ @alexander-matsievsky @gekkio +/types/bagpipes/ @micmro +/types/barbellweights/ @evelijn +/types/barcode/ @pvomhoff +/types/bardjs/ @TepigMC +/types/base-64/ @dolanmiu +/types/base-x/ @chrootsu +/types/base16/ @alechill +/types/base64-arraybuffer/ @jbencook +/types/base64-js/ @pe8ter +/types/base64-url/ @urish +/types/base64topdf/ @lucasriondel +/types/bases/ @harikv +/types/bash-glob/ @mrmlnc +/types/basic-auth/ @moonpyk @vesse +/types/batch-stream/ @drudge +/types/bazinga-translator/ @alexndlm +/types/bcrypt/ @codeanimal @IOAyman @dstapleton92 +/types/bcryptjs/ @RafaelKr +/types/bdfjs/ @jeremejevs +/types/beats/ @urish +/types/bech32/ @micksatana +/types/behavior3/ @carrrywu +/types/bell/ @SimonSchick +/types/bem-cn/ @selkinvitaly +/types/bencode/ @tobenna +/types/better-curry/ @pocesar +/types/better-queue/ @maozedong +/types/better-scroll/ @stoneChen +/types/better-sqlite3/ @Morfent @matrumz +/types/bezier-easing/ @ptlis +/types/bezier-js/ @danmarshall +/types/bgiframe/ @sumegizoltan +/types/bidirectional-map/ @helenanderson +/types/big.js/ @nycdotnet @googol +/types/bigi/ @mhegazy +/types/bigint/ @Evgenus +/types/bignum/ @Patman64 +/types/bigscreen/ @dduugg +/types/bin-pack/ @orentrutner +/types/binary-parser/ @riggs @dolanmiu +/types/bind-ponyfill/ @skysteve +/types/bindings/ @unindented +/types/bintrees/ @CjS77 +/types/bip21/ @stefanhuber +/types/bip32/ @me +/types/bip38/ @micksatana +/types/bip39/ @micksatana +/types/bit-array/ @mudkipme +/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/blacklist/ @mhegazy +/types/blazy/ @julienpa +/types/blessed/ @brynbellomy @skellock +/types/blissfuljs/ @fskorzec +/types/blob-stream/ @erichillah +/types/blob-to-buffer/ @nrlquaker +/types/blob-util/ @WorldMaker +/types/blocked/ @l-jonas +/types/blockies/ @LogvinovLeon +/types/blocks/ @ksmigiel +/types/bloem/ @danwbyrne +/types/bloom-filter/ @danwbyrne +/types/bloomfilter/ @slawiko +/types/blue-tape/ @sodatea +/types/bluebird/v1/ @Bartvds +/types/bluebird/v2/ @Bartvds @falsandtru +/types/bluebird/ @lhecker +/types/bluebird-global/ @d-ph +/types/bluebird-retry/ @pvomhoff +/types/blueimp-md5/ @rmartone @mkohlmyr +/types/bn.js/ @LogvinovLeon @HenryNguyen5 +/types/body-parser/ @santialbo @vilic @dreampulse @blendsdk @tlaziuk @jwalton +/types/body-parser-xml/ @tbounsiar +/types/bonjour/ @quentin-ol @octo-sniffle +/types/bookshelf/ @arcticwaters @vesse +/types/boom/v3/ @rogatty +/types/boom/v4/ @rogatty @AJamesPhillips @jineshshah36 @danielmachado +/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/ @denisname +/types/bootstrap-3-typeahead/ @AndersonFriaca +/types/bootstrap-datepicker/ @borisyankov +/types/bootstrap-fileinput/ @CheCoxshall +/types/bootstrap-growl-ifightcrime/ @AndersonFriaca +/types/bootstrap-maxlength/ @danmana +/types/bootstrap-notify/ @niemyjski @mouse0270 @robert-voica +/types/bootstrap-select/ @LKay +/types/bootstrap-slider/ @dbeckwith @leonard-thieu +/types/bootstrap-switch/ @johnmbaughman +/types/bootstrap-table/ @talatbaig +/types/bootstrap-touchspin/ @albinsunnanbo +/types/bootstrap-treeview/ @jbtronics +/types/bootstrap-validator/ @BradyLiles +/types/bootstrap.paginator/ @derikwhittaker +/types/bootstrap.timepicker/ @derikwhittaker @heatherbooker +/types/bootstrap.v3.datetimepicker/v3/ @bayitajesi +/types/bootstrap.v3.datetimepicker/ @katonap +/types/bootstrap3-dialog/ @nakupanda @cnboland +/types/bounce.js/ @cherrry +/types/box2d/ @jbaldwin +/types/bpmn-moddle/ @haydos89 +/types/brace-expansion/ @BendingBender +/types/braces/ @vemoo +/types/braft-editor/ @me +/types/braintree-web/ @chlela +/types/breeze/ @borisyankov +/types/bricks.js/ @kondi +/types/bro-fs/ @ffflorian +/types/brorand/ @chrootsu +/types/browser-bunyan/ @PaulLockwood @kryops +/types/browser-fingerprint/ @LKay +/types/browser-harness/ @scriby +/types/browser-pack/ @TeamworkGuy2 +/types/browser-report/ @JTOne123 +/types/browser-resolve/ @marionebl +/types/browser-sync/ @joeskeen @aznnomness +/types/browserify/ @AndrewGaspar @jvilk @leonard-thieu +/types/bs58/ @chrootsu +/types/bson/ @horiuchi @CaselIT +/types/btoa/ @johngeorgewright +/types/bucks/ @zaneli +/types/buffer-compare/ @chrootsu +/types/buffer-equal/ @Bartvds +/types/buffer-from/ @burnnat +/types/buffer-reader/ @nrlquaker +/types/buffer-xor/ @danwbyrne +/types/buffers/ @rhencke +/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/bump-regex/ @silkentrance +/types/bunnymq/ @cyrilschumacher +/types/bunyan/ @amikhalev +/types/bunyan-blackhole/ @olivr70 +/types/bunyan-bugsnag/ @pasieronen +/types/bunyan-config/ @cyrilschumacher +/types/bunyan-format/ @dex4er +/types/bunyan-prettystream/ @jasonswearingen @enlight +/types/bunyan-winston-adapter/ @stevehipwell +/types/busboy/ @jacobbaskin +/types/business-rules-engine/ @rsamec +/types/bwip-js/ @MugeSo +/types/byline/ @reppners +/types/bytebuffer/ @cappellin +/types/bytes/ @danny8002 @believer +/types/c3/ @mcliment @gerinjacob @denyo @dmitryshindin @timn +/types/cache-manager/ @GausSim +/types/cal-heatmap/ @RetroChrisB +/types/callsite/ @newclear +/types/callsites/ @BendingBender +/types/calq/ @eirikhm +/types/camaro/ @tuananh +/types/camelcase/ @samverschueren +/types/camelcase-keys/ @mhegazy +/types/camo/ @lucasmciruzzi +/types/cancan/ @Vincent-Pang +/types/cannon/ @clark-stevenson @Gelio +/types/canvas-confetti/ @matracey +/types/canvas-gauges/ @Mikhus +/types/canvasjs/ @brutalimp +/types/capitalize/ @frederickfogerty +/types/capture-console/ @AustonZ +/types/card-validator/ @ChanceM +/types/case-sensitive-paths-webpack-plugin/ @r3nya +/types/caseless/ @downace @mastermatt +/types/cash/ @akvlko +/types/casperjs/ @jedmao @urielch +/types/cassandra-driver/ @Svjard @pc-jedi +/types/catbox/v7/ @jasonswearingen @AJamesPhillips +/types/catbox/ @jasonswearingen @AJamesPhillips @saboya +/types/catbox-redis/ @SimonSchick +/types/cbor/ @pushplay +/types/ccap/ @taoqf +/types/cesium/ @Zuzon @hnipps @szechyjs @golyalpha +/types/chai/v2/ @Bartvds @AGBrown +/types/chai/ @jedmao @Bartvds @AGBrown @olivr70 @mwistrand @joshuakgoldberg @shaunluttin @Naktibalda @micksatana @ErikSchierboom +/types/chai-arrays/ @clementprevot +/types/chai-as-promised/ @jt000 @Kuniwak @leonard-thieu @lazerwalker @mattbishop +/types/chai-datetime/ @cliffburger @mattbishop +/types/chai-dom/ @mattlewis92 +/types/chai-enzyme/ @asvetliakov +/types/chai-fuzzy/ @Bartvds +/types/chai-http/ @Nemo157 @G1itcher @CaselIT @bas-l +/types/chai-jest-snapshot/ @mattvperry +/types/chai-jquery/ @kazimanzurrashid +/types/chai-json-schema/ @ulrichheiniger +/types/chai-oequal/ @mizunashi-mana +/types/chai-roughly/ @swist +/types/chai-spies/ @kuzn-ilya @harm-less @jounisuo +/types/chai-string/ @nmalaguti +/types/chai-subset/ @delta62 @AGBrown +/types/chai-uuid/ @harm-less +/types/chai-webdriverio/ @sherlock1982 +/types/chai-xml/ @jedigo +/types/chance/ @cbowdon @brikou @cafesanu +/types/change-emitter/ @iskandersierra +/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/chartist/ @mtgibbs @psimonski @clottman @affilnost @sunnyrjuneja +/types/chartmogul-node/ @chartmogul +/types/chayns/ @HenningKuehl +/types/check-sum/ @BendingBender +/types/check-types/ @idchlife +/types/checkstyle-formatter/ @mhegazy +/types/checksum/ @rogierschouten +/types/cheerio/ @blittle @wmaurer @umarniz @LiJinyao @chennakrishna8 +/types/chess.js/ @JacobFischer +/types/chessboardjs/ @sliverb @davidmpaz +/types/chmodr/ @BendingBender +/types/chokidar/ @reppners @felixfbecker @bayssmekanique +/types/chosen-js/ @borisyankov @denisname +/types/chownr/ @BendingBender +/types/chroma-js/v0/ @invliD +/types/chroma-js/ @invliD @mpacholec +/types/chrome/ @matthewkimber @otiai10 @couven92 @rreverser @sreimer15 +/types/chrome-apps/ @niikoo @AdamLay @pine613 @mzsm @RReverser @pyle @matthewkimber @otiai10 @couven92 @rreverser @sreimer15 +/types/chromecast-caf-receiver/ @craigrbruce +/types/chromecast-caf-sender/ @samuelmaddock +/types/chromedriver/ @pe8ter +/types/circuit-breaker-js/ @DeTeam +/types/circular-json/ @jpevarnek +/types/ckeditor/v2/ @wittwert +/types/ckeditor/ @wittwert @stuartlong +/types/clamp-js/ @Hikariii +/types/clamp-js-main/ @sinziananicolae +/types/classnames/ @adidahiya @JKillian @seansfkelley @mradamczyk @marvinhagemeister +/types/cldrjs/ @RamanBut-Husaim @gcastre +/types/clean-css/ @tkrotoff +/types/clean-stack/ @BendingBender +/types/clean-webpack-plugin/ @j-f1 +/types/clear-require/ @dan-j +/types/clearbladejs-client/ @ClearBlade +/types/clearbladejs-node/ @ClearBlade +/types/clearbladejs-server/ @ClearBlade +/types/cleave.js/ @clentfort @jasongi-at-sportsbet @sashashakun +/types/cli/ @kayahr +/types/cli-color/ @ChaosinaCan +/types/cli-progress/ @mhegazy +/types/cli-spinner/ @janslow +/types/cli-table/ @arylo +/types/cli-table2/ @mgroenhoff +/types/cli-truncate/ @danwbyrne +/types/client-sessions/ @netroy +/types/clientjs/ @icopp +/types/cliff/ @brynbellomy +/types/clipboard/ @impworks +/types/clipboard-js/ @markwongsk +/types/clipboardy/ @BendingBender +/types/clmtrackr/ @hellochar +/types/clndr/ @jasperjn +/types/clockpicker/ @jfcere +/types/cloneable-readable/ @qlonik +/types/cloner/ @matrumz +/types/closure-compiler/ @mprobst +/types/cloud-env/ @Morfent +/types/cloudflare-apps/ @MartynasZilinskas +/types/cls-hooked/ @aleung +/types/clusterize.js/ @Pr1st0n +/types/cmd-shim/ @cspotcode +/types/co-body/ @geoffreak +/types/co-views/ @devlee @geoffreak +/types/code/ @prashaantt +/types/codemirror/ @mihailik @nrbernard @Pr1st0n @rileymiller +/types/codependency/ @morphatic +/types/coffeeify/ @tkQubo +/types/coinbase/ @rogierschouten +/types/coinstring/ @mhegazy +/types/collections/ @scarabedore +/types/color/v0/ @LKay +/types/color/v1/ @LKay +/types/color/v2/ @Airlun +/types/color/ @Airlun @jameswlane +/types/color-convert/ @Airlun +/types/color-name/ @Ailrun +/types/color-namer/ @in19farkt +/types/color-string/ @BendingBender @danmarshall +/types/colorbrewer/ @mtraynham +/types/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/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/common-errors/ @icopp +/types/common-prefix/ @seangenabe +/types/common-tags/ @zuzusik @tzupengwang +/types/commondir/ @leonard-thieu +/types/commonmark/ @nicojs @leonard-thieu +/types/compare-version/ @jpevarnek +/types/compare-versions/ @LogvinovLeon +/types/complex/ @AyaMorisawa +/types/component-emitter/ @psnider +/types/compose-function/ @denis-sokolov +/types/compressible/ @BendingBender +/types/compression/ @santialbo @rburgt +/types/compression-webpack-plugin/ @dublicator +/types/compute-quantile/ @mrmlnc +/types/compute-stdev/ @mrmlnc +/types/concat-stream/ @jmarianer +/types/concaveman/ @DenisCarriere +/types/conf/v0/ @SamVerschueren +/types/conf/ @SamVerschueren @BendingBender +/types/confidence/ @jppellerin +/types/config/ @RWander @forrestbice @jndonald3 @albertovasquez +/types/config-yaml/ @me +/types/configstore/ @ArcticLight +/types/configurable/ @jewbre +/types/confit/ @ethanresnick +/types/connect/ @SomaticIT @EvanHahn +/types/connect-busboy/ @pinguet62 +/types/connect-ensure-login/ @0x6368656174 +/types/connect-flash/ @AndreasGassmann +/types/connect-history-api-fallback/ @douglasduteil +/types/connect-livereload/ @SomaticIT +/types/connect-modrewrite/ @tinganho +/types/connect-mongo/ @Syati +/types/connect-mongodb-session/ @NattapongSiri +/types/connect-pg-simple/ @pasieronen +/types/connect-redis/ @xstoudi @morcerf +/types/connect-slashes/ @samherrmann +/types/connect-timeout/ @cyrilschumacher +/types/console-log-level/ @ofrobots +/types/console-stamp/ @ericbyers @guusdegraeve +/types/consolidate/ @soywiz @theosherry @nicolashenry +/types/consul/ @chrootsu +/types/content-disposition/ @bomret +/types/content-type/ @horiuchi @BendingBender +/types/contentful-resolve-response/ @antonkarsten +/types/contextjs/ @kernhanda +/types/continuation-local-storage/ @rath @heycalmdown @aboveyou00 +/types/convert-hrtime/ @BendingBender +/types/convert-layout/ @xeningem +/types/convert-source-map/ @AndrewGaspar @mgroenhoff @TeamworkGuy2 +/types/convict/ @Nemo157 @vesse @elyscape @vanthiyathevan +/types/cookie/ @pine613 +/types/cookie-parser/ @santialbo @BendingBender +/types/cookie-session/ @borislavjivkov +/types/cookie-signature/ @lith-light-g +/types/cookie_js/ @slawiko +/types/cookiejar/ @paroxp +/types/cookies/ @WangZishi @jkeylu @BendingBender +/types/copy-paste/ @SrTobi +/types/copy-text-to-clipboard/ @BendingBender +/types/copy-webpack-plugin/ @flying-sheep +/types/cordova-ionic/ @hendrikmaus +/types/cordova-plugin-app-version/ @Ritzlgrmft +/types/cordova-plugin-background-mode/ @Lordnoname +/types/cordova-plugin-badge/ @timbru31 +/types/cordova-plugin-ble-central/ @gjunge +/types/cordova-plugin-canvascamera/ @lordazzi +/types/cordova-plugin-device-name/ @larrybahr +/types/cordova-plugin-file-opener2/ @cyrilgandon +/types/cordova-plugin-ibeacon/ @Ritzlgrmft +/types/cordova-plugin-insomnia/ @Ritzlgrmft +/types/cordova-plugin-keyboard/ @danmana @jkfb +/types/cordova-plugin-mapsforge/ @rafw87 +/types/cordova-plugin-ms-adal/ @KaiWalter +/types/cordova-plugin-native-keyboard/ @lobo87 +/types/cordova-plugin-ouralabs/ @Justin-Credible +/types/cordova-plugin-qrscanner/ @bitjson @jab +/types/cordova-plugin-spinner/ @Justin-Credible +/types/cordova-plugin-x-socialsharing/ @Ritzlgrmft @larrybahr +/types/cordova-sqlite-storage/ @rafw87 +/types/cordova-universal-links-plugin/ @broder +/types/cordova_app_version_plugin/ @larrybahr +/types/cordovarduino/ @hendrikmaus +/types/core-js/ @rbuckton @mfdeveloper +/types/correlation-id/ @natemara +/types/cors/ @pluma +/types/cosmiconfig/v4/ @ozum +/types/cosmiconfig/ @ozum @szeck87 @saadq @jinwoo +/types/cote/ @makepost +/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/coverup/ @bevalorous +/types/cp-file/ @BendingBender +/types/cpx/ @alan-agius4 +/types/cpy/ @mhegazy @BendingBender +/types/cqrs-domain/ @blissi +/types/cradle/ @panuhorsmalahti +/types/crc/ @YuJianrong +/types/create-error/ @tkrotoff +/types/create-react-class/ @jgoz +/types/create-subscription/ @Asana @vsiao +/types/createjs/ @evilangelist @gyohk +/types/createjs-lib/ @evilangelist @gyohk +/types/credential/ @phuvo +/types/credit-card-type/ @LKay +/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/cryptiles/ @awendland +/types/crypto-js/ @misak113 +/types/crypto-random-string/ @MrManny +/types/cryptojs/ @giabao +/types/cson/ @stpettersens +/types/csprng/ @winksaville +/types/csrf/ @markis +/types/css/ @ilich +/types/css-font-loading-module/ @slikts +/types/css-modules/ @NeekSandhu +/types/css-to-style/ @bengry +/types/cssbeautify/ @rictic +/types/cssnano/ @odnamrataizem +/types/csso/ @screendriver +/types/csurf/ @horiuchi +/types/csv-parse/ @davidm77 @obi-jan-kenobi +/types/csv-stringify/ @rogierschouten @arjenvanderende +/types/csv2json/ @dex4er +/types/csvrow/ @codeanimal +/types/csvtojson/ @EricByers @wcarson +/types/cucumber/v1/ @abraaoalves @jan-molak @isoung @BendingBender +/types/cucumber/v3/ @abraaoalves @jan-molak @isoung @BendingBender @ErikSchierboom +/types/cucumber/ @abraaoalves @jan-molak @isoung @BendingBender @ErikSchierboom +/types/currency-formatter/ @mhegazy @davidmpaz +/types/custom-error-generator/ @thmiceli +/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-axis/ @tomwanzek @gustavderdrache @borisyankov @denisname +/types/d3-box/ @lk-chen +/types/d3-brush/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-chord/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-cloud/ @hansrwindhoff +/types/d3-collection/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-color/ @tomwanzek @gustavderdrache @borisyankov @denisname @ledragon +/types/d3-contour/ @tomwanzek @Ledragon +/types/d3-delaunay/ @BTOdell +/types/d3-dispatch/ @tomwanzek @gustavderdrache @borisyankov @denisname +/types/d3-drag/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-dsv/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-ease/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-fetch/ @ledragon +/types/d3-force/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-format/ @tomwanzek @gustavderdrache @borisyankov @denisname +/types/d3-geo/ @ledragon @tomwanzek @gustavderdrache @borisyankov +/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-path/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-polygon/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-quadtree/ @tomwanzek @gustavderdrache @borisyankov @denisname +/types/d3-queue/ @tomwanzek @gustavderdrache @borisyankov @denisname +/types/d3-random/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-request/ @Ledragon @gustavderdrache @borisyankov @tomwanzek @denisname +/types/d3-sankey/ @tomwanzek @gustavderdrache +/types/d3-scale/v1/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-scale/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-scale-chromatic/ @Ledragon @gustavderdrache @borisyankov @henriquefm +/types/d3-selection/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-selection-multi/ @gustavderdrache @borisyankov +/types/d3-shape/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-time/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-time-format/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-timer/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-tip/ @brspnnggrt +/types/d3-transition/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-voronoi/ @tomwanzek @gustavderdrache @borisyankov @denisname +/types/d3-zoom/ @tomwanzek @gustavderdrache @borisyankov +/types/d3.slider/ @lk-chen +/types/d3kit/ @morphatic +/types/d3pie/ @mc-petry +/types/dagre/ @qinfchen @Frankrike @vilterp @rustedgrail +/types/dagre-d3/ @markwongsk +/types/dagre-layout/ @qinfchen @Frankrike @vilterp +/types/dargs/ @BendingBender +/types/dashify/ @rokt33r +/types/dat.gui/ @gyohk @sonic3d @rroylance @singuerinc +/types/data-driven/ @mrhen +/types/datadog-metrics/ @pushplay +/types/datadog-tracer/ @dineshsaravanan +/types/datatables.net/ @Silver-Connection @omidkrad @pragmatrix @CNBoland +/types/datatables.net-autofill/ @andy-maca +/types/datatables.net-buttons/ @Silver-Connection @SammyG4Free @jimhartford +/types/datatables.net-colreorder/ @andy-maca +/types/datatables.net-fixedheader/ @szechyjs @Silver-Connection +/types/datatables.net-rowgroup/ @maixiu +/types/datatables.net-rowreorder/ @baywet +/types/datatables.net-scroller/ @RohdeK +/types/datatables.net-select/ @szechyjs +/types/date-arithmetic/ @HeeL +/types/date.format.js/ @balrob +/types/dateformat/ @aicest +/types/datejs/ @rupertavery +/types/daterangepicker/ @SirMartin @smasala @nertzy +/types/dav/ @ToastHawaii +/types/db-migrate-base/ @nickiannone +/types/db-migrate-pg/ @nickiannone +/types/db.js/ @cgwrench +/types/dc/ @hansrwindhoff @mtraynham @MatthiasJobst +/types/dd-trace/ @ColinBradley @alloy +/types/deasync/ @Sicilica +/types/debessmann/ @vkorehov +/types/debounce/ @denis-sokolov +/types/debug/ @swook @galtalmor @zamb3zi +/types/decamelize/ @samverschueren +/types/decay/ @enaeseth +/types/decompress/ @plantain-00 @jbethke +/types/decompress-response/ @DanielRosenwasser +/types/decorum/ @dflor003 +/types/dedent/ @douglasduteil +/types/deep-assign/ @souldreamer +/types/deep-diff/ @ZauberNerd +/types/deep-equal/ @remojansen @janslow +/types/deep-extend/ @rhysd +/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 +/types/defined/ @BendingBender +/types/deglob/ @saadq +/types/deku/ @pocka +/types/del/v2/ @AyaMorisawa +/types/del/ @AyaMorisawa @BendingBender @bitjson +/types/delaunator/ @DenisCarriere @BTOdell +/types/delete-empty/ @Alorel +/types/deline/ @iarroyo5 +/types/deluge/ @Diasiare +/types/denodeify/ @joaomoreno +/types/deoxxa-content-type/ @pine613 +/types/depcheck/ @ark120202 +/types/depd/ @danny8002 @BendingBender +/types/dependency-tree/ @joscha +/types/deployjava/ @cyrilschumacher +/types/derhuerst__cli-on-key/ @jacobbubu +/types/destroy/ @BendingBender +/types/destroy-on-hwm/ @BendingBender +/types/detect-browser/ @rogierschouten +/types/detect-hover/ @thomastilkema +/types/detect-indent/v0/ @Bartvds +/types/detect-indent/ @Bartvds @BendingBender +/types/detect-it/ @thomastilkema +/types/detect-newline/ @BendingBender +/types/detect-node/ @LogvinovLeon +/types/detect-passive-events/ @thomastilkema +/types/detect-pointer/ @thomastilkema +/types/detect-port/ @lith-light-g +/types/detect-touch-events/ @thomastilkema +/types/detox/ @TareqElMasri +/types/devexpress-aspnetcore-bootstrap/ @devexpress @skubarenko +/types/df-visible/ @Litee +/types/dhtmlxgantt/ @mkozhukh @chriscamicas +/types/dhtmlxscheduler/ @mkozhukh +/types/di/ @johnjbarton +/types/di-lite/ @dcrusader +/types/diacritics/ @otociulis +/types/dialogflow/ @dyladan +/types/diff/ @vvakame @szdc +/types/diff2html/ @rtfpessoa +/types/dir-resolve/ @andy-ms +/types/discontinuous-range/ @OiCMudkips +/types/discourse-sso/ @championswimmer +/types/dispatchr/ @Ragg- +/types/disposable-email-domains/ @geoffreak +/types/dnssd/ @angelmerino @Maxr1998 +/types/doccookies/ @jonegerton +/types/dockerode/ @seikho @nlaplante @isac322 @lazarusx @meisenzahl @thegecko +/types/docopt/ @giggio +/types/doctrine/ @rictic +/types/document-promises/ @NotWoods +/types/document-ready/ @Jack-Works +/types/documentdb/ @NoelAbrahams @brettferdosi @ctstone @yifanwu +/types/documentdb-server/ @lith-light-g +/types/documentdb-session/ @DanielRosenwasser +/types/dojo/ @vansimke +/types/dom-clipboard-api/ @43081j +/types/dom-inputevent/ @diagramatics +/types/dom-to-image/ @JipSterk +/types/dom4/ @adidahiya @giladgray +/types/domo/ @Steve-Fenton +/types/dompurify/ @bazuzi +/types/domready/ @dotnetnerd +/types/donna/ @vvakame +/types/dookie/ @swanest +/types/dot/ @ZombieHunter +/types/dot-object/ @nkovacic +/types/dot-prop/v2/ @samverschueren +/types/dot-prop/ @samverschueren @BendingBender +/types/dotdir-regex/ @mrmlnc +/types/dotdotdot/ @milanjaros +/types/dotenv/v2/ @jussikinnula @borekb @enaeseth +/types/dotenv/ @jussikinnula @borekb @enaeseth +/types/dotenv-safe/ @krenor +/types/dotenv-webpack/ @karol-majewski +/types/dotfile-regex/ @mrmlnc +/types/dottie/ @domarmstrong +/types/double-ended-queue/ @dsagal +/types/doublearray/ @mzsm +/types/doubleclick-gpt/ @johngeorgewright @steven-joyce +/types/download/ @nicojs +/types/downloadjs/ @cwmoo740 +/types/dplayer/ @Guanyunhan +/types/draft-js/ @dmitryrogozhny @eelco @ghotiphud @schwers @michael-yx-wu @willisplummer @smvilar @sulf @pablopunk +/types/drag-timetable/ @chinkan +/types/draggabilly/ @jaydubu +/types/dragster/ @zskovacs +/types/dragula/ @pwelter34 @abruzzihraig +/types/dropboxjs/ @Steve-Fenton @xperiments +/types/dropkickjs/ @VorobeY1326 +/types/dropzone/v4/ @nvivo @outring @renuo @Hikariii +/types/dropzone/ @nvivo @outring @renuo @Hikariii @tedbcsgpro @dwaxweiler +/types/dts-generator/ @mtraynham +/types/duplexer2/ @Goldsmith42 +/types/duplexer3/ @BendingBender +/types/duplexify/ @strax +/types/duplicate-package-checker-webpack-plugin/ @mtraynham +/types/durandal/ @BlueSpire +/types/dustjs-linkedin/ @mdezem +/types/dvtng-jss/ @Ptival +/types/dw-bxslider-4/ @namerci +/types/dwt/v12/ @yushulx +/types/dwt/ @yushulx @jbh @lincoln2018 @Tom-Dynamsoft +/types/dygraphs/ @danvk +/types/dymo-label-framework/ @thijskuipers +/types/dynatable/ @francoismassart +/types/dynogels/ @SpartanLabs @ramondeklein @stephentuso +/types/each/ @misak113 +/types/earcut/ @NaridaL +/types/easeljs/ @evilangelist +/types/eases/ @MathiasPaumgarten +/types/easy-api-request/ @DeadAlready +/types/easy-jsend/ @DeadAlready +/types/easy-session/ @DeadAlready +/types/easy-table/ @nikeee +/types/easy-xapi/ @DeadAlready +/types/easy-xapi-utils/ @DeadAlready +/types/ebongarde-root/ @Ebongarde +/types/echarts/ @xieisabug @AntiMoron @liveangela @Ovilia +/types/ecma-proposal-math-extensions/ @ksm2 +/types/ecurve/ @mhegazy +/types/ed25519/ @erikma +/types/ed2curve/ @ffflorian +/types/egg-mock/ @sheperdwind +/types/egg.js/ @ToastHawaii +/types/egjs__axes/ @naver +/types/egjs__component/ @naver +/types/ej.web.all/ @syncfusion +/types/ejs/ @benliddicott +/types/ejs-locals/ @jt000 +/types/ejson/ @shantanubhadoria +/types/elasticsearch/ @CasperSkydt @bfsmith @ddunkin @pushplay @mlamp @ahmadferdous @SimonSchick @brabster @deerawan +/types/electron-config/ @mrfunkycold @unindented +/types/electron-debug/ @unindented +/types/electron-devtools-installer/ @gamesmaxed @mfatihmar +/types/electron-is-dev/ @trodi +/types/electron-json-storage/ @stpettersens @nrlquaker @jbw91 +/types/electron-load-devtool/ @prince0203 +/types/electron-notifications/ @djpereira +/types/electron-notify/ @djpereira +/types/electron-packager/ @SomaticIT @cortopy @jkleinsc @shiftkey +/types/electron-settings/v2/ @leonard-thieu +/types/electron-settings/ @icopp @nrlquaker +/types/electron-spellchecker/ @unindented +/types/electron-store/ @unindented @jsynowiec +/types/electron-unhandled/ @jeremejevs +/types/electron-util/ @kputh +/types/electron-window-state/ @rhysd +/types/electron-winstaller/ @shiftkey @unindented +/types/elegant-spinner/ @danwbyrne +/types/element-ready/ @BendingBender +/types/element-resize-detector/ @saranshkataria +/types/element-resize-event/ @rogierschouten @plgregoire +/types/elementtree/ @dwieeb +/types/elliptic/ @danwbyrne +/types/elm/ @thSoft +/types/email-templates/ @cyrilschumacher @gurisko @blankstar85 +/types/ember/v1/ @jedmao +/types/ember/v2/ @jedmao @bttf @dwickern @chriskrycho @theroncross @mfeckie @alexlafroscia @mike-north +/types/ember/ @jedmao @bttf @dwickern @chriskrycho @theroncross @mfeckie @alexlafroscia @mike-north @BryanCrotaz +/types/ember-data/v2/ @dwickern @mike-north @chriskrycho +/types/ember-data/ @dwickern @mike-north @chriskrycho +/types/ember-feature-flags/v3/ @tansongyang @mike-north +/types/ember-feature-flags/ @tansongyang @mike-north +/types/ember-mocha/ @dwickern @simonihmig @mike-north +/types/ember-modal-dialog/v2/ @tansongyang @mike-north +/types/ember-modal-dialog/ @tansongyang @mike-north +/types/ember-qunit/v2/ @dwickern @mike-north +/types/ember-qunit/ @dwickern @mike-north +/types/ember-resolver/v4/ @dfreeman @mike-north +/types/ember-resolver/ @dfreeman @mike-north +/types/ember-test-helpers/v0/ @dwickern @mike-north +/types/ember-test-helpers/ @dwickern @mike-north +/types/ember-testing-helpers/ @chriskrycho +/types/ember__application/ @mike-north +/types/ember__array/ @mike-north +/types/ember__component/ @mike-north +/types/ember__controller/ @mike-north +/types/ember__debug/ @mike-north +/types/ember__engine/ @mike-north +/types/ember__error/ @mike-north +/types/ember__object/ @mike-north +/types/ember__polyfills/ @mike-north +/types/ember__routing/ @mike-north +/types/ember__runloop/ @mike-north +/types/ember__service/ @mike-north +/types/ember__string/ @mike-north +/types/ember__test/ @mike-north +/types/ember__test-helpers/ @dfreeman @jamescdavis @mike-north +/types/ember__utils/ @mike-north +/types/emissary/ @vvakame +/types/emoji-mart/ @Kovensky @Nicell +/types/emoji-regex/ @iKBAHT +/types/emojione/ @dbrgn +/types/empower/ @vvakame +/types/emscripten/ @zakki @periklis +/types/end-of-stream/ @strax +/types/engine.io/ @KentarouTakeda +/types/engine.io-client/ @KentarouTakeda +/types/enhanced-resolve/ @e-cloud @onigoetz @johnnyreilly +/types/enigma.js/ @konne +/types/enquire.js/ @screendriver +/types/ent/ @rogierschouten +/types/entities/ @aliceklipper +/types/env-paths/ @danwbyrne +/types/env-to-object/ @MugeSo +/types/envify/ @tkQubo +/types/enzyme/ @MarianPalkus @NoHomey @jwbay @huhuanming @MartynasZilinskas @thovden @hotell +/types/enzyme-adapter-react-15/ @tkrotoff +/types/enzyme-adapter-react-15.4/ @nali +/types/enzyme-adapter-react-16/ @tkrotoff +/types/enzyme-redux/ @knegusen +/types/enzyme-to-json/ @joscha +/types/eonasdan-bootstrap-datetimepicker/ @ToastHawaii +/types/epiceditor/ @borisyankov +/types/epilogue/ @micksatana +/types/epub/ @julien-c +/types/eq.js/ @stephenlautier +/types/error-subclass/ @fitbit +/types/errorhandler/ @santialbo +/types/es-feature-detection/ @Jack-Works +/types/es6-collections/ @rbuckton +/types/es6-promisify/ @harryshipton @bschlenk +/types/es6-shim/ @rbuckton +/types/es6-weak-map/ @pine +/types/escape-html/ @elisee +/types/escape-latex/ @olsio +/types/escape-regexp/ @jewbre +/types/escape-string-regexp/ @kruncher @faergeek +/types/escodegen/ @simondel +/types/eslint/ @pmdartus @j-f1 @saadq +/types/eslint-plugin-prettier/ @ikatyang +/types/eslint-scope/ @mysticatea +/types/eslint-visitor-keys/ @mysticatea +/types/esprima/v2/ @teppeis @RReverser +/types/esprima/ @teppeis @RReverser @peter-scott +/types/esprima-walk/ @tswaters +/types/espruino/ @stasberkov @createdbyjurand +/types/esri-leaflet/ @strajuser +/types/esri-leaflet-geocoder/ @BendingBender +/types/estraverse/ @sanex3339 +/types/estree/ @RReverser +/types/etag/ @BendingBender +/types/eth-lightwallet/ @LogvinovLeon +/types/ethereum-protocol/ @LogvinovLeon +/types/ethereumjs-abi/ @LogvinovLeon +/types/ethereumjs-tx/ @LogvinovLeon +/types/ethereumjs-util/ @cortopy +/types/ethjs-signer/ @doppio +/types/eureka-js-client/ @Schnillz +/types/evaporate/ @kookster @chrisrhoden @ailrun +/types/event-emitter/ @LKay +/types/event-emitter-es6/ @ahstro +/types/event-hooks-webpack-plugin/ @pine +/types/event-kit/ @GlenCFL +/types/event-loop-lag/ @rogierschouten +/types/event-stream/ @flcdrg +/types/event-to-promise/ @flying-sheep +/types/events/ @yasupeke +/types/eventsource/ @scottleedavis @afroozeh +/types/evernote/ @corps +/types/ex-react-native-i18n/ @maplerichie +/types/excel-style-dataformatter/ @SanderDeWaal1992 +/types/exceljs/ @rogierschouten @alitaheri +/types/execa/ @douglasduteil @BendingBender @borekb @mickdekkers +/types/exenv/ @christianchown +/types/exit/ @Bartvds +/types/exit-hook/ @BendingBender +/types/exorcist/ @TeamworkGuy2 +/types/expect/ @jmreidy @merrywhether +/types/expect-puppeteer/ @JoshuaKGoldberg @tkrotoff +/types/expect.js/ @teppeis +/types/expectations/ @vvakame +/types/expired-storage/ @intolerance +/types/expo/v23/ @KonstantinKai +/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__status-bar-height/ @dawnmist +/types/expo__vector-icons/ @incleaf +/types/express/ @borisyankov +/types/express-brute/ @cyrilschumacher +/types/express-brute-memcached/ @cyrilschumacher +/types/express-brute-mongo/ @cyrilschumacher +/types/express-brute-redis/ @scottharwell +/types/express-bunyan-logger/ @shreyjain1994 +/types/express-busboy/ @pinguet62 +/types/express-cluster/ @nenadalm +/types/express-correlation-id/ @natemara +/types/express-debug/ @federicobond +/types/express-domain-middleware/ @hookclaw +/types/express-ejs-layouts/ @erikma +/types/express-enforces-ssl/ @kevinstubbs +/types/express-fileupload/ @Naktibalda @silkimen +/types/express-flash/ @iMobs +/types/express-flash-2/ @mathsalmi +/types/express-flash-notification/ @Mister4Eyes +/types/express-formidable/ @tdolsen @evanshortiss +/types/express-graphql/ @isman-usoh @nitintutlani @hubel @zya @mlamp @firede +/types/express-handlebars/ @stpettersens @yhaskell +/types/express-jsonschema/ @atd-schubert +/types/express-jwt/ @wokim @kacepe @Sl1MBoy @milan-mimra +/types/express-less/ @xieyubo +/types/express-minify/ @borislavjivkov +/types/express-mongo-sanitize/ @ericbyers +/types/express-mung/ @cyrilschumacher +/types/express-myconnection/ @Cellule +/types/express-mysql-session/ @Akim95 +/types/express-oauth-server/ @atd-schubert +/types/express-openapi/ @mugeso +/types/express-paginate/ @AmirTugi +/types/express-partials/ @jt000 +/types/express-promise-router/ @wanganjun +/types/express-rate-limit/ @cyrilschumacher @makepost +/types/express-redis-cache/ @ajliv +/types/express-route-fs/ @kripod +/types/express-routemap/ @icopp +/types/express-sanitized/ @cjbarth +/types/express-serve-static-core/ @borisyankov @19majkel94 @kacepe @micksatana @samijaber +/types/express-session/ @horiuchi @jacobbogers @builtinnya @ry7n +/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-xml-bodyparser/ @noticeMaker @macedigital +/types/extend/ @reppners +/types/extjs/ @brian428 +/types/extract-files/ @Slessi +/types/extract-stack/ @BendingBender +/types/extract-text-webpack-plugin/ @flying-sheep @katyo +/types/extract-zip/ @mizunashi-mana +/types/extsprintf/ @AlexHankins +/types/eyes/ @brynbellomy +/types/ez-plus/ @AndersonFriaca +/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-pixel/ @noctishsu +/types/faker/v3/ @Kuniwak +/types/faker/ @bensw @basp @Kuniwak @mattbishop +/types/falcor/ @Quramy +/types/falcor-express/ @Quramy +/types/falcor-http-datasource/ @Quramy +/types/falcor-json-graph/ @Quramy +/types/falcor-router/ @Quramy @cdhgee +/types/famous/ @borisvasilenko +/types/fancy-log/ @pine +/types/fancybox/ @borisyankov +/types/farbtastic/ @EnableSoftware +/types/fast-diff/ @djrenren +/types/fast-levenshtein/ @mizunashi-mana +/types/fast-list/ @BendingBender +/types/fast-stats/ @rogierschouten +/types/fastclick/ @shinnn +/types/favico.js/ @drowse314-dev-ymat +/types/favicons/ @mohsen1 +/types/fb/ @JoshStrobl +/types/fb-watchman/ @whtsky +/types/fbemitter/ @kmxz +/types/feather-icons/ @jineshshah36 +/types/featherlight/ @xStrom +/types/feathersjs__authentication/ @AbraaoAlves @j2L4e +/types/feathersjs__authentication-client/ @AbraaoAlves @j2L4e +/types/feathersjs__authentication-jwt/ @j2L4e +/types/feathersjs__authentication-local/ @j2L4e +/types/feathersjs__authentication-oauth1/ @j2L4e +/types/feathersjs__authentication-oauth2/ @j2L4e +/types/feathersjs__configuration/ @j2L4e +/types/feathersjs__errors/ @j2L4e +/types/feathersjs__express/ @j2L4e @DadUndead +/types/feathersjs__feathers/ @j2L4e @AbraaoAlves @TimMensch +/types/feathersjs__primus/ @j2L4e +/types/feathersjs__primus-client/ @j2L4e +/types/feathersjs__rest-client/ @j2L4e +/types/feathersjs__socket-commons/ @j2L4e +/types/feathersjs__socketio/ @j2L4e +/types/feathersjs__socketio-client/ @j2L4e +/types/feedme/ @codeanimal +/types/feedparser/ @cortopy +/types/fetch-jsonp/ @tkrotoff +/types/fetch-mock/ @asvetliakov @tamird @merrywhether @chrissinclair @matttennison @quentinbouygues +/types/fetch.io/ @newraina +/types/ffi/ @loyd @waitingsong +/types/ffi-napi/ @keerthi16 @KiranNiranjan +/types/ffmpeg-static/ @iamstevetran +/types/ffprobe-static/ @iamstevetran +/types/fhir-js-client/ @rmchndrng +/types/fibers/ @soywiz +/types/fibjs/ @richardo2016 +/types/figlet/ @Ailrun +/types/figures/ @BendingBender +/types/file-exists/ @BendingBender +/types/file-saver/ @cyrilschumacher @DaIgeb @chrismbarr +/types/file-type/ @tcaesvk @BendingBender +/types/file-url/ @coderslagoon +/types/filenamify/ @rokt33r +/types/filesize/ @GiedriusGrabauskas @renchap +/types/fill-pdf/ @westy92 +/types/filter-invalid-dom-props/ @icopp +/types/finalhandler/ @chrootsu +/types/finch/ @DavidSichau +/types/find/ @andypyrope +/types/find-parent-dir/ @ikatyang +/types/find-process/ @buaban +/types/find-project-root/ @ikatyang +/types/find-root/ @Alorel +/types/find-up/ @BendingBender +/types/find-versions/ @LogvinovLeon +/types/findup-sync/ @Bartvds @ngbrown +/types/fingerprintjs/ @zaneli +/types/fingerprintjs2/ @curtstate +/types/firebase-client/ @fpsscarecrow +/types/firebase-token-generator/ @dotdotcommadot +/types/firebird/ @karak +/types/firefox/ @vvakame +/types/firefox-webext-browser/ @bomjacob +/types/firmata/ @troywweber7 +/types/first-mate/ @GlenCFL +/types/fixed-data-table/ @pepaar @stephenjelfs +/types/fixed-data-table-2/ @ilivit +/types/flat/ @chrootsu +/types/flexslider/ @diullei +/types/flickity/ @clmcgrath @wagich +/types/flight/ @jonathanhedren +/types/flightplan/ @borislavjivkov +/types/flipsnap/ @kubosho @gsino @mayuki +/types/float-regex/ @wanganjun +/types/flot/ @burlandm @Anticom @admiralsmaster +/types/flowjs/ @ryan10132 +/types/fluent-ffmpeg/ @tcaesvk @DingWeizhe @mabidina +/types/flush-write-stream/ @djcsdy +/types/flux/ @stkb @GiedriusGrabauskas +/types/fluxible/ @xbim +/types/fluxible-router/ @xbim +/types/fluxxor/ @mrk21 +/types/fm-websync/ @markusmauch +/types/fnv-lite/ @marcind +/types/focus-within/ @eramdam +/types/fontfaceobserver/ @RandScullard +/types/fontoxml/ @rolandzwaga +/types/forever-agent/ @yavanosta +/types/forever-monitor/ @shuntksh @wrboyce +/types/forge-di/ @adamcarr +/types/form-data/ @soywiz @leonyu @BendingBender +/types/form-serialize/ @tyler-johnson +/types/form-serializer/ @flqw +/types/form-urlencoded/ @alepee +/types/format-duration/ @Roaders +/types/format-io/ @amitbeck +/types/format-unicorn/ @kruncher +/types/formidable/ @Nemo157 +/types/forms/ @suXinjke +/types/forwarded/ @BendingBender +/types/fossil-delta/ @endel +/types/foundation/ @borisyankov +/types/fpsmeter/ @alampros +/types/framebus/ @kbukum +/types/frctl__fractal/ @pmccloghrylaing +/types/freedom/ @jpevarnek +/types/freeport/ @atd-schubert +/types/fresh/ @BendingBender +/types/freshy/ @qlonik +/types/friendly-errors-webpack-plugin/ @bahlo +/types/frisby/v0/ @johnny4753 +/types/frisby/ @cwoodland @johnny4753 +/types/from/ @Bartvds +/types/from2/ @BendingBender +/types/fromjs/ @glenndierckx +/types/fromnow/ @marinewater +/types/fs-cson/ @dex4er +/types/fs-ext/ @OguzhanE +/types/fs-extra/v4/ @alan-agius4 @midknight41 @shiftkey @mees- +/types/fs-extra/ @alan-agius4 @midknight41 @shiftkey @mees- @jrockwood +/types/fs-extra-promise/ @midknight41 @jasonswearingen @HiromiShikata +/types/fs-extra-promise-es6/ @midknight41 @jasonswearingen @geoffreak @HiromiShikata +/types/fs-finder/ @misak113 +/types/fs-mock/ @rogierschouten +/types/fs-plus/ @unindented +/types/fs-promise/ @tarruda +/types/fs-readdir-recursive/ @pscanf +/types/fs-readfile-promise/ @mtsg +/types/fscreen/ @joscha @terrymun +/types/fsevents/ @BendingBender +/types/ftdomdelegate/ @dotnetnerd +/types/ftp/ @rogierschouten +/types/ftpd/ @rogierschouten +/types/fullname/ @kayahr +/types/fullpage.js/ @jodiwarren +/types/fusioncharts/ @rohitkr @shivarajkv +/types/fuzzaldrin/ @mhegazy +/types/fuzzaldrin-plus/ @jeancroy @jkillian @reyronald +/types/fuzzyset/ @lgrignon @narainsagar +/types/fuzzyset.js/ @lgrignon @narainsagar +/types/fxn/ @charrondev +/types/gae.channel.api/ @vvakame +/types/gamedig/ @ivansieder +/types/gamequery/ @Laubi +/types/ganache-core/ @LogvinovLeon +/types/gandi-livedns/ @xstoudi +/types/gapi/ @sgtfrankieboy +/types/gapi.analytics/ @gatsbimantico +/types/gapi.auth2/ @flawless2011 +/types/gapi.calendar/ @tkrotoff +/types/gapi.client/ @Bolisov +/types/gapi.client.acceleratedmobilepageurl/ @Bolisov +/types/gapi.client.adexchangebuyer/ @Bolisov +/types/gapi.client.adexchangebuyer2/ @Bolisov +/types/gapi.client.adexchangeseller/ @Bolisov +/types/gapi.client.adexperiencereport/ @Bolisov +/types/gapi.client.admin/ @Bolisov +/types/gapi.client.adsense/ @Bolisov +/types/gapi.client.adsensehost/ @Bolisov +/types/gapi.client.analytics/ @Bolisov +/types/gapi.client.analyticsreporting/ @Bolisov +/types/gapi.client.androiddeviceprovisioning/ @Bolisov +/types/gapi.client.androidenterprise/ @Bolisov +/types/gapi.client.androidmanagement/ @Bolisov +/types/gapi.client.androidpublisher/ @Bolisov +/types/gapi.client.appengine/ @Bolisov +/types/gapi.client.appsactivity/ @Bolisov +/types/gapi.client.appstate/ @Bolisov +/types/gapi.client.bigquery/ @Bolisov +/types/gapi.client.bigquerydatatransfer/ @Bolisov +/types/gapi.client.blogger/ @Bolisov +/types/gapi.client.books/ @Bolisov +/types/gapi.client.calendar/ @Bolisov +/types/gapi.client.civicinfo/ @Bolisov +/types/gapi.client.classroom/ @Bolisov +/types/gapi.client.cloudbilling/ @Bolisov +/types/gapi.client.cloudbuild/ @Bolisov +/types/gapi.client.clouddebugger/ @Bolisov +/types/gapi.client.clouderrorreporting/ @Bolisov +/types/gapi.client.cloudfunctions/ @Bolisov +/types/gapi.client.cloudiot/ @Bolisov +/types/gapi.client.cloudkms/ @Bolisov +/types/gapi.client.cloudmonitoring/ @Bolisov +/types/gapi.client.cloudresourcemanager/ @Bolisov +/types/gapi.client.cloudtasks/ @Bolisov +/types/gapi.client.cloudtrace/ @Bolisov +/types/gapi.client.clouduseraccounts/ @Bolisov +/types/gapi.client.compute/ @Bolisov +/types/gapi.client.consumersurveys/ @Bolisov +/types/gapi.client.container/ @Bolisov +/types/gapi.client.content/ @Bolisov +/types/gapi.client.customsearch/ @Bolisov +/types/gapi.client.dataflow/ @Bolisov +/types/gapi.client.dataproc/ @Bolisov +/types/gapi.client.datastore/ @Bolisov +/types/gapi.client.deploymentmanager/ @Bolisov +/types/gapi.client.dfareporting/ @Bolisov +/types/gapi.client.discovery/ @Bolisov +/types/gapi.client.dlp/ @Bolisov +/types/gapi.client.dns/ @Bolisov +/types/gapi.client.doubleclickbidmanager/ @Bolisov +/types/gapi.client.doubleclicksearch/ @Bolisov +/types/gapi.client.drive/ @Bolisov +/types/gapi.client.firebasedynamiclinks/ @Bolisov +/types/gapi.client.firebaseremoteconfig/ @Bolisov +/types/gapi.client.firebaserules/ @Bolisov +/types/gapi.client.firestore/ @Bolisov +/types/gapi.client.fitness/ @Bolisov +/types/gapi.client.fusiontables/ @Bolisov +/types/gapi.client.games/ @Bolisov +/types/gapi.client.gamesconfiguration/ @Bolisov +/types/gapi.client.gamesmanagement/ @Bolisov +/types/gapi.client.genomics/ @Bolisov +/types/gapi.client.gmail/ @Bolisov +/types/gapi.client.groupsmigration/ @Bolisov +/types/gapi.client.groupssettings/ @Bolisov +/types/gapi.client.iam/ @Bolisov +/types/gapi.client.identitytoolkit/ @Bolisov +/types/gapi.client.kgsearch/ @Bolisov +/types/gapi.client.language/ @Bolisov +/types/gapi.client.licensing/ @Bolisov +/types/gapi.client.logging/ @Bolisov +/types/gapi.client.manufacturers/ @Bolisov +/types/gapi.client.mirror/ @Bolisov +/types/gapi.client.ml/ @Bolisov +/types/gapi.client.monitoring/ @Bolisov +/types/gapi.client.oauth2/ @Bolisov +/types/gapi.client.oslogin/ @Bolisov +/types/gapi.client.pagespeedonline/ @Bolisov +/types/gapi.client.partners/ @Bolisov +/types/gapi.client.people/ @Bolisov +/types/gapi.client.playcustomapp/ @Bolisov +/types/gapi.client.playmoviespartner/ @Bolisov +/types/gapi.client.plus/ @Bolisov +/types/gapi.client.plusdomains/ @Bolisov +/types/gapi.client.prediction/ @Bolisov +/types/gapi.client.proximitybeacon/ @Bolisov +/types/gapi.client.pubsub/ @Bolisov +/types/gapi.client.qpxexpress/ @Bolisov +/types/gapi.client.reseller/ @Bolisov +/types/gapi.client.resourceviews/ @Bolisov +/types/gapi.client.runtimeconfig/ @Bolisov +/types/gapi.client.safebrowsing/ @Bolisov +/types/gapi.client.script/ @Bolisov +/types/gapi.client.searchconsole/ @Bolisov +/types/gapi.client.servicecontrol/ @Bolisov +/types/gapi.client.servicemanagement/ @Bolisov +/types/gapi.client.serviceuser/ @Bolisov +/types/gapi.client.sheets/ @Bolisov +/types/gapi.client.siteverification/ @Bolisov +/types/gapi.client.slides/ @Bolisov +/types/gapi.client.sourcerepo/ @Bolisov +/types/gapi.client.spanner/ @Bolisov +/types/gapi.client.spectrum/ @Bolisov +/types/gapi.client.speech/ @Bolisov +/types/gapi.client.sqladmin/ @Bolisov +/types/gapi.client.storage/ @Bolisov +/types/gapi.client.storagetransfer/ @Bolisov +/types/gapi.client.streetviewpublish/ @Bolisov +/types/gapi.client.surveys/ @Bolisov +/types/gapi.client.tagmanager/ @Bolisov +/types/gapi.client.taskqueue/ @Bolisov +/types/gapi.client.tasks/ @Bolisov +/types/gapi.client.testing/ @Bolisov +/types/gapi.client.toolresults/ @Bolisov +/types/gapi.client.translate/ @Bolisov +/types/gapi.client.urlshortener/ @Bolisov +/types/gapi.client.vault/ @Bolisov +/types/gapi.client.videointelligence/ @Bolisov +/types/gapi.client.vision/ @Bolisov +/types/gapi.client.webfonts/ @Bolisov +/types/gapi.client.webmasters/ @Bolisov +/types/gapi.client.youtube/ @Bolisov +/types/gapi.client.youtubeanalytics/ @Bolisov +/types/gapi.client.youtubereporting/ @Bolisov +/types/gapi.drive/ @baxtersa +/types/gapi.pagespeedonline/ @sgtfrankieboy +/types/gapi.people/ @tkrotoff +/types/gapi.plus/ @tkrotoff +/types/gapi.translate/ @sgtfrankieboy +/types/gapi.urlshortener/ @sgtfrankieboy +/types/gapi.youtube/ @sgtfrankieboy +/types/gapi.youtubeanalytics/ @sgtfrankieboy +/types/gaussian/ @scttcper +/types/gc-stats/ @vfernandestoptal +/types/geetest/ @plantain-00 +/types/gen-readlines/ @CodeAnimal +/types/generate-changelog/ @ffflorian +/types/generate-json-webpack-plugin/ @rynclark +/types/generic-functions/ @stpettersens +/types/generic-pool/ @jerray @wrboyce +/types/gently/ @bonnici +/types/geodesy/ @DenisCarriere @HandyG52 @excelulous +/types/geojson/ @cobster @atd-schubert @JeffJacobson @icholy +/types/geojson2osm/ @DenisCarriere +/types/geokdbush/ @DenisCarriere +/types/geometry-dom/ @nakakura +/types/geopattern/ @Gaelan +/types/gestalt/ @serranoarevalo +/types/get-caller-file/ @ajafff +/types/get-folder-size/ @mszczepanczyk +/types/get-node-dimensions/ @vincekovacs +/types/get-stdin/ @DanielRosenwasser +/types/get-stream/ @douglasduteil @BendingBender +/types/get-value/ @DanielRosenwasser +/types/getopts/ @azasypkin +/types/getos/ @BendingBender +/types/gettext.js/ @jucrouzet +/types/gifffer/ @gatimus +/types/gijgo/ @atatanasov +/types/giraffe/ @darthapo +/types/git/ @vvakame +/types/git-branch/ @rynclark +/types/git-config/ @stpettersens +/types/git-remote-origin-url/ @janslow +/types/git-url-parse/ @ajafff +/types/github-url-to-object/ @ajafff +/types/github-username-regex/ @BehindTheMath +/types/gitlab/ @yanqing6628780 @Arylo +/types/gl-matrix/ @mattijskneppers @tatchx @nbabanov @auzmartist @surtr-isaz +/types/gl-shader/ @MathiasPaumgarten +/types/gl-texture2d/ @MathiasPaumgarten +/types/gldatepicker/ @qcz +/types/glidejs/ @milanjaros +/types/glob/ @vvakame @voy +/types/glob-base/ @alan-agius4 +/types/glob-expand/ @vvakame +/types/glob-parent/ @mrmlnc +/types/glob-stream/ @Bartvds @mrmlnc +/types/glob-to-regexp/ @whatasoda +/types/global-tunnel-ng/ @BendingBender +/types/globalize/ @gcastre @afromogli @bryanforbes +/types/globalize-compiler/ @iclanton +/types/globby/ @douglasduteil @ikatyang +/types/globule/ @durad +/types/glue/ @garfty +/types/gm/ @ChaosinaCan @maartenvanvliet +/types/go/ @NorthwoodsSoftware +/types/google-adwords-scripts/ @jafaircl +/types/google-apps-script/ @motemen @grant +/types/google-apps-script-oauth2/ @dhayab +/types/google-cloud__datastore/ @beaulac @ogawa0071 @ThomasdenH +/types/google-cloud__pubsub/ @pheromonez @LunaPg @msiviero +/types/google-cloud__storage/ @blove @nbperry @welkie @ogawa0071 +/types/google-earth/ @icholy +/types/google-images/ @dolanmiu +/types/google-libphonenumber/ @leonyu @winfinit +/types/google-map-react/ @honzabrecka +/types/google-maps/ @DeividasBakanas @GiedriusGrabauskas +/types/google-protobuf/ @marcuslongmuir +/types/google-translate-api/ @maple3142 +/types/google.analytics/ @tyler-murphy +/types/google.feeds/ @RodneyJT +/types/google.fonts/ @danmarshall +/types/google.geolocation/ @vbortone +/types/google.picker/ @grapswiz +/types/google.visualization/ @danludwig @gmoore-sjcorg @danmana @mlcheng @IvanBisultanov @glebm +/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/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/graphql-date/ @enaeseth +/types/graphql-deduplicator/ @lfades +/types/graphql-depth-limit/ @eritikass +/types/graphql-iso-date/ @jwaldrip +/types/graphql-list-fields/ @filipows +/types/graphql-query-complexity/ @abhikmitra +/types/graphql-relay/ @arvitaly @nitintutlani @Grelinfo +/types/graphql-resolve-batch/ @nayni +/types/graphql-type-json/ @schfkt +/types/graphviz/ @mhfrantz +/types/grasp/ @agnoster +/types/gravatar/ @denis-sokolov +/types/gravatar-url/ @ivangabriele +/types/greasemonkey/ @kotas +/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/gtin/ @RafaelKr +/types/guid/ @maroy1986 +/types/gulp/ @GiedriusGrabauskas +/types/gulp-angular-templatecache/ @amanmahajan7 +/types/gulp-babel/ @AyaMorisawa +/types/gulp-batch/ @alvarollmenezes @vizeke +/types/gulp-bump/ @silkentrance +/types/gulp-cache/ @aravindarun +/types/gulp-cached/ @tomc974 +/types/gulp-change/ @Aankhen +/types/gulp-changed/ @tomc974 +/types/gulp-cheerio/ @tkQubo +/types/gulp-clean-dest/ @andypyrope +/types/gulp-coffeeify/ @tkQubo +/types/gulp-coffeelint/ @tkQubo +/types/gulp-concat/ @k-kagurazaka +/types/gulp-connect/ @andrewiggins +/types/gulp-copy/ @aravindarun +/types/gulp-csso/ @tkrotoff +/types/gulp-debug/ @tkrotoff +/types/gulp-diff/ @ikatyang +/types/gulp-dtsm/ @AyaMorisawa +/types/gulp-espower/ @tkQubo +/types/gulp-file-include/ @DanielRosenwasser +/types/gulp-filter/ @tkrotoff +/types/gulp-flatten/ @k-kagurazaka +/types/gulp-gzip/ @tkQubo +/types/gulp-help/ @tkQubo +/types/gulp-help-doc/ @Mikhus +/types/gulp-html-replace/ @peterjuras +/types/gulp-htmlmin/ @tkrotoff +/types/gulp-if/ @joeskeen +/types/gulp-image/ @Aankhen +/types/gulp-image-resize/ @Aankhen +/types/gulp-imagemin/ @romain-faust +/types/gulp-inject/ @k-kagurazaka +/types/gulp-insert/ @shantmarouti +/types/gulp-install/ @peterjuras +/types/gulp-jade/ @berwyn +/types/gulp-jasmine/ @andypyrope +/types/gulp-jasmine-browser/ @tkrotoff +/types/gulp-json-editor/ @peterjuras +/types/gulp-jsonmin/ @romain-faust +/types/gulp-jsonminify/ @pine +/types/gulp-jspm/ @peterjuras +/types/gulp-less/ @k-kagurazaka +/types/gulp-load-plugins/ @joeskeen +/types/gulp-minify-css/ @k-kagurazaka +/types/gulp-minify-html/ @tkrotoff +/types/gulp-modernizr/ @remisery +/types/gulp-newer/ @tomc974 +/types/gulp-ng-annotate/ @tkQubo +/types/gulp-nodemon/ @tkQubo +/types/gulp-plumber/ @joeskeen +/types/gulp-protractor/ @tkrotoff +/types/gulp-pug/ @remisery +/types/gulp-pug-i18n/ @romain-faust +/types/gulp-remember/ @tomc974 +/types/gulp-responsive-images/ @aankhen +/types/gulp-rev/ @tkrotoff +/types/gulp-rev-replace/ @tkrotoff +/types/gulp-ruby-sass/ @agnislav +/types/gulp-sequence/ @Alorel +/types/gulp-shell/ @tkqubo +/types/gulp-size/ @tkrotoff @remisery +/types/gulp-sort/ @joeskeen +/types/gulp-strip-comments/ @Aqours +/types/gulp-strip-debug/ @peterjuras +/types/gulp-svg-sprite/ @tkqubo +/types/gulp-svgmin/ @Aankhen +/types/gulp-task-listing/ @joeskeen +/types/gulp-template/ @pe8ter +/types/gulp-tsd/ @k-kagurazaka +/types/gulp-uglify/ @ChristopherHaws @leonard-thieu +/types/gulp-useref/ @tkrotoff +/types/gulp-util/ @jedmao +/types/gulp-watch/ @tkrotoff +/types/gulp-zip/ @dudeofawesome +/types/gzip-js/ @rhysd +/types/gzip-size/v3/ @plantain-00 +/types/gzip-size/ @plantain-00 @jimivdw @andrewiggins +/types/h2o2/ @jasonswearingen @AJamesPhillips +/types/halfred/ @dherges +/types/halogen/ @steller +/types/hammerjs/ @milkisevil @codler +/types/handlebars/ @borisyankov @evil-shrike +/types/hapi/v8/ @jasonswearingen +/types/hapi/v12/ @jasonswearingen +/types/hapi/v15/ @jasonswearingen +/types/hapi/v16/ @jasonswearingen @AJamesPhillips +/types/hapi/ @rafaelsouzaf @jhsimms @SimonSchick +/types/hapi-auth-basic/ @AJamesPhillips @saboya +/types/hapi-auth-jwt2/v7/ @warrenseymour +/types/hapi-auth-jwt2/ @warrenseymour @SimonSchick +/types/hapi-decorators/ @kenhowardpdx +/types/har-format/ @micmro +/types/hard-rejection/ @BendingBender +/types/hard-source-webpack-plugin/ @woitechen +/types/harmony-proxy/ @remojansen +/types/has-ansi/ @BendingBender +/types/hash-file/ @HiromiShikata +/types/hash-stream/ @BendingBender +/types/hash-sum/ @DanielRosenwasser +/types/hasha/ @BendgingBender +/types/hasher/ @flyfishMT +/types/hashids/ @pocesar +/types/hashmap/ @outring +/types/hat/ @tup1tsa +/types/haversine/ @screendriver +/types/hbs/ @davidm77 +/types/hdkey/ @LogvinovLeon +/types/he/ @sedwards2009 @lokidokicoki +/types/headroom/ @hakubo +/types/heap/ @ryan10132 +/types/heapdump/ @weekens +/types/heatmap.js/ @lookuptable @rhys-vdw +/types/hedron/ @dborysov +/types/hellojs/ @PavelPZ @vuorinem @baywet +/types/hellosign-embedded/ @xt0rted +/types/helmet/ @cyrilschumacher @EvanHahn @bluehatbrit +/types/heredatalens/ @denyo +/types/heremaps/ @Josh-ES @denyo @fx88 +/types/heroku-logger/ @kylevogt +/types/hex-rgba/ @r3nya +/types/hexo-bunyan/ @segayuu +/types/hexo-fs/ @segayuu +/types/hexo-log/ @segayuu +/types/hexo-util/ @segayuu +/types/highcharts/ @damianog @baltie @AlbertOzimek @hanssens +/types/highcharts-ng/ @scatcher +/types/highland/ @Bartvds @hgwood @iwllyu @alvis @notbobthebuilder +/types/highlight.js/ @nikeee @sourrust @joshuakgoldberg +/types/hiredis/ @titan +/types/history/v2/ @sergey-buturlakin @ngbrown +/types/history/v3/ @sergey-buturlakin @ngbrown @LKay +/types/history/ @sergey-buturlakin @ngbrown @rokoroku +/types/history.js/ @borisyankov @gjunge +/types/historykana/ @h-shiratsuki +/types/hjson/ @crunchie84 +/types/hls.js/ @jgainfort +/types/hoek/ @prashaantt +/types/hoist-non-react-statics/ @JounQin +/types/holderjs/ @renjfk +/types/hooker/ @misak113 +/types/hopscotch/ @pimterry @Aurimas1 +/types/howler/ @xperiments @tdukart @alien35 @nicholashza +/types/hpp/ @kryops +/types/html-entities/ @xstoudi +/types/html-minifier/v1/ @tkrotoff +/types/html-minifier/ @tkrotoff @rikuayanokozy +/types/html-pdf/ @westy92 +/types/html-tag-names/ @sandersn +/types/html-to-text/ @erykwarren +/types/html-void-elements/ @rhysd +/types/html-webpack-plugin/ @deevus @bumbleblym @tlaziuk +/types/html-webpack-template/ @bumbleblym +/types/html2canvas/ @rwhepburn @tan9 @sschocke +/types/htmlbars-inline-precompile/ @chriskrycho +/types/htmlparser2/ @staticfunction @LinusU +/types/htmltojsx/ @basarat +/types/http-assert/ @jkeylu +/types/http-aws-es/ @marcogrcr +/types/http-codes/ @mhegazy +/types/http-context/ @mtraynham +/types/http-errors/ @tkrotoff @BendingBender +/types/http-graceful-shutdown/ @dlee-nvisia +/types/http-link-header/ @screendriver +/types/http-proxy/ @SomaticIT @Raigen @DanielMSchmidt +/types/http-proxy-agent/ @mrmlnc +/types/http-proxy-middleware/ @zebMcCorkle @BendingBender +/types/http-rx/ @L2jLiga +/types/http-server/ @plantain-00 +/types/http-status/ @misak113 +/types/http-string-parser/ @pine613 +/types/httperr/ @yortus +/types/hubot/ @dirk @KeesCBakker +/types/hubspot-pace/ @borislavjivkov +/types/humane/ @jmvrbanac +/types/humanize-plus/ @DenisCarriere +/types/humanize-string/ @ragnarok56 +/types/humanparser/ @MichalPodeszwa +/types/humps/ @nikeee +/types/hyco-ws/ @mrcabellom +/types/hyperscript/ @spacejack @jmfirth +/types/hypertext-application-language/ @maks3w +/types/hystrixjs/ @igorsechyn +/types/i18n/ @SomaticIT @FindQ +/types/i18n-js/ @ypresto +/types/i18next/v2/ @mxl @deerawan @GiedriusGrabauskas +/types/i18next/ @mxl @deerawan @GiedriusGrabauskas +/types/i18next-browser-languagedetector/v0/ @cyrilschumacher @GiedriusGrabauskas +/types/i18next-browser-languagedetector/ @cyrilschumacher @GiedriusGrabauskas +/types/i18next-express-middleware/ @cyrilschumacher +/types/i18next-ko/ @dwaxweiler +/types/i18next-node-fs-backend/ @cyrilschumacher @lenovouser +/types/i18next-sprintf-postprocessor/ @cyrilschumacher +/types/i18next-xhr-backend/ @jamuhl @GiedriusGrabauskas +/types/i2c-bus/ @101100 +/types/iarna__toml/ @ajafff +/types/iban/ @cyrilschumacher +/types/ibm-mobilefirst/ @nacho4d +/types/ibm_db/ @agov +/types/icepick/ @ngbrown @tobico +/types/icheck/ @qcz +/types/iconv/ @delphinus35 +/types/idyll/ @iocat +/types/idyll-ast/ @iocat +/types/idyll-compiler/ @iocat +/types/idyll-document/ @iocat +/types/iferr/ @segayuu +/types/iframe-resizer/ @arminbaljic +/types/ignite-ui/ @IgniteUI +/types/ignore-styles/ @tai2 +/types/iltorb/ @Alorel @reconbot +/types/image-size/ @elisee +/types/imagemagick/ @soywiz +/types/imagemagick-native/ @horiuchi +/types/imagemapster/ @delphinus35 +/types/imagemin/ @romain-faust +/types/imagemin-gifsicle/ @romain-faust +/types/imagemin-jpegtran/ @romain-faust +/types/imagemin-optipng/ @romain-faust +/types/imagemin-svgo/ @romain-faust +/types/images/ @DingWeizhe +/types/imagesloaded/ @coldacid @apexskier +/types/imap/ @psnider +/types/imap-simple/ @pushplay +/types/imgur-rest-api/ @lukewestby +/types/imperium/ @gaetansenn +/types/impress/ @borisyankov +/types/in-app-purchase/ @l-jonas +/types/in-range/ @DanielRosenwasser +/types/inboxsdk/ @rdoursenaud @amiram +/types/incremental-dom/ @basarat @lanthaler @vvakame +/types/indent-string/ @mhegazy +/types/inert/v4/ @nycdotnet @AJamesPhillips +/types/inert/ @nycdotnet @AJamesPhillips @lenovouser +/types/inflected/ @dsci +/types/inflection/ @shiwano +/types/inherits/ @chrootsu +/types/ini/ @marcinporebski +/types/iniparser/ @chrootsu +/types/inline-css/ @philipisapain +/types/inline-style-prefixer/ @ahz @dpetrezselyova +/types/inquirer/ @tkQubo @ppathan @jouderianjr @bang88 @bitjson @synarque @jrockwood @kwkelly @Ailrun +/types/insert-module-globals/ @leonard-thieu +/types/insight/ @vvakame +/types/integer/ @Morfent +/types/intercom-client/ @jineshshah36 @peping +/types/intercom-web/ @fongandrew @salbahra @onatm +/types/intercomjs/ @spencerwi +/types/internal-ip/ @BendingBender +/types/intl/ @RagibHasin +/types/intl-locales-supported/ @Slessi +/types/intl-messageformat/ @mhegazy +/types/intl-relativeformat/ @mohsen1 +/types/intl-tel-input/ @fdnhkj @leonard-thieu +/types/into-stream/ @BendingBender +/types/intrinsic-scale/ @shalomdotnet +/types/intro.js/ @anahkiasen +/types/invariant/ @bennett000 +/types/inversify-devtools/ @inversify +/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/iota.lib.js/ @fogsh +/types/ip/ @codeanimal +/types/ip-address/ @icopp @danwbyrne +/types/ip-regex/ @unindented +/types/ipcheck/ @bengry +/types/irc/ @phillips1012 +/types/iron/ @simonschick @rafaelsouzaf +/types/is/ @cabralRodrigo +/types/is-absolute-url/ @mhegazy +/types/is-alphanumerical/ @vutran +/types/is-archive/ @mhegazy +/types/is-array/ @pine +/types/is-binary-path/ @DanielRosenwasser +/types/is-callable/ @nieltg +/types/is-ci/ @atd-schubert +/types/is-color/ @VitorLuizC +/types/is-compressed/ @mhegazy +/types/is-empty/ @termosa +/types/is-finite/ @mhegazy +/types/is-glob/ @mrmlnc +/types/is-hotkey/ @petester42 +/types/is-ip/ @coderslagoon +/types/is-mobile/ @LogvinovLeon +/types/is-my-json-valid/ @kruncher +/types/is-negated-glob/ @ajafff +/types/is-number/ @harryshipton +/types/is-object/ @wbhob +/types/is-path-cwd/ @DanielRosenwasser +/types/is-path-in-cwd/ @mhegazy +/types/is-promise/ @DanielRosenwasser +/types/is-relative-url/ @mhegazy +/types/is-root/ @mhegazy +/types/is-root-path/ @mhegazy +/types/is-running/ @danwbyrne +/types/is-scoped/ @postcrafter +/types/is-stream/ @me +/types/is-svg/ @BendingBender +/types/is-text-path/ @mhegazy +/types/is-touch-device/ @screendriver +/types/is-url/ @RyotaMurohoshi +/types/is-url-superb/ @kryops +/types/is-uuid/ @tedre191 +/types/is-windows/ @mizunashi-mana +/types/isbn-utils/ @elhaard +/types/iscroll/ @csrakowski @devlato +/types/ismobilejs/ @Ty3uK +/types/iso-3166-2/ @sicilica +/types/iso8601-localizer/ @avielfedida +/types/isomorphic-fetch/ @toddlucas +/types/isotope-layout/ @avidenic @malinushj +/types/istanbul/ @tkrotoff +/types/istanbul-lib-coverage/ @jason0x43 +/types/istanbul-lib-hook/ @jason0x43 +/types/istanbul-lib-instrument/ @jason0x43 +/types/istanbul-lib-report/ @jason0x43 +/types/istanbul-lib-source-maps/ @jason0x43 +/types/istanbul-middleware/ @hookclaw +/types/istanbul-reports/ @jason0x43 +/types/ityped/ @DanielRosenwasser +/types/ix.js/ @Igorbek +/types/jackrabbit/ @elvisvoer +/types/jade/ @panuhorsmalahti +/types/jalaali-js/ @alitaheri +/types/japanese-holidays/ @syamatoo +/types/jasmine/ @borisyankov @theodorejb @davidparsson @gmoothart @lukas-zech-software @Engineer2B +/types/jasmine-ajax/ @lgrignon +/types/jasmine-data_driven_tests/ @AnthonyMacKinnon +/types/jasmine-enzyme/ @bolatovumar +/types/jasmine-es6-promise-matchers/ @stephenlautier +/types/jasmine-fixture/ @craigbrett17 +/types/jasmine-given/ @shairez +/types/jasmine-jquery/ @gstamac +/types/jasmine-matchers/ @Bartvds +/types/jasmine-node/ @svi3c +/types/jasmine-promise-matchers/ @matthewjh +/types/jasmine_dom_matchers/ @devoto13 +/types/jasminewd2/ @sjelin +/types/java/ @jimlloyd @hrl7 @darti +/types/java-applet/ @cyrilschumacher +/types/javascript-astar/ @ptlis +/types/javascript-bignum/ @sandersn +/types/javascript-obfuscator/ @sanex3339 +/types/javascript-state-machine/ @borisyankov @mdocter @MrBigDog2U @samael65535 @taoqf +/types/jbinary/ @tbureck +/types/jcanvas/ @rogierschouten +/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-axe/ @JoshuaKGoldberg +/types/jest-diff/ @myabc +/types/jest-docblock/ @ikatyang +/types/jest-each/ @theutz @nickmccurdy +/types/jest-environment-puppeteer/ @joshuakgoldberg +/types/jest-get-type/ @myabc +/types/jest-image-snapshot/ @dawnmist +/types/jest-in-case/ @geovanisouza92 +/types/jest-json-schema/ @deadNightTiger +/types/jest-matcher-utils/ @myabc +/types/jest-matchers/ @joscha +/types/jest-plugin-context/ @jonasheinrich +/types/jest-plugin-set/ @jonasheinrich +/types/jest-specific-snapshot/ @dawnmist +/types/jest-validate/ @ikatyang +/types/jest-when/ @aldentaylor +/types/jexl/ @m-tomczyk +/types/jfs/ @tlaziuk +/types/jira-client/ @KOPTE3 @orta +/types/jjv/ @Nemo157 +/types/jjve/ @Nemo157 +/types/jmespath/ @pushplay +/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/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus @wanganjun @rafaelkallis @aconanlai @zaphoyd @thewillg @SimonSchick +/types/joigoose/ @boothwhack +/types/josa/ @vichyssoise +/types/jotform-css.js/ @pandawood +/types/jpeg-js/ @DanielRosenwasser +/types/jpegtran-bin/ @hikoma +/types/jpm/ @github-account-because-they-want-it +/types/jqgrid/ @lokeshpeta +/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-ajax-chain/ @humana-fragilitas +/types/jquery-alertable/ @stever +/types/jquery-animate-scroll/ @AndersonFriaca +/types/jquery-awesome-cursor/ @zskovacs +/types/jquery-backstretch/ @dkulyk +/types/jquery-countdown/ @AndersonFriaca +/types/jquery-countto/ @AndersonFriaca +/types/jquery-cropbox/ @PerKastman +/types/jquery-deparam/ @patsissons +/types/jquery-drawer/ @pine +/types/jquery-easy-loading/ @delphinus35 +/types/jquery-editable-select/ @baywet +/types/jquery-focus-exit/ @AndersonFriaca +/types/jquery-focusable/ @AndersonFriaca +/types/jquery-fullscreen/ @bgrieder +/types/jquery-galleria/ @rimig +/types/jquery-gray/ @AndersonFriaca +/types/jquery-handsontable/ @intelorca +/types/jquery-jcrop/ @joeskeen +/types/jquery-jsonrpcclient/ @Ty3uK +/types/jquery-knob/ @iain8 +/types/jquery-lazyload/ @AndersonFriaca +/types/jquery-loading-overlay/ @AndersonFriaca +/types/jquery-mask-plugin/ @avidenic @AndersonFriaca +/types/jquery-maskmoney/ @AndersonFriaca +/types/jquery-match-height/ @kbytesys +/types/jquery-mockjax/ @laszlojakab @vladeck @hasaki +/types/jquery-mouse-exit/ @AndersonFriaca +/types/jquery-mousewheel/ @xt0rted +/types/jquery-next-id/ @AndersonFriaca +/types/jquery-notifier/ @allipierre +/types/jquery-param/ @patsissons +/types/jquery-slugify/ @AndersonFriaca +/types/jquery-sortable/ @Seltzer +/types/jquery-steps/ @jblank @nickwph +/types/jquery-sticky/ @maixiu +/types/jquery-tags-input/ @AndersonFriaca +/types/jquery-timeentry/ @marknadig +/types/jquery-toast-plugin/ @viqashussain @astegmaier +/types/jquery-toastmessage-plugin/ @joeskeen +/types/jquery-truncate-html/ @abraaoalves +/types/jquery-urlparam/ @stpettersens +/types/jquery-validation-unobtrusive/ @EnableSoftware +/types/jquery.address/ @martinduparc @mardaneus86 +/types/jquery.appear/ @AndersonFriaca +/types/jquery.are-you-sure/ @jonegerton +/types/jquery.autosize/ @kingdango +/types/jquery.bbq/ @sunetos +/types/jquery.bootstrap.wizard/ @niemyjski @dennisahlin +/types/jquery.browser/ @AndersonFriaca +/types/jquery.cleditor/ @pushplay +/types/jquery.clientsidelogging/ @diullei +/types/jquery.color/ @derekcicerone +/types/jquery.colorbox/ @gjunge +/types/jquery.colorpicker/ @pushplay +/types/jquery.contextmenu/ @nvivo +/types/jquery.cookie/ @RoyGoode @BenLorantfy +/types/jquery.customselect/ @adamcoulombe +/types/jquery.cycle2/ @dnadolny +/types/jquery.dropotron/ @cyrilschumacher +/types/jquery.dynatree/ @fdecampredon +/types/jquery.elang/ @sumegizoltan +/types/jquery.fancytree/ @alphaleonis @abedi-ir @niikoo @Nitecube +/types/jquery.filtertable/ @totpero +/types/jquery.finger/ @maxackley +/types/jquery.flagstrap/ @felipedgarcia +/types/jquery.fullscreen/ @piraveen +/types/jquery.gridster/ @jbaldwin +/types/jquery.growl/ @yeganemehr +/types/jquery.highlight-bartaz/ @Pro +/types/jquery.jnotify/ @jamescurran +/types/jquery.joyride/ @vbortone +/types/jquery.jsignature/ @pjmagee +/types/jquery.leanmodal/ @FinelySliced +/types/jquery.livestampjs/ @vbortone +/types/jquery.nicescroll/ @Wkalmar +/types/jquery.notify/ @evil-shrike +/types/jquery.notifybar/ @zaneli +/types/jquery.noty/ @kingdango @thelfensdrfer +/types/jquery.payment/ @ejsmith @johnrutherford +/types/jquery.pin/ @AndersonFriaca +/types/jquery.pjax/ @lijunle +/types/jquery.placeholder/ @majorsilence @EnableSoftware +/types/jquery.pnotify/ @DavidSichau @FUNExtreme +/types/jquery.postmessage/ @lijunle +/types/jquery.prettyphoto/ @pgaske +/types/jquery.qrcode/ @danmana +/types/jquery.rateit/ @gjunge +/types/jquery.rowgrid/ @vinayak-garg +/types/jquery.scrollto/ @nestalk +/types/jquery.simplemodal/ @ForNeVeR +/types/jquery.simplepagination/ @nvivo +/types/jquery.simulate/ @derekcicerone +/types/jquery.slimscroll/ @Promact +/types/jquery.soap/ @tigerxy +/types/jquery.sortelements/ @tbureck +/types/jquery.stickem/ @davidmpaz +/types/jquery.superlink/ @niemyjski +/types/jquery.tagsmanager/ @vbortone +/types/jquery.tile/ @zaneli +/types/jquery.timepicker/ @anwarjaved +/types/jquery.timer/ @JoshStrobl +/types/jquery.tinycarousel/ @csrakowski +/types/jquery.tinyscrollbar/ @csrakowski +/types/jquery.tipsy/ @bdukes +/types/jquery.tools/ @joeskeen +/types/jquery.total-storage/ @JeremyCBrooks +/types/jquery.transit/ @MrBigDog2U +/types/jquery.ui.datetimepicker/ @dougajmcdonald +/types/jquery.ui.layout/ @Steve-Fenton @drarmstr +/types/jquery.uniform/ @flyfishMT +/types/jquery.validation/ @fdecampredon @johnnyreilly @avidenic +/types/jquery.watermark/ @anwarjaved +/types/jquerymobile/ @borisyankov +/types/jqueryui/ @borisyankov @johnnyreilly +/types/js-base64/ @DenisCarriere @tlent +/types/js-beautify/ @JoshuaKGoldberg @hansrwindhoff +/types/js-clipper/ @omni360 +/types/js-combinatorics/ @outring +/types/js-cookie/ @theodorejb @BendingBender @alepee +/types/js-data-angular/ @reppners +/types/js-fixtures/ @kazimanzurrashid +/types/js-git/ @Bartvds +/types/js-md5/ @mwmccarthy +/types/js-money/ @kanatkubash +/types/js-nacl/ @ethanfrey +/types/js-quantities/ @wrummler +/types/js-schema/ @marcinporebski @roblabat +/types/js-search/ @guoyunhe +/types/js-sha512/ @nicojs +/types/js-string-escape/ @viralpickaxe +/types/js-to-java/ @skyitachi +/types/js-url/ @pine613 +/types/js-yaml/ @Bartvds @sclausen +/types/js.spec/ @mattbishop +/types/jsbn/ @Evgenus @al2xed +/types/jschannel/ @yitzchok +/types/jscrollpane/ @qcz +/types/jsdeferred/ @minodisk +/types/jsdom/ @leonard-thieu @palmfjord +/types/jsen/ @vladeck +/types/jsend/ @CaselIT +/types/jsesc/ @Bartvds +/types/jsfl/ @soywiz +/types/jsforce/ @dolanmiu @netes @amphro @tnoonan-salesforce @whiteabelincoln +/types/jsftp/ @xyleen +/types/jsgraph/ @rosinbum +/types/jshamcrest/ @dharkness +/types/jsmockito/ @shiver-me-timbers +/types/jsnox/ @stkb @DovydasNavickas +/types/json-js/ @NN--- +/types/json-merge-patch/ @senyaarseniy +/types/json-parse-better-errors/ @DanielRosenwasser +/types/json-patch/ @vvakame +/types/json-patch-gen/ @RohdeK +/types/json-pointer/ @Bartvds +/types/json-query/ @mtraynham +/types/json-rpc-ws/ @npenin @mlamp +/types/json-schema/ @bcherny @cyrilletuzi @lucianbuzzo @rolandjitsu +/types/json-socket/ @svi3c +/types/json-stable-stringify/ @mhfrantz +/types/json-stringify-safe/ @BendingBender +/types/json2csv/ @juanjoDiaz +/types/json2md/ @MartynasZilinskas +/types/json3/ @NN--- +/types/json5/ @Esemesek +/types/jsonata/ @nick121212 +/types/jsoneditor/ @alejo90 @errietta +/types/jsoneditor-for-react/ @joshuakgoldberg +/types/jsoneditoronline/ @vbortone +/types/jsonfile/ @dbowring +/types/jsonic/ @jacobbubu +/types/jsonminify/ @no23reason +/types/jsonnet/ @hookclaw +/types/jsonp/ @surenkov +/types/jsonpath/ @horiuchi @ikatyang +/types/jsonrpc-serializer/ @Akim95 @many20 +/types/jsonstream/ @Bartvds +/types/jsontoxml/ @benstevens48 +/types/jsonwebtoken/ @SomaticIT @danielheim @brikou @vpk +/types/jsonwebtoken-promisified/ @SomaticIT @danielheim @brikou @aneilbaboo +/types/jspdf/ @amberjs +/types/jsqrcode/ @lordazzi +/types/jsrender/ @zakki +/types/jsreport-core/ @taoqf +/types/jsreport-html-to-xlsx/v1/ @me +/types/jsreport-html-to-xlsx/ @me +/types/jsreport-jsrender/ @taoqf +/types/jsreport-phantom-pdf/ @taoqf +/types/jsreport-xlsx/ @taoqf +/types/jsrp/ @harryshipton +/types/jss/ @appsforartists @kof @pelotom @eps1lon +/types/jssha/ @randombk @SrTobi +/types/jstimezonedetect/ @olamothe +/types/jstorage/ @dflor003 +/types/jstree/ @adaskothebeast +/types/jsts/ @StephaneAlie @jrocha +/types/jsuite/ @darrenhillconsulting +/types/jsuri/ @coldacid @flqw +/types/jsurl/ @agorshkov23 +/types/jsx-chai/ @nupplaphil +/types/jszip/ @mzeiher @forabi +/types/jug/ @yevt +/types/jui/ @easylogic +/types/jui-core/ @easylogic +/types/jui-grid/ @easylogic +/types/just-extend/ @pe8ter +/types/jweixin/ @taoqf @gomydodo +/types/jwplayer/ @martinduparc @kutomer @philippguertler @danielmcgraw @bpdsw +/types/jws/ @JustinBeckwith +/types/jwt-client/ @timoteoponce +/types/jwt-decode/v1/ @QuatroDevOfficial +/types/jwt-decode/ @GiedriusGrabauskas @madsmadsen +/types/jwt-express/ @nickp10 +/types/jwt-simple/ @kenfdev @GaelMagnan +/types/jwt-then/ @phenomax +/types/kafka-node/ @dansitu @bkim54 @sfrooster @amiram +/types/karma/ @tkrotoff @43081j +/types/karma-chai/ @JayAndCatchFire +/types/karma-chai-sinon/ @vasek17 +/types/karma-coverage/ @tkrotoff +/types/karma-fixture/ @evictor @afshawnlotfi +/types/karma-jasmine/ @michelsalib +/types/karma-viewport/ @karak +/types/karma-webpack/ @mtraynham +/types/katex/ @mrand01 +/types/kcors/ @Xstoudi @izayoiko +/types/kdbush/ @DenisCarriere +/types/keen-tracking/ @rui-ferreira +/types/kefir/ @AyaMorisawa @HitoriSensei +/types/kendo-ui/ @telerik +/types/keyboardjs/ @vbortone @piranha771 +/types/keygrip/ @jkeylu +/types/keymaster/ @nitram509 +/types/keymirror/ @jfahrenkrug +/types/keypress.js/ @rcchen +/types/keysym/ @harryshipton +/types/keytar/ @miniak @shiftkey @juturu +/types/keyv/ @Arylo +/types/kik-browser/ @joelday +/types/klaw/v1/ @mceachen +/types/klaw/ @mceachen +/types/klaw-sync/ @shiftkey +/types/kms-json/ @sunnyone +/types/knex/ @tkQubo @MeLlamoPablo @mastermatt @micksatana @shreyjain1994 +/types/knex-postgis/ @vesse +/types/knockback/ @borisyankov +/types/knockout/ @borisyankov @Igorbek @moonpyk @EnableSoftware @BenjaminEckardt @ffMathy @ltlombardi +/types/knockout-amd-helpers/ @DavidSichau +/types/knockout-secure-binding/ @pine613 +/types/knockout-transformations/ @johnnyreilly @Nemo157 +/types/knockout.deferred.updates/ @sgaliano +/types/knockout.editables/ @borisyankov +/types/knockout.es5/ @sgaliano +/types/knockout.kogrid/ @huer12 +/types/knockout.mapper/ @BMeyerKC +/types/knockout.mapping/ @borisyankov @ffMathy +/types/knockout.projections/ @johnnyreilly +/types/knockout.punches/ @johnnyreilly +/types/knockout.rx/ @Igorbek +/types/knockout.validation/ @danludwig +/types/knockout.viewmodel/ @oising +/types/knockstrap/ @adaskothebeast +/types/knuddels-userapps-api/ @Knuddels +/types/ko.plus/ @conficient +/types/koa/ @DavidCai1993 @jkeylu @brikou +/types/koa-basic-auth/ @Tobias4872 +/types/koa-better-body/ @danwbyrne +/types/koa-bodyparser/ @hellopao @anup-2s +/types/koa-bunyan-logger/ @sjmcdowall +/types/koa-cache-control/ @pe8ter +/types/koa-compose/ @jkeylu +/types/koa-compress/ @hellopao +/types/koa-conditional-get/ @wingsbob +/types/koa-convert/ @danwbyrne +/types/koa-cors/ @romain-faust +/types/koa-csrf/ @haskaalo +/types/koa-etag/ @wingsbob +/types/koa-favicon/ @hellopao +/types/koa-generic-session/ @nsimmons @Ragg- +/types/koa-hbs/ @jcbmln @mudkipme +/types/koa-helmet/ @me +/types/koa-html-minifier/ @romain-faust +/types/koa-joi-router/ @wingsbob @move-zig +/types/koa-json/ @brooklyndev +/types/koa-json-error/ @mudkipme +/types/koa-logger/ @geoffreak @tlaziuk +/types/koa-logger-winston/ @stevehipwell +/types/koa-morgan/ @vesse +/types/koa-mount/ @amirsaber @tlaziuk +/types/koa-multer/ @benstevens48 +/types/koa-passport/ @horiuchi @tlaziuk @brendtumi +/types/koa-pino-logger/ @khell +/types/koa-pug/ @Xstoudi +/types/koa-range/ @strax +/types/koa-redis/ @nsimmons +/types/koa-redis-cache/ @dimamukhin +/types/koa-requestid/ @sjmcdowall +/types/koa-response-time/ @thorsedeke @sjmcdowall +/types/koa-route/ @migstopheles @jacogr +/types/koa-router/ @hellopao @schfkt @JounQin @romain-faust +/types/koa-send/ @pe8ter @tlaziuk +/types/koa-session/ @kerol2r20 @tlaziuk +/types/koa-session-minimal/ @longztian +/types/koa-sslify/ @wingsbob +/types/koa-static/ @hellopao @tlaziuk +/types/koa-static-cache/ @JounQin +/types/koa-views/ @brooklyndev +/types/koa-webpack/ @malj @leebenson @miZyind @tlaziuk +/types/koa-websocket/ @moimael @jacogr @zdila +/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/kraken-js/ @darkwebdev @micksatana +/types/kramed/ @tonicblue +/types/kss/ @giladgray +/types/kue/ @drudge @amiram @pc-jedi @deerawan +/types/kurento-utils/ @nenadalm @riggs +/types/kuromoji/ @mzsm @kgtkr +/types/lab/ @prashaantt +/types/ladda/ @dflor003 @leemicw +/types/lasso/ @darkwebdev +/types/later/ @jasond-s +/types/latinize/ @GiedriusGrabauskas +/types/latlon-geohash/ @rimig +/types/launchpad/ @rictic +/types/lazy-value/ @ikatyang +/types/lazy.js/ @Bartvds +/types/lazypipe/ @tomc974 +/types/ldapjs/ @cvillemure @peterkooijmans +/types/leadfoot/ @theintern +/types/leaflet/v0/ @rgripper +/types/leaflet/ @alejo90 @atd-schubert @mcauer +/types/leaflet-areaselect/ @awallat +/types/leaflet-curve/ @onikiienko +/types/leaflet-draw/ @matt-guest @reblace @YunS-Stacy @beschoenen +/types/leaflet-editable/ @dalie +/types/leaflet-fullscreen/ @DenisCarriere +/types/leaflet-geocoder-mapzen/ @leezu +/types/leaflet-gpx/ @soucekv @molnarm +/types/leaflet-imageoverlay-rotated/ @tkleinke +/types/leaflet-label/ @Nemo157 +/types/leaflet-mouse-position/ @Hanyon +/types/leaflet-polylinedecorator/ @soucekv +/types/leaflet-providers/ @BendingBender +/types/leaflet-rotatedmarker/ @robert-prib-polestar +/types/leaflet-routing-machine/ @chanakadrathnayaka +/types/leaflet.awesome-markers/v0/ @Odrin @sebek64 +/types/leaflet.awesome-markers/ @sebek64 +/types/leaflet.fullscreen/ @wcomartin +/types/leaflet.gridlayer.googlemutant/ @ernest-rhinozeros +/types/leaflet.heat/ @onderceylan +/types/leaflet.locatecontrol/ @DenisCarriere +/types/leaflet.markercluster/ @rimig +/types/leaflet.markercluster.layersupport/ @AsamK +/types/leaflet.pancontrol/ @Brictarus +/types/leaflet.pm/ @tkleinke +/types/leaflet.polylinemeasure/ @RiON69 +/types/leapmotionts/ @logotype +/types/legal-eagle/ @j-f1 +/types/lerna-get-packages/ @LogvinovLeon +/types/less/ @thasner @pranaygp @dwaxweiler +/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/leven/ @jmalonzo +/types/levenshtein/ @geoffreak +/types/libpq/ @Lodin +/types/libsodium-wrappers/ @ffflorian +/types/libxmljs/ @fdecampredon @ComFreek +/types/libxslt/ @alejo90 +/types/license-checker/ @rogierschouten @unindented +/types/lil-uuid/ @Pr1st0n +/types/lime-js/ @arthur-xavier +/types/line-by-line/ @etomsen +/types/line-reader/ @stpettersens +/types/linear-gradient/ @Jack-Works +/types/lingui__core/ @huan086 +/types/lingui__react/ @huan086 +/types/linkify-it/ @praxxis +/types/listr/ @durad +/types/lls/ @borislavjivkov +/types/load-json-file/ @SamVerschueren +/types/loader-runner/ @e-cloud +/types/loader-utils/ @Perlmint @TotooriaHyperion +/types/loadjs/ @screendriver +/types/loadware/ @ALyman +/types/lobibox/ @itboy87 +/types/local-dynamo/ @Sicilica +/types/local-storage/ @tup1tsa +/types/localized-countries/ @coderslagoon +/types/localizejs-library/ @salbahra +/types/locate-path/ @me +/types/lockfile/v0/ @Bartvds +/types/lockfile/ @Bartvds @BendingBender +/types/lockr/ @droritos +/types/locutus/ @hookclaw +/types/lodash/v3/ @bczengel @chrootsu +/types/lodash/ @bczengel @chrootsu @stepancar @aj-r @ailrun @e-cloud @thorn0 @jtmthf @DomiR +/types/lodash-es/ @stephenlautier @e-cloud +/types/lodash-webpack-plugin/ @bumbleblym +/types/lodash.add/ @bczengel @chrootsu @stepancar +/types/lodash.after/ @bczengel @chrootsu @stepancar +/types/lodash.ary/ @bczengel @chrootsu @stepancar +/types/lodash.assign/ @bczengel @chrootsu @stepancar +/types/lodash.assignin/ @bczengel @chrootsu @stepancar +/types/lodash.assigninwith/ @bczengel @chrootsu @stepancar +/types/lodash.assignwith/ @bczengel @chrootsu @stepancar +/types/lodash.at/ @bczengel @chrootsu @stepancar +/types/lodash.attempt/ @bczengel @chrootsu @stepancar +/types/lodash.before/ @bczengel @chrootsu @stepancar +/types/lodash.bind/ @bczengel @chrootsu @stepancar +/types/lodash.bindall/ @bczengel @chrootsu @stepancar +/types/lodash.bindkey/ @bczengel @chrootsu @stepancar +/types/lodash.camelcase/ @bczengel @chrootsu @stepancar +/types/lodash.capitalize/ @bczengel @chrootsu @stepancar +/types/lodash.castarray/ @bczengel @chrootsu @stepancar +/types/lodash.ceil/ @bczengel @chrootsu @stepancar +/types/lodash.chunk/ @bczengel @chrootsu @stepancar +/types/lodash.clamp/ @bczengel @chrootsu @stepancar +/types/lodash.clone/ @bczengel @chrootsu @stepancar +/types/lodash.clonedeep/ @bczengel @chrootsu @stepancar +/types/lodash.clonedeepwith/ @bczengel @chrootsu @stepancar +/types/lodash.clonewith/ @bczengel @chrootsu @stepancar +/types/lodash.compact/ @bczengel @chrootsu @stepancar +/types/lodash.concat/ @bczengel @chrootsu @stepancar +/types/lodash.cond/ @bczengel @chrootsu @stepancar +/types/lodash.constant/ @bczengel @chrootsu @stepancar +/types/lodash.countby/ @bczengel @chrootsu @stepancar +/types/lodash.create/ @bczengel @chrootsu @stepancar +/types/lodash.curry/ @bczengel @chrootsu @stepancar +/types/lodash.curryright/ @bczengel @chrootsu @stepancar +/types/lodash.debounce/ @bczengel @chrootsu @stepancar +/types/lodash.deburr/ @bczengel @chrootsu @stepancar +/types/lodash.defaults/ @bczengel @chrootsu @stepancar +/types/lodash.defaultsdeep/ @bczengel @chrootsu @stepancar +/types/lodash.defer/ @bczengel @chrootsu @stepancar +/types/lodash.delay/ @bczengel @chrootsu @stepancar +/types/lodash.difference/ @bczengel @chrootsu @stepancar +/types/lodash.differenceby/ @bczengel @chrootsu @stepancar +/types/lodash.differencewith/ @bczengel @chrootsu @stepancar +/types/lodash.divide/ @bczengel @chrootsu @stepancar +/types/lodash.drop/ @bczengel @chrootsu @stepancar +/types/lodash.dropright/ @bczengel @chrootsu @stepancar +/types/lodash.droprightwhile/ @bczengel @chrootsu @stepancar +/types/lodash.dropwhile/ @bczengel @chrootsu @stepancar +/types/lodash.endswith/ @bczengel @chrootsu @stepancar +/types/lodash.eq/ @bczengel @chrootsu @stepancar +/types/lodash.escape/ @bczengel @chrootsu @stepancar +/types/lodash.escaperegexp/ @bczengel @chrootsu @stepancar +/types/lodash.every/ @bczengel @chrootsu @stepancar +/types/lodash.fill/ @bczengel @chrootsu @stepancar +/types/lodash.filter/ @bczengel @chrootsu @stepancar +/types/lodash.find/ @bczengel @chrootsu @stepancar +/types/lodash.findindex/ @bczengel @chrootsu @stepancar +/types/lodash.findkey/ @bczengel @chrootsu @stepancar +/types/lodash.findlast/ @bczengel @chrootsu @stepancar +/types/lodash.findlastindex/ @bczengel @chrootsu @stepancar +/types/lodash.findlastkey/ @bczengel @chrootsu @stepancar +/types/lodash.first/ @bczengel @chrootsu @stepancar +/types/lodash.flatmap/ @bczengel @chrootsu @stepancar +/types/lodash.flatmapdeep/ @bczengel @chrootsu @stepancar +/types/lodash.flatmapdepth/ @bczengel @chrootsu @stepancar +/types/lodash.flatten/ @bczengel @chrootsu @stepancar +/types/lodash.flattendeep/ @bczengel @chrootsu @stepancar +/types/lodash.flattendepth/ @bczengel @chrootsu @stepancar +/types/lodash.flip/ @bczengel @chrootsu @stepancar +/types/lodash.floor/ @bczengel @chrootsu @stepancar +/types/lodash.flow/ @bczengel @chrootsu @stepancar +/types/lodash.flowright/ @bczengel @chrootsu @stepancar +/types/lodash.foreach/ @bczengel @chrootsu @stepancar +/types/lodash.foreachright/ @bczengel @chrootsu @stepancar +/types/lodash.forin/ @bczengel @chrootsu @stepancar +/types/lodash.forinright/ @bczengel @chrootsu @stepancar +/types/lodash.forown/ @bczengel @chrootsu @stepancar +/types/lodash.forownright/ @bczengel @chrootsu @stepancar +/types/lodash.frompairs/ @bczengel @chrootsu @stepancar +/types/lodash.functions/ @bczengel @chrootsu @stepancar +/types/lodash.functionsin/ @bczengel @chrootsu @stepancar +/types/lodash.get/ @bczengel @chrootsu @stepancar +/types/lodash.groupby/ @bczengel @chrootsu @stepancar +/types/lodash.gt/ @bczengel @chrootsu @stepancar +/types/lodash.gte/ @bczengel @chrootsu @stepancar +/types/lodash.has/ @bczengel @chrootsu @stepancar +/types/lodash.hasin/ @bczengel @chrootsu @stepancar +/types/lodash.head/ @bczengel @chrootsu @stepancar +/types/lodash.identity/ @bczengel @chrootsu @stepancar +/types/lodash.includes/ @bczengel @chrootsu @stepancar +/types/lodash.indexof/ @bczengel @chrootsu @stepancar +/types/lodash.initial/ @bczengel @chrootsu @stepancar +/types/lodash.inrange/ @bczengel @chrootsu @stepancar +/types/lodash.intersection/ @bczengel @chrootsu @stepancar +/types/lodash.intersectionby/ @bczengel @chrootsu @stepancar +/types/lodash.intersectionwith/ @bczengel @chrootsu @stepancar +/types/lodash.invert/ @bczengel @chrootsu @stepancar +/types/lodash.invertby/ @bczengel @chrootsu @stepancar +/types/lodash.invoke/ @bczengel @chrootsu @stepancar +/types/lodash.invokemap/ @bczengel @chrootsu @stepancar +/types/lodash.isarguments/ @bczengel @chrootsu @stepancar +/types/lodash.isarray/ @bczengel @chrootsu @stepancar +/types/lodash.isarraybuffer/ @bczengel @chrootsu @stepancar +/types/lodash.isarraylike/ @bczengel @chrootsu @stepancar +/types/lodash.isarraylikeobject/ @bczengel @chrootsu @stepancar +/types/lodash.isboolean/ @bczengel @chrootsu @stepancar +/types/lodash.isbuffer/ @bczengel @chrootsu @stepancar +/types/lodash.isdate/ @bczengel @chrootsu @stepancar +/types/lodash.iselement/ @bczengel @chrootsu @stepancar +/types/lodash.isempty/ @bczengel @chrootsu @stepancar +/types/lodash.isequal/ @bczengel @chrootsu @stepancar +/types/lodash.isequalwith/ @bczengel @chrootsu @stepancar +/types/lodash.iserror/ @bczengel @chrootsu @stepancar +/types/lodash.isfinite/ @bczengel @chrootsu @stepancar +/types/lodash.isfunction/ @bczengel @chrootsu @stepancar +/types/lodash.isinteger/ @bczengel @chrootsu @stepancar +/types/lodash.islength/ @bczengel @chrootsu @stepancar +/types/lodash.ismap/ @bczengel @chrootsu @stepancar +/types/lodash.ismatch/ @bczengel @chrootsu @stepancar +/types/lodash.ismatchwith/ @bczengel @chrootsu @stepancar +/types/lodash.isnan/ @bczengel @chrootsu @stepancar +/types/lodash.isnative/ @bczengel @chrootsu @stepancar +/types/lodash.isnil/ @bczengel @chrootsu @stepancar +/types/lodash.isnull/ @bczengel @chrootsu @stepancar +/types/lodash.isnumber/ @bczengel @chrootsu @stepancar +/types/lodash.isobject/ @bczengel @chrootsu @stepancar +/types/lodash.isobjectlike/ @bczengel @chrootsu @stepancar +/types/lodash.isplainobject/ @bczengel @chrootsu @stepancar +/types/lodash.isregexp/ @bczengel @chrootsu @stepancar +/types/lodash.issafeinteger/ @bczengel @chrootsu @stepancar +/types/lodash.isset/ @bczengel @chrootsu @stepancar +/types/lodash.isstring/ @bczengel @chrootsu @stepancar +/types/lodash.issymbol/ @bczengel @chrootsu @stepancar +/types/lodash.istypedarray/ @bczengel @chrootsu @stepancar +/types/lodash.isundefined/ @bczengel @chrootsu @stepancar +/types/lodash.isweakmap/ @bczengel @chrootsu @stepancar +/types/lodash.isweakset/ @bczengel @chrootsu @stepancar +/types/lodash.iteratee/ @bczengel @chrootsu @stepancar +/types/lodash.join/ @bczengel @chrootsu @stepancar +/types/lodash.kebabcase/ @bczengel @chrootsu @stepancar +/types/lodash.keyby/ @bczengel @chrootsu @stepancar +/types/lodash.keys/ @bczengel @chrootsu @stepancar +/types/lodash.keysin/ @bczengel @chrootsu @stepancar +/types/lodash.last/ @bczengel @chrootsu @stepancar +/types/lodash.lastindexof/ @bczengel @chrootsu @stepancar +/types/lodash.lowercase/ @bczengel @chrootsu @stepancar +/types/lodash.lowerfirst/ @bczengel @chrootsu @stepancar +/types/lodash.lt/ @bczengel @chrootsu @stepancar +/types/lodash.lte/ @bczengel @chrootsu @stepancar +/types/lodash.mapkeys/ @bczengel @chrootsu @stepancar +/types/lodash.mapvalues/ @bczengel @chrootsu @stepancar +/types/lodash.matches/ @bczengel @chrootsu @stepancar +/types/lodash.matchesproperty/ @bczengel @chrootsu @stepancar +/types/lodash.max/ @bczengel @chrootsu @stepancar +/types/lodash.maxby/ @bczengel @chrootsu @stepancar +/types/lodash.mean/ @bczengel @chrootsu @stepancar +/types/lodash.meanby/ @bczengel @chrootsu @stepancar +/types/lodash.memoize/ @bczengel @chrootsu @stepancar +/types/lodash.merge/ @bczengel @chrootsu @stepancar +/types/lodash.mergewith/ @bczengel @chrootsu @stepancar +/types/lodash.method/ @bczengel @chrootsu @stepancar +/types/lodash.methodof/ @bczengel @chrootsu @stepancar +/types/lodash.min/ @bczengel @chrootsu @stepancar +/types/lodash.minby/ @bczengel @chrootsu @stepancar +/types/lodash.mixin/ @bczengel @chrootsu @stepancar +/types/lodash.negate/ @bczengel @chrootsu @stepancar +/types/lodash.noop/ @bczengel @chrootsu @stepancar +/types/lodash.now/ @bczengel @chrootsu @stepancar +/types/lodash.nth/ @bczengel @chrootsu @stepancar +/types/lodash.ntharg/ @bczengel @chrootsu @stepancar +/types/lodash.omit/ @bczengel @chrootsu @stepancar +/types/lodash.omitby/ @bczengel @chrootsu @stepancar +/types/lodash.once/ @bczengel @chrootsu @stepancar +/types/lodash.orderby/ @bczengel @chrootsu @stepancar +/types/lodash.over/ @bczengel @chrootsu @stepancar +/types/lodash.overargs/ @bczengel @chrootsu @stepancar +/types/lodash.overevery/ @bczengel @chrootsu @stepancar +/types/lodash.oversome/ @bczengel @chrootsu @stepancar +/types/lodash.pad/ @bczengel @chrootsu @stepancar +/types/lodash.padend/ @bczengel @chrootsu @stepancar +/types/lodash.padstart/ @bczengel @chrootsu @stepancar +/types/lodash.parseint/ @bczengel @chrootsu @stepancar +/types/lodash.partial/ @bczengel @chrootsu @stepancar +/types/lodash.partialright/ @bczengel @chrootsu @stepancar +/types/lodash.partition/ @bczengel @chrootsu @stepancar +/types/lodash.pick/ @bczengel @chrootsu @stepancar +/types/lodash.pickby/ @bczengel @chrootsu @stepancar +/types/lodash.property/ @bczengel @chrootsu @stepancar +/types/lodash.propertyof/ @bczengel @chrootsu @stepancar +/types/lodash.pull/ @bczengel @chrootsu @stepancar +/types/lodash.pullall/ @bczengel @chrootsu @stepancar +/types/lodash.pullallby/ @bczengel @chrootsu @stepancar +/types/lodash.pullallwith/ @bczengel @chrootsu @stepancar +/types/lodash.pullat/ @bczengel @chrootsu @stepancar +/types/lodash.random/ @bczengel @chrootsu @stepancar +/types/lodash.range/ @bczengel @chrootsu @stepancar +/types/lodash.rangeright/ @bczengel @chrootsu @stepancar +/types/lodash.rearg/ @bczengel @chrootsu @stepancar +/types/lodash.reduce/ @bczengel @chrootsu @stepancar +/types/lodash.reduceright/ @bczengel @chrootsu @stepancar +/types/lodash.reject/ @bczengel @chrootsu @stepancar +/types/lodash.remove/ @bczengel @chrootsu @stepancar +/types/lodash.repeat/ @bczengel @chrootsu @stepancar +/types/lodash.replace/ @bczengel @chrootsu @stepancar +/types/lodash.rest/ @bczengel @chrootsu @stepancar +/types/lodash.result/ @bczengel @chrootsu @stepancar +/types/lodash.reverse/ @bczengel @chrootsu @stepancar +/types/lodash.round/ @bczengel @chrootsu @stepancar +/types/lodash.sample/ @bczengel @chrootsu @stepancar +/types/lodash.samplesize/ @bczengel @chrootsu @stepancar +/types/lodash.set/ @bczengel @chrootsu @stepancar +/types/lodash.setwith/ @bczengel @chrootsu @stepancar +/types/lodash.shuffle/ @bczengel @chrootsu @stepancar +/types/lodash.size/ @bczengel @chrootsu @stepancar +/types/lodash.slice/ @bczengel @chrootsu @stepancar +/types/lodash.snakecase/ @bczengel @chrootsu @stepancar +/types/lodash.some/ @bczengel @chrootsu @stepancar +/types/lodash.sortby/ @bczengel @chrootsu @stepancar +/types/lodash.sortedindex/ @bczengel @chrootsu @stepancar +/types/lodash.sortedindexby/ @bczengel @chrootsu @stepancar +/types/lodash.sortedindexof/ @bczengel @chrootsu @stepancar +/types/lodash.sortedlastindex/ @bczengel @chrootsu @stepancar +/types/lodash.sortedlastindexby/ @bczengel @chrootsu @stepancar +/types/lodash.sortedlastindexof/ @bczengel @chrootsu @stepancar +/types/lodash.sorteduniq/ @bczengel @chrootsu @stepancar +/types/lodash.sorteduniqby/ @bczengel @chrootsu @stepancar +/types/lodash.split/ @bczengel @chrootsu @stepancar +/types/lodash.spread/ @bczengel @chrootsu @stepancar +/types/lodash.startcase/ @bczengel @chrootsu @stepancar +/types/lodash.startswith/ @bczengel @chrootsu @stepancar +/types/lodash.subtract/ @bczengel @chrootsu @stepancar +/types/lodash.sum/ @bczengel @chrootsu @stepancar +/types/lodash.sumby/ @bczengel @chrootsu @stepancar +/types/lodash.tail/ @bczengel @chrootsu @stepancar +/types/lodash.take/ @bczengel @chrootsu @stepancar +/types/lodash.takeright/ @bczengel @chrootsu @stepancar +/types/lodash.takerightwhile/ @bczengel @chrootsu @stepancar +/types/lodash.takewhile/ @bczengel @chrootsu @stepancar +/types/lodash.template/ @bczengel @chrootsu @stepancar +/types/lodash.throttle/ @bczengel @chrootsu @stepancar +/types/lodash.times/ @bczengel @chrootsu @stepancar +/types/lodash.toarray/ @bczengel @chrootsu @stepancar +/types/lodash.tofinite/ @bczengel @chrootsu @stepancar +/types/lodash.tointeger/ @bczengel @chrootsu @stepancar +/types/lodash.tolength/ @bczengel @chrootsu @stepancar +/types/lodash.tolower/ @bczengel @chrootsu @stepancar +/types/lodash.tonumber/ @bczengel @chrootsu @stepancar +/types/lodash.topairs/ @bczengel @chrootsu @stepancar +/types/lodash.topairsin/ @bczengel @chrootsu @stepancar +/types/lodash.topath/ @bczengel @chrootsu @stepancar +/types/lodash.toplainobject/ @bczengel @chrootsu @stepancar +/types/lodash.tosafeinteger/ @bczengel @chrootsu @stepancar +/types/lodash.tostring/ @bczengel @chrootsu @stepancar +/types/lodash.toupper/ @bczengel @chrootsu @stepancar +/types/lodash.transform/ @bczengel @chrootsu @stepancar +/types/lodash.trim/ @bczengel @chrootsu @stepancar +/types/lodash.trimend/ @bczengel @chrootsu @stepancar +/types/lodash.trimstart/ @bczengel @chrootsu @stepancar +/types/lodash.truncate/ @bczengel @chrootsu @stepancar +/types/lodash.unary/ @bczengel @chrootsu @stepancar +/types/lodash.unescape/ @bczengel @chrootsu @stepancar +/types/lodash.union/ @bczengel @chrootsu @stepancar +/types/lodash.unionby/ @bczengel @chrootsu @stepancar +/types/lodash.unionwith/ @bczengel @chrootsu @stepancar +/types/lodash.uniq/ @bczengel @chrootsu @stepancar +/types/lodash.uniqby/ @bczengel @chrootsu @stepancar +/types/lodash.uniqueid/ @bczengel @chrootsu @stepancar +/types/lodash.uniqwith/ @bczengel @chrootsu @stepancar +/types/lodash.unset/ @bczengel @chrootsu @stepancar +/types/lodash.unzip/ @bczengel @chrootsu @stepancar +/types/lodash.unzipwith/ @bczengel @chrootsu @stepancar +/types/lodash.update/ @bczengel @chrootsu @stepancar +/types/lodash.updatewith/ @bczengel @chrootsu @stepancar +/types/lodash.uppercase/ @bczengel @chrootsu @stepancar +/types/lodash.upperfirst/ @bczengel @chrootsu @stepancar +/types/lodash.values/ @bczengel @chrootsu @stepancar +/types/lodash.valuesin/ @bczengel @chrootsu @stepancar +/types/lodash.without/ @bczengel @chrootsu @stepancar +/types/lodash.words/ @bczengel @chrootsu @stepancar +/types/lodash.wrap/ @bczengel @chrootsu @stepancar +/types/lodash.xor/ @bczengel @chrootsu @stepancar +/types/lodash.xorby/ @bczengel @chrootsu @stepancar +/types/lodash.xorwith/ @bczengel @chrootsu @stepancar +/types/lodash.zip/ @bczengel @chrootsu @stepancar +/types/lodash.zipobject/ @bczengel @chrootsu @stepancar +/types/lodash.zipobjectdeep/ @bczengel @chrootsu @stepancar +/types/lodash.zipwith/ @bczengel @chrootsu @stepancar +/types/log-symbols/ @BendingBender +/types/log-update/ @BendingBender +/types/logat/ @krvikash35 +/types/logform/ @DABH +/types/logg/ @blittle +/types/loggly/ @rmartone @geoffreak +/types/loglevel/ @Pro @szmeti @screendriver +/types/logrotate-stream/ @rogierschouten +/types/lokijs/ @TeamworkGuy2 @thomasconner +/types/lolex/ @Nemo157 @joshuakgoldberg @rogierschouten +/types/long/ @peterkooijmans +/types/loopback/ @kattsushi @enko @sequoia @drmikecrowe @karimsa +/types/loopback-boot/ @kattsushi +/types/lorem-ipsum/ @durad +/types/lory.js/ @kubosho @milkisevil +/types/loud-rejection/ @BendingBender +/types/lovefield/ @freshp86 @zackzeno +/types/lowdb/ @typicode @niieani +/types/lowlight/ @NoHomey +/types/lozad/ @plantain-00 +/types/lru-cache/ @Bartvds @BendingBender +/types/lscache/ @Chris-Martinezz +/types/ltx/ @PJakcson +/types/luaparse/ @stpettersens +/types/lunr/v0/ @sebastian-lenz +/types/lunr/ @seantanly +/types/lusca/ @crutchcorn +/types/luxon/ @colbydehart @FourwingsY @jsiebern +/types/lwip/ @AyaMorisawa +/types/lz-string/ @M0ns1gn0r +/types/magic-number/ @stpettersens +/types/magicsuggest/ @leonardochaia +/types/magnet-uri/ @tlaziuk +/types/mailcheck/ @pocesar +/types/maildev/ @cyrilschumacher @zbarbuto +/types/mailgen/ @vothanhkiet @jordanfarrer +/types/mailgun-js/ @sampsonjoliver +/types/mailparser/ @psnider +/types/main-bower-files/ @k-kagurazaka +/types/make-dir/ @ikatyang @BendingBender +/types/maker.js/ @danmarshall +/types/mali/ @danwbyrne +/types/mali-compose/ @danwbyrne +/types/mali-onerror/ @danwbyrne +/types/mandrill-api/ @pocesar +/types/map-obj/ @BendingBender +/types/mapbox/ @anahkiasen +/types/mapbox-gl/ @dobrud @patrickr +/types/mapbox-gl-leaflet/ @agorshkov23 +/types/mapbox__geo-viewport/ @fnberta +/types/mapbox__geojson-area/ @n0nick +/types/mapbox__polyline/ @Kern0 @mklopets +/types/mapbox__shelf-pack/ @Perlmint +/types/mapnik/ @ipv4sec +/types/mapsjs/ @davismj +/types/mariasql/ @bennett000 +/types/mark.js/ @renjfk @RomanGotsiy +/types/markdown-it/ @rapropos +/types/markdown-it-anchor/ @seryl +/types/markdown-it-container/ @hronex +/types/markdown-pdf/ @MonsieurMan +/types/markdownlint/ @ark120202 +/types/marked/ @worr @BendingBender @CrossR +/types/marker-animate-unobtrusive/ @viskin +/types/markerclustererplus/ @enanox @mxl +/types/markitup/ @drillbits +/types/marko/ @darkwebdev +/types/maskedinput/ @lokeshpeta +/types/masonry-layout/ @m-a-wilson @warriorrocker +/types/massive/v3/ @swissspidy @clarenceh +/types/massive/ @swissspidy @clarenceh @AmazingTurtle +/types/match-media-mock/ @asvetliakov +/types/match-sorter/ @claasahl +/types/material-components-web/ @BrentDouglas @ckosti +/types/material-design-lite/ @bradzacher +/types/material-ui/ @ngbrown @theigor @alitaheri @herrmanno @DaIgeb @allienna @schlesingermatthias @InsidersByte @artyomsv @dan-j @minodisk @samwalshnz @reggino +/types/material-ui-datatables/ @coding2012 +/types/material__animation/ @BrentDouglas @ckosti +/types/material__auto-init/ @BrentDouglas @ckosti +/types/material__base/ @BrentDouglas @ckosti +/types/material__checkbox/ @BrentDouglas @ckosti +/types/material__chips/ @BrentDouglas @ckosti +/types/material__dialog/ @BrentDouglas @ckosti +/types/material__drawer/ @BrentDouglas @ckosti +/types/material__floating-label/ @BrentDouglas @ckosti +/types/material__form-field/ @BrentDouglas @ckosti +/types/material__grid-list/ @BrentDouglas @ckosti +/types/material__icon-toggle/ @BrentDouglas @ckosti +/types/material__line-ripple/ @BrentDouglas @ckosti +/types/material__linear-progress/ @BrentDouglas @ckosti +/types/material__menu/ @BrentDouglas @ckosti +/types/material__notched-outline/ @BrentDouglas @ckosti +/types/material__radio/ @BrentDouglas @ckosti +/types/material__ripple/ @BrentDouglas @ckosti +/types/material__select/ @BrentDouglas @ckosti +/types/material__selection-control/ @BrentDouglas @ckosti +/types/material__slider/ @BrentDouglas @ckosti +/types/material__snackbar/ @BrentDouglas @ckosti +/types/material__tab/ @BrentDouglas @ckosti +/types/material__tabs/ @BrentDouglas @ckosti +/types/material__textfield/ @BrentDouglas @ckosti +/types/material__toolbar/ @BrentDouglas @ckosti +/types/material__top-app-bar/ @BrentDouglas @ckosti +/types/materialize-css/v0/ @eriklieben @leonyu @SinghSukhdeep @jfcere @scote @LiadIdan +/types/materialize-css/ @huww98 @MaximBalaganskiy @MonizDave @broccoliarchy +/types/math3d/ @laszlojakab @jimsmart +/types/mathjax/ @rolandzwaga +/types/mathjs/ @siavol @andnp @bradbesserman +/types/matter-js/ @piranha771 @hasparus +/types/maxmind/ @geoffreak +/types/mcustomscrollbar/ @flurg +/types/md5/ @arcdev1 @jprogrammer +/types/mdns/ @reppners +/types/mdurl/ @rokt33r +/types/media-typer/ @BendingBender +/types/medium-editor/ @keika299 @pascaliske +/types/megajs/ @danwbyrne +/types/mem/ @SamVerschueren +/types/mem-fs/ @MyFoodBag +/types/mem-fs-editor/ @MyFoodBag +/types/memcached/ @KentarouTakeda +/types/memdown/ @MeirionHughes @danwbyrne +/types/memjs/ @leizongmin +/types/memoize-one/ @karol-majewski @franklixuefei +/types/memoizee/ @juanpicado +/types/memory-cache/ @jedigo @thieman +/types/memory-fs/ @e-cloud +/types/memwatch-next/ @cyrilschumacher +/types/meow/ @KnisterPeter @praxxis @bitjson +/types/merge-descriptors/ @danny8002 +/types/merge-stream/ @k-kagurazaka @tomxtobin @daniel-zazula @djcsdy +/types/merge2/ @tkrotoff @smac89 +/types/merkle/ @kerol2r20 +/types/mermaid/ @ggilmore +/types/mersenne-twister/ @KentarouTakeda +/types/meshblu/ @fnipo +/types/mess/ @Nemo157 +/types/messenger/ @derekcicerone +/types/meteor/ @barbatus @fullflavedave @orefalo @dagatsoin @birkskyum @ardatan @stefanholzapfel @andrei-markeev @lmachens +/types/meteor-accounts-phone/ @DAB0mB +/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-roles/ @vangorra @mattmm3d +/types/meteor-universe-i18n/ @mathewmeconry +/types/method-override/ @santialbo +/types/methods/ @cprecioso +/types/metric-suffix/ @davidm77 +/types/mfiles/ @avonwyss +/types/micro/ @kaoDev +/types/micro-cors/ @CallumDenby +/types/micromatch/v2/ @glen-84 +/types/micromatch/ @glen-84 @vemoo +/types/microrouter/ @mathieudutour +/types/microsoft-ajax/ @pjmagee +/types/microsoft-live-connect/ @jvilk +/types/microsoft-sdk-soap/ @markusmauch +/types/microsoftteams/ @WrathOfZombies @jayongg @ydogandjiev +/types/microtime/ @vincekovacs +/types/milkcocoa/ @odangosan +/types/millisecond/ @xeoneux +/types/mime/ @jedigo @dhritzkiv +/types/mime-db/ @AJamesPhillips +/types/mime-types/ @Perlmint +/types/mimos/ @AJamesPhillips +/types/mina/ @lhk @mattanja @kant2002 +/types/mini-css-extract-plugin/ @JounQin +/types/minimal-bit-array/ @jeremejevs +/types/minimatch/ @vvakame @shantmarouti +/types/minimist/ @Bartvds @Necroskillz @kamranayub +/types/minimist-options/ @ikatyang +/types/minio/ @barinbritva @castorw @loremaps @OutdatedVersion +/types/minipass/ @BendingBender +/types/mirrorx/ @aaronphy +/types/mithril/ @spacejack @andraaspar @isiahmeadows +/types/mithril-global/ @spacejack @isiahmeadows +/types/mitm/ @alejo90 +/types/mixpanel/ @hjellek @Manduro +/types/mixto/ @vvakame +/types/mjml/ @aahoughton +/types/mkdirp/ @Bartvds @mrmlnc +/types/mkdirp-promise/ @pluma +/types/mkpath/ @optical +/types/ml-levenberg-marquardt/ @m93a +/types/mobx-apollo/ @pselden +/types/mobx-devtools-mst/ @pluma +/types/mocha/ @kazimanzurrashid @otiai10 @jt000 @enlight @cspotcode @1999 +/types/mocha-each/ @magnostherobot +/types/mocha-phantomjs/ @ErikSchierboom +/types/mocha-steps/ @Arylo +/types/mochaccino/ @thomas-p +/types/mock-aws-s3/ @bluehatbrit +/types/mock-fs/ @Nemo157 @tkqubo +/types/mock-knex/ @jessezhang91 +/types/mock-raf/ @djpereira +/types/mock-require/ @gDelgado14 +/types/mockdate/ @brunolm +/types/mockery/ @jt000 +/types/modernizr/ @borisyankov @theodorejb @leonyu @lucax88x @nhardy +/types/modesl/ @neeschit +/types/module-alias/ @KevinRamharak +/types/moji/ @yasupeke +/types/moment-business/ @wonbyte +/types/moment-business-time/ @swist +/types/moment-duration-format/ @SwintDC @TwoStone @leonard-thieu @bendykowski +/types/moment-holiday/ @rwdalpe +/types/moment-jalaali/ @alitaheri +/types/moment-range/ @Burgov @wilgert @franjuan @MartynasZilinskas +/types/moment-round/ @jacobbaskin +/types/moment-shortformat/ @whatasoda +/types/moment-strftime2/ @dex4er +/types/moment-timezone/ @michelsalib @alanblins +/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-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-auto-increment/ @AyaMorisawa +/types/mongoose-deep-populate/ @AyaMorisawa +/types/mongoose-geojson-schema/ @bondz +/types/mongoose-mock/ @jt000 +/types/mongoose-paginate/ @linusbrolin @simonxca +/types/mongoose-promise/ @simonxca +/types/mongoose-seeder/ @Crevil +/types/mongoose-sequence/ @linusbrolin +/types/mongoose-simple-random/ @rsxdalv +/types/mongoose-unique-validator/ @stevehipwell +/types/mongorito/ @pinguet62 +/types/moo/ @deltaidea @MofX +/types/moonjs/ @DanielRosenwasser +/types/morgan/ @staticfunction @pscanf +/types/morphdom/ @arvitaly +/types/morris.js/ @mareek @sindilevich +/types/mosca/ @GabrielGouv @jerray +/types/motor-hat/ @muntyan +/types/mousetrap/ @qcz +/types/move-concurrently/ @mgroenhoff +/types/moviedb/ @basarat @0x6368656174 +/types/moxios/ @itoasuka +/types/mozilla-readability/ @charlesvdv +/types/mozjpeg/ @hikoma +/types/mpromise/ @sgkim126 +/types/mri/ @shiftkey @j-f1 +/types/ms/ @danny8002 +/types/msgpack-lite/ @endel @efokschaner +/types/msgpack5/ @wokim @heycalmdown +/types/msnodesql/ @borisyankov @SomaticIT +/types/msportalfx-test/ @julioct +/types/mssql/ @jaminfarr @buzinas @mrrichar @elhaard @pkeuter @mcdado +/types/mu2/ @jedigo +/types/muicss/ @samuelneff +/types/multer/ @jt000 @DavidBR-SW @mxl @hyunseob +/types/multer-gridfs-storage/v1/ @devconcept +/types/multer-gridfs-storage/ @devconcept +/types/multer-s3/ @tcaesvk @galtalmor @terski +/types/multi-typeof/ @mhegazy +/types/multimatch/ @stephenlautier +/types/multiparty/ @kenfdev +/types/multiplexjs/ @KamyarNazeri +/types/multisort/ @CzBuCHi +/types/multistream/ @mrmlnc @kenzierocks +/types/muri/ @jloveridge +/types/murmurhash/ @atd-schubert +/types/murmurhash-js/ @cvle +/types/murmurhash3js/ @dlee-nvisia +/types/musicmetadata/ @Xstoudi +/types/mustache/ @markashleybell @manuth +/types/mv/ @nenadalm +/types/mysql/ @wjohnsto @kacepe @kpping @jdmunro +/types/mz/ @ThomasHickman +/types/n3/ @phreed @rubensworks +/types/named-regexp-groups/ @jewbre +/types/named-routes/ @qqilihq +/types/nanoajax/ @nathancahill +/types/nanoevents/ @nju33 +/types/nanographql/ @cdaringe +/types/nanoid/ @bash @fadezhanger +/types/nanomsg/ @titan +/types/nanoscroller/ @zihark17 +/types/nanp/ @karn +/types/native-toast/ @mnahkies +/types/nats-hemera/ @vforv +/types/natsort/ @mgroenhoff +/types/natural/ @dmoonfire +/types/natural-sort/ @a-morales @fluggo +/types/navermaps/ @ckboyjiy +/types/navigation/ @grahammendick +/types/navigation-react/ @grahammendick +/types/navigo/ @aersamkull @dancespiele @deini +/types/nblas/ @erikgerrits +/types/nconf/ @jedigo @jmthibault +/types/ncp/ @bartvds +/types/ndarray/ @pawsong @taoqf +/types/nearley/ @deltaidea @BendingBender +/types/nedb/ @reppners @anthonynichols @afharo +/types/nedb-logger/ @thisboyiscrazy +/types/needle/v0/ @bigsan +/types/needle/v1/ @bigsan @nikeee +/types/needle/ @bigsan @nikeee @sindilevich +/types/negotiator/ @BendingBender +/types/neo4j/ @cyrilschumacher +/types/nes/ @NoHomey @saboya +/types/nested-error-stacks/ @woutervh- +/types/net-keepalive/ @hertzg +/types/netmask/ @mhfrantz +/types/network-interfaces/ @anderswestberg +/types/new-relic-browser/ @renehamburger @piotrkubisa +/types/newline-remove/ @OpenByteDev +/types/newman/ @LogvinovLeon +/types/newrelic/ @mastermatt +/types/nexpect/ @vvakame +/types/next/ @dru89 @brikou @jthegedus @resir014 @scottdj92 @joaovieira +/types/next-redux-wrapper/ @stevegeek @Jungwoo-An +/types/ng-command/ @stephenlautier +/types/ng-cordova/ @ksachdeva +/types/ng-dialog/ @stephenlautier +/types/ng-facebook/ @Crevil +/types/ng-file-upload/ @johnnyreilly @thewarpaint +/types/ng-flow/ @ryan10132 +/types/ng-grid/ @smithkl42 @rolandzwaga @kentcooper +/types/ng-i18next/ @cyrilschumacher +/types/ng-notify/ @nzamosenchuk +/types/ng-stomp/ @lpotapczuk +/types/ng-tags-input/ @GiorgosPap +/types/ngbootbox/ @stpettersens +/types/ngeohash/ @erkie +/types/ngkookies/ @martinmcwhorter +/types/ngmap/ @nkovacic +/types/ngprogress/ @martinmcwhorter +/types/ngprogress-lite/ @LukeForder +/types/ngreact/ @velveret +/types/ngsijs/ @guillermofr +/types/ngstorage/ @kubiq +/types/ngtoaster/ @btesser +/types/ngwysiwyg/ @patrick-mackay +/types/nightmare/ @horiuchi @samyang-au @Bleser92 +/types/nightwatch/ @rkavalap @schlesiger +/types/nivo-slider/ @AndersonFriaca +/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-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-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-gcm/ @horiuchi +/types/node-geocoder/ @rosek86 +/types/node-getopt/ @kcauchy +/types/node-hid/ @mhegazy @ert78gb @thegecko +/types/node-horseman/ @apratheek +/types/node-hue-api/ @fjmorel +/types/node-int64/ @x3cion @kevin-greene-ck +/types/node-ipc/ @arvitaly @gjurgens +/types/node-jsfl-runner/ @mrand01 +/types/node-json-db/ @kuzn-ilya +/types/node-localstorage/ @intolerance +/types/node-memwatch/ @Kroisse +/types/node-mysql-wrapper/ @kataras +/types/node-notifier/ @tkQubo +/types/node-polyglot/ @timjk +/types/node-powershell/ @rodrigoff +/types/node-pushnotifications/ @menushka +/types/node-ral/ @ssddi456 +/types/node-red/ @andersea @tbowmo +/types/node-resque/ @gordey4doronin +/types/node-rsa/ @alitaheri @xm +/types/node-schedule/ @cyrilschumacher @flowpl +/types/node-slack/ @tkQubo +/types/node-snap7/ @heilingbrunner +/types/node-sprite-generator/ @Perlmint +/types/node-ssdp/ @OrionNebula +/types/node-static/ @Morfent +/types/node-statsd/ @alexturek @convoyinc +/types/node-telegram-bot-api/ @ammuench @agadar @Dabolus @Kallu609 @XC-Zhang +/types/node-uuid/ @jeffmay +/types/node-validator/ @kengorab +/types/node-vault/ @YuJianrong +/types/node-wit/ @julienduf +/types/node-xmpp-client/ @PJakcson +/types/node-xmpp-core/ @PJakcson +/types/node-zookeeper-client/ @plantain-00 @jessezhang91 +/types/node-zopfli/ @Alorel +/types/node-zopfli-es/ @Alorel +/types/node_redis/ @borisyankov +/types/nodecredstash/ @migstopheles +/types/nodegit/ @dolanmiu @tniessen +/types/nodemailer/v3/ @rogierschouten +/types/nodemailer/ @rogierschouten @dex4er @bioball +/types/nodemailer-direct-transport/ @rogierschouten +/types/nodemailer-mailgun-transport/ @otociulis +/types/nodemailer-pickup-transport/ @psnider +/types/nodemailer-ses-transport/ @westy92 +/types/nodemailer-smtp-pool/ @rogierschouten +/types/nodemailer-smtp-transport/ @rogierschouten +/types/nodemailer-stub-transport/ @cyrilschumacher +/types/nodeunit/ @jedigo +/types/noisejs/ @izmhr +/types/nomnom/ @panopticoncentral +/types/nopt/ @jbondc +/types/normalize-package-data/ @jdxcode +/types/normalize-url/ @odin3 @BendingBender +/types/notie/ @mateusdemboski +/types/notify/ @hellochar +/types/notifyjs/ @soundTricker @NateScarlet +/types/notifyjs-browser/ @bahman616 +/types/notyf/ @gurov +/types/nouislider/v7/ @acoreyj +/types/nouislider/v8/ @bleuarg +/types/nouislider/ @bleuarg @lagaffe +/types/novnc-core/ @smithkl42 @BendingBender +/types/npm/ @SomaticIT +/types/npm-package-arg/ @mgroenhoff +/types/npm-packlist/ @ajafff +/types/npmlog/ @DanielMSchmidt @littlepiggy03 +/types/ns-api/ @Archcry +/types/nslog/ @unindented +/types/nsqjs/ @cezaryrk +/types/nuka-carousel/ @Romic +/types/number-is-nan/ @mhegazy +/types/number-to-words/ @frederickfogerty +/types/numeral/ @vbortone @BehindTheMath @klujanrosas +/types/numeric/ @tup1tsa +/types/numjs/ @taoqf @mattmm3d +/types/nunjucks/ @RubenSlabbert +/types/nunjucks-date/ @kruncher +/types/nvd3/ @PjMitchell +/types/nw.gui/ @xperiments +/types/nw.js/ @alirdn +/types/o.js/ @IceOnFire @bradzacher @janhommes @jcchalte +/types/oauth/ @nonAlgebraic +/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/object-assign/ @chbrown +/types/object-diff/ @rogierschouten +/types/object-hash/ @misak113 +/types/object-inspect/ @demurgos +/types/object-keys/ @VitorLuizC +/types/object-keys-mapping/ @newraina +/types/object-map/ @wolfgang42 +/types/object-merge/ @OpenByteDev +/types/object-path/ @pocesar +/types/object-refs/ @3fd +/types/object.getownpropertydescriptors/ @VitorLuizC +/types/oblo-util/ @Oblosys +/types/oboe/ @optical +/types/observe-js/ @herrmanno +/types/oclazyload/ @rolandzwaga +/types/odata/ @janhommes @jcchalte +/types/ofe/ @Morfent +/types/office-js/ @OfficeDev @LanceEA @Zlatkovsky @kbrandl @Rick-Kirkham @AlexJerabek @ElizabethSamuel-MSFT +/types/offline-js/ @cgwrench +/types/oibackoff/ @geoffreak +/types/oidc-token-manager/ @rosieks +/types/oja/ @buffcode +/types/okta__okta-vue/ @innovation-team +/types/ol/ @yairtawil +/types/omggif/ @ffflorian +/types/on-finished/ @czechboy0 @BendingBender +/types/on-headers/ @jjeffery @BendingBender +/types/once/ @denis-sokolov @BendingBender +/types/onesignal-cordova-plugin/ @broder +/types/onetime/ @BendingBender +/types/oniguruma/ @smhxx +/types/onoff/ @marcel-ernst +/types/ontime/ @Hirse +/types/open/ @Bartvds +/types/opener/ @tikurahul +/types/openfin/v17/ @chrisbarker +/types/openfin/v29/ @chrisbarker @rdepena +/types/openfin/ @chrisbarker @rdepena @whyn07m3 +/types/openjscad/ @danmarshall +/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/openstack-wrapper/ @sanjaymadane +/types/opentok/ @westy92 @CatGuardian +/types/opentype.js/ @danmarshall @edzis +/types/opn/ @shinnn @SomaticIT @tlent +/types/optics-agent/ @crevil +/types/optimist/ @soywiz @chbrown +/types/optimize-css-assets-webpack-plugin/ @odnamrataizem +/types/ora/v0/ @basarat @screendriver +/types/ora/ @basarat @screendriver @BendingBender @azasypkin +/types/oracledb/ @Bigous +/types/orchestrator/ @tkQubo @TeamworkGuy2 +/types/orderedmap/ @bradleyayers +/types/orientjs/ @saeedtabrizi +/types/os-homedir/ @mhegazy +/types/os-locale/v1/ @AyaMorisawa @BendingBender +/types/os-locale/ @AyaMorisawa @BendingBender +/types/os-name/ @BendingBender +/types/os-tmpdir/ @mhegazy +/types/osmosis/ @jurajkocan @evanshortiss +/types/osmtogeojson/ @tkqubo +/types/osrm/ @DenisCarriere +/types/otplib/ @renjfk +/types/overwatch-api/ @JoshuaHall +/types/owasp-password-strength-test/ @stephtr +/types/owl.carousel/ @igorissen @KennethanCeyer +/types/owlcarousel/ @dpiatkowski +/types/p-all/ @BendingBender +/types/p-any/ @BendingBender +/types/p-cancelable/ @BendingBender +/types/p-catch-if/ @LinusU +/types/p-debounce/ @BendingBender +/types/p-defer/ @SamVerschueren +/types/p-do-whilst/ @BendingBender +/types/p-each-series/ @BendingBender +/types/p-event/ @BendingBender +/types/p-every/ @BendingBender +/types/p-lazy/ @BendingBender +/types/p-limit/ @BendingBender @LinusU +/types/p-loading/ @renjfk +/types/p-locate/ @BendingBender +/types/p-log/ @BendingBender +/types/p-map/ @BendingBender +/types/p-map-series/ @BendingBender +/types/p-memoize/ @forabi +/types/p-one/ @BendingBender +/types/p-progress/ @icopp +/types/p-props/ @BendingBender +/types/p-queue/ @BendingBender @evanshortiss +/types/p-reduce/ @BendingBender +/types/p-reflect/ @BendingBender +/types/p-retry/ @BendingBender +/types/p-series/ @BendingBender +/types/p-settle/ @natesilva +/types/p-some/ @BendingBender +/types/p-tap/ @BendingBender +/types/p-throttle/ @BendingBender +/types/p-timeout/ @BendingBender +/types/p-try/ @BendingBender @LinusU +/types/p-wait-for/ @BendingBender +/types/p-whilst/ @BendingBender +/types/p2/ @clark-stevenson +/types/package-json/ @jinwoo +/types/packery/ @piraveen @hanssens +/types/pad/ @mhegazy +/types/page/ @43081j +/types/paho-mqtt/ @amikhalev +/types/pako/ @cappellin @calebegg +/types/pangu/ @plantain-00 +/types/papaparse/ @torpedro @rainshen49 @jfloff @johnnyreilly @albertorestifo @BehindTheMath @3af +/types/paper/ @clark-stevenson @Xakaloz @sebaswebdev @rfried +/types/parallel-transform/ @djcsdy +/types/paralleljs/ @jbaldwin +/types/parcel-env/ @fathyb +/types/parent-package-json/ @sgmccli +/types/parity-pmd/ @leovujanic @jewbre +/types/parity-pmr/ @leovujanic +/types/parity-poe/ @leovujanic +/types/parse/ @dpoetzsch @jaeggerr @flavionegrao @wesleygrimes @owsas +/types/parse-git-config/ @leonard-thieu @deltaidea +/types/parse-github-url/ @ajafff +/types/parse-glob/ @glen-84 +/types/parse-json/ @mrmlnc +/types/parse-link-header/ @zelein +/types/parse-mockdb/ @dpoetzsch +/types/parse-ms/ @Roaders +/types/parse-torrent/ @niieani @tlaziuk +/types/parse-torrent-file/ @tlaziuk +/types/parse-unit/ @Jack-Works +/types/parse5/v4/ @inikulin @andnp +/types/parse5/ @inikulin +/types/parse5-html-rewriting-stream/ @samuelli +/types/parse5-htmlparser2-tree-adapter/ @inikulin +/types/parse5-parser-stream/ @inikulin +/types/parse5-plain-text-conversion-stream/ @inikulin +/types/parse5-sax-parser/ @inikulin +/types/parse5-serializer-stream/ @inikulin +/types/parsecurrency/ @cristianrgreco +/types/parseurl/ @bomret +/types/parsimmon/ @Bartvds @mizunashi-mana @bcherny @bvanreeven @leonard-thieu @MrJohz +/types/passport/ @horiuchi @enaeseth @theigor @tlaziuk @danielpa9708 +/types/passport-anonymous/ @0x6368656174 +/types/passport-beam/ @AtlasDev +/types/passport-cognito/ @mbutsykin +/types/passport-discord/ @kzay +/types/passport-facebook/ @staticfunction @lucasmacosta +/types/passport-facebook-token/ @rmartone @mrand01 +/types/passport-github/ @yasupeke +/types/passport-github2/ @yasupeke @mthmulders @codepunkt +/types/passport-google-oauth/ @staticfunction +/types/passport-google-oauth2/ @bluehatbrit +/types/passport-http/ @krizalys @tlaziuk @cjbarth +/types/passport-http-bearer/ @isman-usoh +/types/passport-jwt/ @jindev +/types/passport-kakao/ @Park9eon @zerocho +/types/passport-local/ @SomaticIT +/types/passport-local-mongoose/ @linusbrolin +/types/passport-naver/ @Park9eon @zerocho +/types/passport-oauth2/ @pasieronen @WangZishi +/types/passport-oauth2-client-password/ @akaNightmare +/types/passport-remember-me-extended/ @AylaJK +/types/passport-saml/ @cjbarth @dassennato +/types/passport-steam/ @kzay +/types/passport-strategy/ @liorm +/types/passport-twitter/ @staticfunction +/types/passport-unique-token/ @briman0094 @SomaticIT +/types/password-hash/ @mugeso +/types/password-hash-and-salt/ @alitaheri +/types/path-exists/v1/ @shiwano +/types/path-exists/ @shiwano @BendingBender +/types/path-is-absolute/ @mhegazy +/types/path-is-inside/ @aomarks +/types/pathfinding/ @BNedry +/types/pathjs/ @lokeshpeta +/types/pathwatcher/ @GlenCFL +/types/pause/ @BendingBender +/types/payment/ @apare +/types/paypal-cordova-plugin/ @Justin-Credible +/types/paypal-rest-sdk/ @trainerbill +/types/pbf/ @cschwarz +/types/pbkdf2/ @timonegk +/types/pdfjs-dist/ @jbaldwin +/types/pdfkit/ @erichillah +/types/pdfmake/ @m1llen1um @radziksh +/types/pdfobject/ @nielsboogaard +/types/pebblekitjs/ @makotokw +/types/peer-dial/ @RealTYPICAL +/types/peerjs/ @nakakura +/types/pegjs/ @vvakame @SrTobi @siegebell +/types/pem/ @tony19 @DethAriel +/types/pem-jwk/ @alessiopcc +/types/persona/ @Nycto +/types/pet-finder-api/ @me +/types/pg/v6/ @pspeter3 +/types/pg/ @pspeter3 +/types/pg-ears/ @bradleyayers +/types/pg-escape/ @khell +/types/pg-format/ @zopf +/types/pg-large-object/ @mateuszkrupa +/types/pg-pool/ @aleung +/types/pg-query-stream/ @asmarques +/types/pg-types/ @waratuman +/types/pgwmodal/ @pine613 +/types/phantom/ @horiuchi @llRandom +/types/phantomcss/ @abauzac +/types/phantomjs/ @jedhunsaker @keesey +/types/phoenix/ @mciastek +/types/phone/ @DxCx +/types/phone-formatter/ @westy92 +/types/phonegap/ @borisyankov @DickvdBrink +/types/phonegap-facebook-plugin/ @Justin-Credible +/types/phonegap-nfc/ @michaeldesigaud +/types/phonon/ @kserin +/types/photonui/ @florentpoujol +/types/photoswipe/ @hellochar +/types/physijs/ @gyohk +/types/pi-spi/ @marcel-ernst +/types/pick-weight/ @rsxdalv +/types/pickadate/ @theodorejb @leonard-thieu +/types/picturefill/ @alaz +/types/pidusage/ @cyrilschumacher @mx601595686 +/types/pify/ @samverschueren @mad-mike @c7hm4r +/types/pigpio/ @manerfan +/types/pikaday/ @MidnightDesign @wake42 +/types/pikaday-time/ @Sayan751 +/types/pinkyswear/ @chances +/types/pino/v3/ @psnider +/types/pino/ @psnider @BendingBender @screendriver @paambaati +/types/pino-multi-stream/ @JakeGinnivan +/types/pinterest-sdk/ @adamburmister +/types/pinyin/ @wanganjun +/types/piwik-tracker/ @lbguilherme +/types/pixelmatch/ @iamolegga +/types/pixi.js/ @clark-stevenson +/types/pkg-conf/ @jorgegonzalez +/types/pkg-dir/ @NK-WEB-Git +/types/pkijs/ @microshine +/types/platform/ @JakeH +/types/playcanvas/ @Neoflash1979 +/types/playerframework/ @ricardosabino +/types/playmusic/ @nickp10 +/types/pleasejs/ @nakakura +/types/plotly.js/ @chrisgervang @martinduparc @frederikaalund @taoqf @Dadstart @szechyjs @MercifulCode @soorajpudiyadath @jonfreedman @meganrm +/types/plugapi/ @BNedry +/types/plugin-error/ @rogierschouten +/types/plupload/ @patrickbussmann +/types/plur/ @iRoachie +/types/pluralize/ @ukyo @karol-majewski +/types/png-async/ @kanreisa +/types/png.js/ @ffflorian +/types/pngjs/ @jason0x43 +/types/pngquant-bin/ @hikoma +/types/podcast/ @nikeee +/types/podium/ @AJamesPhillips +/types/point-in-polygon/ @dyst5422 @kogai +/types/polyfill-service/ @Alorel +/types/polylabel/ @DenisCarriere +/types/polyline/ @Kern0 +/types/polymer/ @lgrignon @laco0416 +/types/polymer-ts/ @lgrignon +/types/popcorn/ @grapswiz +/types/portscanner/ @douglasduteil +/types/postal/ @lokeshpeta @myitcv +/types/postman-collection/ @kbuzby +/types/postmark/ @benbayard @jineshshah36 +/types/pouch-redux-middleware/ @charrondev +/types/pouchdb/ @AGBrown @geppy @fredgalvao +/types/pouchdb-adapter-fruitdown/ @spaulg @geppy @fredgalvao +/types/pouchdb-adapter-http/ @spaulg @geppy @fredgalvao +/types/pouchdb-adapter-idb/ @spaulg @geppy @fredgalvao +/types/pouchdb-adapter-leveldb/ @spaulg @geppy @fredgalvao +/types/pouchdb-adapter-localstorage/ @spaulg @geppy @fredgalvao +/types/pouchdb-adapter-memory/ @spaulg @geppy @fredgalvao +/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-find/ @trubit @tiangolo +/types/pouchdb-http/ @spaulg @geppy @fredgalvao +/types/pouchdb-mapreduce/ @spaulg @geppy @fredgalvao +/types/pouchdb-node/ @spaulg @geppy @fredgalvao +/types/pouchdb-replication/ @trubit @tiangolo +/types/pouchdb-upsert/ @keithdmoore @hotforfeature @apolkingg8 @zamb3zi +/types/power-assert/ @vvakame +/types/power-assert-formatter/ @vvakame +/types/powerbi-visuals-tools/ @zBritva @Microsoft +/types/precise/ @codeanimal +/types/precond/ @olsio +/types/preloadjs/ @endel +/types/prelude-ls/ @AyaMorisawa +/types/prettier/ @ikatyang +/types/pretty-bytes/v4/ @plantain-00 +/types/pretty-bytes/ @plantain-00 @danielasy +/types/pretty-format/ @ikatyang +/types/pretty-ms/ @BendingBender @ocboogie +/types/printf/ @AluisioASG +/types/priorityqueuejs/ @geoffreak +/types/prismic-dom/ @nickw444 @sbilstein +/types/prismjs/ @eriklieben @andrewiggins @mmiszy +/types/private-ip/ @coderslagoon +/types/procfs-stats/ @cyrilschumacher +/types/progress/ @sebastian-lenz +/types/progressbar/ @atd-schubert +/types/progressjs/ @zaneli +/types/proj4/ @DenisCarriere +/types/proj4leaflet/ @BendingBender +/types/project-oxford/ @scsouthw +/types/prometheus-gc-stats/ @danwbyrne +/types/promise-dag/ @OSjoerdWie +/types/promise-ftp/ @coolreader18 +/types/promise-ftp-common/ @coolreader18 +/types/promise-map-limit/ @kohlmannj +/types/promise-pg/ @coldacid +/types/promise-polyfill/ @skysteve +/types/promise-pool/ @vilic +/types/promise-queue/ @LachlanStuart +/types/promise-retry/ @shirakaba +/types/promise-sftp/ @coolreader18 +/types/promise-timeout/ @Aankhen +/types/promise.prototype.finally/ @slavik57 @BendingBender +/types/promised-temp/ @rokadias +/types/promisify-node/ @borekb +/types/promisify-supertest/ @aleung +/types/prompt-sync/ @MugeSo +/types/prompt-sync-history/ @MugeSo +/types/promptly/ @danrspencer +/types/prop-types/ @DovydasNavickas @ferdaber +/types/proper-lockfile/ @qlonik +/types/properties-reader/ @Goldsmith42 +/types/prosemirror-collab/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-commands/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-dropcursor/ @bradleyayers @davidka @dddotsev +/types/prosemirror-gapcursor/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-history/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-inputrules/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-keymap/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-markdown/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-menu/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-model/ @bradleyayers @davidka @timjb @neknalb @patsimm +/types/prosemirror-schema-basic/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-schema-list/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-state/ @bradleyayers @davidka @timjb @patsimm +/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/protractor-browser-logs/ @rokadias +/types/protractor-helpers/ @johncant +/types/protractor-http-mock/ @Crevil +/types/provinces/ @gatimus +/types/proxy-addr/ @BendingBender +/types/proxy-lists/ @BehindTheMath +/types/proxy-verifier/ @BehindTheMath +/types/proxyquire/ @jt000 +/types/ps-tree/ @alessiopcc +/types/ptomasroos__react-native-multi-slider/ @Slessi +/types/pty.js/ @enlight +/types/public-ip/ @BendingBender +/types/pubnub/ @bitbankinc @rollymaduk @vitosamson +/types/pubsub-js/ @borisyankov +/types/pug/ @TonyPythoneer @19majkel94 +/types/pulltorefreshjs/ @DanielRosenwasser @humpedli +/types/pump/ @tlaziuk +/types/pumpify/ @JustinBeckwith @aoberoi +/types/pupa/ @nju33 +/types/puppeteer/v0/ @marvinhagemeister @cdeutsch +/types/puppeteer/ @marvinhagemeister @cdeutsch @ksm2 +/types/pure-render-decorator/ @seansfkelley +/types/purl/ @danfma +/types/pusher-js/ @tkqubo @cainlevy +/types/pvutils/ @microshine +/types/python-shell/ @dolanmiu @WORMSS +/types/q/v0/ @bnemetchek @johnnyreilly +/types/q/ @bnemetchek @AndrewGaspar @johnnyreilly @mboudreau @TeamworkGuy2 +/types/q-io/ @Bartvds +/types/q-retry/ @vilic +/types/qhistory/ @Kovensky +/types/qiniu-js/ @taoqf +/types/qlik/ @RubenSlabbert @AginicX +/types/qlik-engineapi/ @konne +/types/qlik-visualizationextensions/ @konne +/types/qr-image/ @taoqf +/types/qrcode/ @plantain-00 +/types/qrcode.react/ @mleko +/types/qs/ @RWander @leonyu @tehbelinda @zyml @artursvonda @CarlosBonetti +/types/qtip2/ @Seltzer @leonard-thieu +/types/query-string/ @SamVerschueren @tkrotoff @huhuanming @MadaraUchiha @shssoichiro +/types/querystringify/ @ilich +/types/quick-lru/ @BendingBender +/types/quill/ @sumitkm @guillaume-ro-fr @43081j @AnielloFalcone @mhamri +/types/quixote/ @greybax +/types/qunit/v1/ @diullei +/types/qunit/ @waratuman @mike-north +/types/qunit-dom/ @happycollision +/types/quoted-printable/ @pushplay +/types/qwest/ @lindsayevans +/types/r-script/ @NaridaL +/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/random-js/ @pistacchio +/types/random-number/ @OpenByteDev +/types/random-seed/ @endel +/types/random-string/ @stpettersens +/types/randomcolor/ @feitzi @BradyLiles +/types/range-parser/ @tlaziuk +/types/rangyinputs/ @ersimont +/types/raphael/ @CheCoxshall +/types/rappid/ @DenEwout +/types/raspi/ @nebrius +/types/raspi-board/ @nebrius +/types/raspi-gpio/ @nebrius +/types/raspi-i2c/ @nebrius +/types/raspi-led/ @nebrius +/types/raspi-onewire/ @nebrius +/types/raspi-peripheral/ @nebrius +/types/raspi-pwm/ @nebrius +/types/raspi-serial/ @nebrius +/types/raspi-soft-pwm/ @nebrius +/types/ratelimiter/ @AyaMorisawa +/types/raty/ @terrawheat +/types/raven/ @scttcper @1999 @shreyjain1994 +/types/raven-for-redux/ @chiubaka +/types/raygun4js/ @xt0rted @BenjaminHarding +/types/rbac-a/ @tlaziuk +/types/rc/ @DanielRosenwasser +/types/rc-select/ @DenisTirilis +/types/rc-slider/ @mantasmarcinkus @mattoni @paustint @j-fro @Deanna2 +/types/rc-tree/ @johnnyreilly @Methuselah96 +/types/rcloader/ @panuhorsmalahti +/types/rdf-data-model/ @rubensworks +/types/rdf-js/ @rubensworks +/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-alice-carousel/ @endigo +/types/react-amplitude/ @rayzor65 +/types/react-animate-on-scroll/ @ralbuque +/types/react-app/ @prakarshpandey +/types/react-aria-menubutton/ @forabi @crohlfs +/types/react-aria-modal/ @forabi +/types/react-autocomplete/ @lstanden +/types/react-autosuggest/ @nicolas-schmitt @pjo256 @robessog @tbayne @cdeutsch @rosskevin +/types/react-avatar-editor/ @diogocorrea @gabsprates +/types/react-beautiful-dnd/ @varHarrie @bradleyayers @paustint @marknelissen +/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 +/types/react-bootstrap-date-picker/ @LKay @ssi-hu-antal-bodnar +/types/react-bootstrap-daterangepicker/ @ianks +/types/react-bootstrap-table/v2/ @flaub @alelode @UJosue10 +/types/react-bootstrap-table/ @flaub @alelode @UJosue10 @dawnmist @Ogglas +/types/react-bootstrap-typeahead/ @Guymestef @radziksh @PaitoAnderson +/types/react-breadcrumbs/ @KostyaEsmukov +/types/react-breadcrumbs-dynamic/ @mitsuruog +/types/react-broadcast/ @kandros +/types/react-burger-menu/ @radziksh +/types/react-calendar-heatmap/ @9renpoto +/types/react-calendar-timeline/ @radziksh @acemac +/types/react-cartographer/ @trevonmckay +/types/react-circular-progressbar/ @lstanden +/types/react-click-outside/ @screendriver +/types/react-codemirror/ @velveret @rudi-c +/types/react-coinhive/ @sktbcbbs +/types/react-collapse/ @Kimahriman +/types/react-collapsible/ @knegusen +/types/react-color/ @LKay @markspolakovs @mntdn +/types/react-confirm/ @santiagodoldan +/types/react-content-loader/ @alaatm @samwalshnz +/types/react-copy-to-clipboard/ @mabels @BernabeFelix +/types/react-copy-write/ @samhh @davej +/types/react-credit-cards/ @vstrimaitis @olefrank +/types/react-cropper/ @stepancar +/types/react-css-modules/ @KostyaEsmukov @skirsdeda +/types/react-css-transition-replace/ @LKay +/types/react-currency-formatter/ @pastushenkoy @Jeka-Vasiliev +/types/react-custom-scrollbars/v3/ @David-LeBlanc-git +/types/react-custom-scrollbars/ @David-LeBlanc-git @kittimiyo +/types/react-data-grid/v1/ @SupernaviX +/types/react-data-grid/v2/ @SupernaviX @KieranPeat @martinnov92 +/types/react-data-grid/ @SupernaviX @KieranPeat @martinnov92 @baso53 +/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-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-title/ @cleverguy25 +/types/react-dom/v15/ @MartynasZilinskas +/types/react-dom/ @MartynasZilinskas @theruther4d +/types/react-dom-factories/ @jgoz +/types/react-dragtastic/ @nscarcella +/types/react-dropzone/v2/ @matdube @LynxEyes @goblindegook @benbayard +/types/react-dropzone/v3/ @matdube @LynxEyes @goblindegook @benbayard @LKay +/types/react-dropzone/ @matdube @LynxEyes @goblindegook @benbayard @LKay @codeaid @jurosh @ekilah +/types/react-dynamic-number/ @eugrdn +/types/react-easy-chart/ @danzel +/types/react-event-listener/ @asvetliakov +/types/react-fa/ @flaub @patsissons @LKay +/types/react-facebook-login/ @apare @jankarres +/types/react-faux-dom/ @alitaheri @cleverguy25 @deviousm @hanai +/types/react-file-input/ @dmitryrogozhny +/types/react-file-reader-input/ @dmitryrogozhny @alitaheri +/types/react-flag-icon-css/ @jonfreedman +/types/react-flags-select/ @senukartur +/types/react-flatpickr/ @begincalendar +/types/react-flex/ @pushplay +/types/react-flexr/ @pushplay +/types/react-fontawesome/ @timurrustamov @dublicator @vincaslt @gavingregory +/types/react-form/v1/ @cameron-mcateer +/types/react-form/ @cameron-mcateer @TiuSh +/types/react-foundation/ @danielearwicker +/types/react-gateway/ @jsonunger +/types/react-geosuggest/ @brmenchl +/types/react-global-configuration/ @ryokik +/types/react-google-maps-loader/ @vasilysn +/types/react-google-places-suggest/ @vasilysn +/types/react-google-recaptcha/ @KoalaHuman +/types/react-gravatar/ @invliD +/types/react-grid-layout/ @abirkholz @alitaheri @ZheyangSong @andrewhathaway +/types/react-hamburger-menu/ @grzesie2k +/types/react-hammerjs/v0/ @jsonunger +/types/react-hammerjs/ @jsonunger @cecchi +/types/react-helmet/v4/ @evanbb @isman-usoh +/types/react-helmet/ @evanbb @isman-usoh @lith-light-g @sammkj @yuit +/types/react-helmet-async/ @forabi +/types/react-highlight/ @joshuakgoldberg +/types/react-highlight-words/ @mhegazy @diogodca +/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-gallery/ @adamwpc +/types/react-imageloader/ @stephenjelfs +/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-input-autosize/ @jsonunger @franklixuefei +/types/react-input-calendar/ @stepancar +/types/react-input-mask/v1/ @apare +/types/react-input-mask/ @apare @dima7a14 +/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-deprecated/ @seansfkelley +/types/react-joyride/ @kdy1 +/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-lazyload/ @m0a +/types/react-lazylog/ @benjaminRomano +/types/react-leaflet/ @danzel @davschne @yuit +/types/react-lifecycle-component/ @pixelshaded +/types/react-list/ @buptyyf @tomshen +/types/react-loadable/ @Kovensky @odensc @ianks @tlaziuk @iMobs +/types/react-loader/ @artfuldev +/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-mixin/ @tkqubo +/types/react-modal/ @radziksh @drewnoakes @homburg @ttamminen @hallowatcher @peterblazejewicz +/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-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-communications/ @huhuanming @PaitoAnderson +/types/react-native-custom-tabs/ @philnova +/types/react-native-datepicker/ @jacobbaskin +/types/react-native-dialog/ @MrLuje +/types/react-native-dialogflow/ @jasonmerino +/types/react-native-doc-viewer/ @iRoachie +/types/react-native-document-picker/ @plantain-00 +/types/react-native-drawer/ @jnbt @suniahk +/types/react-native-drawer-layout/ @jmfirth +/types/react-native-elevated-view/ @fhelwanger +/types/react-native-fabric/ @josephroque +/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-htmlview/ @ifiokjr +/types/react-native-i18n/ @VincentLanglet +/types/react-native-indicators/ @ifiokjr +/types/react-native-keep-awake/ @huhuanming +/types/react-native-keyboard-spacer/ @VincentLanglet +/types/react-native-keychain/ @DavidFarinha +/types/react-native-loading-spinner-overlay/ @fhelwanger +/types/react-native-material-design-searchbar/ @iRoachie +/types/react-native-material-kit/ @iRoachie @timwangdev +/types/react-native-material-textfield/ @mindhivefi @iRoachie +/types/react-native-material-ui/ @iRoachie +/types/react-native-mauron85-background-geolocation/ @djereg +/types/react-native-mixpanel/ @r3nya +/types/react-native-modalbox/ @iRoachie +/types/react-native-multi-slider/ @Slessi +/types/react-native-navbar/ @ryokik +/types/react-native-orientation/ @MoLow +/types/react-native-permissions/ @vincentlanglet +/types/react-native-photo-view/ @christianchown +/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-safari-view/ @mrand01 +/types/react-native-scrollable-tab-view/ @CaiHuan @egorshulga +/types/react-native-sensor-manager/ @SahinVardar +/types/react-native-settings-list/ @MrLuje +/types/react-native-share/ @marknelissen +/types/react-native-snap-carousel/ @jnbt @j-fro @gazaret @GuillaumeAmat @VitorLuizC +/types/react-native-sortable-grid/ @j-fro +/types/react-native-sortable-list/ @sivolobov @RookY2K +/types/react-native-sqlite-storage/ @dryganets @cavarzan +/types/react-native-star-rating/ @iRoachie +/types/react-native-svg-charts/ @krzysztof-miemiec +/types/react-native-svg-uri/ @iRoachie +/types/react-native-swiper/ @CaiHuan @huhuanming @mhcgrq +/types/react-native-tab-navigator/ @iRoachie +/types/react-native-tab-view/ @kaoDev @iRoachie @timwangdev +/types/react-native-text-input-mask/ @RodrigoAWeber +/types/react-native-toast-native/ @bm-software +/types/react-native-touch-id/ @huhuanming @gazaret @jinshin1013 +/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-material-bottom-tabs/ @iRoachie +/types/react-no-ssr/ @rafalfilipek +/types/react-notification-system/ @GiedriusGrabauskas @DeividasBakanas @LKay @sztobar +/types/react-notification-system-redux/ @LKay +/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-overlays/ @aaronbeall @vitosamson +/types/react-owl-carousel/ @tbounsiar @igorissen @KennethanCeyer +/types/react-paginate/v4/ @deevus @wouterhardeman @pegel03 @archy-bold +/types/react-paginate/ @deevus @wouterhardeman @pegel03 @archy-bold @yasupeke +/types/react-places-autocomplete/ @guilhermehubner @r3nya +/types/react-plotly.js/ @jonfreedman +/types/react-pointable/ @istefo @mdibyo +/types/react-popover/ @jacoporicare +/types/react-portal/v3/ @shuntksh +/types/react-portal/ @shuntksh @HorusGoul +/types/react-primitives/ @aghoneim92 @davidpett +/types/react-props-decorators/ @tkqubo +/types/react-qr-reader/ @davidkevork +/types/react-radio-group/ @jsonunger +/types/react-recaptcha/ @mhegazy @zzanol +/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 +/types/react-redux-i18n/ @clementdevos +/types/react-redux-toastr/ @Smiche @artyomsv @kulmajaba +/types/react-relay/ @graphcool @voxmatt @alloy @npirotte @ckknight @kastermester +/types/react-request/ @dannycochran +/types/react-resize-detector/ @matthew-matvei @aMoniker @rdrgn +/types/react-resolver/ @forabi +/types/react-responsive/v1/ @asvetliakov +/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-bootstrap/ @vlesierse @LKay @olmobrutall +/types/react-router-config/ @lith-light-g @johnnyreilly +/types/react-router-dom/ @tkrotoff @huy-nguyen @p-jackson @johnnyreilly +/types/react-router-hash-link/ @zoompie +/types/react-router-native/ @ezintz @fhelwanger +/types/react-router-navigation/ @kaoDev @johnnyreilly +/types/react-router-navigation-core/ @kaoDev @johnnyreilly +/types/react-router-param-link/ @mtsg +/types/react-router-redux/v3/ @isman-usoh @noah79 @rosendi +/types/react-router-redux/v4/ @isman-usoh @noah79 @rosendi @LKay @DovydasNavickas +/types/react-router-redux/ @huy-nguyen @8398a7 @mykolas +/types/react-s-alert/ @mitsuruog +/types/react-scroll/ @sudoplz @GiedriusGrabauskas +/types/react-scrollbar/ @stephenjelfs +/types/react-select/v1/ @Hesquibet @giladgray @iebaker @skirsdeda @vujevits @devrelm @MartynasZilinskas @onatm @ninjaferret @tehbi4 @misantronic @darkartur @eps1lon @endurance @RCGuillaume +/types/react-select/ @claasahl @jonfreedman +/types/react-share/ @icopp +/types/react-show-more/ @naortor +/types/react-side-effect/ @remojansen @0xcaff +/types/react-sidebar/ @jeroenvervaeke +/types/react-sketchapp/ @ricokahler @DomiR +/types/react-slick/ @andrewBalekha @GiedriusGrabauskas @r3nya +/types/react-slider/ @jsonunger +/types/react-smooth-scrollbar/ @asvetliakov +/types/react-sortable-hoc/ @NoHomey @charlesrey +/types/react-sortable-pane/ @rhysd +/types/react-sortable-tree/ @wouterhardeman @jzoric @kevinsperrine @acemac @dolezel +/types/react-sound/ @koss-lebedev +/types/react-sparklines/ @henrinormak +/types/react-spinkit/v1/ @tkqubo @mleko @pelotom +/types/react-spinkit/ @tkqubo @mleko @pelotom @zzanol +/types/react-sticky/ @curtisw0 @ajhyndman +/types/react-sticky-el/ @jbraithwaite +/types/react-stickynode/ @tstirrat +/types/react-stripe-elements/ @dan-j @santiagodoldan @sonnysangha @9y5 @thchia +/types/react-svg-inline/ @kiyopikko +/types/react-svg-pan-zoom/ @huy-nguyen +/types/react-swf/ @stepancar +/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-table-filter/ @gjsln +/types/react-tabs/ @danez +/types/react-tag-input/ @Ogglas @jankarres @matthewberryman +/types/react-tagcloud/ @wassname +/types/react-tagsinput/ @mykter +/types/react-tap-event-plugin/ @mxl +/types/react-test-renderer/v15/ @arvitaly @lochbrunner @lochbrunner @johnnyreilly +/types/react-test-renderer/ @arvitaly @lochbrunner @johnnyreilly @jgoz +/types/react-tether/ @ryprice +/types/react-text-mask/ @guilhermehubner @cavarzan @needpower +/types/react-textarea-autosize/ @asvetliakov @zry656565 +/types/react-timeout/ @kerwynrg +/types/react-toastify/ @icopp +/types/react-toastr/ @shssoichiro @DanRegazzi +/types/react-toggle/v2/ @LKay @jsonunger +/types/react-toggle/ @LKay +/types/react-tooltip/ @DeividasBakanas +/types/react-touch/ @grzesie2k +/types/react-tracking/ @alloy +/types/react-transition-group/v1/ @LKay +/types/react-transition-group/ @LKay @Epskampie @ybiquitous +/types/react-treeview/ @janslow +/types/react-truncate/ @mattvperry +/types/react-twitter-auth/ @paulfasola @loginwashere +/types/react-user-tour/ @ccancellieri +/types/react-vertical-timeline-component/ @stephane-monnot +/types/react-virtual-keyboard/ @bsurai +/types/react-virtualized/ @kaoDev @guntherjh @wasd171 @szabolcsx @kraenhansen @Stevearzh @mgoszcz2 @brandonhall +/types/react-virtualized-select/ @seansfkelley +/types/react-webcam/ @squat +/types/react-weui/ @tairan +/types/react-widgets/ @rogierschouten @sanyatuning @frodehansen2 @r3nya @MBillemaz +/types/react-widgets-moment/ @dawnmist +/types/react-window/ @martynaskadisa +/types/react-youtube/ @kgtkr +/types/react-youtube-embed/ @charles-salmon +/types/reactable/ @spielc +/types/reactcss/ @chrisgervang @LKay +/types/reactstrap/v4/ @alihammad @mfal @danilobjr @fabiopaiva +/types/reactstrap/ @alihammad @mfal @danilobjr @FaithForHumans @KurtPreston @timc13 @patrickrgaffney @prabodht +/types/read/ @timjk +/types/read-chunk/ @crispybee +/types/read-package-tree/ @mgroenhoff +/types/read-pkg/ @jdxcode +/types/read-pkg-up/ @dudeofawesome @jdxcode +/types/readdir-enhanced/ @mrmlnc +/types/readdir-stream/ @Bartvds +/types/readline-sync/ @jonestristand +/types/readline-transform/ @dex4er +/types/reapop/ @Barrokgl +/types/recaptcha2/ @l-jonas +/types/recase/ @18steps +/types/recharts/ @mthmulders @rapmue @royxue @ZheyangSong @richbai90 @caspeco-dan @pkeuter @jrsaunde @paulmelnikow @crusectrl @apalugniok +/types/recluster/ @dex4er +/types/recompose/ @iskandersierra @mrapogee @clayne11 @Pajn @lucasterra +/types/reconnect-core/ @thw0rted +/types/reconnectingwebsocket/ @nguarracino +/types/recursive-readdir/v1/ @elisee +/types/recursive-readdir/ @elisee @MicahZoltu +/types/redis/ @soywiz @CodeAnimal @MugeSo @UppaJung @Rokt33r @43081j @barnski +/types/redis-errors/ @43081j +/types/redis-mock/ @BendingBender +/types/redis-rate-limiter/ @westy92 +/types/redis-scripto/ @westy92 +/types/redlock/v2/ @chrootsu +/types/redlock/ @chrootsu @BendingBender +/types/redom/ @RauliL @nemoinho +/types/reduce-reducers/ @huy-nguyen +/types/redux-action/ @newraina +/types/redux-action-utils/ @tkqubo +/types/redux-actions/ @jaysoo @alexgorbatchev @alechill @alexey-pelykh +/types/redux-async-queue/ @andreiho +/types/redux-auth-wrapper/v1/ @LKay +/types/redux-auth-wrapper/ @LKay +/types/redux-batched-subscribe/ @mDibyo +/types/redux-debounced/ @seansfkelley +/types/redux-devtools/ @mc-petry +/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-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-immutable-state-invariant/ @remojansen @highflying +/types/redux-infinite-scroll/ @silkyfray +/types/redux-injectable-store/ @unindented +/types/redux-localstorage/ @LKay +/types/redux-localstorage-debounce/ @LKay +/types/redux-localstorage-filter/ @LKay +/types/redux-logger/ @arusakov @kgroat +/types/redux-mock-store/v0/ @MarianPalkus +/types/redux-mock-store/ @MarianPalkus +/types/redux-optimistic-ui/ @asvetliakov +/types/redux-orm/ @keenondrums +/types/redux-pack/ @tansongyang @quicksnap @no-stack-dub-sack +/types/redux-persist-transform-encrypt/ @LKay @dante-101 +/types/redux-persist-transform-filter/ @LKay +/types/redux-promise/ @molekilla @xStrom +/types/redux-promise-middleware/ @ianks +/types/redux-recycle/ @LKay +/types/redux-router/ @stepancar +/types/redux-saga-tester/ @BenLorantfy +/types/redux-shortcuts/ @tstirrat +/types/redux-socket.io/ @snakeego +/types/redux-storage/ @asvetliakov +/types/redux-storage-engine-jsurl/ @screendriver +/types/redux-storage-engine-localstorage/ @screendriver +/types/redux-test-utils/ @huwmartin +/types/redux-testkit/ @Bookler96 +/types/redux-ui/ @andyshuxin +/types/ref/ @loyd +/types/ref-array/ @loyd +/types/ref-array-di/ @keerthi16 @KiranNiranjan +/types/ref-napi/ @keerthi16 @KiranNiranjan +/types/ref-struct/ @loyd +/types/ref-struct-di/ @keerthi16 @KiranNiranjan +/types/ref-union/ @loyd +/types/ref-union-di/ @keerthi16 @KiranNiranjan +/types/reflux/v0/ @mauricedb +/types/reflux/ @mauricedb @LiangZugeng +/types/registry-auth-token/ @mauricedb @LiangZugeng +/types/relateurl/ @tkrotoff +/types/relaxed-json/ @18steps +/types/relay-runtime/ @voxmatt @alloy +/types/remarkable/ @makepost +/types/remote-redux-devtools/ @ColinEberhardt @unindented @mamodom @colindekker +/types/remove-markdown/ @RagibHasin +/types/rename/ @Aankhen +/types/replace-ext/ @DeividasBakanas +/types/req-cwd/ @Alorel +/types/request/ @soywiz @bonnici @Bartvds @joeskeen @ccurrens @lookfirst @mastermatt @josecolella +/types/request-as-curl/ @atd-schubert +/types/request-ip/ @mrhen +/types/request-promise/ @cglantschnig @joeskeen @AyaMorisawa @mastermatt +/types/request-promise-native/ @gustavohenke @mastermatt +/types/requestidlecallback/ @hax +/types/requestretry/ @EricByers @trainerbill +/types/require-dir/ @weekens +/types/require-directory/ @Igmat +/types/require-from-string/ @ikatyang +/types/require-relative/ @MattiasBuelens +/types/requirejs/ @jbaldwin +/types/requirejs-domready/ @lefb766 +/types/resemblejs/ @pimterry +/types/reservoir/ @danvk +/types/resize-img/ @higuri +/types/resolve/ @marionebl @ajafff +/types/resolve-from/ @unional +/types/resourcejs/ @shaunluttin +/types/response-time/ @urossmolnik @TonyPythoneer +/types/rest/ @Nemo157 +/types/restangular/ @borisyankov +/types/restful.js/ @tkqubo +/types/restify/v4/ @blittle @stevehipwell +/types/restify/v5/ @blittle @stevehipwell @leanazulyoro +/types/restify/ @blittle @stevehipwell @leanazulyoro @mgebundy +/types/restify-cookies/ @weekens +/types/restify-cors-middleware/ @dthunell +/types/restify-errors/ @stevehipwell +/types/restify-plugins/ @KostyaTretyak +/types/restler/ @cyrilschumacher +/types/restling/ @loghorn +/types/resumablejs/ @DanielMcAssey +/types/rethinkdb/ @alexgorbatchev @AdrianFarmadin @kondi @hoishin +/types/retry/ @krenor +/types/retry-as-promised/ @Raigen +/types/rev-hash/ @ikatyang +/types/revalidate/ @alex3165 +/types/revalidator/ @brewsoftware +/types/reveal/ @robertop87 @Nava2 +/types/rewire/ @borislavjivkov @CaselIT +/types/rfc2047/ @mugifly +/types/rgrove__parse-xml/ @petejohanson +/types/rheostat/ @SashaBayan @kourge +/types/rickshaw/ @niemyjski +/types/rimraf/ @soywiz @e-cloud @bash +/types/riot/ @Stubb0rn +/types/riot-api-nodejs/ @zafixlrp +/types/riot-games-api/ @xstoudi +/types/riot-route/ @karak +/types/riotcontrol/ @chrootsu +/types/riotjs/ @vvakame +/types/rison/ @impworks +/types/rivets/ @TrevorDev @matjanos +/types/rmfr/ @pluma +/types/roads/ @dancespiele +/types/roads-server/ @dancespiele +/types/roll/ @icopp +/types/rolling-rate-limiter/ @l-jonas +/types/rollup-plugin-json/ @asmockler @hotell +/types/ronomon__crypto-async/ @BendingBender +/types/rosie/ @abner @subvertallchris @abukurov +/types/roslib/ @Pro @skycoop @dgorobopec +/types/rot-js/ @atiaxi +/types/round-to/ @seangenabe +/types/route-parser/ @ianks @bobbuehler +/types/routie/ @Adilson +/types/royalslider/ @csrakowski +/types/rpio/ @DominikPalo @Pencl +/types/rrc/ @DeividasBakanas +/types/rsmq/ @MugeSo +/types/rsmq-worker/ @MugeSo +/types/rss/ @secondwtq +/types/rsvp/ @chriskrycho +/types/rsync/ @philippstucki +/types/rtree/ @oefirouz +/types/run-parallel/ @mrmlnc +/types/run-parallel-limit/ @mrmlnc +/types/run-sequence/ @k-kagurazaka +/types/runes/ @viralpickaxe +/types/rword/ @icopp +/types/rx/ @Igorbek +/types/rx-angular/ @mickdelaney +/types/rx-core/ @Igorbek @mizunashi-mana +/types/rx-core-binding/ @Igorbek +/types/rx-dom/ @oliverw +/types/rx-jquery/ @Igorbek +/types/rx-lite/ @Igorbek +/types/rx-lite-aggregates/ @Igorbek +/types/rx-lite-async/ @zoetrope @Igorbek +/types/rx-lite-backpressure/ @Igorbek +/types/rx-lite-coincidence/ @Igorbek +/types/rx-lite-experimental/ @Igorbek +/types/rx-lite-joinpatterns/ @Igorbek +/types/rx-lite-testing/ @Igorbek +/types/rx-lite-time/ @Igorbek +/types/rx-lite-virtualtime/ @Igorbek +/types/rx.wamp/ @darkl +/types/s3-download-stream/ @everettcaleb +/types/s3-upload-stream/ @geoffreak +/types/safari-extension/ @luukd +/types/safari-extension-content/ @luukd +/types/safe-compare/ @bevalorous +/types/safe-json-stringify/ @ericbyers +/types/safe-regex/ @mhegazy +/types/sails.io.js/ @arvitaly +/types/saml2-js/ @horiuchi +/types/saml20/ @HackerUndKoch +/types/samlp/ @horiuchi +/types/sammy/ @borisyankov @oising +/types/sanctuary/ @davidchambers @cortopy @piq9117 +/types/sandboxed-module/ @svi3c +/types/sane/ @BendingBender +/types/sane-email-validation/ @ForbesLindesay +/types/sanitize-filename/ @Nemo157 +/types/sanitize-html/ @rogierschouten @afshin @BehindTheMath @biermeester @WillGibson @sirMerr +/types/sap__xsenv/ @mad-mike +/types/sass-graph/ @marvinhagemeister +/types/sass-webpack-plugin/ @AepKill +/types/sat/ @omni360 +/types/satnav/ @DotNetNerd +/types/saywhen/ @SeanSobey +/types/scalike/ @ryoppy +/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-profiler/ @ramblurr +/types/scriptjs/ @ssttevee +/types/scroll-into-view/ @zivni +/types/scroller/ @haskellcamargo +/types/scrollreveal/ @Davidblkx +/types/scrolltofixed/ @bmdixon +/types/scrypt/ @WhiteAbeLincoln +/types/scrypt-async/ @xStrom @stesix +/types/scrypt-js/ @danwbyrne +/types/scryptsy/ @micksatana +/types/sdp-transform/ @loc +/types/seamless/ @danmana +/types/seamless-immutable/ @alex3165 @xsburg @geirsagberg +/types/secp256k1/ @anler +/types/seed-random/ @l-jonas +/types/seededshuffle/ @urish +/types/seedrandom/ @kernhanda +/types/segment-analytics/ @fongandrew +/types/select2/v3/ @borisyankov +/types/select2/ @borisyankov @denisname +/types/selectables/ @renjfk +/types/selectize/ @adidahiya @naBausch +/types/selenium-standalone/ @SanderDeWaal1992 +/types/selenium-webdriver/v2/ @BillArmstrong @Kuniwak @cnishina +/types/selenium-webdriver/ @BillArmstrong @Kuniwak @cnishina @SupernaviX @bendxn +/types/semantic-ui/ @leonard-thieu +/types/semantic-ui-accordion/ @leonard-thieu +/types/semantic-ui-api/ @leonard-thieu +/types/semantic-ui-checkbox/ @leonard-thieu +/types/semantic-ui-dimmer/ @leonard-thieu +/types/semantic-ui-dropdown/ @leonard-thieu +/types/semantic-ui-embed/ @leonard-thieu +/types/semantic-ui-form/ @leonard-thieu +/types/semantic-ui-modal/ @leonard-thieu +/types/semantic-ui-nag/ @leonard-thieu +/types/semantic-ui-popup/ @leonard-thieu +/types/semantic-ui-progress/ @leonard-thieu +/types/semantic-ui-rating/ @leonard-thieu +/types/semantic-ui-search/ @leonard-thieu +/types/semantic-ui-shape/ @leonard-thieu +/types/semantic-ui-sidebar/ @leonard-thieu +/types/semantic-ui-site/ @leonard-thieu +/types/semantic-ui-sticky/ @leonard-thieu +/types/semantic-ui-tab/ @leonard-thieu +/types/semantic-ui-transition/ @leonard-thieu +/types/semantic-ui-visibility/ @leonard-thieu +/types/semaphore/ @mhfrantz @Alorel +/types/semver/ @Bartvds @BendingBender @LucianBuzzo +/types/semver-compare/ @vincekovacs +/types/semver-diff/ @chrismbarr +/types/semver-sort/ @LogvinovLeon +/types/sencha_touch/ @brian428 +/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-cursor-pagination/ @pilagod +/types/sequelize-fixtures/ @cschwarz +/types/sequencify/ @npenin +/types/sequester/ @Strate +/types/serialize-error/ @thomasthiebaud +/types/serialize-javascript/ @lith-light-g +/types/serialport/v4/ @codefoster +/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/servicenow/ @bryceg +/types/session-file-store/ @blendsdk @rokt33r +/types/set-cookie-parser/ @nickp10 +/types/set-value/ @DanielRosenwasser +/types/settings/ @shreyjain1994 +/types/sha1/ @arcdev1 +/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/sheetify/ @toddself +/types/shell-escape/ @nenadalm +/types/shell-quote/ @jason0x43 +/types/shelljs/ @nikeee @voy @gkalpak @pheromonez +/types/shelljs-exec-proxy/ @qlonik +/types/shimmer/ @kjin +/types/shipit/ @cyrilschumacher +/types/shipit-utils/ @cyrilschumacher +/types/shopify-buy/ @openminder @straiforos @totemika +/types/shortid/ @stpettersens @despairblue +/types/shot/ @AJamesPhillips +/types/should-sinon/ @Arylo +/types/showdown/ @cbowdon @tan9 @arielsaldana +/types/shrink-ray/ @forabi +/types/siema/ @Irmiz @0x6368656174 @samnau +/types/siesta/ @bquarmby +/types/sigmajs/ @qinfchen +/types/sigmund/ @BendingBender +/types/signale/ @resir014 @kingdaro @rjoydip +/types/signalr/ @borisyankov @keesey @GiedriusGrabauskas +/types/signalr-no-jquery/ @gjoshevski +/types/signals/ @diullei +/types/signature_pad/ @AbubakerB @jrmihalick @leejaedus +/types/simple-assign/ @NoHomey +/types/simple-cw-node/ @vvakame +/types/simple-lru/ @NN--- +/types/simple-mock/ @leonyu +/types/simple-oauth2/v1/ @mad-mike @troy-lamerton @netux +/types/simple-oauth2/ @mad-mike @troy-lamerton @netux +/types/simple-peer/ @tlaziuk +/types/simple-url-cache/ @a-lucas +/types/simple-websocket/ @dex4er +/types/simple-xml/ @notVitaliy +/types/simplebar/v1/ @gregonnet @leonard-thieu +/types/simplebar/ @gregonnet @leonard-thieu +/types/simplemde/ @Scalesoft +/types/simplesmtp/ @rogierschouten +/types/simplestorage.js/ @axelcostaspena @mxl +/types/single-line-log/ @ffflorian +/types/single-spa-react/ @Garrett-Smith-iq +/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j @joshuakgoldberg +/types/sinon-as-promised/ @igrayson +/types/sinon-chai/v2/ @kazimanzurrashid @jedmao +/types/sinon-chai/ @kazimanzurrashid @jedmao @elpdpt +/types/sinon-chrome/ @pimterry @crimx @kobanyan +/types/sinon-express-mock/ @jpchip @tlaziuk +/types/sinon-mongoose/ @stevehipwell +/types/sinon-stub-promise/ @vintem @tstackhouse +/types/sinon-test/ @mummybot +/types/sip.js/ @decyrus +/types/sipml/ @chookies +/types/sitemap2/ @shundy +/types/six-runtime/ @493636333 +/types/sizzle/ @leonard-thieu +/types/sjcl/ @Evgenus +/types/skatejs/ @Hotell +/types/ski/ @AyaMorisawa +/types/skyway/ @nakakura +/types/slack-mock/ @kkalavantavanich +/types/slack-node/ @geoffreak +/types/slack-winston/ @BlueHatbRit +/types/slackdown/ @nju33 +/types/slackify-html/ @hypexr +/types/slate/ @andykent @majelbstoat @JanLoebel @YangusKhan @kalley @Kornil @isubasti +/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/sleep/ @rajarz +/types/slickgrid/ @jbaldwin +/types/slideout/ @ToastHawaii +/types/slimerjs/ @alexwall +/types/slocket/ @BendingBender +/types/slug/ @mhegazy +/types/smart-fox-server/ @ChanceM +/types/smoothscroll-polyfill/ @kryops +/types/smtp-server/v1/ @markisme @Taisiias +/types/smtp-server/ @markisme @Taisiias @dex4er +/types/smtpapi/ @a-morales +/types/snappy/ @reconbot +/types/snapsvg/ @lhk @mattanja @kant2002 +/types/snazzy-info-window/ @milosd92 +/types/snekfetch/ @ANekoIsFineToo @ShayBox @Dev-Yukine +/types/snoowrap/ @vitosamson @TheAppleFreak +/types/snowboy/ @dolanmiu +/types/socket.io/ @progre @divillysausages @florentpoujol @KentarouTakeda @gigi @BrainMaestro +/types/socket.io-client/ @progre @divillysausages @florentpoujol +/types/socket.io-p2p/ @saenglert +/types/socket.io-parser/ @plantain-00 +/types/socket.io-redis/ @nupplaphil @seeLuck +/types/socket.io.users/ @kataras +/types/socketio-jwt/ @ehallander9591 +/types/socketio-jwt-auth/ @codeanimal +/types/socketio-wildcard/ @BendingBender +/types/socketty/ @Nax +/types/sockjs/ @pmccloghrylaing +/types/sockjs-client/ @vladev @arusakov @BendingBender @renjfk +/types/solidity-parser-antlr/ @LogvinovLeon @albrow +/types/solr-client/ @liul85 +/types/solution-center-communicator/ @dami-gg +/types/sort-array/ @mrmlnc +/types/sortablejs/ @Maw-Fox +/types/soundmanager2/ @elton2048 +/types/soupbintcp/ @jewbre +/types/source-list-map/ @e-cloud +/types/source-map-support/ @Bartvds @jason0x43 +/types/space-pen/ @vvakame +/types/spark-md5/ @bastienmoulia +/types/sparkly/ @BendingBender +/types/sparkpost/v1/ @geoffreak +/types/sparkpost/ @geoffreak @bondz @vvu +/types/sparqljs/ @AlexeyMz +/types/spatialite/ @atd-schubert +/types/spdx-correct/ @jinwoo +/types/spdx-satisfies/ @jinwoo +/types/spdy/ @tony19 +/types/speakeasy/ @legendecas @mrOlorin @xeoneux +/types/speakingurl/ @Goldsmith42 +/types/spectacle/ @zmaybury +/types/spectrum/ @M-Zuber @Ailrun +/types/split/ @marcinporebski +/types/split.js/ @icholy +/types/split2/ @mugeso +/types/splunk-bunyan-logger/ @bricka +/types/splunk-logging/ @bricka +/types/spotify-api/ @skovmand +/types/spotify-web-playback-sdk/ @Festify @mraerino @NeoLegends +/types/sprintf/ @soywiz @BendingBender +/types/sprintf-js/ @jasonswearingen @BendingBender +/types/sql-bricks/ @adn05 @paleo +/types/sql.js/ @Hozuki +/types/sqlanywhere/ @pkeuter +/types/sqlite3/ @nmalaguti @dpyro @BehindTheMath +/types/sqlstring/ @marvinhagemeister +/types/squirejs/ @bradleyayers +/types/srp/ @Patman64 +/types/ssh-key-decrypt/ @BendingBender +/types/ssh2/ @tkQubo @rbuckton +/types/ssh2-sftp-client/ @igrayson @ascariandrea @kartik2406 +/types/ssh2-streams/ @rbuckton +/types/sshpk/ @mabels +/types/stack-mapper/ @rogierschouten +/types/stack-trace/ @exceptionless +/types/stack-utils/ @BendingBender +/types/stacktrace-js/ @exceptionless @pilagod +/types/stale-lru-cache/ @cxcorp +/types/stampit/v2/ @koresar +/types/stampit/ @koresar @lummish +/types/stamplay-js-sdk/ @ridermansb +/types/starwars-names/ @claasahl +/types/stat-mode/ @BendingBender +/types/stats.js/ @gregolai @hberntsen @danvk +/types/statsd-client/ @peterkooijmans @chrisleck +/types/statuses/ @tkrotoff @BendingBender +/types/std-mocks/ @jdxcode +/types/steam/ @kant2002 +/types/steam-client/ @Slessi +/types/steam-login/ @Nicell +/types/steam-totp/ @phenomax +/types/steamid/ @Slessi +/types/steed/ @Paul-Isache +/types/stellar-sdk/ @carl-foster @tristonj @pselden @maxbause +/types/stemmer/ @will-ockmore +/types/sticky-cluster/ @paustint +/types/stompjs/ @jimic @Dr4k4n +/types/stoppable/ @EricByers +/types/store/ @vbortone @harry0000 @Ky6uk +/types/storybook-addon-jsx/ @jameslnewell +/types/storybook__addon-a11y/ @hyunseob +/types/storybook__addon-actions/ @joscha @jicjjang +/types/storybook__addon-backgrounds/ @hyunseob +/types/storybook__addon-centered/ @kiyopikko +/types/storybook__addon-info/ @mkornblum @fyrkant +/types/storybook__addon-jest/ @halfmatthalfcat +/types/storybook__addon-knobs/ @joscha @martynaskadisa @amacleay +/types/storybook__addon-links/ @joscha @jessepinho +/types/storybook__addon-notes/ @joscha @amacleay +/types/storybook__addon-options/ @joscha @simonhn @amacleay +/types/storybook__addon-storyshots/ @bradleyayers +/types/storybook__react/ @joscha @wapgear +/types/storybook__react-native/ @joscha @wapgear @alechill @iRoachie +/types/storybook__vue/ @pntgupta +/types/stream-buffers/ @Jason3S +/types/stream-chain/ @uhop +/types/stream-csv-as-json/ @uhop +/types/stream-each/ @djcsdy +/types/stream-json/ @uhop +/types/stream-meter/ @mugeso +/types/stream-series/ @k-kagurazaka +/types/stream-shift/ @djcsdy +/types/stream-throttle/ @danwbyrne +/types/stream-to-array/v0/ @Bartvds +/types/stream-to-array/ @Bartvds @BendingBender +/types/stream-to-promise/ @Alorel +/types/streaming-json-stringify/ @BendingBender +/types/streamjs/ @erosb +/types/streamtest/ @lummish +/types/strftime/ @cyrilschumacher +/types/strict-uri-encode/ @hoishin +/types/string/ @basp +/types/string-format/ @lal12 +/types/string-hash/ @ethanrubio +/types/string-similarity/ @ragtime +/types/string-template/ @TonyPythoneer +/types/string-width/ @jacobbubu +/types/string_score/ @marcinporebski +/types/stringify-object/ @khoomeister +/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-checkout/ @cgwrench +/types/stripe-v2/ @ejsmith @amritk @adamcmiel @jleider @galuszkak +/types/stripe-v3/ @ejsmith @amritk @adamcmiel @jleider @galuszkak +/types/stripejs/ @RobinvanTienhoven +/types/strong-cluster-control/ @shuntksh +/types/strong-error-handler/ @blankstar85 +/types/strong-log-transformer/ @azasypkin +/types/strophe/ @DavidKDeutsch +/types/structured-source/ @azu +/types/styled-components/ @Igorbek @Igmat +/types/styled-jsx/ @R1ZZU +/types/styled-system/ @maxdeviant @phobon @zephraph @damassi @alloy @maoueh @lavoaster +/types/stylelint/v7/ @alan-agius4 +/types/stylelint/ @alan-agius4 +/types/stylelint-webpack-plugin/ @bahlo +/types/stylus/ @SomaticIT +/types/subscribe-ui-event/ @wangcheng678 +/types/subsume/ @BendingBender +/types/succinct/ @EnableSoftware +/types/sudo-block/ @BendingBender +/types/suitescript/ @darrenhillconsulting +/types/summernote/ @wstaelens @nusantara-cloud +/types/sumo-logger/ @forabi @clementallen +/types/suncalc/ @horiuchi +/types/superagent/v2/ @varju @NicoZelaya @mxl +/types/superagent/ @NicoZelaya @mxl @paplorinc @shreyjain1994 @zopf @beeequeue +/types/superagent-bunyan/ @bricka +/types/superagent-no-cache/ @mxl +/types/superagent-prefix/ @mxl +/types/supercluster/ @DenisCarriere +/types/superstruct/ @edwardsnare +/types/supertest/ @varju @pietu +/types/supertest-as-promised/ @tkrotoff +/types/supports-color/v3/ @mgroenhoff +/types/supports-color/ @mgroenhoff @mtraynham +/types/svg-injector/ @poke +/types/svg-parser/ @mrmlnc +/types/svg-path-bounding-box/ @NotWoods +/types/svg-path-parser/ @tyru +/types/svg-sprite/ @tkqubo +/types/svg-sprite-loader/ @rynclark +/types/svg2png/ @hansrwindhoff @sccgithub +/types/svg4everybody/ @BendingBender +/types/svgjs.draggable/ @LiFeleSs +/types/svgjs.resize/ @jkevingutierrez +/types/svgo/ @bradleyayers @giladgray @Aankhen +/types/sw-precache/ @JounQin +/types/sw-precache-webpack-plugin/ @JounQin +/types/swag/ @shiwano +/types/swagger-express-middleware/ @alexandreroba +/types/swagger-express-mw/ @micmro +/types/swagger-express-validator/ @pinguet62 +/types/swagger-hapi/ @micmro +/types/swagger-jsdoc/ @drGrove +/types/swagger-node-runner/ @micmro +/types/swagger-parser/ @Tobias4872 @EricHenry +/types/swagger-restify-mw/ @micmro +/types/swagger-sails-hook/ @micmro +/types/swagger-schema-official/ @mohsen1 @bsouthga @nimerritt +/types/swagger-tools/ @bricka +/types/swagger-ui-dist/ @haowen737 +/types/swagger-ui-express/ @dmitryrogozhny +/types/swaggerize-express/ @mugeso @nickmorton +/types/swe-validation/ @hjalmers +/types/swfobject/ @rou +/types/swiftclick/ @Laurence-C +/types/swig/ @CodeAnimal @soywiz +/types/swig-email-templates/ @mrhen @micksatana +/types/swipe/ @kant2002 +/types/swiper/v3/ @sgaliano @lucax88x +/types/swiper/ @sgaliano @lucax88x @ematseruk @odahcam +/types/swipeview/ @borisyankov +/types/switchery/ @bgrieder @claylaut +/types/swiz/ @jedigo +/types/sylvester/ @StephaneAlie +/types/synaptic/ @ToastHawaii @austincummings +/types/systeminformation/ @PixelcrabAT +/types/systemjs/ @ludohenin @NathanWalker @GiedriusGrabauskas @aluanhaddad +/types/table/ @evanshortiss @mrmlnc +/types/tableau/ @protip +/types/tabris-plugin-firebase/ @eclipsesource +/types/tabtab/ @vojtechhabarta +/types/tabulator/ @euginio +/types/tail/ @spacejack +/types/tapable/v0/ @e-cloud +/types/tapable/ @e-cloud @johnnyreilly +/types/tape/ @Bartvds @sodatea @DennisSchwartz @mikehenrty +/types/tar/ @SomaticIT @connor4312 +/types/tar-fs/ @Umoxfo +/types/tar-stream/ @glicht +/types/task-graph-runner/ @mgroenhoff +/types/tcp-ping/ @stegano +/types/teddy/ @lannonbr +/types/tedious/ @rogierschouten @cjthompson @v-suhame +/types/tedious-connection-pool/ @sandorfr +/types/telebot/ @mariotsi +/types/temp/ @DanielRosenwasser +/types/temp-write/ @BendingBender +/types/tempfile/ @SamVerschueren @BendingBender +/types/tempy/ @douglasduteil +/types/terminal-menu/ @aravindarun +/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-utf-8/ @trxcllnt +/types/text-table/ @saadq +/types/textarea-caret/ @shiftkey +/types/textract/ @lal12 +/types/textversionjs/ @aaronosher +/types/tgfancy/ @Dabolus +/types/theming/ @eps1lon +/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/thrift/ @kamek-pf @kevin-greene-ck @jessezhang91 +/types/throng/ @cyrilschumacher @tatethurston +/types/throttle/ @BendingBender +/types/throttle-debounce/ @czbuchi @franklixuefei +/types/through/ @AndrewGaspar +/types/through2/v0/ @Bartvds @jedmao +/types/through2/ @Bartvds @jedmao @valotas @TeamworkGuy2 @Alorel +/types/through2-concurrent/ @Alorel +/types/through2-map/ @LucasHill +/types/tile-reduce/ @DenisCarriere +/types/tilebelt/ @DenisCarriere +/types/time-span/ @BendingBender @mdvorscak +/types/timelinejs/ @rolandzwaga +/types/timelinejs3/ @MikeMatusz +/types/timer-machine/ @dolanmiu +/types/timezone-js/ @bonnici +/types/tinajs__tina/ @Jimexist +/types/tinajs__tina-redux/ @Jimexist +/types/tinder/ @pingec +/types/tingle.js/ @ajafff +/types/tiny-secp256k1/ @eduhenke +/types/tiny-slider-react/ @screendriver +/types/tinycolor2/ @M-Zuber @geertjansen @nvh @Ailrun +/types/tinycon/ @dwaxweiler +/types/tinycopy/ @vvatanabe +/types/tinymce/ @martinduparc @ipoul @nicohartto +/types/titanium/ @appcelerator @janvennemann +/types/title/ @fa7ad +/types/tldjs/ @geoffreak +/types/tlds/ @ajshres +/types/tmp/ @optical @Perlmint +/types/to-absolute-glob/ @ajafff +/types/to-camel-case/ @j-f1 +/types/to-markdown/ @SuperPaintman +/types/to-snake-case/ @LogvinovLeon +/types/to-title-case-gouch/ @stpettersens +/types/toastr/ @borisyankov +/types/tocktimer/ @evanshortiss +/types/tokgen/ @l-jonas +/types/toobusy-js/ @atd-schubert +/types/tooltipster/ @stephenlautier @pjmagee @VorobeY1326 @leonard-thieu @janhi @joeskeen +/types/topojson/ @ricardo-mello @chenzhutian @denisname +/types/topojson-client/ @denisname @ricardo-mello +/types/topojson-simplify/ @denisname @ricardo-mello +/types/topojson-specification/ @denisname +/types/toposort/ @danwbyrne +/types/torrent-stream/ @xstoudi +/types/touch/ @mizunashi-mana @BendingBender +/types/touch-events/ @kevinb7 +/types/tough-cookie/ @leonard-thieu @LiJinyao @no2chem +/types/tough-cookie-filestore/ @friedow +/types/traceback/ @misak113 +/types/tracking/ @pimterry +/types/transducers-js/ @colinkahn @dphilipson @NaridaL +/types/transducers.js/ @dphilipson +/types/transliteration/ @tony19 +/types/trash/ @matthew-matvei @hoishin +/types/traverse/ @newclear +/types/traverson/ @marcinporebski +/types/travis-fold/ @andy-ms +/types/trayballoon/ @korve +/types/tress/ @sindilevich +/types/trim/ @skysteve +/types/triple-beam/ @danwbyrne +/types/triplesec/ @threesquared +/types/trunk8/ @niemyjski +/types/tryer/ @bengry +/types/tspromise/ @soywiz +/types/ttf2woff2/ @ThomasdenH +/types/tunnel/ @BendingBender +/types/tus-js-client/ @kevhiggins +/types/tv4/ @Bartvds @psnider +/types/tween.js/ @Amos47 @sunetos @jzarnikov @alexburner +/types/tweenjs/ @evilangelist @jcyuan +/types/tweezer.js/ @praxxis +/types/twig/ @soywiz @enko +/types/twilio/ @nickiannone @ashleybrener +/types/twilio-video/ @minddocdev @darioblanco +/types/twit/ @Volox @sapphiredev @abraham @siwalikm @plhery +/types/twitch-ext/ @beheh +/types/twitter/ @chitoku-k +/types/twitter-stream-channels/ @adrianbardan +/types/twitter-text/ @rhysd +/types/twix/ @j3ko +/types/type-check/ @hansrwindhoff +/types/type-detect/v0/ @Bartvds +/types/type-detect/ @Bartvds +/types/type-is/ @BendingBender +/types/type-name/ @armorik83 +/types/typeahead/ @igochkov @gjunge +/types/typedarray-pool/ @pawsong +/types/typeof/ @OpenByteDev +/types/typescript-deferred/ @DirtyHairy +/types/typography/ @boyeborg +/types/tz-format/ @samverschueren +/types/ua-parser-js/ @superduper @legendecas @MeLlamoPablo +/types/uglify-es/ @alan-agius4 +/types/uglify-js/v2/ @tkrotoff +/types/uglify-js/ @alan-agius4 @tkrotoff @johnnyreilly +/types/uglifycss/ @blendsdk +/types/uglifyjs-webpack-plugin/ @vajkayrene +/types/ui-grid/ @btesser @joeskeen @pbojanczyk +/types/ui-router-extras/ @mputters @marcel-k @LaserUnicorns +/types/ui-select/ @nkovacic +/types/uid-safe/ @geoffreak +/types/uikit/ @giovannicandido @s0x +/types/uinput/ @Fidge123 +/types/ultra-strftime/ @dex4er +/types/umbraco/ @DeCareSystemsIreland +/types/umd/ @TeamworkGuy2 +/types/umzug/ @drinchev @mlamp @trodi @emmanuelgautier +/types/underscore/ @borisyankov @jbaldwin @ccurrens @clottman @confususs +/types/underscore-ko/ @MagicMau +/types/underscore.string/ @rygine +/types/undertaker/ @tkqubo @GiedriusGrabauskas +/types/undertaker-registry/ @GiedriusGrabauskas +/types/unidecode/ @vfernandestoptal +/types/uniq/ @hansrwindhoff +/types/uniqid/ @idchlife +/types/unique-hash-stream/ @BendingBender +/types/unique-random/ @Kuniwak +/types/unist/ @bizen241 +/types/unity-webapi/ @jmvrbanac +/types/universal-analytics/ @Bartvds @DarkerTV +/types/universal-cookie/ @tomi +/types/universal-router/ @jtmthf @tlaziuk @Lodin +/types/unorm/ @chbrown +/types/untildify/ @BendingBender +/types/unused-filename/ @BendingBender +/types/unzip/ @coding2012 +/types/unzipper/ @s73obrien @natemara @bartje321 +/types/update-notifier/v1/ @vvakame @nchen63 +/types/update-notifier/ @vvakame @nchen63 @bitjson +/types/uploadcare/ @jineshshah36 +/types/upng-js/ @plantain-00 +/types/uppercamelcase/ @plantain-00 +/types/urbanairship-cordova/ @Justin-Credible +/types/uri-templates/ @Bartvds @barnski +/types/urijs/ @RodneyJT @xt0rted @petejohanson +/types/uritemplate/ @teyc @rubensworks +/types/url-assembler/ @wolfgang42 +/types/url-join/ @rogierschouten @devrelm +/types/url-metadata/ @mrkmg +/types/url-params/ @danielsogl +/types/url-parse/ @ChernenkoPaul @harisiva @DimitryDushkin +/types/url-regex/ @unindented @sosukesuzuki +/types/url-safe-base64/ @johngeorgewright +/types/url-search-params/ @nick121212 @nrathi +/types/url-template/ @marcinporebski +/types/urllib/ @sorayama +/types/urlparser/ @OpenByteDev +/types/urlrouter/ @soywiz +/types/urlsafe-base64/ @tkrotoff +/types/usage/ @pvomhoff +/types/usb/ @underscorebrody @thegecko +/types/user-home/ @mhegazy +/types/useragent/ @geoffreak +/types/username/ @kayahr @krivachy +/types/utf8/ @zelein +/types/util-deprecate/ @BendingBender +/types/util.promisify/ @adamvoss +/types/utils-merge/ @chrootsu +/types/uuid/ @iamolivinius @felipeochoa @cjbarth +/types/uuid-1345/ @mugeso +/types/uuid-js/ @mhegazy +/types/uuid-parse/ @screendriver +/types/uuid-validate/ @HiromiShikata +/types/uws/ @plantain-00 @orblazer +/types/valdr/ @ilbertz +/types/valdr-message/ @ilbertz +/types/valerie/ @conficient +/types/vali-date/ @SamVerschueren +/types/valiant/ @whatasoda +/types/valid-url/ @stevehipwell +/types/validator/ @tgfjt @chrootsu @IOAyman @louy @kacepe @deptno @builtinnya @qqilihq +/types/validatorjs/ @LKay @danmana +/types/vanilla-modal/ @samnau +/types/vanilla-tilt/ @BrunnerLivio +/types/varint/ @dbrockman +/types/vary/ @BendingBender +/types/vast-client/ @jgainfort +/types/vec3/ @xstoudi +/types/vectorious/ @erikgerrits +/types/vega/ @pelotom +/types/velocity-animate/ @smrq +/types/verror/ @svi3c @max4t +/types/vertx3-eventbus-client/ @oddeirik +/types/vex-js/ @gdcohan +/types/vexdb/ @MayorMonty +/types/vexflow/ @rquiring @sebastianhaas @bohoffi @sschmidTU +/types/vfile/ @bizen241 @rokt33r +/types/vfile-location/ @ikatyang +/types/victory/ @asvetliakov @snerks @Havret @alredyExist +/types/video.js/ @vbortone @scleriot @SWBennett06 @IgelCampus @giofreitas @gjanblaszczyk @sroucheray @AkxeOne @meikidd +/types/viewability-helper/ @lironzluf +/types/viewerjs/ @lrh3321 +/types/viewport-mercator-project/ @fnberta +/types/viewporter/ @borisyankov +/types/vimeo/ @DazWilkin +/types/vimeo__player/ @denisyilmaz @timc13 @terrymun +/types/vinyl/v0/ @jedmao +/types/vinyl/ @vvakame @jedmao @thorn0 +/types/vinyl-buffer/ @tkQubo +/types/vinyl-fs/ @vvakame @remisery +/types/vinyl-paths/ @tkQubo +/types/virtual-dom/ @chbrown +/types/virtual-keyboard/ @bsurai +/types/vis/ @MichaelBitard @macleodbroad-wf @adripanico @seveves @kaktus40 @mmaitre314 @supercargo @takato1314 @alex-kachura @dcop @avrahamcool +/types/vision/v4/ @jasonswearingen @AJamesPhillips +/types/vision/ @jasonswearingen @AJamesPhillips @lenovouser +/types/vitalsigns/ @cyrilschumacher +/types/vivus/ @DanielRosenwasser @lekhmanrus +/types/vkbeautify/ @sch3lp +/types/vnu-jar/ @Umoxfo +/types/voca/ @pine +/types/void-elements/ @ajafff +/types/voronoi-diagram/ @michaelneu +/types/vorpal/ @danwbyrne +/types/vortex-web-client/ @Pro +/types/voximplant-websdk/ @aylarov +/types/vue-color/ @me +/types/vue-markdown/ @neodon +/types/vue-resource/ @kaorun343 +/types/vue-scrollto/ @vincekovacs +/types/vue-select/ @silh +/types/vue2-datepicker/ @ChristianStornowski +/types/vuex-i18n/ @jaeggerr @noamkfir +/types/w2ui/ @Ptival +/types/w3c-generic-sensor/ @kenchris +/types/w3c-image-capture/ @cosium +/types/w3c-permissions/ @jberube +/types/w3c-screen-orientation/ @kenchris +/types/w3c-web-usb/ @larsgk +/types/waitme/ @totpero +/types/wake_on_lan/ @SrTobi +/types/wallabyjs/ @andrewconnell +/types/wallpaper/ @BendingBender +/types/wampy/ @KSDaemon +/types/warning/ @cvle +/types/watch/ @soywiz @Perlmint +/types/watchify/ @TeamworkGuy2 +/types/watchpack/ @e-cloud +/types/waterline/ @arvitaly +/types/watson-developer-cloud/ @waldo000000 @Naktibalda +/types/waypoints/ @dominikbulaj @Koloto @evil-shrike +/types/wcwidth/ @rokt33r +/types/weak/ @int0h +/types/weapp-api/ @vargeek +/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-eth-abi/ @LogvinovLeon +/types/web3-provider-engine/ @LogvinovLeon +/types/webappsec-credential-management/ @iainmcgin +/types/webassembly-js-api/ @periklis +/types/webassembly-web-api/ @jhenninger +/types/webcl/ @NCARalph +/types/webcomponents.js/ @adidahiya +/types/webcrypto/ @iislucas +/types/webdriverio/ @nmalaguti @timbru31 @fsmedberg-tc @tanvirislam06 @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-assets-manifest/ @FranklinWhale +/types/webpack-bundle-analyzer/ @kryops +/types/webpack-chain/ @eirikurn @psachs21 +/types/webpack-chunk-hash/ @mtraynham +/types/webpack-cleanup-plugin/ @malj +/types/webpack-config-utils/ @hotell +/types/webpack-dev-middleware/v1/ @bumbleblym @reduckted +/types/webpack-dev-middleware/ @bumbleblym @reduckted @chrisabrams +/types/webpack-dev-server/ @maestroh @daveparslow @ZheyangSong @alan-agius4 @arturovt +/types/webpack-dotenv-plugin/ @kryops +/types/webpack-env/ @use-strict @rhonsby +/types/webpack-fail-plugin/ @deevus +/types/webpack-hot-client/ @rynclark @ZSkycat +/types/webpack-hot-middleware/ @bumbleblym @icylace @chrisabrams +/types/webpack-manifest-plugin/ @r3nya +/types/webpack-merge/v0/ @deevus +/types/webpack-merge/ @deevus @mtraynham +/types/webpack-node-externals/ @mtraynham +/types/webpack-notifier/ @bumbleblym +/types/webpack-serve/v1/ @rynclark @Jokcy @ZSkycat +/types/webpack-serve/ @rynclark @Jokcy @ZSkycat +/types/webpack-sources/ @e-cloud @chriseppstein +/types/webpack-stream/ @iclanton @bumbleblym +/types/webpack-validator/ @deevus +/types/webpackbar/ @rynclark +/types/webpagetest/ @ksm2 +/types/webrtc/ @nakakura +/types/webscopeio__react-textarea-autocomplete/ @michauzo +/types/websequencediagrams/ @ffflorian +/types/website-scraper/ @screendriver +/types/websocket/ @loyd @flynetworks @zhaoleimxd @jdneo +/types/websocket-async/ @bigbeno37 +/types/websql/ @TeamworkGuy2 +/types/webtorrent/ @niieani @tlaziuk +/types/webvr-api/ @efokschaner +/types/week/ @sindrenm +/types/wegame-api/ @jcyuan +/types/weighted/ @ccitro +/types/weixin-app/ @taoqf @AlexStacker @Jimexist +/types/wellknown/ @yairtawil +/types/wepy/ @Jimexist +/types/wepy-redux/ @Jimexist +/types/whatwg-mimetype/ @petejohanson +/types/whatwg-streams/ @saschanaz @ksm2 @MattiasBuelens +/types/whatwg-url/ @aomarks +/types/wheel/ @BTOdell +/types/when/ @derekcicerone @Nemo157 +/types/which/ @vvakame @cspotcode +/types/which-pm/ @jorgegonzalez +/types/wicg-mediasession/ @jucrouzet +/types/wif/ @danwbyrne +/types/wiiu/ @mzsm +/types/window-or-global/ @vvakame +/types/window-size/ @pmkary +/types/windows-1251/ @RomanGolovanov +/types/windows-script-host/ @zspitz +/types/windows-service/ @rogierschouten +/types/winjs/v1/ @adamhewitt627 @craigktreasure @xirzec +/types/winjs/v2/ @adamhewitt627 @craigktreasure @xirzec +/types/winjs/ @adamhewitt627 @craigktreasure @xirzec +/types/wink-tokenizer/ @lal12 +/types/winreg/ @RX14 @BobBuehler +/types/winrt-uwp/ @saschanaz @taylor224 +/types/winston-dynamodb/ @nickiannone +/types/winston-mail/ @idono87 +/types/winston-syslog/v1/ @cjbarth +/types/winston-syslog/ @cjbarth @felix-hoc +/types/wiring-pi/ @NoHomey +/types/wnumb/ @acoreyj +/types/wonder.js/ @yyc-git +/types/word-list-json/ @dovidm +/types/wordcloud/ @joeskeen +/types/words-to-numbers/ @James-Frowen +/types/workbox-sw/ @wessberg +/types/workerpool/ @Alorel +/types/wpapi/ @guoyunhe +/types/wrap-ansi/v2/ @kayahr +/types/wrap-ansi/ @kayahr +/types/wreck/v7/ @marcinporebski +/types/wreck/ @marcinporebski @saboya +/types/wrench/ @soywiz +/types/write-file-atomic/ @BendingBender +/types/write-file-atomically/ @Aankhen +/types/write-json-file/ @DenisCarriere +/types/write-pkg/ @azasypkin +/types/ws/ @loyd @elithrar @mlamp @TitaneBoy @orblazer +/types/wtfnode/ @dex4er +/types/wu/ @phiresky +/types/wx-js-sdk-dt/ @agasbzj +/types/x-editable/ @sirkirby +/types/x-ray/ @mtraynham +/types/x-ray-crawler/ @mtraynham +/types/xdate/ @yamada28go +/types/xdg-basedir/ @tlaziuk +/types/xml/ @YuJianrong +/types/xml-parser/ @mhfrantz +/types/xml2js/ @michelsalib @jasonrm @ccurrens @edwardhinkle @BehindTheMath @claasahl +/types/xml2json/ @dolanmiu +/types/xmlbuilder/ @wallymathieu +/types/xmldoc/ @Xstoudi @ajsheehan @notlaforge +/types/xmldom/ @tkqubo +/types/xmlpoke/ @garthk +/types/xmltojson/ @traviscrowe +/types/xmpp__jid/ @PJakcson +/types/xregexp/ @Bartvds @jfahrenkrug @sigo +/types/xrm/v7/ @daryllabar +/types/xrm/v8/ @6ix4our @mattngan @markusmauch @daryllabar @clownwilleatme @mariusagur +/types/xrm/ @6ix4our @mattngan @markusmauch @daryllabar @clownwilleatme @scottdurow +/types/xsd-schema-validator/ @Goldsmith42 +/types/xsockets/ @pushplay +/types/xxhashjs/ @mDibyo +/types/yallist/ @BendingBender +/types/yandex-maps/ @Delagen +/types/yandex-money-sdk/ @chrootsu +/types/yar/ @SimonSchick +/types/yargs/v8/ @poelstra @mizunashi-mana @pushplay @jeffkenney +/types/yargs/v10/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC +/types/yargs/v11/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC +/types/yargs/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC +/types/yargs-interactive/ @szeck87 +/types/yauzl/ @ffflorian +/types/yauzl-promise/ @dlee-nvisia +/types/yayson/ @Codesleuth +/types/yazl/ @taoqf +/types/ydn-db/ @yathit @gabrielmaldi +/types/yeoman-generator/ @armorik83 @janslow @ikatyang +/types/yeoman-test/ @ikatyang +/types/yesql/ @Sumolari +/types/yoctodelay/ @seangenabe +/types/yog-bigpipe/ @ssddi456 +/types/yog-log/ @ssddi456 +/types/yog2-kernel/ @ssddi456 +/types/yoga-layout/ @tnobody +/types/yosay/ @armorik83 +/types/youtube/ @DazWilkin @JoshuaKGoldberg @eliotfallon213 @terrymun +/types/youtube-dl/ @bsurai +/types/yui/ @giabao +/types/yup/ @dhardtke @vtserman @MoretonBayRC @sseppola +/types/z-schema/ @pgonzal +/types/zapier-platform-core/ @bradleyayers +/types/zeit__next-typescript/ @icopp +/types/zen-observable/ @aicest @JounQin @itomtom +/types/zen-push/ @daprahamian +/types/zenscroll/ @HamedFathi +/types/zepto/ @jbaldwin +/types/zeroclipboard/v1/ @ejsmith @niemyjski @balassy @leonyu +/types/zeroclipboard/ @ejsmith @niemyjski @balassy @leonyu +/types/zeromq/ @davemckeown @erikma @TitaneBoy +/types/zip-webpack-plugin/ @blaise-io +/types/zip.js/ @lgrignon +/types/zipcodes/ @headdetect @dobesv +/types/zipkin-context-cls/ @plantain-00 +/types/zipkin-instrumentation-express/ @plantain-00 +/types/zipkin-instrumentation-fetch/ @plantain-00 +/types/zipkin-javascript-opentracing/ @laurentgilly +/types/zipkin-transport-http/ @plantain-00 +/types/zmq/ @davemckeown +/types/zookeeper/ @xialeistudio +/types/zopflipng-bin/ @hikoma +/types/zui/ @yuanxu +/types/zxcvbn/ @mtraynham diff --git a/notNeededPackages.json b/notNeededPackages.json index e1a2f2e6cd..968192123b 100644 --- a/notNeededPackages.json +++ b/notNeededPackages.json @@ -174,6 +174,12 @@ "sourceRepoURL": "https://github.com/Microsoft/Bing-Maps-V8-TypeScript-Definitions", "asOfVersion": "2.0.15" }, + { + "libraryName": "bitwise", + "typingsPackageName": "bitwise", + "sourceRepoURL": "https://github.com/dodekeract/bitwise", + "asOfVersion": "2.0.0" + }, { "libraryName": "botvs", "typingsPackageName": "botvs", diff --git a/types/ajv-errors/package.json b/types/ajv-errors/package.json new file mode 100644 index 0000000000..b47ef67b0a --- /dev/null +++ b/types/ajv-errors/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "ajv": "*" + } +} diff --git a/types/angular-ui-sortable/angular-ui-sortable-tests.ts b/types/angular-ui-sortable/angular-ui-sortable-tests.ts index a5db7903bf..9ecde2f92a 100644 --- a/types/angular-ui-sortable/angular-ui-sortable-tests.ts +++ b/types/angular-ui-sortable/angular-ui-sortable-tests.ts @@ -132,9 +132,8 @@ myApp.controller('sortableController', function ($scope: MySortableControllerSco $scope.sortableOptions.tolerance = 'pointer'; $scope.sortableOptions.zIndex = 9999; - $scope.sortableOptions['ui-floating'] = undefined; - $scope.sortableOptions['ui-floating'] = null; - $scope.sortableOptions['ui-floating'] = false; - $scope.sortableOptions['ui-floating'] = true; - $scope.sortableOptions['ui-floating'] = "auto"; + const sortableFloatingOption0: ng.ui.UISortableOptions = { 'ui-floating': undefined }; + const sortableFloatingOption1: ng.ui.UISortableOptions = { 'ui-floating': false }; + const sortableFloatingOption2: ng.ui.UISortableOptions = { 'ui-floating': true }; + const sortableFloatingOption3: ng.ui.UISortableOptions = { 'ui-floating': 'auto' }; }); diff --git a/types/angular-ui-sortable/index.d.ts b/types/angular-ui-sortable/index.d.ts index c364246dba..aa81038346 100644 --- a/types/angular-ui-sortable/index.d.ts +++ b/types/angular-ui-sortable/index.d.ts @@ -12,7 +12,7 @@ declare module 'angular' { export namespace ui { interface UISortableOptions extends SortableOptions { - 'ui-floating'?: string | boolean; + 'ui-floating'?: 'auto' | boolean; } interface UISortableProperties { diff --git a/types/angular/index.d.ts b/types/angular/index.d.ts index 99977b57b5..fe90fa15b8 100644 --- a/types/angular/index.d.ts +++ b/types/angular/index.d.ts @@ -1316,7 +1316,7 @@ declare namespace angular { * * @param key the key of the data to be retrieved */ - get(key: string): T; + get(key: string): T | undefined; /** * Removes an entry from the Cache object. diff --git a/types/aws-serverless-express/aws-serverless-express-tests.ts b/types/aws-serverless-express/aws-serverless-express-tests.ts index 9bfd1b0e99..f3fd2e71e3 100644 --- a/types/aws-serverless-express/aws-serverless-express-tests.ts +++ b/types/aws-serverless-express/aws-serverless-express-tests.ts @@ -27,3 +27,6 @@ const mockContext = { }; awsServerlessExpress.proxy(server, mockEvent, mockContext); +awsServerlessExpress.proxy(server, mockEvent, mockContext, 'CALLBACK', () => {}); +awsServerlessExpress.proxy(server, mockEvent, mockContext, 'CONTEXT_SUCCEED'); +awsServerlessExpress.proxy(server, mockEvent, mockContext, 'PROMISE').promise.then((response: awsServerlessExpress.Response) => {}).catch(err => {}); diff --git a/types/aws-serverless-express/index.d.ts b/types/aws-serverless-express/index.d.ts index 14569396db..b3092ad02b 100644 --- a/types/aws-serverless-express/index.d.ts +++ b/types/aws-serverless-express/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for aws-serverless-express 3.0 +// Type definitions for aws-serverless-express 3.3 // Project: https://github.com/awslabs/aws-serverless-express // Definitions by: Ben Speakman // Josh Caffey @@ -11,6 +11,16 @@ import * as http from 'http'; import * as lambda from 'aws-lambda'; +export interface Response { + statusCode: number; + body: string; + headers: {}; +} + +export interface ProxyResult { + promise: Promise; +} + export function createServer( requestListener: (request: http.IncomingMessage, response: http.ServerResponse) => void, serverListenCallback?: () => any, @@ -20,5 +30,27 @@ export function createServer( export function proxy( server: http.Server, event: any, - context: lambda.Context + context: lambda.Context, +): http.Server; + +export function proxy( + server: http.Server, + event: any, + context: lambda.Context, + resolutionMode: 'CONTEXT_SUCCEED', +): void; + +export function proxy( + server: http.Server, + event: any, + context: lambda.Context, + resolutionMode: 'PROMISE' +): ProxyResult; + +export function proxy( + server: http.Server, + event: any, + context: lambda.Context, + resolutionMode: 'CALLBACK', + callback?: (error: any, response: Response) => void ): void; diff --git a/types/bcryptjs/bcryptjs-tests.ts b/types/bcryptjs/bcryptjs-tests.ts index cd91eb4896..2fc9f0bc0c 100644 --- a/types/bcryptjs/bcryptjs-tests.ts +++ b/types/bcryptjs/bcryptjs-tests.ts @@ -3,6 +3,7 @@ import bcryptjs = require("bcryptjs"); let str: string; let num: number; let bool: boolean; +let arr: number[]; let error: Error; str = bcryptjs.genSaltSync(); @@ -63,3 +64,7 @@ bcryptjs.compare("string1", "string2") num = bcryptjs.getRounds("string"); str = bcryptjs.getSalt("string"); + +str = bcryptjs.encodeBase64([1, 2, 3, 4, 5], 5); + +arr = bcryptjs.decodeBase64("string", 5); diff --git a/types/bcryptjs/index.d.ts b/types/bcryptjs/index.d.ts index b19413c92d..f04cd68834 100644 --- a/types/bcryptjs/index.d.ts +++ b/types/bcryptjs/index.d.ts @@ -1,8 +1,10 @@ // Type definitions for bcryptjs v2.4.0 // Project: https://github.com/dcodeIO/bcrypt.js -// Definitions by: Joshua Filby , Rafael Kraut +// Definitions by: Joshua Filby +// Rafael Kraut +// Branislav Holý // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - +// TypeScript Version: 2.1 /** @@ -103,3 +105,19 @@ export declare function getRounds(hash: string): number; * @return Extracted salt part */ export declare function getSalt(hash: string): string; + +/** + * Encodes a byte array to base64 with up to len bytes of input, using the custom bcrypt alphabet. + * @function + * @param b Byte array + * @param len Maximum input length + */ +export declare function encodeBase64(b: Readonly>, len: number): string; + +/** + * Decodes a base64 encoded string to up to len bytes of output, using the custom bcrypt alphabet. + * @function + * @param s String to decode + * @param len Maximum output length + */ +export declare function decodeBase64(s: string, len: number): number[]; diff --git a/types/bitwise/bits/and.d.ts b/types/bitwise/bits/and.d.ts deleted file mode 100644 index 52696eee01..0000000000 --- a/types/bitwise/bits/and.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default function and( - bits1: ReadonlyArray, - bits2: ReadonlyArray -): ReadonlyArray; diff --git a/types/bitwise/bits/index.d.ts b/types/bitwise/bits/index.d.ts deleted file mode 100644 index 8bc86d20af..0000000000 --- a/types/bitwise/bits/index.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -import bitsAnd from './and'; -import bitsNor from './nor'; -import bitsNot from './not'; -import bitsOr from './or'; -import bitsReduceAnd from './reduce-and'; -import bitsReduceNand from './reduce-nand'; -import bitsReduceNor from './reduce-nor'; -import bitsReduceOr from './reduce-or'; -import bitsReduceXnor from './reduce-xnor'; -import bitsReduceXor from './reduce-xor'; -import bitsToBoolean from './to-boolean'; -import bitsToString from './to-string'; -import bitsXnor from './xnor'; -import bitsXor from './xor'; - -declare namespace bits { - const and: typeof bitsAnd; - const nor: typeof bitsNor; - const not: typeof bitsNot; - const or: typeof bitsOr; - const reduceAnd: typeof bitsReduceAnd; - const reduceNand: typeof bitsReduceNand; - const reduceNor: typeof bitsReduceNor; - const reduceOr: typeof bitsReduceOr; - const reduceXnor: typeof bitsReduceXnor; - const reduceXor: typeof bitsReduceXor; - const toBoolean: typeof bitsToBoolean; - const toString: typeof bitsToString; - const xnor: typeof bitsXnor; - const xor: typeof bitsXor; -} - -export default bits; diff --git a/types/bitwise/bits/nand.d.ts b/types/bitwise/bits/nand.d.ts deleted file mode 100644 index 53338816b8..0000000000 --- a/types/bitwise/bits/nand.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default function nand( - bits1: ReadonlyArray, - bits2: ReadonlyArray -): ReadonlyArray; diff --git a/types/bitwise/bits/nor.d.ts b/types/bitwise/bits/nor.d.ts deleted file mode 100644 index cda86e1a7c..0000000000 --- a/types/bitwise/bits/nor.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default function nor( - bits1: ReadonlyArray, - bits2: ReadonlyArray -): ReadonlyArray; diff --git a/types/bitwise/bits/not.d.ts b/types/bitwise/bits/not.d.ts deleted file mode 100644 index 7be251c891..0000000000 --- a/types/bitwise/bits/not.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default function not( - bits1: ReadonlyArray, - bits2: ReadonlyArray -): ReadonlyArray; diff --git a/types/bitwise/bits/or.d.ts b/types/bitwise/bits/or.d.ts deleted file mode 100644 index 953a50d4c2..0000000000 --- a/types/bitwise/bits/or.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default function or( - bits1: ReadonlyArray, - bits2: ReadonlyArray -): ReadonlyArray; diff --git a/types/bitwise/bits/reduce-and.d.ts b/types/bitwise/bits/reduce-and.d.ts deleted file mode 100644 index b45c023eb0..0000000000 --- a/types/bitwise/bits/reduce-and.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function reduceAnd(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/reduce-nand.d.ts b/types/bitwise/bits/reduce-nand.d.ts deleted file mode 100644 index 7fd8b8f6b4..0000000000 --- a/types/bitwise/bits/reduce-nand.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function reduceNand(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/reduce-nor.d.ts b/types/bitwise/bits/reduce-nor.d.ts deleted file mode 100644 index 9d8a64f729..0000000000 --- a/types/bitwise/bits/reduce-nor.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function reduceNor(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/reduce-or.d.ts b/types/bitwise/bits/reduce-or.d.ts deleted file mode 100644 index 676e4ff347..0000000000 --- a/types/bitwise/bits/reduce-or.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function reduceOr(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/reduce-xnor.d.ts b/types/bitwise/bits/reduce-xnor.d.ts deleted file mode 100644 index be64ebaaa3..0000000000 --- a/types/bitwise/bits/reduce-xnor.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function reduceXnor(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/reduce-xor.d.ts b/types/bitwise/bits/reduce-xor.d.ts deleted file mode 100644 index 9a2107237a..0000000000 --- a/types/bitwise/bits/reduce-xor.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function reduceXor(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/to-boolean.d.ts b/types/bitwise/bits/to-boolean.d.ts deleted file mode 100644 index 50bd8f4bc8..0000000000 --- a/types/bitwise/bits/to-boolean.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default function toBoolean( - bits: ReadonlyArray -): ReadonlyArray; diff --git a/types/bitwise/bits/to-string.d.ts b/types/bitwise/bits/to-string.d.ts deleted file mode 100644 index 1fee89675d..0000000000 --- a/types/bitwise/bits/to-string.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default function toString( - bit: ReadonlyArray, - spacing?: number, - spacer?: string -): string; diff --git a/types/bitwise/bits/xnor.d.ts b/types/bitwise/bits/xnor.d.ts deleted file mode 100644 index b6e11fcdf1..0000000000 --- a/types/bitwise/bits/xnor.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default function xnor( - bits1: ReadonlyArray, - bits2: ReadonlyArray -): ReadonlyArray; diff --git a/types/bitwise/bits/xor.d.ts b/types/bitwise/bits/xor.d.ts deleted file mode 100644 index a8b7816408..0000000000 --- a/types/bitwise/bits/xor.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default function xor( - bits1: ReadonlyArray, - bits2: ReadonlyArray -): ReadonlyArray; diff --git a/types/bitwise/bitwise-tests.ts b/types/bitwise/bitwise-tests.ts deleted file mode 100644 index 6975cb3591..0000000000 --- a/types/bitwise/bitwise-tests.ts +++ /dev/null @@ -1,56 +0,0 @@ -// Demonstrating cherry-picking -import bitwise from 'bitwise'; - -import bits from 'bitwise/bits'; -import toBoolean from 'bitwise/bits/to-boolean'; - -import buffer from 'bitwise/buffer'; -import create from 'bitwise/buffer/create'; - -import byte from 'bitwise/byte'; -import read from 'bitwise/byte/read'; - -import integer from 'bitwise/integer'; -import setBit from 'bitwise/integer/set-bit'; - -import nibble from 'bitwise/nibble'; -import nibbleRead from 'bitwise/nibble/read'; - -import string from 'bitwise/string'; -import toBits from 'bitwise/string/to-bits'; - -// Testing basic functions -const testBits = [0, 1, 1, 0, 1]; - -// $ExpectType string -bitwise.bits.toString(testBits); - -// $ExpectType ReadonlyArray -bits.toBoolean(testBits); -// $ExpectType ReadonlyArray -toBoolean(testBits); - -// $ExpectType ReadonlyArray -byte.read(12); -// $ExpectType ReadonlyArray -read(12); - -// $ExpectType Buffer -buffer.create(testBits); -// $ExpectType Buffer -create(testBits); - -// $ExpectType ReadonlyArray -integer.setBit(12, 1, 0); -// $ExpectType ReadonlyArray -setBit(12, 1, 0); - -// $ExpectType ReadonlyArray -nibble.read(15); -// $ExpectType ReadonlyArray -nibbleRead(15); - -// $ExpectType ReadonlyArray -string.toBits('10 10 12$%_.0'); -// $ExpectType ReadonlyArray -toBits('10 10 12$%_.0'); diff --git a/types/bitwise/buffer/and.d.ts b/types/bitwise/buffer/and.d.ts deleted file mode 100644 index c4789600c3..0000000000 --- a/types/bitwise/buffer/and.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -export default function and( - buffer1: Buffer, - buffer2: Buffer, - isLooping?: boolean -): Buffer; diff --git a/types/bitwise/buffer/create.d.ts b/types/bitwise/buffer/create.d.ts deleted file mode 100644 index 3c67301d97..0000000000 --- a/types/bitwise/buffer/create.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// - -export default function create(bits: ReadonlyArray): Buffer; diff --git a/types/bitwise/buffer/index.d.ts b/types/bitwise/buffer/index.d.ts deleted file mode 100644 index a109aecb73..0000000000 --- a/types/bitwise/buffer/index.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import bufferAnd from './and'; -import bufferCreate from './create'; -import bufferModify from './modify'; -import bufferNand from './nand'; -import bufferNor from './nor'; -import bufferNot from './not'; -import bufferOr from './or'; -import bufferRead from './read'; -import bufferReadCInt from './read-c-int'; -import bufferReadInt from './read-int'; -import bufferReadUInt from './read-u-int'; -import bufferXnor from './xnor'; -import bufferXor from './xor'; - -declare namespace buffer { - const and: typeof bufferAnd; - const create: typeof bufferCreate; - const modify: typeof bufferModify; - const nand: typeof bufferNand; - const nor: typeof bufferNor; - const not: typeof bufferNot; - const or: typeof bufferOr; - const read: typeof bufferRead; - const readCInt: typeof bufferReadCInt; - const readInt: typeof bufferReadInt; - const readUInt: typeof bufferReadUInt; - const xnor: typeof bufferXnor; - const xor: typeof bufferXor; -} - -export default buffer; diff --git a/types/bitwise/buffer/modify.d.ts b/types/bitwise/buffer/modify.d.ts deleted file mode 100644 index 1d242cfd79..0000000000 --- a/types/bitwise/buffer/modify.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -export default function modify( - buffer: Buffer, - newBits: ReadonlyArray, - bitOffset?: number -): void; diff --git a/types/bitwise/buffer/nand.d.ts b/types/bitwise/buffer/nand.d.ts deleted file mode 100644 index f887d7f82a..0000000000 --- a/types/bitwise/buffer/nand.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -export default function nand( - buffer1: Buffer, - buffer2: Buffer, - isLooping?: boolean -): Buffer; diff --git a/types/bitwise/buffer/nor.d.ts b/types/bitwise/buffer/nor.d.ts deleted file mode 100644 index 7d285abce0..0000000000 --- a/types/bitwise/buffer/nor.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -export default function nor( - buffer1: Buffer, - buffer2: Buffer, - isLooping: boolean -): Buffer; diff --git a/types/bitwise/buffer/not.d.ts b/types/bitwise/buffer/not.d.ts deleted file mode 100644 index 8dd6e56434..0000000000 --- a/types/bitwise/buffer/not.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// - -export default function not(buffer: Buffer): Buffer; diff --git a/types/bitwise/buffer/or.d.ts b/types/bitwise/buffer/or.d.ts deleted file mode 100644 index 1f06097215..0000000000 --- a/types/bitwise/buffer/or.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -export default function or( - buffer1: Buffer, - buffer2: Buffer, - isLooping?: boolean -): Buffer; diff --git a/types/bitwise/buffer/read-c-int.d.ts b/types/bitwise/buffer/read-c-int.d.ts deleted file mode 100644 index d3d1caca3c..0000000000 --- a/types/bitwise/buffer/read-c-int.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -export default function readCInt( - buffer: Buffer, - bitOffset?: number, - bitLength?: number -): number; diff --git a/types/bitwise/buffer/read-int.d.ts b/types/bitwise/buffer/read-int.d.ts deleted file mode 100644 index 3bb3f65a58..0000000000 --- a/types/bitwise/buffer/read-int.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -export default function readInt( - buffer: Buffer, - bitOffset?: number, - bitLength?: number -): number; diff --git a/types/bitwise/buffer/read-u-int.d.ts b/types/bitwise/buffer/read-u-int.d.ts deleted file mode 100644 index 5e5eec4b07..0000000000 --- a/types/bitwise/buffer/read-u-int.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -export default function readUInt( - buffer: Buffer, - bitOffset?: number, - bitLength?: number -): number; diff --git a/types/bitwise/buffer/read.d.ts b/types/bitwise/buffer/read.d.ts deleted file mode 100644 index b5e5f18f58..0000000000 --- a/types/bitwise/buffer/read.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -export default function read( - buffer: Buffer, - bitOffset?: number, - bitLength?: number -): ReadonlyArray; diff --git a/types/bitwise/buffer/xnor.d.ts b/types/bitwise/buffer/xnor.d.ts deleted file mode 100644 index 4cfd64dc88..0000000000 --- a/types/bitwise/buffer/xnor.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -export default function xnor( - buffer1: Buffer, - buffer2: Buffer, - isLooping?: boolean -): Buffer; diff --git a/types/bitwise/buffer/xor.d.ts b/types/bitwise/buffer/xor.d.ts deleted file mode 100644 index 61ce88f10a..0000000000 --- a/types/bitwise/buffer/xor.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -export default function xor( - buffer1: Buffer, - buffer2: Buffer, - isLooping?: boolean -): Buffer; diff --git a/types/bitwise/byte/index.d.ts b/types/bitwise/byte/index.d.ts deleted file mode 100644 index f2e3c21d42..0000000000 --- a/types/bitwise/byte/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import byteRead from './read'; -import byteWrite from './write'; - -declare namespace byte { - const read: typeof byteRead; - const write: typeof byteWrite; -} - -export default byte; diff --git a/types/bitwise/byte/read.d.ts b/types/bitwise/byte/read.d.ts deleted file mode 100644 index 10fc79106e..0000000000 --- a/types/bitwise/byte/read.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function read(byte: number): ReadonlyArray; diff --git a/types/bitwise/byte/write.d.ts b/types/bitwise/byte/write.d.ts deleted file mode 100644 index be485032da..0000000000 --- a/types/bitwise/byte/write.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function write(bits: ReadonlyArray): number; diff --git a/types/bitwise/index.d.ts b/types/bitwise/index.d.ts deleted file mode 100644 index 4e1ae86896..0000000000 --- a/types/bitwise/index.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -// Type definitions for bitwise 1.5 -// Project: https://github.com/dodekeract/bitwise -// Definitions by: Daniel Byrne -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -import bitwiseBits from './bits'; -import bitwiseBuffer from './buffer'; -import bitwiseByte from './byte'; -import bitwiseInteger from './integer'; -import bitwiseNibble from './nibble'; -import bitwiseString from './string'; - -declare namespace bitwise { - const bits: typeof bitwiseBits; - const buffer: typeof bitwiseBuffer; - const byte: typeof bitwiseByte; - const integer: typeof bitwiseInteger; - const nibble: typeof bitwiseNibble; - const string: typeof bitwiseString; -} - -export default bitwise; diff --git a/types/bitwise/integer/get-bit.d.ts b/types/bitwise/integer/get-bit.d.ts deleted file mode 100644 index ced50ff35c..0000000000 --- a/types/bitwise/integer/get-bit.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function getBit(number: number, position: number): number; diff --git a/types/bitwise/integer/index.d.ts b/types/bitwise/integer/index.d.ts deleted file mode 100644 index 965726728b..0000000000 --- a/types/bitwise/integer/index.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import integerGetBit from './get-bit'; -import integerSetBit from './set-bit'; -import integerToggleBit from './toggle-bit'; - -declare namespace integer { - const getBit: typeof integerGetBit; - const setBit: typeof integerSetBit; - const toggleBit: typeof integerToggleBit; -} - -export default integer; diff --git a/types/bitwise/integer/set-bit.d.ts b/types/bitwise/integer/set-bit.d.ts deleted file mode 100644 index a6524c4079..0000000000 --- a/types/bitwise/integer/set-bit.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default function setBit( - number: number, - position: number, - value: number -): ReadonlyArray; diff --git a/types/bitwise/integer/toggle-bit.d.ts b/types/bitwise/integer/toggle-bit.d.ts deleted file mode 100644 index a3ea04da80..0000000000 --- a/types/bitwise/integer/toggle-bit.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default function toggleBit( - number: number, - position: number -): ReadonlyArray; diff --git a/types/bitwise/nibble/index.d.ts b/types/bitwise/nibble/index.d.ts deleted file mode 100644 index a18ed9ef6f..0000000000 --- a/types/bitwise/nibble/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import nibbleRead from './read'; -import nibbleWrite from './write'; - -declare namespace nibble { - const read: typeof nibbleRead; - const write: typeof nibbleWrite; -} - -export default nibble; diff --git a/types/bitwise/nibble/read.d.ts b/types/bitwise/nibble/read.d.ts deleted file mode 100644 index a1182a72dd..0000000000 --- a/types/bitwise/nibble/read.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function read(nibble: number): ReadonlyArray; diff --git a/types/bitwise/nibble/write.d.ts b/types/bitwise/nibble/write.d.ts deleted file mode 100644 index 4e79f88571..0000000000 --- a/types/bitwise/nibble/write.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function write(nibble: ReadonlyArray): number; diff --git a/types/bitwise/string/index.d.ts b/types/bitwise/string/index.d.ts deleted file mode 100644 index 9100d0050b..0000000000 --- a/types/bitwise/string/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import stringToBits from './to-bits'; - -declare namespace string { - const toBits: typeof stringToBits; -} - -export default string; diff --git a/types/bitwise/string/to-bits.d.ts b/types/bitwise/string/to-bits.d.ts deleted file mode 100644 index 4930f10f79..0000000000 --- a/types/bitwise/string/to-bits.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function toBits(string: string): ReadonlyArray; diff --git a/types/bitwise/tsconfig.json b/types/bitwise/tsconfig.json deleted file mode 100644 index 9956f50c76..0000000000 --- a/types/bitwise/tsconfig.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "lib": ["es6"], - "noImplicitAny": true, - "noImplicitThis": true, - "strictNullChecks": true, - "strictFunctionTypes": true, - "baseUrl": "../", - "typeRoots": ["../"], - "types": [], - "noEmit": true, - "forceConsistentCasingInFileNames": true - }, - "files": [ - "index.d.ts", - "bitwise-tests.ts", - "bits/and.d.ts", - "bits/index.d.ts", - "bits/nand.d.ts", - "bits/nor.d.ts", - "bits/not.d.ts", - "bits/or.d.ts", - "bits/reduce-and.d.ts", - "bits/reduce-nand.d.ts", - "bits/reduce-nor.d.ts", - "bits/reduce-or.d.ts", - "bits/reduce-xnor.d.ts", - "bits/reduce-xor.d.ts", - "bits/to-boolean.d.ts", - "bits/to-string.d.ts", - "bits/xnor.d.ts", - "bits/xor.d.ts", - "buffer/and.d.ts", - "buffer/create.d.ts", - "buffer/modify.d.ts", - "buffer/nand.d.ts", - "buffer/nor.d.ts", - "buffer/not.d.ts", - "buffer/or.d.ts", - "buffer/read-c-int.d.ts", - "buffer/read-int.d.ts", - "buffer/read-u-int.d.ts", - "buffer/read.d.ts", - "buffer/xnor.d.ts", - "buffer/xor.d.ts", - "byte/index.d.ts", - "byte/read.d.ts", - "byte/write.d.ts", - "integer/get-bit.d.ts", - "integer/index.d.ts", - "integer/set-bit.d.ts", - "integer/toggle-bit.d.ts", - "nibble/index.d.ts", - "nibble/read.d.ts", - "nibble/write.d.ts", - "string/index.d.ts", - "string/to-bits.d.ts" - ] -} diff --git a/types/bloom-filter/bloom-filter-tests.ts b/types/bloom-filter/bloom-filter-tests.ts new file mode 100644 index 0000000000..0b836a0f84 --- /dev/null +++ b/types/bloom-filter/bloom-filter-tests.ts @@ -0,0 +1,28 @@ +import BloomFilter = require('bloom-filter'); + +const numElements = 3; +const falsePositiveRate = 0.01; +const filter = BloomFilter.create(numElements, falsePositiveRate); + +// elements +const a = Buffer.from('99108ad8ed9bb6274d3980bab5a85c048f0950c8', 'hex'); +const c = Buffer.from('b5a2c786d9ef4658287ced5914b37a1b4aa32eee', 'hex'); + +// insert elements +// $ExpectType void +filter.insert(a); + +// $ExpectType boolean +!filter.contains(c); + +// reinstantiate from an object +const serialized = filter.toObject(); +const woahFilter = new BloomFilter(serialized); + +// initialize directly +const newFilter = new BloomFilter({ + vData: Buffer.from('123', 'hex'), // the data of the filter + nHashFuncs: 3, // the number of hash functions to use + nTweak: 2147483649, // the seed used for the hash fuctions + nFlags: 0 // flags used to update the filter when matched +}); diff --git a/types/bloom-filter/index.d.ts b/types/bloom-filter/index.d.ts new file mode 100644 index 0000000000..22841f066b --- /dev/null +++ b/types/bloom-filter/index.d.ts @@ -0,0 +1,38 @@ +// Type definitions for bloom-filter 0.2 +// Project: https://github.com/bitpay/bloom-filter +// Definitions by: Daniel Byrne +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare class Filter { + constructor(options: Filter.FilterOptions); + static create(elements: number, falsePositiveRate: number, nTweak?: number, nFlags?: number): Filter; + toObject(): Filter.FilterOptions; + hash(nHashNum: number, vDataToHash: Buffer): number; + insert(data: Buffer): void; + contains(data: Buffer): boolean; + clear(): void; + inspect(): string; + BLOOM_UPDATE_NONE: number; + BLOOM_UPDATE_ALL: number; + BLOOM_UPDATE_P2PUBKEY_ONLY: number; + MAX_BLOOM_FILTER_SIZE: number; + MAX_HASH_FUNCS: number; + MIN_HASH_FUNCS: number; + LN2SQUARED: number; + LN2: number; +} + +declare namespace Filter { + interface FilterOptions { + vData: Buffer; + nHashFuncs: number; + nTweak?: number; + nFlags?: number; + } + + function MurmurHash3(seed: number, data: Buffer): number; +} + +export = Filter; diff --git a/types/bloom-filter/tsconfig.json b/types/bloom-filter/tsconfig.json new file mode 100644 index 0000000000..788542822b --- /dev/null +++ b/types/bloom-filter/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bloom-filter-tests.ts" + ] +} diff --git a/types/bitwise/tslint.json b/types/bloom-filter/tslint.json similarity index 100% rename from types/bitwise/tslint.json rename to types/bloom-filter/tslint.json diff --git a/types/bn.js/bn.js-tests.ts b/types/bn.js/bn.js-tests.ts index c1030a2677..a5d37dfdeb 100644 --- a/types/bn.js/bn.js-tests.ts +++ b/types/bn.js/bn.js-tests.ts @@ -5,3 +5,6 @@ let bn = new BN(42); bn = bn.add(bn); bn.isZero(); bn.byteLength; + +bn.toArrayLike(Buffer, 'le', 2); +const test = new BN(1, 'le'); diff --git a/types/bn.js/index.d.ts b/types/bn.js/index.d.ts index 48f20ba429..8c0bc8dd5f 100644 --- a/types/bn.js/index.d.ts +++ b/types/bn.js/index.d.ts @@ -48,6 +48,10 @@ declare class BN { base?: number, endian?: Endianness ); + constructor( + number: number | string | number[] | Buffer | BN, + endian?: Endianness + ) /** * @description create a reduction context @@ -64,6 +68,16 @@ declare class BN { */ static isBN(b: any): b is BN; + /** + * @description returns the maximum of 2 BN instances. + */ + static max(left: BN, right: BN): BN; + + /** + * @description returns the minimum of 2 BN instances. + */ + static min(left: BN, right: BN): BN; + /** * @description Convert number to red */ @@ -98,10 +112,16 @@ declare class BN { * @description convert to an instance of `type`, which must behave like an Array */ toArrayLike( - ArrayType: Buffer | any[], + ArrayType: typeof Buffer, endian?: Endianness, length?: number - ): Buffer | any[]; + ): Buffer; + + toArrayLike( + ArrayType: any[], + endian?: Endianness, + length?: number + ): any[]; /** * @description convert to Node.js Buffer (if available). For compatibility with browserify and similar tools, use this instead: a.toArrayLike(Buffer, endian, length) diff --git a/types/browserify/browserify-tests.ts b/types/browserify/browserify-tests.ts index 2a1da315ed..c256d81ca3 100644 --- a/types/browserify/browserify-tests.ts +++ b/types/browserify/browserify-tests.ts @@ -60,3 +60,6 @@ Object.keys(insertGlobals.vars).forEach((x) => { var b = browserify('./browser/main.js', { insertGlobalVars: insertGlobalVars }); + +declare const file: string | string[]; +b.add(file); diff --git a/types/browserify/index.d.ts b/types/browserify/index.d.ts index e419fa2ceb..f9fb6aa3d8 100644 --- a/types/browserify/index.d.ts +++ b/types/browserify/index.d.ts @@ -1,6 +1,9 @@ // Type definitions for Browserify 12.0 // Project: http://browserify.org/ -// Definitions by: Andrew Gaspar , John Vilk , Leonard Thieu +// Definitions by: Andrew Gaspar +// John Vilk +// Leonard Thieu +// Linus Unnebäck // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// @@ -102,8 +105,7 @@ interface BrowserifyObject extends NodeJS.EventEmitter { * Add an entry file from file that will be executed when the bundle loads. * If file is an array, each item in file will be added as an entry file. */ - add(file: InputFile[], opts?: FileOptions): BrowserifyObject; - add(file: InputFile, opts?: FileOptions): BrowserifyObject; + add(file: InputFile | InputFile[], opts?: FileOptions): BrowserifyObject; /** * Make file available from outside the bundle with require(file). * The file param is anything that can be resolved by require.resolve(). diff --git a/types/bytewise/bytewise-tests.ts b/types/bytewise/bytewise-tests.ts new file mode 100644 index 0000000000..2641d4f785 --- /dev/null +++ b/types/bytewise/bytewise-tests.ts @@ -0,0 +1,10 @@ +import bytewise = require('bytewise'); + +// $ExpectType Buffer +bytewise.encode([1, 2, 3]); + +// $ExpectType any +bytewise.decode(bytewise.encode([1, 2 , 3])); + +// $ExpectType Buffer +bytewise.encode(bytewise.sorts.array.bound.lower(['123', -1, 0x123, Buffer.from('test')])); diff --git a/types/bytewise/index.d.ts b/types/bytewise/index.d.ts new file mode 100644 index 0000000000..c284ebee43 --- /dev/null +++ b/types/bytewise/index.d.ts @@ -0,0 +1,16 @@ +// Type definitions for bytewise 1.1 +// Project: https://github.com/deanlandolt/bytewise +// Definitions by: Daniel Byrne +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +/// + +interface Bytewise { + encode: (value: any) => Buffer; + decode: (value: Buffer) => any; + [k: string]: any; +} + +declare const bytewise: Bytewise; +export = bytewise; diff --git a/types/bytewise/tsconfig.json b/types/bytewise/tsconfig.json new file mode 100644 index 0000000000..acd527c7d2 --- /dev/null +++ b/types/bytewise/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bytewise-tests.ts" + ] +} diff --git a/types/bytewise/tslint.json b/types/bytewise/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/bytewise/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} diff --git a/types/chai-dom/chai-dom-tests.ts b/types/chai-dom/chai-dom-tests.ts index 2cc7b0f232..ef8a9bb385 100644 --- a/types/chai-dom/chai-dom-tests.ts +++ b/types/chai-dom/chai-dom-tests.ts @@ -13,6 +13,7 @@ function test() { expect(testElement).to.have.id('id'); expect(testElement).to.have.html('foo'); expect(testElement).to.have.text('foo'); + expect(testElement).to.have.trimmed.text('foo'); expect(testElement).to.have.text(['foo', 'bar']); expect(testElement).to.have.value('foo'); expect(testElement).to.be.empty; diff --git a/types/chai-dom/index.d.ts b/types/chai-dom/index.d.ts index 8650ebca1d..c6ecc75326 100644 --- a/types/chai-dom/index.d.ts +++ b/types/chai-dom/index.d.ts @@ -35,6 +35,8 @@ declare namespace Chai { displayed: Assertion; + trimmed: Assertion; + } interface Include { diff --git a/types/chai/index.d.ts b/types/chai/index.d.ts index d260973b71..6f0edecc06 100644 --- a/types/chai/index.d.ts +++ b/types/chai/index.d.ts @@ -186,6 +186,7 @@ declare namespace Chai { property: Property; members: Members; ordered: Ordered; + nested: Nested; } interface Ordered { diff --git a/types/chart.js/chart.js-tests.ts b/types/chart.js/chart.js-tests.ts index 36f25643d9..41ab453e0f 100644 --- a/types/chart.js/chart.js-tests.ts +++ b/types/chart.js/chart.js-tests.ts @@ -5,8 +5,8 @@ import { Chart, ChartData, Point } from "chart.js"; // => chartjs.Chart const plugin = { - afterDraw: (chartInstance: Chart, easing: string, options?: any) => { - } + afterDraw: (chartInstance: Chart, easing: string, options?: any) => { + } }; const chart: Chart = new Chart(new CanvasRenderingContext2D(), { @@ -82,6 +82,18 @@ if (chart.chartArea) { console.log(chart.chartArea.left); } +// Testing custom legends +chart.config.options = { + ...chart.config.options, + legend: { + display: false, + }, + legendCallback: () => 'legend replacement' +}; +chart.update(); +const customLegend = chart.generateLegend(); +console.log(customLegend === 'legend replacement'); + // Testing radial chart const tickOptions: Chart.LinearTickOptions = { max: 100, @@ -107,14 +119,14 @@ const chartConfig: Chart.ChartConfiguration = { data: { labels: ['#apples', '#pears', '#apricots', '#acorns', '#amigas', "#orics"], datasets: [{ - label: "test", - lineTension: 0.15, - data: [1, 1, 2, 3, 5], - backgroundColor: '#37738353', - borderColor: '#37738353', - borderWidth: 3, - fill: true - }] + label: "test", + lineTension: 0.15, + data: [1, 1, 2, 3, 5], + backgroundColor: '#37738353', + borderColor: '#37738353', + borderWidth: 3, + fill: true + }] }, options: radarChartOptions }; diff --git a/types/chart.js/index.d.ts b/types/chart.js/index.d.ts index 49027a2bea..854d4557ed 100644 --- a/types/chart.js/index.d.ts +++ b/types/chart.js/index.d.ts @@ -14,6 +14,7 @@ // Francesco Benedetto // Alexandros Dorodoulis // Manuel Heidrich +// Conrad Holtzhausen // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 @@ -163,7 +164,7 @@ interface Model { } declare namespace Chart { - type ChartType = 'line' | 'bar' | 'horizontalBar' | 'radar' | 'doughnut' | 'polarArea' | 'bubble' | 'pie'; + type ChartType = 'line' | 'bar' | 'horizontalBar' | 'radar' | 'doughnut' | 'polarArea' | 'bubble' | 'pie' | 'scatter'; type TimeUnit = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year'; @@ -264,6 +265,7 @@ declare namespace Chart { aspectRatio?: number; maintainAspectRatio?: boolean; events?: string[]; + legendCallback?(chart: Chart): string; onHover?(this: Chart, event: MouseEvent, activeElements: Array<{}>): any; onClick?(event?: MouseEvent, activeElements?: Array<{}>): any; onResize?(this: Chart, newSize: ChartSize): void; diff --git a/types/chroma-js/index.d.ts b/types/chroma-js/index.d.ts index daf53a0e10..8fdae85b4d 100644 --- a/types/chroma-js/index.d.ts +++ b/types/chroma-js/index.d.ts @@ -124,7 +124,7 @@ declare namespace chroma { * Computes the eucledian distance between two colors in a given color space (default is 'lab'). * {@link https://en.wikipedia.org/wiki/Euclidean_distance#Three_dimensions} */ - distance(color1: string | Color, color2: string | Color, colorSpace?: keyof ColorSpaces): Color; + distance(color1: string | Color, color2: string | Color, colorSpace?: keyof ColorSpaces): number; /** * Computes color difference {@link https://en.wikipedia.org/wiki/Color_difference#CMC_l:c_.281984.29} as @@ -133,7 +133,7 @@ declare namespace chroma { * {@link https://web.archive.org/web/20160306044036/http://www.brucelindbloom.com/javascript/ColorDiff.js} * The parameters L (default 1) and C (default 1) are weighting factors for lightness and chromacity. */ - deltaE(color1: string | Color, color2: string | Color, L?: number, C?: number): Color; + deltaE(color1: string | Color, color2: string | Color, L?: number, C?: number): number; /** * chroma.brewer is an map of ColorBrewer scales that are included in chroma.js for convenience. diff --git a/types/chrome/chrome-cast/index.d.ts b/types/chrome/chrome-cast/index.d.ts index 440886031a..568ef9eb50 100644 --- a/types/chrome/chrome-cast/index.d.ts +++ b/types/chrome/chrome-cast/index.d.ts @@ -195,6 +195,14 @@ declare namespace chrome.cast { errorCallback: (error: chrome.cast.Error) => void ): void + /** + * @param {string} escaped A string to unescape. + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.unescape + */ + export function unescape( + escaped: string + ): string + export class ApiConfig { /** * @param {!chrome.cast.SessionRequest} sessionRequest diff --git a/types/chromecast-caf-sender/chromecast-caf-sender-tests.ts b/types/chromecast-caf-sender/chromecast-caf-sender-tests.ts index 49e2bf5fee..b8e699ffd4 100644 --- a/types/chromecast-caf-sender/chromecast-caf-sender-tests.ts +++ b/types/chromecast-caf-sender/chromecast-caf-sender-tests.ts @@ -43,7 +43,7 @@ context.requestSession().then(err => { session.getSessionObj().sessionId === session.getSessionId(); session.getSessionState() === cast.framework.SessionState.SESSION_STARTED; - session.getCastDevice().name; + session.getCastDevice().friendlyName; session.getApplicationMetadata().applicationId; session.getApplicationStatus() === ""; session.getActiveInputState() === diff --git a/types/ckeditor/ckeditor-tests.ts b/types/ckeditor/ckeditor-tests.ts index d849b52a4a..a6f9c9cf5c 100644 --- a/types/ckeditor/ckeditor-tests.ts +++ b/types/ckeditor/ckeditor-tests.ts @@ -1,14 +1,12 @@ - - function test_CKEDITOR() { CKEDITOR.basePath = 'test'; CKEDITOR.replaceClass = 'rich_editor'; CKEDITOR.skinName = 'moono'; CKEDITOR.skinName = 'myskin,/customstuff/myskin/'; - var editor = new CKEDITOR.editor(); - if (editor.getSelection(true).getType() == CKEDITOR.SELECTION_ELEMENT) - if (editor.getSelection(false).getType() == CKEDITOR.SELECTION_NONE) - if (editor.getSelection(true).getType() == CKEDITOR.SELECTION_TEXT) + var editor: CKEDITOR.editor = new CKEDITOR.editor(); + if (editor.getSelection(true).getType() === CKEDITOR.SELECTION_ELEMENT) + if (editor.getSelection(false).getType() === CKEDITOR.SELECTION_NONE) + if (editor.getSelection(true).getType() === CKEDITOR.SELECTION_TEXT) alert(CKEDITOR.basePath); if (CKEDITOR.currentInstance) alert(CKEDITOR.currentInstance.name); @@ -17,7 +15,7 @@ function test_CKEDITOR() { CKEDITOR.loadFullCoreTimeout = 5; alert(CKEDITOR.revision); alert(CKEDITOR.rnd); - if (CKEDITOR.status == 'loaded') { + if (CKEDITOR.status === 'loaded') { CKEDITOR.loadFullCore(); } alert(CKEDITOR.timestamp); @@ -29,15 +27,16 @@ function test_CKEDITOR() { CKEDITOR.inline('content'); if (CKEDITOR.loadFullCore) CKEDITOR.loadFullCore(); - CKEDITOR.replace('myfield'); + var textarea = document.createElement('textarea'); + CKEDITOR.replace('myfield'); CKEDITOR.replace(textarea); CKEDITOR.replaceAll(); CKEDITOR.replaceAll('myClassName'); CKEDITOR.replaceAll((textarea, config) => false); - var editor: CKEDITOR.editor = CKEDITOR.appendTo('append here', CKEDITOR.config, 'data'); - var editor: CKEDITOR.editor = CKEDITOR.appendTo(document.createElement('div')); + editor = CKEDITOR.appendTo('append here', CKEDITOR.config, 'data'); + editor = CKEDITOR.appendTo(document.createElement('div')); CKEDITOR.error('code'); CKEDITOR.error('500', { moreData: true }); CKEDITOR.warn('danger'); @@ -45,7 +44,7 @@ function test_CKEDITOR() { } function test_CKEDITOR_events() { - CKEDITOR.on('instanceCreated', function(event) { + CKEDITOR.on('instanceCreated', (event) => { // $ExpectType editor event.editor; }); @@ -82,7 +81,7 @@ function test_config() { { name: 'styles', groups: [ 'styles' ] }, { name: 'colors', groups: [ 'colors' ] }, ], - } + }; } function test_dom_comment() { @@ -96,13 +95,13 @@ function test_dom_comment() { function test_dom_document() { var document = new CKEDITOR.dom.document(window.document); - var type = CKEDITOR.NODE_DOCUMENT; + var type: number = CKEDITOR.NODE_DOCUMENT; CKEDITOR.document.appendStyleSheet('/mystyles.css'); - var element = CKEDITOR.document.getBody(); + var element: CKEDITOR.dom.element = CKEDITOR.document.getBody(); alert(element.getName()); - var element2 = CKEDITOR.document.getById('myElement'); + element = CKEDITOR.document.getById('myElement'); alert(element.getId()); - var element3 = CKEDITOR.document.getHead(); + element = CKEDITOR.document.getHead(); alert(element.getName()); var selection = CKEDITOR.instances[0].document.getSelection(); alert(selection.getType()); @@ -113,10 +112,10 @@ function test_dom_document() { '' ); var styles: CSSStyleSheet = document.appendStyleText('some styles'); - var element: CKEDITOR.dom.element = document.createElement('div'); - var element2: CKEDITOR.dom.element = document.createElement('div', { styles: { height: '1234' } }); - var element3: CKEDITOR.dom.element = document.createElement('div', { attributes: { id: '1234' } }); - var element4: CKEDITOR.dom.element = document.createElement('div', { attributes: { tabIndex: '1234' }, styles: { width: '1234' } }); + element = document.createElement('div'); + element = document.createElement('div', { styles: { height: '1234' } }); + element = document.createElement('div', { attributes: { id: '1234' } }); + element = document.createElement('div', { attributes: { tabIndex: '1234' }, styles: { width: '1234' } }); } function test_dom_documentFragment() { @@ -130,7 +129,7 @@ function test_dom_domObject() { var nativeElement = element.$; var doc = new CKEDITOR.dom.document(document); alert(doc.equals(CKEDITOR.document)); - alert(doc == CKEDITOR.document); + alert(doc === CKEDITOR.document); var element2 = new CKEDITOR.dom.element('span'); alert(element.getCustomData('hasCustomData')); alert(element.getCustomData('nonExistingKey')); @@ -153,7 +152,7 @@ function test_dom_element() { var strong = new CKEDITOR.dom.element('strong'); p.append(strong); var em = p.append('em'); - var p = new CKEDITOR.dom.element('p'); + p = new CKEDITOR.dom.element('p'); p.appendText('This is'); p.appendText(' some text'); element.breakParent(strong); @@ -164,7 +163,7 @@ function test_dom_element() { element.focus(); element.focusNext(); element.focusPrevious(); - element.forEach(node=> { + element.forEach(node => { console.log(node); }); var element2 = CKEDITOR.dom.element.createFromHtml(''); @@ -177,7 +176,7 @@ function test_dom_element() { alert(element.getHtml()); alert(element.getId()); alert(element.getName()); - alert('' + element.getNameAtt() + ''); + alert(`${element.getNameAtt()}`); alert(element.getOuterHtml()); alert(element.getTabIndex()); alert(element.getText()); @@ -198,7 +197,7 @@ function test_dom_element() { element.setAttribute('class', 'myClass'); element.setAttribute('title', 'This is an example'); element.setAttributes({ - 'class': 'myClass', + class: 'myClass', title: 'This is an example' }); p.setHtml('Inner HTML'); @@ -214,20 +213,20 @@ function test_dom_element() { element.show(); element.unselectable(); alert(element.getName()); - alert(element == CKEDITOR.dom.element.get(element)); + alert(element === CKEDITOR.dom.element.get(element)); var htmlElement = document.getElementById('myElement'); alert(CKEDITOR.dom.element.get(htmlElement).getName()); var dtd: CKEDITOR.dtdDefinition = element.getDtd(); var last: CKEDITOR.dom.node = element.getLast(); var last2: CKEDITOR.dom.node = element.getLast((node: CKEDITOR.dom.node) => node.equals(document.body)); - if (element.isBlockBoundary({ 'div': 1, 'span': 1 })) { + if (element.isBlockBoundary({ div: 1, span: 1 })) { element.setState(1, 'hex', false); } CKEDITOR.dom.element.clearMarkers({}, element, true); var element1: CKEDITOR.dom.element = CKEDITOR.dom.element.get('div'); - var element2: CKEDITOR.dom.element = CKEDITOR.dom.element.get(document.createElement('div')); + var element6: CKEDITOR.dom.element = CKEDITOR.dom.element.get(document.createElement('div')); var element3: CKEDITOR.dom.element = CKEDITOR.dom.element.get(element2); var markedElement: CKEDITOR.dom.element = CKEDITOR.dom.element.setMarker({}, element, 'key', 0); } @@ -242,20 +241,20 @@ function test_dom_elementPath() { function test_dom_event() { var event = new CKEDITOR.dom.event(new Event("")); alert(event.getKey()); - alert(event.getKeystroke() == 65); - alert(event.getKeystroke() == CKEDITOR.CTRL + 65); - alert(event.getKeystroke() == CKEDITOR.CTRL + CKEDITOR.SHIFT + 65); + alert(event.getKeystroke() === 65); + alert(event.getKeystroke() === CKEDITOR.CTRL + 65); + alert(event.getKeystroke() === CKEDITOR.CTRL + CKEDITOR.SHIFT + 65); var element = new CKEDITOR.dom.element('div'); - element.on('mousemouse', ev=> { + element.on('mousemouse', ev => { var pageOffset = ev.data.getPageOffset(); alert(pageOffset.x); alert(pageOffset.y); }); - element.on('click', ev=> { + element.on('click', ev => { var domEvent = ev.data; domEvent.getTarget().addClass('clicked'); }); - element.on('click', ev=> { + element.on('click', ev => { var domEvent = ev.data as CKEDITOR.dom.event; domEvent.preventDefault(); }); @@ -266,7 +265,7 @@ function test_dom_iterator() { var iterator = range.createIterator(); var paragrah1: CKEDITOR.dom.element = iterator.getNextParagraph(); var paragrah2: CKEDITOR.dom.element = iterator.getNextParagraph('div'); - alert(iterator.forceBrBreak === false); + alert(!iterator.forceBrBreak); var itRange: CKEDITOR.dom.range = iterator.range; } @@ -335,7 +334,7 @@ function test_dom_selection() { element = selection.getSelectedElement(); var text: string = selection.getSelectedText(); element = selection.getStartElement(); - + var type: number = selection.getType(); var isSomething: boolean = selection.isCollapsed(); @@ -361,18 +360,18 @@ function test_dom_walker() { var range: CKEDITOR.dom.range = new CKEDITOR.dom.range(element); var walker: CKEDITOR.dom.walker = new CKEDITOR.dom.walker(range); - + var isSomething: boolean = walker.checkBackward(); isSomething = walker.checkForward(); walker.end(); - + var node: CKEDITOR.dom.node = walker.lastBackward(); node = walker.lastForward(); node = walker.next(); node = walker.previous(); walker.reset(); - isSomething = CKEDITOR.dom.walker.blockBoundary({ 'div': 1 })(node); + isSomething = CKEDITOR.dom.walker.blockBoundary({ div: 1 })(node); isSomething = CKEDITOR.dom.walker.bogus()(node); isSomething = CKEDITOR.dom.walker.bogus(isSomething)(node); isSomething = CKEDITOR.dom.walker.bookmark()(node); @@ -471,8 +470,8 @@ function test_dialog() { dialog.showPage('1234'); dialog.updateStyle(); - CKEDITOR.dialog.add( 'abbrDialog', this.path + 'dialogs/abbr.js' ); - CKEDITOR.dialog.add( 'abbrDialog', function ( editor: CKEDITOR.editor ) { + CKEDITOR.dialog.add('abbrDialog', 'PATH/dialogs/abbr.js'); + CKEDITOR.dialog.add('abbrDialog', (editor: CKEDITOR.editor) => { return { title: 'Abbreviation Properties', minWidth: 400, @@ -486,7 +485,7 @@ function test_dialog() { { id: 'tab-basic', label: 'Basic Settings', - elements: [] + elements: [] }, { id: 'tab-adv', @@ -566,7 +565,7 @@ function test_fileTools_fileLoader() { var loader: CKEDITOR.fileTools.fileLoader = new CKEDITOR.fileTools.fileLoader(editor, 'data'); loader = new CKEDITOR.fileTools.fileLoader(editor, blob); loader = new CKEDITOR.fileTools.fileLoader(editor, blob, 'name'); - + loader.abort(); var finished: boolean = loader.isFinished(); loader.load(); @@ -582,7 +581,7 @@ function test_fileTools_uploadRepository() { var editor: CKEDITOR.editor; var blob: Blob; var repo: CKEDITOR.fileTools.uploadRepository = new CKEDITOR.fileTools.uploadRepository(editor); - + var loader: CKEDITOR.fileTools.fileLoader = repo.create('data', 'name'); loader = repo.create(blob, 'name', 'type'); @@ -603,7 +602,7 @@ function test_filter() { filter.addElementCallback((el: CKEDITOR.htmlParser.element) => 4); filter.addFeature({ allowedContent: style }); filter.addTransformations([ [ 'transform1', { right: (element: CKEDITOR.htmlParser.element, tools: string | CKEDITOR.filter.transformationTools) => true } ] ]); - + var allowed: boolean = filter.allow(style); allowed = filter.allow([style], 'name'); allowed = filter.allow('rule', 'name', false); @@ -645,7 +644,6 @@ function test_focusManager() { var bool: boolean = focusManager.hasFocus; } - function test_htmlParser_basicWriter() { var writer = new CKEDITOR.htmlParser.basicWriter(); writer.attribute('class', 'MyClass'); @@ -680,12 +678,12 @@ function test_htmlParser_cssStyle() { style.populate(element); style.populate(new CKEDITOR.dom.element('div')); - style.populate({ 'width': 1 }); + style.populate({ width: 1 }); } function test_htmlParser_element() { - var element: CKEDITOR.htmlParser.element = new CKEDITOR.htmlParser.element('el', { 'id': '1'}); - + var element: CKEDITOR.htmlParser.element = new CKEDITOR.htmlParser.element('el', { id: '1'}); + var node: CKEDITOR.htmlParser.node; element.add(node); element.add(node, 5); @@ -703,8 +701,8 @@ function test_htmlParser_element() { element.forEach((el: CKEDITOR.htmlParser.node) => console.log('node'), 1); element.forEach((el: CKEDITOR.htmlParser.node) => false, 2, true); - var node: CKEDITOR.htmlParser.node = element.getFirst('*'); - node = element.getFirst({ 'id': '1' }); + node = element.getFirst('*'); + node = element.getFirst({ id: '1' }); node = element.getFirst((el: CKEDITOR.htmlParser.node) => true); var html: string = element.getHtml(); @@ -728,7 +726,7 @@ function test_htmlParser_filter() { filter = new CKEDITOR.htmlParser.filter(); filter.addRules({ text: 'text' }); - filter.addRules({ attributes: { 'id': '1234' }}, 1); + filter.addRules({ attributes: { id: '1234' }}, 1); filter.addRules({ comment: 'hey', text: 'text' }, { priority: 1 }); filter.addRules({ root: document.body }, { applyToAll: false }); @@ -736,7 +734,6 @@ function test_htmlParser_filter() { filter.applyTo(node); } - function test_htmlParser_filterRulesGroup() { var rules: CKEDITOR.htmlParser.filterRulesGroup = new CKEDITOR.htmlParser.filterRulesGroup(); @@ -786,7 +783,7 @@ function test_htmlParser_node() { var node: CKEDITOR.htmlParser.node = new CKEDITOR.htmlParser.node(); var el: CKEDITOR.htmlParser.element = node.getAscendant('condition'); - el = node.getAscendant({ 'id': '1234' }); + el = node.getAscendant({ id: '1234' }); el = node.getAscendant((node: CKEDITOR.htmlParser.element) => false); var idx: number = node.getIndex(); @@ -795,7 +792,6 @@ function test_htmlParser_node() { node.remove(); node.replaceWith(node); el = node.wrapWith(el); - } function test_htmlParser_text() { @@ -825,9 +821,9 @@ function test_htmlWriter() { function test_htmlParser() { var html = '
text
'; var fragment = CKEDITOR.htmlParser.fragment.fromHtml(html); - fragment.forEach(function(node) { + fragment.forEach((node) => { if (node instanceof CKEDITOR.htmlParser.element) { - node.forEach(function(node) { + node.forEach((node) => { console.log(node); }); } @@ -836,13 +832,13 @@ function test_htmlParser() { function test_keystrokeHandler() { var handler: CKEDITOR.keystrokeHandler = new CKEDITOR.keystrokeHandler(CKEDITOR.instances[0]); - handler.attach(new CKEDITOR.dom.domObject(document.body)); + handler.attach(new CKEDITOR.dom.domObject(document.body)); } function test_lang() { var lang: string = CKEDITOR.lang.detect('en'); lang = CKEDITOR.lang.detect('zh', 'sw'); - + CKEDITOR.lang.load('tk', 'pr', (code: string, entries: any) => console.log('loaded')); } @@ -869,8 +865,8 @@ function test_menu() { } function test_plugins() { - CKEDITOR.plugins.add( 'abbr', { - init: function( editor: CKEDITOR.editor ) { + CKEDITOR.plugins.add('abbr', { + init: (editor: CKEDITOR.editor) => { // empty logic } }); @@ -921,7 +917,7 @@ function test_skin() { } function test_style() { - var style: CKEDITOR.style = new CKEDITOR.style({ element: 'div' }, { 'key': 'value '}); + var style: CKEDITOR.style = new CKEDITOR.style({ element: 'div' }, { key: 'value '}); style.apply(CKEDITOR.instances[0]); var el: CKEDITOR.dom.element; @@ -945,7 +941,7 @@ function test_style() { var def: CKEDITOR.style.definition = style.getDefintion(); style.remove(CKEDITOR.instances[0]); style.removeFromRange(range, CKEDITOR.instances[0]); - + var rules: CKEDITOR.filter.allowedContentRules; rules = style.toAllowedContentRules(); rules = style.toAllowedContentRules(CKEDITOR.instances[0]); @@ -955,14 +951,14 @@ function test_adding_command_and_buttons() { var textarea = document.createElement('textarea'); var instance = CKEDITOR.replace(textarea); - instance.addCommand( 'aCommand', { - exec: function( editor: CKEDITOR.editor ) { + instance.addCommand('aCommand', { + exec: (editor: CKEDITOR.editor) => { // empty logic return true; } }); - instance.ui.addButton( 'firstButton', { + instance.ui.addButton('firstButton', { icon: 'http://www.example.com/assets/images/icons.png', iconOffset: -32, label: 'Label 1', @@ -970,7 +966,7 @@ function test_adding_command_and_buttons() { toolbar: 'tools' }); - instance.ui.addButton( 'secondButton', { + instance.ui.addButton('secondButton', { label: 'Label 2', command: 'aCommand', toolbar: 'tools' @@ -983,7 +979,7 @@ function test_adding_widget() { button: "Activate widgetty", template: "", dialog: "widgetty", - init: function() { + init: () => { // no logic } }); @@ -1012,80 +1008,80 @@ function test_editor_instance_event() { var textarea = document.createElement('textarea'); var instance = CKEDITOR.replace(textarea, { on: { - activeEnterModeChange: function() {}, - activeFilterChange: function() {}, - afterCommandExec: function() {}, - afterInsertHtml: function() {}, - afterPaste: function() {}, - afterPasteFromWord: function() {}, - afterSetData: function() {}, - afterUndoImage: function() {}, - ariaEditorHelpLabel: function() {}, - ariaWidget: function() {}, - autogrow: function() {}, - beforeCommandExec: function() {}, - beforeDestroy: function() {}, - beforeModeUnload: function() {}, - beforeSetMode: function() {}, - beforeUndoImage: function() {}, - blur: function() {}, - change: function() {}, - configLoaded: function() {}, - contentDirChanged: function() {}, - contentDom: function() {}, - contentDomInvalidated: function() {}, - contentDomUnload: function() {}, - customConfigLoaded: function() {}, - dataFiltered: function() {}, - dataReady: function() {}, - destroy: function() {}, - dialogHide: function() {}, - dialogShow: function() {}, - dirChanged: function() {}, - doubleclick: function() {}, - dragend: function() {}, - dragstart: function() {}, - drop: function() {}, - elementsPathUpdate: function() {}, - fileUploadRequest: function() {}, - fileUploadResponse: function() {}, - floatingSpaceLayout: function() {}, - focus: function() {}, - getData: function() {}, - getSnapshot: function() {}, - insertElement: function() {}, - insertHtml: function() {}, - insertText: function() {}, - instanceReady: function() {}, - key: function() {}, - langLoaded: function() {}, - loadSnapshot: function() {}, - loaded: function() {}, - lockSnapshot: function() {}, - maximize: function() {}, - menuShow: function() {}, - mode: function() {}, - notificationHide: function() {}, - notificationShow: function() {}, - notificationUpdate: function() {}, - paste: function() {}, - pasteFromWord: function() {}, - pluginsLoaded: function() {}, - readOnly: function() {}, - removeFormatCleanup: function() {}, - required: function() {}, - resize: function() {}, - save: function() {}, - saveSnapshot: function() {}, - selectionChange: function() {}, - setData: function() {}, - stylesSet: function() {}, - template: function() {}, - toDataFormat: function() {}, - toHtml: function() {}, - unlockSnapshot: function() {}, - updateSnapshot: function() {}, - widgetDefinition: function() {} + activeEnterModeChange: () => {}, + activeFilterChange: () => {}, + afterCommandExec: () => {}, + afterInsertHtml: () => {}, + afterPaste: () => {}, + afterPasteFromWord: () => {}, + afterSetData: () => {}, + afterUndoImage: () => {}, + ariaEditorHelpLabel: () => {}, + ariaWidget: () => {}, + autogrow: () => {}, + beforeCommandExec: () => {}, + beforeDestroy: () => {}, + beforeModeUnload: () => {}, + beforeSetMode: () => {}, + beforeUndoImage: () => {}, + blur: () => {}, + change: () => {}, + configLoaded: () => {}, + contentDirChanged: () => {}, + contentDom: () => {}, + contentDomInvalidated: () => {}, + contentDomUnload: () => {}, + customConfigLoaded: () => {}, + dataFiltered: () => {}, + dataReady: () => {}, + destroy: () => {}, + dialogHide: () => {}, + dialogShow: () => {}, + dirChanged: () => {}, + doubleclick: () => {}, + dragend: () => {}, + dragstart: () => {}, + drop: () => {}, + elementsPathUpdate: () => {}, + fileUploadRequest: () => {}, + fileUploadResponse: () => {}, + floatingSpaceLayout: () => {}, + focus: () => {}, + getData: () => {}, + getSnapshot: () => {}, + insertElement: () => {}, + insertHtml: () => {}, + insertText: () => {}, + instanceReady: () => {}, + key: () => {}, + langLoaded: () => {}, + loadSnapshot: () => {}, + loaded: () => {}, + lockSnapshot: () => {}, + maximize: () => {}, + menuShow: () => {}, + mode: () => {}, + notificationHide: () => {}, + notificationShow: () => {}, + notificationUpdate: () => {}, + paste: () => {}, + pasteFromWord: () => {}, + pluginsLoaded: () => {}, + readOnly: () => {}, + removeFormatCleanup: () => {}, + required: () => {}, + resize: () => {}, + save: () => {}, + saveSnapshot: () => {}, + selectionChange: () => {}, + setData: () => {}, + stylesSet: () => {}, + template: () => {}, + toDataFormat: () => {}, + toHtml: () => {}, + unlockSnapshot: () => {}, + updateSnapshot: () => {}, + widgetDefinition: () => {} } }); } @@ -1151,7 +1147,7 @@ function test_tools() { var str = CKEDITOR.tools.cssStyleToDomStyle('style'); var prefixes: { [cssClass: string]: string | number } = CKEDITOR.tools.cssVendorPrefix('prop', 'val'); prefixes = CKEDITOR.tools.cssVendorPrefix('prop', 'val', true); - var fn: (param: any) => boolean + var fn: (param: any) => boolean; fn = CKEDITOR.tools.defer<(param: any) => boolean>(fn); CKEDITOR.tools.enableHtml5Elements(document); CKEDITOR.tools.enableHtml5Elements(document.createDocumentFragment(), true); @@ -1172,7 +1168,7 @@ function test_tools() { str = CKEDITOR.tools.htmlEncode(str); str = CKEDITOR.tools.htmlEncodeAttr(str); numb = CKEDITOR.tools.indexOf(['string', 'array'], 'string'); - numb = CKEDITOR.tools.indexOf([true, false], (val: boolean) => false); + numb = CKEDITOR.tools.indexOf([true, false], (val: boolean) => false); console.log(CKEDITOR.tools.isArray([1])); // true console.log(CKEDITOR.tools.isArray(obj)); // false console.log(CKEDITOR.tools.isArray(null)); // false @@ -1186,8 +1182,8 @@ function test_tools() { bool = CKEDITOR.tools.objectCompare(obj, obj); bool = CKEDITOR.tools.objectCompare(obj, obj, true); var strArr: string[] = CKEDITOR.tools.objectKeys(obj); - CKEDITOR.tools.override(parseInt, function(_parseInt) { - return function(value: any, radix?: number) { + CKEDITOR.tools.override(parseInt, (_parseInt) => { + return (value: any, radix?: number) => { return _parseInt(value, radix); }; }); diff --git a/types/ckeditor/index.d.ts b/types/ckeditor/index.d.ts index 53760a7610..fb7fe92088 100644 --- a/types/ckeditor/index.d.ts +++ b/types/ckeditor/index.d.ts @@ -6,12 +6,12 @@ // WORK-IN-PROGRESS: Any contribution support welcomed. // See https://github.com/DefinitelyTyped/DefinitelyTyped/issues/1827 for more informations. + interface Window { CKEDITOR_BASEPATH: string; } declare namespace CKEDITOR { - // Config options var disableAutoInline: boolean; var replaceClass: string; @@ -131,12 +131,11 @@ declare namespace CKEDITOR { function removeAllListeners(): void; function removeListener(eventName: string, listenerFunction: (eventInfo: eventInfo) => void): void; - type listenerRegistration = { + interface listenerRegistration { removeListener: () => void; } namespace dom { - interface bookmark { startNode: dom.node | string; endNode: dom.node | string; @@ -210,8 +209,7 @@ declare namespace CKEDITOR { readonly $: HTMLElement; readonly type: number; - constructor(element: string, ownerDocument?: document); - constructor(element: HTMLElement, ownerDocument?: document); + constructor(element: string | HTMLElement, ownerDocument?: document); addClass(className: string): void; append(node: node | string, toStart?: boolean): node; appendBogus(force: boolean): void; @@ -273,8 +271,7 @@ declare namespace CKEDITOR { removeClass(className: string): void; removeStyle(name: string): void; renameNode(newTag: string): void; - scrollIntoParent(parent: element, alignToTop: boolean, hscroll: boolean): void; - scrollIntoParent(parent: window, alignToTop: boolean, hscroll: boolean): void; + scrollIntoParent(parent: element | window, alignToTop: boolean, hscroll: boolean): void; scrollIntoView(alignToTop?: boolean): void; setAttribute(name: string, value: string): element; setAttributes(attributesPairs: { [key: string]: string }): element; @@ -289,7 +286,7 @@ declare namespace CKEDITOR { show(): void; unselectable(): void; - //static method + // static method static clearAllMarkers(database: any): any; static clearMarkers(database: any, element: dom.element, removeFromDatabase: boolean): void; static createFromHtml(html: string): element; @@ -437,8 +434,8 @@ declare namespace CKEDITOR { } interface shrinkOptions { - shrinkOnBlockBoundary?: boolean, - skipBogus?: boolean + shrinkOnBlockBoundary?: boolean; + skipBogus?: boolean; } class rangeList { @@ -449,7 +446,6 @@ declare namespace CKEDITOR { moveToBookmarks(bookmarks: bookmark[]): void; } - interface rangeListIterator { getNextRange(mergeConsequent?: boolean): range; } @@ -481,7 +477,7 @@ declare namespace CKEDITOR { removeAllRanges(): void; reset(): void; scrollIntoView(): void; - selectBookmarks(bookmarks: (bookmark | bookmark2)[]): selection; + selectBookmarks(bookmarks: Array): selection; selectElement(element: element): void; selectRanges(ranges: range[]): void; unlock(restore: boolean): void; @@ -547,14 +543,12 @@ declare namespace CKEDITOR { } } - namespace ajax { function load(url: string, callback?: (data: any) => void): string; function loadXml(url: string, callback?: (data: any) => void): xml; function post(url: string, data: any, contentType?: string, callback?: (data: any) => void): void; } - class command extends event implements commandDefinition { fakeKeystroke: number; previousState: number; @@ -570,7 +564,6 @@ declare namespace CKEDITOR { refresh(editor: editor, path: dom.elementPath): void; setState(newState: number): boolean; toggleState(): void; - } interface commandDefinition { @@ -737,7 +730,7 @@ declare namespace CKEDITOR { jqueryOverrideVal?: boolean; justifyClasses?: string[]; - keystrokes?: [number, string][]; + keystrokes?: Array<[number, string]>; language?: string; language_list?: string[]; @@ -745,7 +738,7 @@ declare namespace CKEDITOR { linkShowAdvancedTab?: boolean; linkShowTargetTab?: boolean; - magicline_color?: string + magicline_color?: string; magicline_everywhere?: boolean; magicline_holdDistance?: number; magicline_keystrokeNext?: number; @@ -822,7 +815,7 @@ declare namespace CKEDITOR { smiley_images?: string[]; smiley_path?: string; sourceAreaTabSize?: number; - specialChars?: (string | [string, string])[]; + specialChars?: Array; startupFocus?: string | boolean; startupMode?: string; startupOutlineBlocks?: boolean; @@ -837,10 +830,10 @@ declare namespace CKEDITOR { templates_files?: { [key: string]: any }; templates_replaceContent?: boolean; title?: string | boolean; - toolbar?: string | (string | string[] | { name: string, items?: string[], groups?: string[] })[] | null; + toolbar?: string | Array | null; toolbarCanCollapse?: boolean; toolbarGroupCycling?: boolean; - toolbarGroups?: (toolbarGroups | string)[]; + toolbarGroups?: Array; toolbarLocation?: string; toolbarStartupExpanded?: boolean; @@ -914,9 +907,7 @@ declare namespace CKEDITOR { } namespace dialog { - namespace definition { - interface button extends uiElement { disabled?: boolean; } @@ -968,13 +959,13 @@ declare namespace CKEDITOR { interface radio extends labeledElement { default?: string; - items?: string[] | (string[])[]; + items?: string[] | string[][]; validate?: () => boolean; } interface select extends labeledElement { default?: string; - items?: string[] | (string[])[]; + items?: string[] | string[][]; multiple?: boolean; size?: number; validate?: () => boolean; @@ -1172,7 +1163,7 @@ declare namespace CKEDITOR { setActiveFilter(filter: filter): void; setData(data: string, options?: { internal?: boolean; callback?: () => void; noSnapshot?: boolean; }): void; setKeystroke(keystroke: number, behavior: string | boolean): void; - setKeystroke(keystroke: [number, string | boolean][]): void; + setKeystroke(keystroke: Array<[number, string | boolean]>): void; setMode(newMode: string, callback: () => void): void; setReadOnly(isReadOnly?: boolean): void; setUiColor(color: string): void; @@ -1432,7 +1423,7 @@ declare namespace CKEDITOR { readonly disabled: boolean; readonly disallowedContent: any[]; readonly editor: editor; - readonly elementCallbacks: ((element: htmlParser.element) => number)[]; + readonly elementCallbacks: Array<(element: htmlParser.element) => number>; readonly id: number; static instances: { [id: string]: filter }; @@ -1441,7 +1432,7 @@ declare namespace CKEDITOR { addContentForms(forms: any[]): void; addElementCallback(callback: (element: htmlParser.element) => number): void; addFeature(feature: feature): boolean; - addTransformations(transformations: (string | filter.transformation)[][]): void; + addTransformations(transformations: Array>): void; allow(newRules: filter.allowedContentRules, featureName?: string, overrideCustom?: boolean): boolean; applyTo(fragment: htmlParser.fragment | htmlParser.element, toHrml: boolean, transformOnly: boolean, enterMode: number): boolean; check(test: filter.contentRule, applyTransformations?: boolean, strictCheck?: boolean): boolean; @@ -1571,10 +1562,10 @@ declare namespace CKEDITOR { } class filterRulesGroup { - rules: { value: rule, priority: number, option: ruleOptions }[]; + rules: Array<{ value: rule, priority: number, option: ruleOptions }>; add(rule: rule, priority: number, options: ruleOptions): void; - addMany(rules: { [key: string]: any }[], priority: number, options: ruleOptions): void; + addMany(rules: Array<{ [key: string]: any }>, priority: number, options: ruleOptions): void; exec(currentValue: htmlParser.node | htmlParser.fragment | string): htmlParser.node | htmlParser.fragment | string; execOnName(currentName: string): string; findIndex(priority: number): number; @@ -1612,8 +1603,8 @@ declare namespace CKEDITOR { type rule = ((value: htmlParser.node | htmlParser.fragment | string) => boolean) | [string, string]; interface ruleOptions { - applyToAll?: boolean, - excludeNestedEditable?: boolean + applyToAll?: boolean; + excludeNestedEditable?: boolean; } class text extends node { @@ -1682,7 +1673,6 @@ declare namespace CKEDITOR { } namespace plugins { - namespace cloudservices { class cloudServicesLoader extends fileTools.fileLoader { customToken: string; @@ -1778,7 +1768,7 @@ declare namespace CKEDITOR { highlighter: (code: string, lang: string, callback: (highlightedCode: string) => void) => void; init: (ready: () => void) => void; languages: { [lang: string]: string }; - readonly queue: ((code: string, lang: string, callback: (highlightedCode: string) => void) => void)[]; + readonly queue: Array<(code: string, lang: string, callback: (highlightedCode: string) => void) => void>; readonly ready: boolean; highlight(code: string, lang: string, callback: (highlightedCode: string) => void): void; @@ -1809,9 +1799,7 @@ declare namespace CKEDITOR { } } - namespace easyimage { - - } + namespace easyimage {} namespace embedBase { function createWidgetBaseDefinition(editor: editor): baseDefinition; @@ -1856,9 +1844,7 @@ declare namespace CKEDITOR { class progressBar extends progressReporter { bar: dom.element; - constructor(); - } class progressReporter { @@ -1922,7 +1908,7 @@ declare namespace CKEDITOR { const synAnchorSelector: boolean; function getEditorAnchors(editor: editor): dom.element[]; - function getLinkAttributes(editor: editor, data: { [key: string]: any }): { set: { [key: string]: string }, removed: string[] } + function getLinkAttributes(editor: editor, data: { [key: string]: any }): { set: { [key: string]: string }, removed: string[] }; function getSelectedLink(editor: editor, returnMultiple?: boolean): dom.element | dom.element[]; function parseLinkAttributes(editor: editor, element: dom.element): { [key: string]: any }; function showDisplayTextForElement(element: dom.element, editor: editor): boolean; @@ -2057,7 +2043,6 @@ declare namespace CKEDITOR { setData(data: string): void; } - interface definition extends feature { button?: string; data?: (evt: eventInfo) => void; @@ -2100,8 +2085,7 @@ declare namespace CKEDITOR { destroyAll(offline?: boolean): void; finalizeCreation(container: any): void; getByElement(element: any, checkWrapperOnly: boolean): plugins.widget; - initOn(element: dom.element, widgetDef?: plugins.widget.definition, startupData?: { [key: string]: any }): plugins.widget; - initOn(element: dom.element, widgetDef?: string, startupData?: { [key: string]: any }): plugins.widget; + initOn(element: dom.element, widgetDef?: string | plugins.widget.definition, startupData?: { [key: string]: any }): plugins.widget; initOnAll(container?: dom.element): plugins.widget[]; parseElementClasses(classes: string): any; wrapElement(element: any, widgetName?: string): any; @@ -2118,7 +2102,7 @@ declare namespace CKEDITOR { readonly definition: plugins.widget.definition; readonly editor: editor; readonly element: dom.element; - readonly focusedEditable: plugins.widget.nestedEditable + readonly focusedEditable: plugins.widget.nestedEditable; readonly id: number; readonly inited: boolean; readonly ready: boolean; @@ -2147,8 +2131,7 @@ declare namespace CKEDITOR { updateDragHandlerPosition(): void; } - function add(name: string, definition: pluginDefinition): void; - function add(name: string): void; + function add(name: string, definition?: pluginDefinition): void; function addExternal(name: string, path: string, fileName?: string): void; function get(name: string): any; function getFilePath(name: string): string; @@ -2182,6 +2165,7 @@ declare namespace CKEDITOR { namespace skin { var icons: { [name: string]: { path: string } }; + // tslint:disable-next-line:no-duplicate-variable var name: string; var ua: { [name: string]: any }; @@ -2209,11 +2193,11 @@ declare namespace CKEDITOR { } interface definition { - attributes?: { [att: string]: string }, - element: string, - name?: string, - styles?: { [att: string]: string }, - type?: string | number + attributes?: { [att: string]: string }; + element: string; + name?: string; + styles?: { [att: string]: string }; + type?: string | number; } interface customHandler { @@ -2414,13 +2398,13 @@ declare namespace CKEDITOR { interface radio { default: any; validate?: () => boolean; - items: ([string, string] | [string])[]; + items: Array<[string, string] | [string]>; } interface select { default: any; validate?: () => boolean; - items: ([string, string] | [string])[]; + items: Array<[string, string] | [string]>; multiple?: boolean; size?: number; } @@ -2462,7 +2446,6 @@ declare namespace CKEDITOR { constructor(dialog: dialog, childObjList: any[], childHtmlList: any[], htmlList: any[], elementDefinition: definitions.fieldSet); } - class file extends ui.dialog.labeledElement { constructor(dialog: dialog, elementDefinition: definitions.file, htmlList: any[]); @@ -2473,12 +2456,10 @@ declare namespace CKEDITOR { submit(): file; } - class fileButton extends button { constructor(dialog: dialog, elementDefinition: definitions.fileButton, htmlList: any[]); } - class hbox extends uiElement { constructor(dialog: dialog, childObjList: any[], childHtmlList: any[], htmlList: any[], elementDefinition: definitions.hbox); @@ -2486,17 +2467,11 @@ declare namespace CKEDITOR { getChild(indices: number[]): ui.dialog.uiElement[]; } - class html extends uiElement { constructor(dialog: dialog, elementDefinition: definitions.html, htmlList: any[]); - - } - - - class iframeElement extends uiElement { - } + class iframeElement extends uiElement {} class labeledElement extends uiElement { constructor(dialog: dialog, elementDefinition: definitions.labeledElement, htmlList: any[], contentHtml: () => string); @@ -2505,7 +2480,6 @@ declare namespace CKEDITOR { setlabel(label: string): ui.dialog.labeledElement; } - class radio extends ui.dialog.labeledElement { constructor(dialog: dialog, elementDefinition: definitions.radio, htmlList: any[]); @@ -2514,7 +2488,6 @@ declare namespace CKEDITOR { setValue(value: string, noChangeEvent: boolean): undefined; } - class select extends uiElement { constructor(dialog: dialog, elementDefinition: definitions.select, htmlList: any[]); @@ -2523,12 +2496,10 @@ declare namespace CKEDITOR { remove(index: number): select; } - class textarea extends labeledElement { constructor(dialog: dialog, elementDefinition: definitions.textarea, htmlList: any[]); } - class textInput extends ui.dialog.labeledElement { constructor(dialog: dialog, elementDefinition: definitions.textInput, htmlList: any[]); @@ -2544,7 +2515,16 @@ declare namespace CKEDITOR { class uiElement { eventProcessors: any; - constructor(dialog: dialog, elementDefinition: definitions.uiElement, htmlList: any[], nodeNameArg?: () => string | string, stylesArg?: () => { [key: string]: any } | { [key: string]: any }, attributesArg?: () => { [key: string]: any } | { [key: string]: any }, contentsArg?: () => { [key: string]: any } | string); // Not sure that the htmlList array type is right. + // Not sure that the htmlList array type is right. + constructor( + dialog: dialog, + elementDefinition: definitions.uiElement, + htmlList: any[], + nodeNameArg?: () => string | string, + stylesArg?: () => { [key: string]: any } | { [key: string]: any }, + attributesArg?: () => { [key: string]: any } | { [key: string]: any }, + contentsArg?: () => { [key: string]: any } | string + ); accessKeyDown(dialog: dialog, key: string): void; accessKeyUp(dialog: dialog, key: string): void; @@ -2692,9 +2672,7 @@ declare namespace CKEDITOR { create(definition: { [key: string]: any }): T; } - class menuButton extends button { - - } + class menuButton extends button {} class panel { constructor(document: dom.document, definition: { [key: string]: any }); @@ -2713,9 +2691,7 @@ declare namespace CKEDITOR { const handler: handlerDefinition; } - class panelButton extends button { - - } + class panelButton extends button {} class richCombo { static readonly handler: handlerDefinition; @@ -2753,11 +2729,11 @@ declare namespace CKEDITOR { } interface IMenuItemDefinition { - label: string, - command: string, - icon: string - group: string, - order: number + label: string; + command: string; + icon: string; + group: string; + order: number; } interface buttonDefinition { diff --git a/types/ckeditor/tsconfig.json b/types/ckeditor/tsconfig.json index e845e96c0a..8f9fa0829d 100644 --- a/types/ckeditor/tsconfig.json +++ b/types/ckeditor/tsconfig.json @@ -6,7 +6,7 @@ "dom" ], "noImplicitAny": true, - "noImplicitThis": false, + "noImplicitThis": true, "strictNullChecks": false, "strictFunctionTypes": true, "baseUrl": "../", diff --git a/types/ckeditor/tslint.json b/types/ckeditor/tslint.json index a41bf5d19a..ecb79fbcb1 100644 --- a/types/ckeditor/tslint.json +++ b/types/ckeditor/tslint.json @@ -1,79 +1,14 @@ { "extends": "dtslint/dt.json", "rules": { - "adjacent-overload-signatures": false, - "array-type": false, - "arrow-return-shorthand": false, "ban-types": false, - "callable-types": false, - "comment-format": false, - "dt-header": false, - "eofline": false, - "export-just-namespace": false, - "import-spacing": false, "interface-name": false, - "interface-over-type-literal": false, - "jsdoc-format": false, - "max-line-length": false, - "member-access": false, - "new-parens": false, "no-any-union": false, - "no-boolean-literal-compare": false, - "no-conditional-assignment": false, - "no-consecutive-blank-lines": false, - "no-construct": false, - "no-declare-current-package": false, - "no-duplicate-imports": false, - "no-duplicate-variable": false, "no-empty-interface": false, - "no-for-in-array": false, - "no-inferrable-types": false, "no-internal-module": false, - "no-irregular-whitespace": false, - "no-mergeable-namespace": false, - "no-misused-new": false, - "no-namespace": false, - "no-object-literal-type-assertion": false, - "no-padding": false, - "no-redundant-jsdoc": false, - "no-redundant-jsdoc-2": false, - "no-redundant-undefined": false, - "no-reference-import": false, - "no-relative-import-in-test": false, - "no-self-import": false, - "no-single-declare-module": false, - "no-string-throw": false, - "no-unnecessary-callback-wrapper": false, - "no-unnecessary-class": false, "no-unnecessary-generics": false, "no-unnecessary-qualifier": false, - "no-unnecessary-type-assertion": false, - "no-useless-files": false, "no-var-keyword": false, - "no-var-requires": false, - "no-void-expression": false, - "no-trailing-whitespace": false, - "object-literal-key-quotes": false, - "object-literal-shorthand": false, - "one-line": false, - "one-variable-per-declaration": false, - "only-arrow-functions": false, - "prefer-conditional-expression": false, - "prefer-const": false, - "prefer-declare-function": false, - "prefer-for-of": false, - "prefer-method-signature": false, - "prefer-template": false, - "radix": false, - "semicolon": false, - "space-before-function-paren": false, - "space-within-parens": false, - "strict-export-declare-modifiers": false, - "trim-file": false, - "triple-equals": false, - "typedef-whitespace": false, - "unified-signatures": false, - "void-return": false, - "whitespace": false + "prefer-const": false } } diff --git a/types/ckeditor/v2/ckeditor-tests.ts b/types/ckeditor/v2/ckeditor-tests.ts index 1a906bc26e..ce93c75eba 100644 --- a/types/ckeditor/v2/ckeditor-tests.ts +++ b/types/ckeditor/v2/ckeditor-tests.ts @@ -1,14 +1,12 @@ - - function test_CKEDITOR() { CKEDITOR.basePath = 'test'; CKEDITOR.replaceClass = 'rich_editor'; CKEDITOR.skinName = 'moono'; CKEDITOR.skinName = 'myskin,/customstuff/myskin/'; var editor = new CKEDITOR.editor(); - if (editor.getSelection().getType() == CKEDITOR.SELECTION_ELEMENT) - if (editor.getSelection().getType() == CKEDITOR.SELECTION_NONE) - if (editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT) + if (editor.getSelection().getType() === CKEDITOR.SELECTION_ELEMENT) + if (editor.getSelection().getType() === CKEDITOR.SELECTION_NONE) + if (editor.getSelection().getType() === CKEDITOR.SELECTION_TEXT) alert(CKEDITOR.basePath); if (CKEDITOR.currentInstance) alert(CKEDITOR.currentInstance.name); @@ -17,7 +15,7 @@ function test_CKEDITOR() { CKEDITOR.loadFullCoreTimeout = 5; alert(CKEDITOR.revision); alert(CKEDITOR.rnd); - if (CKEDITOR.status == 'loaded') { + if (CKEDITOR.status === 'loaded') { CKEDITOR.loadFullCore(); } alert(CKEDITOR.timestamp); @@ -38,7 +36,7 @@ function test_CKEDITOR() { } function test_CKEDITOR_events() { - CKEDITOR.on('instanceCreated', function(event) { + CKEDITOR.on('instanceCreated', (event) => { // $ExpectType editor event.editor; }); @@ -75,7 +73,7 @@ function test_config() { { name: 'styles', groups: [ 'styles' ] }, { name: 'colors', groups: [ 'colors' ] }, ], - } + }; } function test_dom_comment() { @@ -115,7 +113,7 @@ function test_dom_domObject() { var nativeElement = element.$; var doc = new CKEDITOR.dom.document(document); alert(doc.equals(CKEDITOR.document)); - alert(doc == CKEDITOR.document); + alert(doc === CKEDITOR.document); var element2 = new CKEDITOR.dom.element('span'); alert(element.getCustomData('hasCustomData')); alert(element.getCustomData('nonExistingKey')); @@ -136,7 +134,7 @@ function test_dom_element() { var strong = new CKEDITOR.dom.element('strong'); p.append(strong); var em = p.append('em'); - var p = new CKEDITOR.dom.element('p'); + p = new CKEDITOR.dom.element('p'); p.appendText('This is'); p.appendText(' some text'); element.breakParent(strong); @@ -147,7 +145,7 @@ function test_dom_element() { element.focus(); element.focusNext(); element.focusPrevious(); - element.forEach(node=> { + element.forEach(node => { console.log(node); }); var element2 = CKEDITOR.dom.element.createFromHtml(''); @@ -159,7 +157,7 @@ function test_dom_element() { alert(element.getHtml()); alert(element.getId()); alert(element.getName()); - alert('' + element.getNameAtt() + ''); + alert(`${element.getNameAtt()}`); alert(element.getOuterHtml()); alert(element.getTabIndex()); alert(element.getText()); @@ -180,7 +178,7 @@ function test_dom_element() { element.setAttribute('class', 'myClass'); element.setAttribute('title', 'This is an example'); element.setAttributes({ - 'class': 'myClass', + class: 'myClass', title: 'This is an example' }); p.setHtml('Inner HTML'); @@ -196,7 +194,7 @@ function test_dom_element() { element.show(); element.unselectable(); alert(element.getName()); - alert(element == CKEDITOR.dom.element.get(element)); + alert(element === CKEDITOR.dom.element.get(element)); var htmlElement = document.getElementById('myElement'); alert(CKEDITOR.dom.element.get(htmlElement).getName()); } @@ -204,20 +202,20 @@ function test_dom_element() { function test_dom_event() { var event = new CKEDITOR.dom.event(new Event("")); alert(event.getKey()); - alert(event.getKeystroke() == 65); - alert(event.getKeystroke() == CKEDITOR.CTRL + 65); - alert(event.getKeystroke() == CKEDITOR.CTRL + CKEDITOR.SHIFT + 65); + alert(event.getKeystroke() === 65); + alert(event.getKeystroke() === CKEDITOR.CTRL + 65); + alert(event.getKeystroke() === CKEDITOR.CTRL + CKEDITOR.SHIFT + 65); var element = new CKEDITOR.dom.element('div'); - element.on('mousemouse', ev=> { + element.on('mousemouse', ev => { var pageOffset = ev.data.getPageOffset(); alert(pageOffset.x); alert(pageOffset.y); }); - element.on('click', ev=> { + element.on('click', ev => { var domEvent = ev.data; domEvent.getTarget().addClass('clicked'); }); - element.on('click', ev=> { + element.on('click', ev => { var domEvent = ev.data as CKEDITOR.dom.event; domEvent.preventDefault(); }); @@ -298,14 +296,14 @@ function test_adding_command_and_buttons() { var textarea = document.createElement('textarea'); var instance = CKEDITOR.replace(textarea); - instance.addCommand( 'aCommand', { - exec: function( editor: CKEDITOR.editor ) { + instance.addCommand('aCommand', { + exec: (editor: CKEDITOR.editor) => { // empty logic return true; } }); - instance.ui.addButton( 'firstButton', { + instance.ui.addButton('firstButton', { icon: 'http://www.example.com/assets/images/icons.png', iconOffset: -32, label: 'Label 1', @@ -313,7 +311,7 @@ function test_adding_command_and_buttons() { toolbar: 'tools' }); - instance.ui.addButton( 'secondButton', { + instance.ui.addButton('secondButton', { label: 'Label 2', command: 'aCommand', toolbar: 'tools' @@ -321,11 +319,11 @@ function test_adding_command_and_buttons() { } function test_adding_dialog_by_path() { - CKEDITOR.dialog.add( 'abbrDialog', this.path + 'dialogs/abbr.js' ); + CKEDITOR.dialog.add('abbrDialog', 'PATH/dialogs/abbr.js'); } function test_adding_dialog_by_definition() { - CKEDITOR.dialog.add( 'abbrDialog', function ( editor: CKEDITOR.editor ) { + CKEDITOR.dialog.add('abbrDialog', (editor: CKEDITOR.editor) => { return { title: 'Abbreviation Properties', minWidth: 400, @@ -339,7 +337,7 @@ function test_adding_dialog_by_definition() { { id: 'tab-basic', label: 'Basic Settings', - elements: [] + elements: [] }, { id: 'tab-adv', @@ -352,8 +350,8 @@ function test_adding_dialog_by_definition() { } function test_plugins() { - CKEDITOR.plugins.add( 'abbr', { - init: function( editor: CKEDITOR.editor ) { + CKEDITOR.plugins.add('abbr', { + init: (editor: CKEDITOR.editor) => { // empty logic } }); @@ -367,7 +365,7 @@ function test_adding_widget() { button: "Activate widgetty", template: "", dialog: "widgetty", - init: function() { + init: () => { // no logic } }); @@ -442,80 +440,80 @@ function test_editor_instance_event() { var textarea = document.createElement('textarea'); var instance = CKEDITOR.replace(textarea, { on: { - activeEnterModeChange: function() {}, - activeFilterChange: function() {}, - afterCommandExec: function() {}, - afterInsertHtml: function() {}, - afterPaste: function() {}, - afterPasteFromWord: function() {}, - afterSetData: function() {}, - afterUndoImage: function() {}, - ariaEditorHelpLabel: function() {}, - ariaWidget: function() {}, - autogrow: function() {}, - beforeCommandExec: function() {}, - beforeDestroy: function() {}, - beforeModeUnload: function() {}, - beforeSetMode: function() {}, - beforeUndoImage: function() {}, - blur: function() {}, - change: function() {}, - configLoaded: function() {}, - contentDirChanged: function() {}, - contentDom: function() {}, - contentDomInvalidated: function() {}, - contentDomUnload: function() {}, - customConfigLoaded: function() {}, - dataFiltered: function() {}, - dataReady: function() {}, - destroy: function() {}, - dialogHide: function() {}, - dialogShow: function() {}, - dirChanged: function() {}, - doubleclick: function() {}, - dragend: function() {}, - dragstart: function() {}, - drop: function() {}, - elementsPathUpdate: function() {}, - fileUploadRequest: function() {}, - fileUploadResponse: function() {}, - floatingSpaceLayout: function() {}, - focus: function() {}, - getData: function() {}, - getSnapshot: function() {}, - insertElement: function() {}, - insertHtml: function() {}, - insertText: function() {}, - instanceReady: function() {}, - key: function() {}, - langLoaded: function() {}, - loadSnapshot: function() {}, - loaded: function() {}, - lockSnapshot: function() {}, - maximize: function() {}, - menuShow: function() {}, - mode: function() {}, - notificationHide: function() {}, - notificationShow: function() {}, - notificationUpdate: function() {}, - paste: function() {}, - pasteFromWord: function() {}, - pluginsLoaded: function() {}, - readOnly: function() {}, - removeFormatCleanup: function() {}, - required: function() {}, - resize: function() {}, - save: function() {}, - saveSnapshot: function() {}, - selectionChange: function() {}, - setData: function() {}, - stylesSet: function() {}, - template: function() {}, - toDataFormat: function() {}, - toHtml: function() {}, - unlockSnapshot: function() {}, - updateSnapshot: function() {}, - widgetDefinition: function() {} + activeEnterModeChange: () => {}, + activeFilterChange: () => {}, + afterCommandExec: () => {}, + afterInsertHtml: () => {}, + afterPaste: () => {}, + afterPasteFromWord: () => {}, + afterSetData: () => {}, + afterUndoImage: () => {}, + ariaEditorHelpLabel: () => {}, + ariaWidget: () => {}, + autogrow: () => {}, + beforeCommandExec: () => {}, + beforeDestroy: () => {}, + beforeModeUnload: () => {}, + beforeSetMode: () => {}, + beforeUndoImage: () => {}, + blur: () => {}, + change: () => {}, + configLoaded: () => {}, + contentDirChanged: () => {}, + contentDom: () => {}, + contentDomInvalidated: () => {}, + contentDomUnload: () => {}, + customConfigLoaded: () => {}, + dataFiltered: () => {}, + dataReady: () => {}, + destroy: () => {}, + dialogHide: () => {}, + dialogShow: () => {}, + dirChanged: () => {}, + doubleclick: () => {}, + dragend: () => {}, + dragstart: () => {}, + drop: () => {}, + elementsPathUpdate: () => {}, + fileUploadRequest: () => {}, + fileUploadResponse: () => {}, + floatingSpaceLayout: () => {}, + focus: () => {}, + getData: () => {}, + getSnapshot: () => {}, + insertElement: () => {}, + insertHtml: () => {}, + insertText: () => {}, + instanceReady: () => {}, + key: () => {}, + langLoaded: () => {}, + loadSnapshot: () => {}, + loaded: () => {}, + lockSnapshot: () => {}, + maximize: () => {}, + menuShow: () => {}, + mode: () => {}, + notificationHide: () => {}, + notificationShow: () => {}, + notificationUpdate: () => {}, + paste: () => {}, + pasteFromWord: () => {}, + pluginsLoaded: () => {}, + readOnly: () => {}, + removeFormatCleanup: () => {}, + required: () => {}, + resize: () => {}, + save: () => {}, + saveSnapshot: () => {}, + selectionChange: () => {}, + setData: () => {}, + stylesSet: () => {}, + template: () => {}, + toDataFormat: () => {}, + toHtml: () => {}, + unlockSnapshot: () => {}, + updateSnapshot: () => {}, + widgetDefinition: () => {} } }); } @@ -580,8 +578,8 @@ function test_tools() { console.log(CKEDITOR.tools.isArray(null)); // false console.log(CKEDITOR.tools.isArray(undefined)); // false - CKEDITOR.tools.override(parseInt, function(_parseInt) { - return function(value: any, radix?: number) { + CKEDITOR.tools.override(parseInt, (_parseInt) => { + return (value: any, radix?: number) => { return _parseInt(value, radix); }; }); @@ -590,9 +588,9 @@ function test_tools() { function test_htmlParser() { var html = '
text
'; var fragment = CKEDITOR.htmlParser.fragment.fromHtml(html); - fragment.forEach(function(node) { + fragment.forEach((node) => { if (node instanceof CKEDITOR.htmlParser.element) { - node.forEach(function(node) { + node.forEach((node) => { console.log(node); }); } diff --git a/types/ckeditor/v2/index.d.ts b/types/ckeditor/v2/index.d.ts index 34d243ae3f..ab7b88bbdd 100644 --- a/types/ckeditor/v2/index.d.ts +++ b/types/ckeditor/v2/index.d.ts @@ -1,16 +1,16 @@ -// Type definitions for CKEditor v2.0.0 +// Type definitions for CKEditor 2.0 // Project: http://ckeditor.com/ // Definitions by: Thomas Wittwer // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // WORK-IN-PROGRESS: Any contribution support welcomed. // See https://github.com/DefinitelyTyped/DefinitelyTyped/issues/1827 for more informations. + interface Window { CKEDITOR_BASEPATH: string; } declare namespace CKEDITOR { - // Config options var disableAutoInline: boolean; var disableObjectResizing: boolean; @@ -84,16 +84,14 @@ declare namespace CKEDITOR { function add(editor: editor): void; function addCss(css: string): void; function addTemplate(name: string, source: string): template; - function appendTo(element: string, config?: config, data?: string): editor; - function appendTo(element: HTMLElement, config?: config, data?: string): editor; + function appendTo(element: string | HTMLElement, config?: config, data?: string): editor; function domReady(): void; function dialogCommand(dialogName: string): void; function editorConfig(config: config): void; function getCss(): string; function getTemplate(name: string): template; function getUrl(resource: string): string; - function inline(element: string, instanceConfig?: config): editor; - function inline(element: HTMLElement, instanceConfig?: config): editor; + function inline(element: string | HTMLElement, instanceConfig?: config): editor; function inlineAll(): void; function loadFullCore(): void; function replace(element: string | HTMLTextAreaElement, config?: config): editor; @@ -111,12 +109,11 @@ declare namespace CKEDITOR { function removeAllListeners(): void; function removeListener(eventName: string, listenerFunction: (eventInfo: eventInfo) => void): void; - type listenerRegistration = { + interface listenerRegistration { removeListener: () => void; } namespace dom { - interface bookmark { startNode: dom.node | string; endNode: dom.node | string; @@ -125,20 +122,15 @@ declare namespace CKEDITOR { } class comment { - // Properties type: number; // Methods - constructor(comment: string, ownerDocument?: document); - constructor(comment: Object, ownerDocument?: document); + constructor(comment: string | Object, ownerDocument?: document); getOuterHtml(): string; - } - class document extends domObject { - // Properties type: number; @@ -161,24 +153,18 @@ declare namespace CKEDITOR { getSelection(): selection; getWindow(): window; write(html: string): void; - } - class documentFragment { - // Properties type: number; // Methods constructor(nodeOrDoc: Object); insertAfterNode(node: node): void; - } - class domObject extends event { - // Properties $: HTMLElement; @@ -192,21 +178,16 @@ declare namespace CKEDITOR { removeAllListeners(): void; removeCustomData(key: string): Object; setCustomData(key: string, value: Object): domObject; - } - class element extends node { - // Properties type: number; // Methods - constructor(element: string, ownerDocument?: document); - constructor(element: HTMLElement, ownerDocument?: document); + constructor(element: string | HTMLElement, ownerDocument?: document); addClass(className: string): void; - append(node: node, toStart?: boolean): node; - append(node: string, toStart?: boolean): node; + append(node: node | string, toStart?: boolean): node; appendBogus(force: boolean): void; appendHtml(html: string): void; appendText(text: string): node; @@ -214,8 +195,7 @@ declare namespace CKEDITOR { contains(node: node): boolean; copyAttributes(dest: element, skipAttributes: Object): void; data(name: string): string; - data(name: string, value: string): void; - data(name: string, value: boolean): void; + data(name: string, value: string | boolean): void; disableContextMenu(): void; find(selector: string): nodeList; findOne(selector: string): element; @@ -224,9 +204,8 @@ declare namespace CKEDITOR { focusPrevious(ignoreChildren?: boolean, indexToUse?: number): void; forEach(callback: (node: node) => void, type?: number, skipRoot?: boolean): void; getAttribute(name: string): string; - getBogus(): node|false; - getChild(indices: number): node; - getChild(indices: number[]): node; + getBogus(): node | false; + getChild(indices: number | number[]): node; getChildCount(): number; getChildren(): nodeList; getClientRect(): any; @@ -269,8 +248,7 @@ declare namespace CKEDITOR { removeClass(className: string): void; removeStyle(name: string): void; renameNode(newTag: string): void; - scrollIntoParent(parent: element, alignToTop: boolean, hscroll: boolean): void; - scrollIntoParent(parent: window, alignToTop: boolean, hscroll: boolean): void; + scrollIntoParent(parent: element | window, alignToTop: boolean, hscroll: boolean): void; scrollIntoView(alignToTop?: boolean): void; setAttribute(name: string, value: string): element; setAttributes(attributesPairs: Object): element; @@ -285,38 +263,28 @@ declare namespace CKEDITOR { show(): void; unselectable(): void; - //static method + // static method static clearAllMarkers(database: Object): Object; static clearMarkers(database: Object, element: Object, removeFromDatabase: Object): void; static createFromHtml(html: string): element; - static get(element: string): element; - static get(element: any): element; + static get(element: string | any): element; static setMarker(database: Object, element: Object, name: Object, value: Object): domObject; - } - class elementPath { - constructor(startNode: element, root: element); - constructor(startNode: element); + constructor(startNode: element, root?: element); block: element; blockLimit: element; root: element; elements: element[]; compare(otherPath: elementPath): boolean; - contains(query: string, excludeRoot?: boolean, fromTop?: boolean): element; - contains(query: string[], excludeRoot?: boolean, fromTop?: boolean): element; - contains(query: (element: element) => boolean, excludeRoot?: boolean, fromTop?: boolean): element; - contains(query: Object, excludeRoot?: boolean, fromTop?: boolean): element; - contains(query: element, excludeRoot?: boolean, fromTop?: boolean): element; + contains(query: string | string[] | Object | element | ((element: element) => boolean), excludeRoot?: boolean, fromTop?: boolean): element; isContextFor(tag: string): boolean; direction(): string; } - class range { - constructor(root: element); - constructor(root: document); + constructor(root: element | document); startContainer: any; startOffset: number; endContainer: any; @@ -378,10 +346,7 @@ declare namespace CKEDITOR { scrollIntoView(): void; } - - interface rangeListIterator { - - } + interface rangeListIterator {} class selection { document: document; @@ -389,9 +354,7 @@ declare namespace CKEDITOR { isLocked: boolean; rev: number; root: element; - constructor(target: document); - constructor(target: element); - constructor(target: selection); + constructor(target: document | element | selection); createBookmarks(serializable: Object): bookmark[]; createBookmarks2(normalized: Object): Object[]; fake(element: element): void; @@ -413,17 +376,14 @@ declare namespace CKEDITOR { unlock(restore: Object): void; } - class rangeList { - constructor(ranges: range[]); - constructor(range: range); + constructor(ranges: range | range[]); createIterator(): rangeListIterator; createBokmarks(serializable?: boolean): bookmark[]; createBookmarks2(normalized?: boolean): Object[]; moveToBookmark(bookmarks: Object[]): void; } - class iterator { constructor(range: range); getNextParagraph(blockTag?: string): element; @@ -433,7 +393,6 @@ declare namespace CKEDITOR { filter: filter; } - class node extends domObject { constructor(domNode: Node); appendTo(element: element): element; @@ -464,14 +423,12 @@ declare namespace CKEDITOR { isReadOnly(): boolean; } - class nodeList { constructor(nativeList: Object); count(): number; getItem(index: number): node; } - class event { constructor(domEvent: Event); getKey(): number; @@ -484,22 +441,18 @@ declare namespace CKEDITOR { on(eventName: string, listenerFunction: (eventInfo: eventInfo) => void, scopeObj?: Object, listenerData?: Object, priority?: number): Object; } - interface position { x: number; y: number; } - interface widthAndHeight { width: number; height: number; } - class text extends node { - constructor(text: Text, ownerDocument?: document); - constructor(text: string, ownerDocument?: document); + constructor(text: Text | string, ownerDocument?: document); type: number; getLength(): number; getText(): string; @@ -508,7 +461,6 @@ declare namespace CKEDITOR { substring(indexA: number, indexB: number): void; } - class window extends domObject { constructor(domWindow: Object); focus(): void; @@ -517,7 +469,6 @@ declare namespace CKEDITOR { getFrame(): element; } - class walker { constructor(range: range); end(): void; @@ -528,7 +479,7 @@ declare namespace CKEDITOR { lastForward(): node; lastBackward(): node; reset(): void; - //static methods till the end + // static methods till the end blockBoundary(customNodeNames: Object): Function; listItemBoundary(): Function; bookmark(contentOnly?: boolean, isReject?: boolean): Function; @@ -540,26 +491,17 @@ declare namespace CKEDITOR { ignored(isReject?: boolean): Function; editable(isReject?: boolean): Function; } - } - namespace ajax { - // Methods function load(url: string, callback?: Function): string; function loadXml(url: string, callback?: Function): xml; - - } - - - interface xml { - } + interface xml {} class command extends event { - // Properties contextSensitive: boolean; editorFocus: boolean; @@ -577,10 +519,8 @@ declare namespace CKEDITOR { refresh(editor: editor, path: dom.elementPath): void; setState(newState: number): boolean; toggleState(): void; - } - class focusManager { // Properties currentActive: dom.domObject; @@ -596,9 +536,7 @@ declare namespace CKEDITOR { remove(element: dom.element): void; } - interface keystrokeHandler { - - } + interface keystrokeHandler {} interface toolbarGroups { name?: string; @@ -759,7 +697,7 @@ declare namespace CKEDITOR { linkShowAdvancedTab?: boolean; linkShowTargetTab?: boolean; - magicline_color?: string + magicline_color?: string; magicline_everywhere?: boolean; magicline_holdDistance?: number; magicline_keystrokeNext?: number; @@ -848,10 +786,10 @@ declare namespace CKEDITOR { templates_files?: Object; templates_replaceContent?: boolean; title?: string | boolean; - toolbar?: string | (string | string[] | { name: string, items?: string[], groups?: string[] })[] | null; + toolbar?: string | Array | null; toolbarCanCollapse?: boolean; toolbarGroupCycling?: boolean; - toolbarGroups?: (toolbarGroups | string)[]; + toolbarGroups?: Array; toolbarLocation?: string; toolbarStartupExpanded?: boolean; @@ -869,11 +807,7 @@ declare namespace CKEDITOR { wsc_userDictionaryName?: string; } - - interface feature { - - } - + interface feature {} interface sharedSpace { top?: string | HTMLElement; @@ -897,7 +831,6 @@ declare namespace CKEDITOR { scopeobj?: {}, listenerData?: any, priority?: number): listenerRegistration; } - class menu { constructor(); add(item: any): void; @@ -907,16 +840,13 @@ declare namespace CKEDITOR { show(offsetParent: dom.element, corner?: number, offsetX?: number, offsetY?: number): void; } - namespace plugins { - class contextMenu extends menu { constructor(editor: editor); addTarget(element: dom.element, nativeContextMenuOnCtrl?: boolean): void; open(offsetParent: dom.element, corner?: number, offsetX?: number, offsetY?: number): void; } - namespace link { var emptyAnchorFix: boolean; var fakeAnchor: boolean; @@ -926,9 +856,7 @@ declare namespace CKEDITOR { function tryRestoreFakeAnchor(editor: editor, element: dom.element): dom.element; } - namespace widget { - namespace nestedEditable { interface definition { allowedContent?: any; @@ -948,7 +876,6 @@ declare namespace CKEDITOR { setData(data: string): void; } - interface definition { allowedContent?: any; button?: string; @@ -995,8 +922,7 @@ declare namespace CKEDITOR { fire(eventName: string, data: Object, editor: editor): any; // should be boolean | Object getByElement(element: any, checkWrapperOnly: boolean): CKEDITOR.plugins.widget; hasListeners(eventName: string): boolean; - initOn(element: dom.element, widgetDef?: CKEDITOR.plugins.widget.definition, startupData?: Object): CKEDITOR.plugins.widget; - initOn(element: dom.element, widgetDef?: string, startupData?: Object): CKEDITOR.plugins.widget; + initOn(element: dom.element, widgetDef?: string | CKEDITOR.plugins.widget.definition, startupData?: Object): CKEDITOR.plugins.widget; initOnAll(container?: dom.element): CKEDITOR.plugins.widget[]; instances: { [id: string]: widget }; on(eventName: string, listenerFunction: Function, scopeObj?: Object, listenerData?: Object, priority?: number): any; @@ -1023,7 +949,7 @@ declare namespace CKEDITOR { editables: any; editor: CKEDITOR.editor; element: CKEDITOR.dom.element; - focusedEditable: CKEDITOR.plugins.widget.nestedEditable + focusedEditable: CKEDITOR.plugins.widget.nestedEditable; id: number; init: Function; inited: boolean; @@ -1088,8 +1014,7 @@ declare namespace CKEDITOR { icons?: string; } - function add(name: string, definition: IPluginDefinition): void; - function add(name: string): void; + function add(name: string, definition?: IPluginDefinition): void; function addExternal(name: string, path: string, fileName?: string): void; function get(name: string): any; function getFilePath(name: string): string; @@ -1100,11 +1025,11 @@ declare namespace CKEDITOR { } interface IMenuItemDefinition { - label:string, - command:string, - icon: string - group:string, - order:number + label: string; + command: string; + icon: string; + group: string; + order: number; } class editor extends event { @@ -1144,20 +1069,19 @@ declare namespace CKEDITOR { addFeature(feature: feature): boolean; addMenuGroup(name: string, order?: number): void; addMenuItem(name: string, definition?: IMenuItemDefinition): void; - addMenuItems(definitions: {[id:string]:IMenuItemDefinition}): void; + addMenuItems(definitions: {[id: string]: IMenuItemDefinition}): void; addMode(mode: string, exec: () => void): void; addRemoveFormatFilter(func: Function): void; applyStyle(style: style): void; attachStyleStateChange(style: style, callback: Function): void; checkDirty(): boolean; - commands:any; + commands: any; createFakeElement(realElement: Object, className: Object, realElementType: Object, isResizable: Object): void; createFakeParserElement(realElement: Object, className: Object, realElementType: Object, isResizable: Object): void; createRange(): dom.range; destroy(noUpdate?: boolean): void; editable(): editable | null; - editable(elementOrEditable: dom.element): void; - editable(elementOrEditable: editable): void; + editable(elementOrEditable: dom.element | editable): void; elementPath(startNode?: dom.node): dom.elementPath; execCommand(commandName: string, data?: Object): boolean; focus(): void; @@ -1181,27 +1105,18 @@ declare namespace CKEDITOR { loadSnapshot(snapshot: Object): void; lockSelection(sel?: dom.selection): boolean; openDialog(dialogName: string, callback: Function): dialog; - popup(url: string, width?: number, height?: number, options?: string): void; - popup(url: string, width?: string, height?: number, options?: string): void; - popup(url: string, width?: number, height?: string, options?: string): void; - popup(url: string, width?: string, height?: string, options?: string): void; + popup(url: string, width?: number | string, height?: number | string, options?: string): void; removeMenuItem(name: string): void; removeStyle(style: style): void; resetDirty(): void; resetUndo(): void; - resize(width: number, height: number, isContentHeight?: boolean, resizeInner?: boolean): void; - resize(width: string, height: number, isContentHeight?: boolean, resizeInner?: boolean): void; - resize(width: number, height: string, isContentHeight?: boolean, resizeInner?: boolean): void; - resize(width: string, height: string, isContentHeight?: boolean, resizeInner?: boolean): void; + resize(width: number | string, height: number | string, isContentHeight?: boolean, resizeInner?: boolean): void; restoreRealElement(fakeElement: Object): dom.element; selectionChange(checkNow?: boolean): void; setActiveEnterMode(enterMode: number, shiftEnterMode: number): void; setActiveFilter(filter: filter): void; setData(data: string, options?: { internal?: boolean; callback?: Function; noSnapshot?: boolean; }): void; - setKeystroke(keystroke: number, behavior?: string): void; - setKeystroke(keystroke: any[], behavior?: string): void; - setKeystroke(keystroke: number, behavior?: boolean): void; - setKeystroke(keystroke: any[], behavior?: boolean): void; + setKeystroke(keystroke: number | any[], behavior?: string | boolean): void; setMode(newMode: string, callback: Function): void; setReadOnly(isReadOnly?: boolean): void; setUiColor(color: string): void; @@ -1317,28 +1232,22 @@ declare namespace CKEDITOR { } module filter { - interface allowedContentRules { - - } + interface allowedContentRules {} } class filter { allow(newRules: CKEDITOR.filter.allowedContentRules, featureName?: string, overrideCustom?: boolean): boolean; - } interface buttonDefinition { icon?: string; iconOffset?: number; - label : string; - command : string; - toolbar : string; - } - - interface template { - + label: string; + command: string; + toolbar: string; } + interface template {} interface dataProcessor { toDataFormat(html: string, fixForBody: string): void; @@ -1355,7 +1264,6 @@ declare namespace CKEDITOR { toHtml(data: string, options?: Object): string; } - class event { constructor(); useCapture: boolean; @@ -1371,7 +1279,6 @@ declare namespace CKEDITOR { static implementOn(targetObject: Object): void; } - interface commandDefinition { async?: boolean; canUndo?: boolean; @@ -1385,30 +1292,28 @@ declare namespace CKEDITOR { refresh?(editor: editor, path: dom.elementPath): void; } - interface dtdDefinition { [outerTagName: string]: {[innerTagName: string]: 1}; - $block: {[tagName: string]: 1}; - $blockLimit: {[tagName: string]: 1}; - $cdata: {[tagName: string]: 1}; - $editable: {[tagName: string]: 1}; - $empty: {[tagName: string]: 1}; - $inline: {[tagName: string]: 1}; - $intermediate: {[tagName: string]: 1}; - $list: {[tagName: string]: 1}; - $listItem: {[tagName: string]: 1}; + $block: {[tagName: string]: 1}; + $blockLimit: {[tagName: string]: 1}; + $cdata: {[tagName: string]: 1}; + $editable: {[tagName: string]: 1}; + $empty: {[tagName: string]: 1}; + $inline: {[tagName: string]: 1}; + $intermediate: {[tagName: string]: 1}; + $list: {[tagName: string]: 1}; + $listItem: {[tagName: string]: 1}; $nonBodyContent: {[tagName: string]: 1}; - $nonEditable: {[tagName: string]: 1}; - $object: {[tagName: string]: 1}; - $removeEmpty: {[tagName: string]: 1}; - $tabIndex: {[tagName: string]: 1}; - $tableContent: {[tagName: string]: 1}; - $transparent: {[tagName: string]: 1}; + $nonEditable: {[tagName: string]: 1}; + $object: {[tagName: string]: 1}; + $removeEmpty: {[tagName: string]: 1}; + $tabIndex: {[tagName: string]: 1}; + $tableContent: {[tagName: string]: 1}; + $transparent: {[tagName: string]: 1}; } var dtd: dtdDefinition; - class ui extends event { constructor(editor: editor); add(name: string, type: Object, definition: Object): void; @@ -1417,24 +1322,24 @@ declare namespace CKEDITOR { } class environmentConfig { - air : boolean; - chrome : boolean; - cssClass : string; - edge : boolean; - gecko : boolean; - hc : boolean; - hidpi : boolean; - iOS : boolean; - ie : boolean; - isCompatible : boolean; - mac : boolean; - needsBrFiller : boolean; - needsNbspFiller : boolean; - quirks : boolean; - safari : boolean; - version : number; - webkit : boolean; - secure( ) : boolean; + air: boolean; + chrome: boolean; + cssClass: string; + edge: boolean; + gecko: boolean; + hc: boolean; + hidpi: boolean; + iOS: boolean; + ie: boolean; + isCompatible: boolean; + mac: boolean; + needsBrFiller: boolean; + needsNbspFiller: boolean; + quirks: boolean; + safari: boolean; + version: number; + webkit: boolean; + secure(): boolean; } namespace ui { @@ -1442,7 +1347,16 @@ declare namespace CKEDITOR { class uiElement { eventProcessors: any; - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[], nodeNameArg?: Function | string, stylesArg?: Function | Object, attributesArg?: Function | Object, contentsArg?: Function | string); // Not sure that the htmlList array type is right. + // Not sure that the htmlList array type is right. + constructor( + dialog: CKEDITOR.dialog, + elementDefinition: CKEDITOR.dialog.definition.uiElement, + htmlList: any[], + nodeNameArg?: Function | string, + stylesArg?: Function | Object, + attributesArg?: Function | Object, + contentsArg?: Function | string + ); accessKeyDown(dialog: CKEDITOR.dialog, key: string): void; accessKeyUp(dialog: CKEDITOR.dialog, key: string): void; @@ -1464,7 +1378,6 @@ declare namespace CKEDITOR { // Change event? } - class button extends uiElement { constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); @@ -1473,7 +1386,6 @@ declare namespace CKEDITOR { click(): any; } - class checkbox extends uiElement { constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); @@ -1483,12 +1395,10 @@ declare namespace CKEDITOR { setValue(checked: boolean, noChangeEvent: boolean): any; // returns void according to doc, but cannot override base class like that } - class fieldset extends uiElement { constructor(dialog: CKEDITOR.dialog, childObjList: any[], childHtmlList: any[], htmlList: any[], elementDefinition: CKEDITOR.dialog.definition.uiElement); } - class file extends CKEDITOR.ui.dialog.labeledElement { constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); @@ -1500,14 +1410,12 @@ declare namespace CKEDITOR { submit(): CKEDITOR.ui.dialog.file; } - class fileButton extends CKEDITOR.ui.dialog.button { constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); // formLoaded event ?? } - class hbox extends uiElement { constructor(dialog: CKEDITOR.dialog, childObjList: any[], childHtmlList: any[], htmlList: any[], elementDefinition: CKEDITOR.dialog.definition.uiElement); @@ -1515,17 +1423,11 @@ declare namespace CKEDITOR { getChild(indices: number[]): CKEDITOR.ui.dialog.uiElement[]; } - class html extends uiElement { constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); - - } - - - class iframeElement extends uiElement { - } + class iframeElement extends uiElement {} class labeledElement extends uiElement { constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[], contentHtml: Function); @@ -1534,7 +1436,6 @@ declare namespace CKEDITOR { setlabel(label: string): CKEDITOR.ui.dialog.labeledElement; } - class radio extends CKEDITOR.ui.dialog.labeledElement { constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); @@ -1543,7 +1444,6 @@ declare namespace CKEDITOR { setValue(value: string, noChangeEvent: boolean): any; // returns void according to doc, but cannot override base class like that } - class select extends uiElement { constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); @@ -1553,12 +1453,10 @@ declare namespace CKEDITOR { remove(index: number): CKEDITOR.ui.dialog.select; } - class textarea extends CKEDITOR.ui.dialog.labeledElement { constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); } - class textInput extends CKEDITOR.ui.dialog.labeledElement { constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); @@ -1613,24 +1511,19 @@ declare namespace CKEDITOR { // NOTE: Static methods are added to dialog module } - namespace dialog { - namespace definition { - interface button extends uiElement { disabled?: boolean; label?: string; } - interface checkbox extends uiElement { default?: string; label?: string; validate?: Function; } - interface content { accessKey?: string; elements?: CKEDITOR.dialog.definition.uiElement[]; @@ -1639,14 +1532,12 @@ declare namespace CKEDITOR { title?: string; } - interface file extends labeledElement { action?: string; size?: string; validate?: Function; } - interface fileButton extends uiElement { filebrowser?: string; for?: string; @@ -1654,7 +1545,6 @@ declare namespace CKEDITOR { styles?: string; } - interface hbox extends uiElement { children?: CKEDITOR.ui.dialog.uiElement[]; height?: number; @@ -1663,12 +1553,10 @@ declare namespace CKEDITOR { widths?: number[]; } - interface html extends uiElement { html?: string; } - interface labeledElement extends uiElement { controlStyle?: string; inputStyle?: string; @@ -1678,25 +1566,20 @@ declare namespace CKEDITOR { widths?: number[]; } - interface radio extends labeledElement { default?: string; - items?: string[] | (string[])[]; + items?: string[] | string[][]; validate?: Function; } - - interface select extends labeledElement { default?: string; - items?: string[] | (string[])[]; + items?: string[] | string[][]; multiple?: boolean; size?: number; validate?: Function; } - - interface textarea extends labeledElement { bidi?: boolean; cols?: number; @@ -1705,7 +1588,6 @@ declare namespace CKEDITOR { validate?: Function; } - interface textInput extends labeledElement { bidi?: boolean; default?: string; @@ -1714,7 +1596,6 @@ declare namespace CKEDITOR { validate?: Function; } - interface uiElement { align?: string; className?: string; @@ -1730,7 +1611,6 @@ declare namespace CKEDITOR { type?: string; } - interface vbox extends uiElement { children?: CKEDITOR.ui.dialog.uiElement[]; expand?: boolean; @@ -1758,6 +1638,7 @@ declare namespace CKEDITOR { } function add(name: string, path: string): void; + // tslint:disable-next-line:unified-signatures function add(name: string, dialogDefinition: (editor: CKEDITOR.editor) => IDialogDefinition): void; function addIframe(name: string, title: string, minWidth: number, minHeight: number, onContentLoad?: Function, userDefinition?: Object): void; function addUIElement(typeName: string, builder: Function): void; @@ -1768,9 +1649,7 @@ declare namespace CKEDITOR { function okButton(): void; } - namespace htmlParser { - class basicWriter { constructor(); openTag(tagName: string, attributes: Object): void; @@ -1784,21 +1663,17 @@ declare namespace CKEDITOR { getHtml(reset: boolean): string; } - class node { constructor(); remove(preserveChildren?: boolean): node; replaceWith(node: node): void; insertAfter(node: node): void; insertBefore(node: node): void; - getAscendant(condition: string): element; - getAscendant(condition: Object): element; - getAscendant(condition: Function): element; + getAscendant(condition: string | Object | Function): element; wrapWith(wrapper: element): element; getIndex(): number; } - class filter { constructor(rules?: filterRulesDefinition); id: number; @@ -1809,35 +1684,27 @@ declare namespace CKEDITOR { textRules: filterRulesGroup; commentRules: filterRulesGroup; rootRules: filterRulesGroup; - addRules(rules: filterRulesDefinition, options?: number): void; - addRules(rules: filterRulesDefinition, options?: { priority?: number; applyToAll?: boolean; }): void; + addRules(rules: filterRulesDefinition, options?: number | { priority?: number; applyToAll?: boolean; }): void; applyTo(node: node): void; } - - interface filterRulesDefinition { - - } - + interface filterRulesDefinition {} class filterRulesGroup { rules: Object[]; - add(rule: Function, priority: number, options: Object): void; - add(rule: Object[], priority: number, options: Object): void; + add(rule: Function | Object[], priority: number, options: Object): void; addMany(rules: Object[], priority: number, options: Object): void; findIndex(priority: number): number; exec(currentValue: Object): any; execOnName(currentName: string): string; } - class cdata extends node { constructor(value: string); type: number; writeHtml(writer: basicWriter): void; } - class comment extends node { constructor(value: string); type: number; @@ -1846,7 +1713,6 @@ declare namespace CKEDITOR { writeHtml(writer: basicWriter, filter: filter): void; } - class element extends node { constructor(name: string, attributes: Object); name: string; @@ -1859,14 +1725,12 @@ declare namespace CKEDITOR { clone(): element; filter(filter: filter): boolean; filterChildren(filter: filter): void; - forEach(callback: (node: node, type?: number) => void|false, type?: number, skipRoot?: boolean): void; + forEach(callback: (node: node, type?: number) => void | false, type?: number, skipRoot?: boolean): void; + forEach(callback: (node: node, type?: number) => boolean): void; writeHtml(writer: basicWriter, filter: filter): void; writeChildrenHtml(writer: basicWriter, filter: filter): void; replaceWithChildren(): void; - forEach(callback: (node: node, type?: number) => boolean): void; - getFirst(condition: string): node; - getFirst(condition: Object): node; - getFirst(condition: Function): node; + getFirst(condition: string | Object | Function): node; getHtml(): string; setHtml(html: string): void; getOuterHtml(): string; @@ -1875,44 +1739,34 @@ declare namespace CKEDITOR { hasClass(className: string): boolean; } - class fragment { constructor(); children: any[]; parent: any; type: number; - static fromHtml(fragmentHtml: string): fragment; - static fromHtml(fragmentHtml: string, parent?: element, fixingBlock?: string): fragment | element; - static fromHtml(fragmentHtml: string, parent: null, fixingBlock?: string): fragment; - static fromHtml(fragmentHtml: string, parent?: string, fixingBlock?: string): fragment | element; - static fromHtml(fragmentHtml: string, parent?: element, fixingBlock?: boolean): fragment | element; - static fromHtml(fragmentHtml: string, parent?: string, fixingBlock?: boolean): fragment | element; + static fromHtml(fragmentHtml: string, parent?: null, fixingBlock?: string): fragment; + static fromHtml(fragmentHtml: string, parent?: element | string, fixingBlock?: string | boolean): fragment | element; add(node: node, index?: number): void; filter(filter: filter): void; filterChildren(filter: filter, filterRoot?: boolean): void; - forEach(callback: (node: node, type?: number) => void|false, type?: number, skipRoot?: boolean): void; + forEach(callback: (node: node, type?: number) => void | boolean, type?: number, skipRoot?: boolean): void; writeHtml(writer: basicWriter, filter?: filter): void; writeChildrenHtml(writer: basicWriter, filter?: filter, filterRoot?: boolean): void; - forEach(callback: (node: node, type?: number) => boolean, type?: number, skipRoot?: boolean): void; } - class cssStyle { constructor(element: element); + // tslint:disable-next-line:unified-signatures constructor(styleText: string); - populate(obj: element): void; - populate(obj: dom.element): void; - populate(obj: Object): void; + populate(obj: element | dom.element | Object): void; } - class text extends node { constructor(value: string); type: number; filter(filter: filter): boolean; writeHtml(writer: basicWriter, filter?: filter): void; } - } class htmlWriter extends htmlParser.basicWriter { @@ -1925,20 +1779,18 @@ declare namespace CKEDITOR { setRules(tagName: string, rules: Object): void; } - namespace tools { var callFunction: Function; function clone(source: Object): Object; function copy(source: Object): Object; function enableHtml5Elements(doc: Object, withAppend?: Boolean): void; - function isArray(object: any|null|undefined): object is T[]; + function isArray(object: any | null | undefined): object is T[]; function override(originalFunction: T, functionBuilder: (originalFunction: T) => T): T; - function parseCssText(styleText: string, normalize?: Boolean, nativeNormalize?: Boolean): { [key: string]: string } + function parseCssText(styleText: string, normalize?: Boolean, nativeNormalize?: Boolean): { [key: string]: string }; function prototypedCopy(source: Object): Object; function writeCssText(style: { [key: string]: string }, sort?: Boolean): string; } - namespace lang { var languages: any; var rtl: any; diff --git a/types/ckeditor/v2/tsconfig.json b/types/ckeditor/v2/tsconfig.json index 5cb7f16ad2..24f16bb1b0 100644 --- a/types/ckeditor/v2/tsconfig.json +++ b/types/ckeditor/v2/tsconfig.json @@ -6,7 +6,7 @@ "dom" ], "noImplicitAny": true, - "noImplicitThis": false, + "noImplicitThis": true, "strictNullChecks": false, "strictFunctionTypes": true, "baseUrl": "../../", diff --git a/types/ckeditor/v2/tslint.json b/types/ckeditor/v2/tslint.json index a41bf5d19a..ecb79fbcb1 100644 --- a/types/ckeditor/v2/tslint.json +++ b/types/ckeditor/v2/tslint.json @@ -1,79 +1,14 @@ { "extends": "dtslint/dt.json", "rules": { - "adjacent-overload-signatures": false, - "array-type": false, - "arrow-return-shorthand": false, "ban-types": false, - "callable-types": false, - "comment-format": false, - "dt-header": false, - "eofline": false, - "export-just-namespace": false, - "import-spacing": false, "interface-name": false, - "interface-over-type-literal": false, - "jsdoc-format": false, - "max-line-length": false, - "member-access": false, - "new-parens": false, "no-any-union": false, - "no-boolean-literal-compare": false, - "no-conditional-assignment": false, - "no-consecutive-blank-lines": false, - "no-construct": false, - "no-declare-current-package": false, - "no-duplicate-imports": false, - "no-duplicate-variable": false, "no-empty-interface": false, - "no-for-in-array": false, - "no-inferrable-types": false, "no-internal-module": false, - "no-irregular-whitespace": false, - "no-mergeable-namespace": false, - "no-misused-new": false, - "no-namespace": false, - "no-object-literal-type-assertion": false, - "no-padding": false, - "no-redundant-jsdoc": false, - "no-redundant-jsdoc-2": false, - "no-redundant-undefined": false, - "no-reference-import": false, - "no-relative-import-in-test": false, - "no-self-import": false, - "no-single-declare-module": false, - "no-string-throw": false, - "no-unnecessary-callback-wrapper": false, - "no-unnecessary-class": false, "no-unnecessary-generics": false, "no-unnecessary-qualifier": false, - "no-unnecessary-type-assertion": false, - "no-useless-files": false, "no-var-keyword": false, - "no-var-requires": false, - "no-void-expression": false, - "no-trailing-whitespace": false, - "object-literal-key-quotes": false, - "object-literal-shorthand": false, - "one-line": false, - "one-variable-per-declaration": false, - "only-arrow-functions": false, - "prefer-conditional-expression": false, - "prefer-const": false, - "prefer-declare-function": false, - "prefer-for-of": false, - "prefer-method-signature": false, - "prefer-template": false, - "radix": false, - "semicolon": false, - "space-before-function-paren": false, - "space-within-parens": false, - "strict-export-declare-modifiers": false, - "trim-file": false, - "triple-equals": false, - "typedef-whitespace": false, - "unified-signatures": false, - "void-return": false, - "whitespace": false + "prefer-const": false } } diff --git a/types/core-js/core-js-tests.ts b/types/core-js/core-js-tests.ts index 476c97348f..2410816c98 100644 --- a/types/core-js/core-js-tests.ts +++ b/types/core-js/core-js-tests.ts @@ -115,7 +115,7 @@ b = Number.isSafeInteger(i); i = Number.MAX_SAFE_INTEGER; i = Number.MIN_SAFE_INTEGER; i = Number.parseFloat(s); -i = Number.parseInt(s); +i = Number.parseInt(s); // tslint:disable-line radix i = Number.parseInt(s, i); i = Math.clz32(i); i = Math.imul(i, i); diff --git a/types/custom-functions-runtime/index.d.ts b/types/custom-functions-runtime/index.d.ts index b031862efb..b20d38828e 100644 --- a/types/custom-functions-runtime/index.d.ts +++ b/types/custom-functions-runtime/index.d.ts @@ -9,13 +9,12 @@ office-js Copyright (c) Microsoft Corporation */ - //////////////////////////////////////////////////////////////// //////////////////// Begin custom-functions-runtime //////////// //////////////////////////////////////////////////////////////// -/* -* Enables you to map your own name that uses lowercase letters to a function. +/* +* Enables you to map your own name that uses lowercase letters to a function. */ declare let CustomFunctionMappings: { [key: string]: Function }; @@ -37,7 +36,6 @@ declare namespace CustomFunctions { } } - //////////////////////////////////////////////////////////////// //////////////////// End custom-functions-runtime //////////// -//////////////////////////////////////////////////////////////// \ No newline at end of file +//////////////////////////////////////////////////////////////// diff --git a/types/d3-drag/d3-drag-tests.ts b/types/d3-drag/d3-drag-tests.ts index 9a8012606b..cf5428e7e2 100644 --- a/types/d3-drag/d3-drag-tests.ts +++ b/types/d3-drag/d3-drag-tests.ts @@ -7,7 +7,7 @@ */ import * as d3Drag from 'd3-drag'; -import { event, select, Selection } from 'd3-selection'; +import { ArrayLike, event, select, Selection } from 'd3-selection'; // NB: Consider alternative approach to getting live event-binding // when using webpack as suggested by @ocombe in response to @@ -62,7 +62,7 @@ circleCustomDrag = d3Drag.drag) => d3Drag.DragContainerElement; +let containerAccessor: (this: SVGCircleElement, d: CircleDatum, i: number, group: SVGCircleElement[] | ArrayLike) => d3Drag.DragContainerElement; containerAccessor = function(d, i, group) { console.log('Node Id of circle: ', d.nodeId); @@ -123,7 +123,7 @@ circleDrag = circleDrag.touchable(true); circleDrag = circleDrag.touchable(function(d, i, group) { const that: SVGCircleElement = this; const datum: CircleDatum = d; - const g: SVGCircleElement[] | NodeListOf = group; + const g: SVGCircleElement[] | ArrayLike = group; return "ontouchstart" in this && datum.color === 'green'; }); diff --git a/types/d3-hexbin/d3-hexbin-tests.ts b/types/d3-hexbin/d3-hexbin-tests.ts index bef57a94c4..277d4bab7b 100644 --- a/types/d3-hexbin/d3-hexbin-tests.ts +++ b/types/d3-hexbin/d3-hexbin-tests.ts @@ -8,209 +8,95 @@ import * as d3Hexbin from 'd3-hexbin'; +// ---------------------------------------------------------------------------- +// Preparatory Steps +// ---------------------------------------------------------------------------- + interface Point { - x0: number; - y0: number; + x: number; + y: number; } -{ - // d3.hexbin() has the expected defaults - const b = d3Hexbin.hexbin(); - const extent = b.extent(); // [[0, 0], [1, 1]] - extent.map((x: any, y: any) => { }); - b.x()([41, 42]); // === 41; - b.y()([41, 42]); // === 42; - b.radius(); // === 1; +let num: number; +let str: string; +let centers: Array<[number, number]>; +let extent: [[number, number], [number, number]]; +let size: [number, number]; - // hexbin(points) bins the specified points into hexagonal bins - const bins = d3Hexbin.hexbin()([ - [0, 0], [0, 1], [0, 2], - [1, 0], [1, 1], [1, 2], - [2, 0], [2, 1], [2, 2] - ]); +let hexbin: d3Hexbin.Hexbin<[number, number]>; +let hexbinBins: Array>; +const data: Array<[number, number]> = [[10, 20], [30, 10]]; - bins.map((bin: any) => {}); -} +let pointHexbin: d3Hexbin.Hexbin; +let pointHexbinBins: Array>; +const pointData: Point[] = [{x: 10, y: 20}, {x: 30, y: 10}]; -{ - // hexbin(points) observes the current x- and y-accessors - const x = (d: any) => d.x; - const y = (d: any) => d.y; - const bins = d3Hexbin.hexbin().x(x).y(y)([ - {x0: 0, y0: 0}, {x0: 0, y0: 1}, {x0: 0, y0: 2}, - {x0: 1, y0: 0}, {x0: 1, y0: 1}, {x0: 1, y0: 2}, - {x0: 2, y0: 0}, {x0: 2, y0: 1}, {x0: 2, y0: 2} - ]); - bins.map((bin: any) => {}); -} +let pointAccessor: (d: Point) => number; -{ - // hexbin(points) observes the current radius - const bins = d3Hexbin.hexbin().radius(2)([ - [0, 0], [0, 1], [0, 2], - [1, 0], [1, 1], [1, 2], - [2, 0], [2, 1], [2, 2] - ]); - bins.map((bin: any) => {}); -} +// ---------------------------------------------------------------------------- +// Hexbin +// ---------------------------------------------------------------------------- -{ - interface PointX { - x: number; - [key: number]: number; - } +// Create Hexbin ============================================================== - // hexbin.x(x) sets the x-coordinate accessor - const x = (d: PointX) => d.x; - const b = d3Hexbin.hexbin().x(x); - const bins = b([{x: 1, 1: 2}]); +// with default data type [number, number] ------------------------------------ - b.x(); // should be x; - bins.length; // should be 1; - bins[0].x; // should be 0.8660254037844386; - bins[0].y; // should be 1.5; - bins[0].length; // should be 1; -} +hexbin = d3Hexbin.hexbin(); -{ - interface PointY { - y: number; - [key: number]: number; - } - // hexbin.y(y) sets the y-coordinate accessor - const y = (d: PointY) => d.y; - const b = d3Hexbin.hexbin().y(y); - const bins = b([{0: 1, y: 2}]); +// with custom data type ------------------------------------------------------ - bins.length; // should be 1; - bins[0].x; // should be 0.8660254037844386; - bins[0].y; // should be 1.5; - bins[0].length; // should be 1; -} +pointHexbin = d3Hexbin.hexbin(); -{ - // hexbin.hexagon() returns the expected path - const path: string = d3Hexbin.hexbin().hexagon(); -} +// Configure Hexbin =========================================================== -{ - // hexbin.hexagon() observes the current bin radius - const path: string = d3Hexbin.hexbin().radius(2).hexagon(); -} +// x(...) --------------------------------------------------------------------- -{ - // hexbin.hexagon(radius) observes the specified radius - const path: string = d3Hexbin.hexbin().hexagon(2); -} +pointHexbin = pointHexbin.x(d => d.x); -{ - // hexbin.hexagon(radius) uses the current bin radius if radius is undefined - let path: string = d3Hexbin.hexbin().hexagon(); - path = d3Hexbin.hexbin().hexagon(undefined); -} +pointAccessor = pointHexbin.x(); -{ - // hexbin.centers() returns an array of bin centers - const centers = d3Hexbin.hexbin().centers(); - centers.map((x: any, y: any) => { }); -} +// y(...) --------------------------------------------------------------------- -{ - // hexbin.centers() observes the current bin radius - const centers = d3Hexbin.hexbin().radius(0.5).centers(); - centers.map((x: any, y: any) => { }); -} +pointHexbin = pointHexbin.y(d => d.y); -{ - // hexbin.centers() observes the current extent - const centers = d3Hexbin.hexbin().radius(0.5) - .extent([[-1.1, -1.1], [1.1, 1.1]]) - .centers(); - centers.map((x, y) => { }); -} +pointAccessor = pointHexbin.x(); -{ - // hexbin.mesh() returns the expected path - const path: string = d3Hexbin.hexbin().mesh(); -} +// hexagon(...) --------------------------------------------------------------- -{ - // hexbin.mesh() observes the bin radius - const path: string = d3Hexbin.hexbin().radius(0.5).mesh(); -} +str = hexbin.hexagon(); -{ - // hexbin.mesh() observes the extent - const path: string = d3Hexbin.hexbin().radius(0.5) - .extent([[-1.1, -1.1], [1.1, 1.1]]) - .mesh(); -} +// centers(...) --------------------------------------------------------------- -{ - // hexbin.size() - let size: [number, number] = [100, 100]; - d3Hexbin.hexbin().size(size); - size = d3Hexbin.hexbin().size(); -} +centers = hexbin.centers(); -{ - let hb: d3Hexbin.Hexbin; - let bins: Array>; +// mesh(...) ------------------------------------------------------------------ - // Create generator ======================================= +str = hexbin.mesh(); - hb = d3Hexbin.hexbin(); +// radius(...) ---------------------------------------------------------------- - // Configure generator ===================================== +hexbin = hexbin.radius(20); - // x Accessor ---------------------------------------------- +num = hexbin.radius(); - let x: (d: Point) => number; - x = (d: Point) => d.x0; +// extent(...) ---------------------------------------------------------------- - // test setter - hb = hb.x(x); +hexbin = hexbin.extent([[0, 0], [1, 1]]); - // test getter - x = hb.x(); +extent = hexbin.extent(); - // y Accessor ---------------------------------------------- +// size(...) ------------------------------------------------------------------ - let y: (d: Point) => number; - y = (d: Point) => d.y0; +hexbin = hexbin.size([1, 1]); - // test setter - hb = hb.y(y); +size = hexbin.size(); - // test getter - y = hb.y(); +// Use Hexbin ================================================================= - // Use generator ============================================ +hexbinBins = hexbin(data); +num = hexbinBins[0].x; +num = hexbinBins[0].y; - bins = hb([ - { x0: 0, y0: 0 }, { x0: 0, y0: 1 }, { x0: 0, y0: 2 }, - { x0: 1, y0: 0 }, { x0: 1, y0: 1 }, { x0: 1, y0: 2 }, - { x0: 2, y0: 0 }, { x0: 2, y0: 1 }, { x0: 2, y0: 2 } - ]); - - interface RemappedBin { - binCoordinates: [number, number]; - points: Point[]; - } - - let remappedBins: RemappedBin[]; - - remappedBins = bins.map(bin => { - const x: number = bin.x; // x-coordinate of bin - const y: number = bin.y; // y-coordinate of bin - const pointsInBin: Point[] = bin.map(p => { - const point: Point = p; - return point; - }); - const remapped: RemappedBin = { - binCoordinates: [x, y], - points: pointsInBin - }; - return remapped; - }); -} +pointHexbinBins = pointHexbin(pointData); +num = pointHexbinBins[0].x; +num = pointHexbinBins[0].y; diff --git a/types/d3-quadtree/d3-quadtree-tests.ts b/types/d3-quadtree/d3-quadtree-tests.ts index 8180bc0f44..2926b91e61 100644 --- a/types/d3-quadtree/d3-quadtree-tests.ts +++ b/types/d3-quadtree/d3-quadtree-tests.ts @@ -157,7 +157,7 @@ testDatum = quadtree.find(20, 30); // with radius testDatum = quadtree.find(20, 30, 10); -// visit() -------------------------------------------------------------------- +// visit() ------------------------------------------------------------------- quadtree = quadtree.visit((node, x0, y0, x1, y1) => { let bound: number; @@ -199,7 +199,7 @@ quadtree = quadtree.visit((node, x0, y0, x1, y1) => { return 10; // fails wrong return type }); -// visitAfter() --------------------------------------------------------------- +// visitAfter() -------------------------------------------------------------- quadtree = quadtree.visitAfter((node, x0, y0, x1, y1) => { let bound: number; @@ -218,7 +218,7 @@ quadtree = quadtree.visitAfter((node, x0, y0, x1, y1) => { } }); -// Test QuadtreeLeaf ========================================================= +// Test QuadtreeLeaf ========================================================= declare const leaf: d3Quadtree.QuadtreeLeaf; let nextLeaf: d3Quadtree.QuadtreeLeaf | undefined; @@ -227,7 +227,7 @@ testDatum = leaf.data; nextLeaf = leaf.next ? leaf.next : undefined; -// Test QuadtreeInternalNode ================================================= +// Test QuadtreeInternalNode ================================================= declare const internalNode: d3Quadtree.QuadtreeInternalNode; let quadNode: d3Quadtree.QuadtreeInternalNode | d3Quadtree.QuadtreeLeaf | undefined; diff --git a/types/d3-request/d3-request-tests.ts b/types/d3-request/d3-request-tests.ts index e2208481d8..1a8c7be647 100644 --- a/types/d3-request/d3-request-tests.ts +++ b/types/d3-request/d3-request-tests.ts @@ -350,7 +350,7 @@ let csvRequest: d3Request.DsvRequest = d3Request.csv(url); // url and callback for response handling const csvRequestWithCallback: d3Request.DsvRequest = d3Request.csv(url, function(error, data) { - const that: d3Request.Request = this; + const that: d3Request.DsvRequest = this; const err: any = error; const d: DSVParsedArray = data; console.log(d); @@ -369,7 +369,7 @@ const csvRequestWithRowWithCallback: d3Request.DsvRequest = d3Request.csv = data; console.log(data); @@ -384,7 +384,7 @@ const tsvRequest: d3Request.DsvRequest = d3Request.tsv(url); // url and callback for response handling const tsvRequestWithCallback: d3Request.DsvRequest = d3Request.tsv(url, function(error, data) { - const that: d3Request.Request = this; + const that: d3Request.DsvRequest = this; const err: any = error; const d: DSVParsedArray = data; console.log(d); @@ -403,7 +403,7 @@ const tsvRequestWithRowWithCallback: d3Request.DsvRequest = d3Request.tsv = data; console.log(data); diff --git a/types/d3-request/tsconfig.json b/types/d3-request/tsconfig.json index 9ba2eb33f3..844ff6991e 100644 --- a/types/d3-request/tsconfig.json +++ b/types/d3-request/tsconfig.json @@ -8,7 +8,7 @@ "noImplicitAny": true, "noImplicitThis": true, "strictNullChecks": true, - "strictFunctionTypes": false, + "strictFunctionTypes": true, "baseUrl": "../", "typeRoots": [ "../" diff --git a/types/d3-scale-chromatic/d3-scale-chromatic-tests.ts b/types/d3-scale-chromatic/d3-scale-chromatic-tests.ts index c6ff839994..18b26b01d6 100644 --- a/types/d3-scale-chromatic/d3-scale-chromatic-tests.ts +++ b/types/d3-scale-chromatic/d3-scale-chromatic-tests.ts @@ -125,9 +125,21 @@ colorInterpolator = d3ScaleChromatic.interpolateMagma; colorInterpolator = d3ScaleChromatic.interpolateInferno; colorInterpolator = d3ScaleChromatic.interpolatePlasma; colorInterpolator = d3ScaleChromatic.interpolateRainbow; +colorInterpolator = d3ScaleChromatic.interpolateSinebow; colorInterpolator = d3ScaleChromatic.interpolateWarm; colorInterpolator = d3ScaleChromatic.interpolateCool; colorInterpolator = d3ScaleChromatic.interpolateCubehelixDefault; + +const Viridis: string = d3ScaleChromatic.interpolateViridis(0.7); +const Magma: string = d3ScaleChromatic.interpolateMagma(0.7); +const Inferno: string = d3ScaleChromatic.interpolateInferno(0.7); +const Plasma: string = d3ScaleChromatic.interpolatePlasma(0.7); +const Rainbow: string = d3ScaleChromatic.interpolateRainbow(0.7); +const Sinebow: string = d3ScaleChromatic.interpolateSinebow(0.7); +const Warm: string = d3ScaleChromatic.interpolateWarm(0.7); +const Cool: string = d3ScaleChromatic.interpolateCool(0.7); +const CubehelixDefault: string = d3ScaleChromatic.interpolateCubehelixDefault(0.7); + colorInterpolator = d3ScaleChromatic.interpolateBuGn; colorInterpolator = d3ScaleChromatic.interpolateBuPu; colorInterpolator = d3ScaleChromatic.interpolateGnBu; diff --git a/types/d3-scale-chromatic/index.d.ts b/types/d3-scale-chromatic/index.d.ts index 93c0285a17..70d180420a 100644 --- a/types/d3-scale-chromatic/index.d.ts +++ b/types/d3-scale-chromatic/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for D3JS d3-scale-chromatic module 1.2 +// Type definitions for D3JS d3-scale-chromatic module 1.3 // Project: https://github.com/d3/d3-scale-chromatic/ // Definitions by: Hugues Stefanski , // Alex Ford , @@ -6,7 +6,7 @@ // Henrique Machado // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// Last module patch version validated against: 1.2.0 +// Last module patch version validated against: 1.3.2 // ----------------------------------------------------------------------- // Categorical @@ -322,6 +322,13 @@ export function interpolateCool(t: number): string; */ export function interpolateRainbow(t: number): string; +/** + * Given a number t in the range [0,1], returns the corresponding color from the “sinebow” color scheme by Jim Bumgardner and Charlie Loyd. + * + * @param t A number in the interval [0, 1]. + */ +export function interpolateSinebow(t: number): string; + /** * Given a number t in the range [0,1], returns the corresponding color from Green’s default Cubehelix represented as an RGB string. * diff --git a/types/d3-time/index.d.ts b/types/d3-time/index.d.ts index 270d64d33c..65aaf3af7e 100644 --- a/types/d3-time/index.d.ts +++ b/types/d3-time/index.d.ts @@ -1,6 +1,9 @@ // Type definitions for D3JS d3-time module 1.0 // Project: https://github.com/d3/d3-time/ -// Definitions by: Tom Wanzek , Alex Ford , Boris Yankov +// Definitions by: Tom Wanzek +// Alex Ford +// Boris Yankov +// denisname // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // Last module patch version validated against: 1.0.7 @@ -134,7 +137,7 @@ export interface CountableTimeInterval extends TimeInterval { * because its purpose is to return the zero-based number of the specified end date relative to the specified start date. * * @param start A start date object. - * @param start An end date object. + * @param end An end date object. */ count(start: Date, end: Date): number; /** diff --git a/types/d3-timer/index.d.ts b/types/d3-timer/index.d.ts index 34bef32aba..af7b1a15b2 100644 --- a/types/d3-timer/index.d.ts +++ b/types/d3-timer/index.d.ts @@ -1,6 +1,9 @@ // Type definitions for d3JS d3-timer module 1.0 // Project: https://github.com/d3/d3-timer/ -// Definitions by: Tom Wanzek , Alex Ford , Boris Yankov +// Definitions by: Tom Wanzek +// Alex Ford +// Boris Yankov +// denisname // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // Last module patch version validated against: 1.0.7 diff --git a/types/dagre-d3/dagre-d3-tests.ts b/types/dagre-d3/dagre-d3-tests.ts index d3dc72b648..23872077dd 100644 --- a/types/dagre-d3/dagre-d3-tests.ts +++ b/types/dagre-d3/dagre-d3-tests.ts @@ -16,4 +16,5 @@ graph.transition = (selection: d3.Selection) => { const render = new dagreD3.render(); const svg = d3.select("svg"); render.arrows()["arrowType"] = (parent: d3.Selection, id: string, edge: dagre.Edge, type: string) => {}; +render.shapes()["shapeName"] = (parent: d3.Selection, bbox: any, node: dagre.Node) => {}; render(svg, graph); diff --git a/types/dagre-d3/index.d.ts b/types/dagre-d3/index.d.ts index dc0d8ad639..d402fec730 100644 --- a/types/dagre-d3/index.d.ts +++ b/types/dagre-d3/index.d.ts @@ -11,6 +11,7 @@ export as namespace dagreD3; export * from "dagre"; export const render: { new(): Render }; +export const intersect: { [shapeName: string]: (node: dagre.Node, points: Array<{}>, point: any) => void }; declare module "dagre" { namespace graphlib { @@ -32,4 +33,5 @@ export interface Render { // see http://cpettitt.github.io/project/dagre-d3/latest/demo/user-defined.html for example usage arrows(): { [arrowStyleName: string]: (parent: d3.Selection, id: string, edge: dagre.Edge, type: string) => void }; (selection: d3.Selection, g: dagre.graphlib.Graph): void; + shapes(): { [shapeStyleName: string]: (parent: d3.Selection, bbox: any, node: dagre.Node) => void }; } diff --git a/types/dayzed/dayzed-tests.tsx b/types/dayzed/dayzed-tests.tsx new file mode 100644 index 0000000000..d01d29b7b0 --- /dev/null +++ b/types/dayzed/dayzed-tests.tsx @@ -0,0 +1,47 @@ +import * as React from 'react'; +import { render } from 'react-dom'; +import Dayzed, { DateObj } from 'dayzed'; + +interface State { + selectedDate: Date; + monthOffset: number; +} + +class App extends React.Component<{}, State> { + state = { + selectedDate: new Date(), + monthOffset: 0, + }; + + handleSetDate = (dateObj: DateObj) => { + this.setState({ selectedDate: dateObj.date }); + } + + render() { + return ( + + {({ calendars, ...rp }) => calendars.map(cal => ( +
+ Calendar: + + {cal.weeks.map(week => ( +
+ Week: + + {week.map(day => day && ( + Day({day.date.getDate()}): + ))} +
+ ))} +
+ ))} +
+ ); + } +} + +render(, document.body); diff --git a/types/dayzed/index.d.ts b/types/dayzed/index.d.ts new file mode 100644 index 0000000000..2356778328 --- /dev/null +++ b/types/dayzed/index.d.ts @@ -0,0 +1,52 @@ +// Type definitions for dayzed 2.2 +// Project: https://github.com/deseretdigital/dayzed +// Definitions by: Sam A. Horvath-Hunt +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +import { Component, ReactNode } from 'react'; + +export interface DateObj { + date: Date; + nextMonth: boolean; + prevMonth: boolean; + selectable: boolean; + selected: boolean; + today: boolean; +} + +interface Calendar { + firstDayOfMonth: Date; + lastDayOfMonth: Date; + month: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11; + weeks: Array>; + year: number; +} + +interface RenderProps { + calendars: Calendar[]; + getBackProps: (data: { calendars: Calendar[]; offset?: number; }) => Record; + getForwardProps: (data: { calendars: Calendar[]; offset?: number; }) => Record; + getDateProps: (data: { dateObj: DateObj; }) => Record; +} + +type RenderFn = (renderProps: RenderProps) => ReactNode; + +interface Props { + date?: Date; + maxDate?: Date; + minDate?: Date; + monthsToDisplay?: number; + firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6; + showOutsideDays?: boolean; + selected?: Date | Date[]; + children?: RenderFn; + render?: RenderFn; + offset?: number; + onOffsetChanged?(offset: number): void; + onDateSelected(selectedDate: DateObj): void; +} + +declare class Dayzed extends Component { } + +export default Dayzed; diff --git a/types/dayzed/tsconfig.json b/types/dayzed/tsconfig.json new file mode 100644 index 0000000000..8cce53e6df --- /dev/null +++ b/types/dayzed/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "jsx": "react", + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "dayzed-tests.tsx" + ] +} diff --git a/types/dayzed/tslint.json b/types/dayzed/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/dayzed/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/ej.web.all/ej.web.all-tests.ts b/types/ej.web.all/ej.web.all-tests.ts index 628fab8754..39ac49ab73 100644 --- a/types/ej.web.all/ej.web.all-tests.ts +++ b/types/ej.web.all/ej.web.all-tests.ts @@ -546,6 +546,7 @@ module digitalgaugecomponent { + module DropDownListComponent { var BikeList = [ { empid: "bk1", text: "Apache RTR" }, { empid: "bk2", text: "CBR 150-R" }, { empid: "bk3", text: "CBZ Xtreme" }, diff --git a/types/ej.web.all/index.d.ts b/types/ej.web.all/index.d.ts index 0c891b2eae..878c61b0a7 100644 --- a/types/ej.web.all/index.d.ts +++ b/types/ej.web.all/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for ej.web.all 16.2 +// Type definitions for ej.web.all 16.3 // Project: http://help.syncfusion.com/js/typescript // Definitions by: Syncfusion // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -8,7 +8,7 @@ /*! * filename: ej.web.all.d.ts -* version : 16.2.0.50 +* version : 16.3.0.17-beta * Copyright Syncfusion Inc. 2001 - 2018. All rights reserved. * Use of this code is subject to the terms of our license. * A copy of the current license can be obtained at any time by e-mailing @@ -20640,16 +20640,18 @@ declare namespace ej { * TreeView. * @param {string|any} New node text or JSON object * @param {string|any} ID of TreeView node/object of TreeView node + * @param {boolean} Parent node will be prevented from auto expanding * @returns {void} */ - addNode(newNodeText: string|any, target: string|any): void; + addNode(newNodeText: string|any, target: string|any, preventTargetExpand: boolean): void; /** To add a collection of nodes in TreeView. If target tree node is specified, then the given nodes are added as child of target tree node, otherwise nodes are added in TreeView. * @param {any|any[]} New node details in JSON object * @param {string|any} ID of TreeView node/object of TreeView node + * @param {boolean} Parent node will be prevented from auto expanding * @returns {void} */ - addNodes(collection: any|any[], target: string|any): void; + addNodes(collection: any|any[], target: string|any, preventTargetExpand: boolean): void; /** To check all the nodes in TreeView. * @returns {void} @@ -21978,6 +21980,10 @@ declare namespace ej { */ position?: string; + /** if it is true, the parent node will be prevented from auto expanding; otherwise, it work's usually + */ + preventTargetExpand?: boolean; + /** returns the event object */ event?: any; @@ -35690,6 +35696,11 @@ declare namespace ej { */ allowSorting?: boolean; + /** Enables or disables the rendering of unscheduled tasks. + * @Default {false} + */ + allowUnscheduledTask?: boolean; + /** Specifies the baseline background color in Gantt * @Default {#fba41c} */ @@ -35741,7 +35752,7 @@ declare namespace ej { dateFormat?: string; /** Specifies the customized working time for tasks in Gantt - * @Default {[{ from: 08:00 AM, to: 12:00 PM }, { from: 01:00 PM, to: 05:00 PM }]} + * @Default {[{ from: 08:00 AM, to: 12:00 PM , background: }, { from: 01:00 PM, to: 05:00 PM , background: }]} */ dayWorkingTime?: any[]; @@ -35856,6 +35867,11 @@ declare namespace ej { */ groupNameMapping?: string; + /** Specifies whether to highlight the non working time in Gantt. + * @Default {false} + */ + highlightNonWorkingTime?: boolean; + /** Specifies whether to highlight the weekends in Gantt . * @Default {true} */ @@ -35897,6 +35913,10 @@ declare namespace ej { */ milestoneTemplate?: string; + /** Specifies the background color for non working time in Gantt. + */ + nonWorkingBackground?: string; + /** Specifies the mapping property path for the task description in datasource */ notesMapping?: string; @@ -37534,7 +37554,10 @@ declare namespace ej { ProjectView, ///Displays the project in resource allocation view in Gantt. - ResourceView + ResourceView, + + ///Displays the project in histogram view in Gantt + HistogramView } @@ -37757,6 +37780,18 @@ declare namespace ej { */ viewReportClick?(e: ViewReportClickEventArgs): void; + /** Fires before the ajax request process started. + */ + ajaxBeforeLoad?(e: AjaxBeforeLoadEventArgs): void; + + /** Fires when ajax post call succeed. + */ + ajaxSuccess?(e: AjaxSuccessEventArgs): void; + + /** Fires when ajax request failed. + */ + ajaxError?(e: AjaxErrorEventArgs): void; + /** This event will be triggered on rendering the Report Viewer toolbar. */ toolbarRendering?(e: ToolbarRenderingEventArgs): void; @@ -37898,6 +37933,43 @@ declare namespace ej { type?: string; } + export interface AjaxBeforeLoadEventArgs { + + /** returns the reportViewerToken. + */ + reportViewerToken?: string; + + /** returns the serviceAuthorizationToken. + */ + serviceAuthorizationToken?: string; + + /** Send the headerReq collection. + */ + headerReq?: any; + + /** Send the headers collection. + */ + headers?: any; + + /** Send the custom data. + */ + data?: string; + } + + export interface AjaxSuccessEventArgs { + + /** returns the success data. + */ + data?: any; + } + + export interface AjaxErrorEventArgs { + + /** returns the error details + */ + msg?: string; + } + export interface ToolbarRenderingEventArgs { } @@ -40118,6 +40190,14 @@ declare namespace ej { tooltipTemplate?: string; } + export interface EditSettingsBatchEditSettings { + + /** Specifies the batch edit mode whether it is cell, row or dialog. + * @Default {ej.TreeGrid.BatchEditMode.Cell} + */ + editMode?: ej.TreeGrid.BatchEditMode|string; + } + export interface EditSettings { /** Enables or disables the button to add new row in context menu as well as in toolbar. @@ -40135,6 +40215,10 @@ declare namespace ej { */ allowEditing?: boolean; + /** specifies the batch edit mode in TreeGrid. + */ + batchEditSettings?: EditSettingsBatchEditSettings; + /** Specifies the mouse action whether single click or double click to begin the editing * @Default {ej.TreeGrid.BeginEditAction.DblClick} */ @@ -40276,6 +40360,11 @@ declare namespace ej { * @Default {contains} */ operator?: string; + + /** Specifies the search mode of records in searching. + * @Default {ej.TreeGrid.SearchHierarchyMode.Parent} + */ + searchHierarchyMode?: ej.TreeGrid.SearchHierarchyMode|string; } export interface SelectedCellIndex { @@ -40541,6 +40630,19 @@ declare namespace ej { } + enum BatchEditMode { + + ///you can edit a cell + Cell, + + ///you can edit a row + Row, + + ///you can edit a row in dialog form + Dialog + } + + enum BeginEditAction { ///you can begin the editing at double click @@ -40560,7 +40662,10 @@ declare namespace ej { RowEditing, ///you can edit a row in dialog form. - DialogEditing + DialogEditing, + + ///you can edit and save bulk of records + BatchEditing } @@ -40629,6 +40734,22 @@ declare namespace ej { } + enum SearchHierarchyMode { + + ///Parent level records will be included in searching + Parent, + + ///Filtered child records will be displayed and parent records displayed along with its children. + Child, + + ///Filtered child records will be displayed with parents and parents will be displayed along with its children + Both, + + ///Filtered records alone will be displayed without it parents or children + None + } + + enum SelectionMode { ///you can select a row. @@ -50249,7 +50370,7 @@ declare namespace ej.datavisualization { /** returns the pointer Index */ - markerpointerindex?: number; + markerPointerIndex?: number; /** returns the pointer element. */ @@ -50345,21 +50466,21 @@ declare namespace ej.datavisualization { */ scaleIndex?: number; - /** returns the context element* @param {Object} args.markerpointer returns the context element + /** returns the context element* @param {Object} args.markerPointer returns the context element */ context?: any; /** returns the pointer Index */ - markerpointerIndex?: number; + markerPointerIndex?: number; /** returns the pointer element. */ - markerpointerElement?: any; + markerPointerElement?: any; /** returns the value of the pointer. */ - markerpointerValue?: number; + markerPointerValue?: number; /** returns the pointer style */ @@ -62572,11 +62693,11 @@ declare namespace ej.datavisualization { /** returns the scrollbar position old start and end range value on changing scrollbar */ - dataoldRange?: any; + dataOldRange?: any; /** returns the scrollbar position new start and end range value on changing scrollbar */ - datanewRange?: any; + dataNewRange?: any; /** if the event should be canceled; otherwise, false. */ @@ -62599,11 +62720,11 @@ declare namespace ej.datavisualization { /** returns the scrollbar position starting range value on changing scrollbar */ - datastartRange?: string; + dataStartRange?: string; /** returns the scrollbar position end range value on changing scrollbar */ - dataendRange?: string; + dataEndRange?: string; /** if the event should be canceled; otherwise, false. */ @@ -62664,11 +62785,11 @@ declare namespace ej.datavisualization { /** returns the scrollbar position old start and end range value on change end of scrollbar */ - dataoldRange?: any; + dataOldRange?: any; /** returns the scrollbar position new start and end range value on change end of scrollbar */ - datanewRange?: any; + dataNewRange?: any; /** if the event should be canceled; otherwise, false. */ @@ -69786,6 +69907,11 @@ declare namespace ej.datavisualization { * @Default {1000} */ maxIteration?: number; + + /** Enable or disable connector's segment overlapping with each other when executing the layout with multiple parents. + * @Default {false} + */ + avoidSegmentOverlapping?: boolean; } export interface NodesAnnotation { diff --git a/types/ember-data/index.d.ts b/types/ember-data/index.d.ts index b038a7f62b..cc5bb00efd 100644 --- a/types/ember-data/index.d.ts +++ b/types/ember-data/index.d.ts @@ -8,6 +8,9 @@ declare module 'ember-data' { import Ember from 'ember'; + import Evented from '@ember/object/evented'; + import ObjectProxy from '@ember/object/proxy'; + import PromiseProxyMixin from '@ember/object/promise-proxy-mixin'; import RSVP from 'rsvp'; export interface ModelRegistry {} @@ -286,7 +289,7 @@ declare module 'ember-data' { /** * Holds validation errors for a given record, organized by attribute names. */ - interface Errors extends Ember.Enumerable, Ember.Evented {} + interface Errors extends Ember.Enumerable, Evented {} class Errors extends Ember.Object { /** * DEPRECATED: @@ -657,7 +660,7 @@ declare module 'ember-data' { * `DS.RecordArray` or its subclasses will be returned by your application's store * in response to queries. */ - interface RecordArray extends Ember.ArrayProxy, Ember.Evented {} + interface RecordArray extends Ember.ArrayProxy, Evented {} class RecordArray { /** * The flag to signal a `RecordArray` is finished loading data. @@ -868,7 +871,7 @@ declare module 'ember-data' { */ interface PromiseArray extends Ember.ArrayProxy, - Ember.PromiseProxyMixin> {} + PromiseProxyMixin> {} class PromiseArray {} /** * A `PromiseObject` is an object that acts like both an `Ember.Object` @@ -878,8 +881,8 @@ declare module 'ember-data' { * be updated when the promise resolves. */ interface PromiseObject - extends Ember.ObjectProxy, - Ember.PromiseProxyMixin {} + extends ObjectProxy, + PromiseProxyMixin {} class PromiseObject {} /** * A PromiseManyArray is a PromiseArray that also proxies certain method calls diff --git a/types/ember-data/tsconfig.json b/types/ember-data/tsconfig.json index 399268d6b2..9bdb160a16 100644 --- a/types/ember-data/tsconfig.json +++ b/types/ember-data/tsconfig.json @@ -13,6 +13,12 @@ "typeRoots": [ "../" ], + "paths": { + "@ember/debug": ["ember__debug"], + "@ember/debug/*": ["ember__debug/*"], + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"] + }, "types": [], "noEmit": true, "forceConsistentCasingInFileNames": true, diff --git a/types/ember-feature-flags/tsconfig.json b/types/ember-feature-flags/tsconfig.json index af809bcdbe..966e80a2ba 100644 --- a/types/ember-feature-flags/tsconfig.json +++ b/types/ember-feature-flags/tsconfig.json @@ -13,6 +13,10 @@ "typeRoots": [ "../" ], + "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"] + }, "types": [], "noEmit": true, "forceConsistentCasingInFileNames": true @@ -22,4 +26,4 @@ "tests/helpers/with-feature.d.ts", "ember-feature-flags-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/ember-mocha/tsconfig.json b/types/ember-mocha/tsconfig.json index 6c99518050..33768e7c41 100644 --- a/types/ember-mocha/tsconfig.json +++ b/types/ember-mocha/tsconfig.json @@ -12,6 +12,12 @@ "typeRoots": [ "../" ], + "paths": { + "@ember/engine": ["ember__engine"], + "@ember/engine/*": ["ember__engine/*"], + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"] + }, "types": [], "noEmit": true, "forceConsistentCasingInFileNames": true @@ -20,4 +26,4 @@ "index.d.ts", "ember-mocha-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/ember-modal-dialog/tsconfig.json b/types/ember-modal-dialog/tsconfig.json index c17fe35445..8f02b9e0f8 100644 --- a/types/ember-modal-dialog/tsconfig.json +++ b/types/ember-modal-dialog/tsconfig.json @@ -13,6 +13,10 @@ "typeRoots": [ "../" ], + "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"] + }, "types": [], "noEmit": true, "forceConsistentCasingInFileNames": true @@ -21,4 +25,4 @@ "index.d.ts", "ember-modal-dialog-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/ember-qunit/tsconfig.json b/types/ember-qunit/tsconfig.json index f7f3923136..86590138a0 100644 --- a/types/ember-qunit/tsconfig.json +++ b/types/ember-qunit/tsconfig.json @@ -13,6 +13,10 @@ "typeRoots": [ "../" ], + "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"] + }, "types": [], "noEmit": true, "forceConsistentCasingInFileNames": true @@ -21,4 +25,4 @@ "index.d.ts", "ember-qunit-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/ember-resolver/tsconfig.json b/types/ember-resolver/tsconfig.json index 981bd60243..60667c8a52 100644 --- a/types/ember-resolver/tsconfig.json +++ b/types/ember-resolver/tsconfig.json @@ -12,6 +12,12 @@ "typeRoots": [ "../" ], + "paths": { + "@ember/engine": ["ember__engine"], + "@ember/engine/*": ["ember__engine/*"], + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"] + }, "types": [], "noEmit": true, "forceConsistentCasingInFileNames": true diff --git a/types/ember-test-helpers/tsconfig.json b/types/ember-test-helpers/tsconfig.json index 78ca69344a..a6e8d61ba8 100644 --- a/types/ember-test-helpers/tsconfig.json +++ b/types/ember-test-helpers/tsconfig.json @@ -13,6 +13,12 @@ "typeRoots": [ "../" ], + "paths": { + "@ember/engine": ["ember__engine"], + "@ember/engine/*": ["ember__engine/*"], + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"] + }, "types": [], "noEmit": true, "forceConsistentCasingInFileNames": true @@ -21,4 +27,4 @@ "index.d.ts", "ember-test-helpers-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/ember/-private-types/mixin.d.ts b/types/ember/-private-types/mixin.d.ts deleted file mode 100644 index 30e81493ca..0000000000 --- a/types/ember/-private-types/mixin.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import Ember from 'ember'; -/** - * Ember.Object.extend(...) accepts any number of mixins or literals. - */ -declare type MixinOrLiteral = Ember.Mixin | T; diff --git a/types/ember/-private-types/object.d.ts b/types/ember/-private-types/object.d.ts deleted file mode 100644 index be7be68dee..0000000000 --- a/types/ember/-private-types/object.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Used to infer the type of ember classes of type `T`. - * - * Generally you would use `EmberClass.create()` instead of `new EmberClass()`. - * - * The single-arg constructor is required by the typescript compiler. - * The multi-arg constructor is included for better ergonomics. - * - * Implementation is carefully chosen for the reasons described in - * https://github.com/typed-ember/ember-typings/pull/29 - */ -export type EmberClassConstructor = (new (properties?: object) => T) & (new (...args: any[]) => T); - -/** - * Check that any arguments to `create()` match the type's properties. - * - * Accept any additional properties and add merge them into the instance. - */ -export type EmberInstanceArguments = Partial & { - [key: string]: any; -}; - -/** - * Accept any additional properties and add merge them into the prototype. - */ -export interface EmberClassArguments { - [key: string]: any; -} diff --git a/types/ember/-private-types/object/computed.d.ts b/types/ember/-private-types/object/computed.d.ts deleted file mode 100644 index 2c540db04b..0000000000 --- a/types/ember/-private-types/object/computed.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -import ComputedProperty from '@ember/object/computed'; -/** - * Deconstructs computed properties into the types which would be returned by `.get()`. - */ -export type UnwrapComputedPropertyGetter = - T extends ComputedProperty ? U : - T; -export type UnwrapComputedPropertyGetters = { - [P in keyof T]: UnwrapComputedPropertyGetter; -}; - -export type UnwrapComputedPropertySetter = - T extends ComputedProperty ? V : - T; -export type UnwrapComputedPropertySetters = { - [P in keyof T]: UnwrapComputedPropertySetter; -}; - -export type ComputedPropertyGetterFunction = (this: any, key: string) => T; -export type ComputedPropertySetterFunction = (this: any, key: string, newVal: T, oldVal: T) => T; - -export interface ComputedPropertyGetterObj { - get(this: any, key: string): T; -} - -export interface ComputedPropertySetterObj { - set(this: any, key: string, value: T): T; -} -export type ComputedPropertyObj = ComputedPropertyGetterObj | ComputedPropertySetterObj | (ComputedPropertyGetterObj & ComputedPropertySetterObj); - -export type ComputedPropertyGetter = ComputedPropertyGetterFunction | ComputedPropertyGetterObj; -export type ComputedPropertySetter = ComputedPropertySetterFunction | ComputedPropertySetterObj; - -export type ComputedPropertyCallback = ComputedPropertyGetterFunction | ComputedPropertyObj; diff --git a/types/ember/-private-types/utils.d.ts b/types/ember/-private-types/utils.d.ts deleted file mode 100644 index a9902c7a1d..0000000000 --- a/types/ember/-private-types/utils.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Ember } from "ember"; - -/** - * Map type `T` to a plain object hash with the identity mapping. - * - * Discards any additional object identity like the ability to `new()` up the class. - * The `new()` capability is added back later by merging `EmberClassConstructor` - * - * Implementation is carefully chosen for the reasons described in - * https://github.com/typed-ember/ember-typings/pull/29 - */ -export type Objectify = Readonly; -export type ExtractPropertyNamesOfType = { - [K in keyof T]: T[K] extends S ? K : never -}[keyof T]; -export type Fix = { [K in keyof T]: T[K] }; - -export type KeysOfType = keyof Pick; - -export interface TypeLookup { - string: string; - number: number; - boolean: boolean; - regexp: RegExp; - function: (...args: any[]) => any; - array: any[]; - error: Error; - filelist: FileList; - class: typeof Ember.Object; - instance: Ember.Object; - date: Date; - null: null; - undefined: undefined; -} diff --git a/types/ember/index.d.ts b/types/ember/index.d.ts index 5b059a0ee4..f2634cef72 100755 --- a/types/ember/index.d.ts +++ b/types/ember/index.d.ts @@ -14,18 +14,24 @@ /// /// +/// +/// +/// +/// +/// +/// declare module 'ember' { import { - UnwrapComputedPropertySetters, + Objectify, Fix, UnwrapComputedPropertySetters, UnwrapComputedPropertySetter, UnwrapComputedPropertyGetters, UnwrapComputedPropertyGetter, - ComputedPropertyCallback - } from 'ember/-private-types/object/computed'; - import { Objectify, Fix, KeysOfType, TypeLookup } from 'ember/-private-types/utils'; - import { EmberClassArguments, EmberClassConstructor, EmberInstanceArguments } from 'ember/-private-types/object'; - + EmberClassArguments, EmberClassConstructor, EmberInstanceArguments, + ComputedPropertyCallback, + ObserverMethod + } from '@ember/object/-private/types'; + import * as HandlebarsNamespace from 'handlebars'; // Capitalization is intentional: this makes it much easier to re-export RSVP on // the Ember namespace. import Rsvp from 'rsvp'; @@ -33,26 +39,33 @@ declare module 'ember' { import { Registry as ServiceRegistry } from '@ember/service'; import { Registry as ControllerRegistry } from '@ember/controller'; - import ModuleComputed from '@ember/object/computed'; + import * as EmberStringNs from '@ember/string'; + import * as EmberPolyfillsNs from '@ember/polyfills'; + import * as EmberUtilsNs from '@ember/utils'; + import * as EmberObjectNs from '@ember/object'; + import * as EmberObjectObserversNs from '@ember/object/observers'; + import * as EmberObjectMixinNs from '@ember/object/mixin'; + import * as EmberObjectInternalsNs from '@ember/object/internals'; + import * as EmberObjectComputedNs from '@ember/object/computed'; + import * as EmberObjectEventedNs from '@ember/object/evented'; + import * as EmberObjectEventsNs from '@ember/object/events'; + // @ember/debug + import * as EmberDebugNs from '@ember/debug'; + import _ContainerDebugAdapter from '@ember/debug/container-debug-adapter'; + import _DataAdapter from '@ember/debug/data-adapter'; + // @ember/engine + import * as EmberEngineNs from '@ember/engine'; + import * as EmberEngineInstanceNs from '@ember/engine/instance'; + import _ContainerProxyMixin from '@ember/engine/-private/container-proxy-mixin'; + import _RegistryProxyMixin from '@ember/engine/-private/registry-proxy-mixin'; + import EmberCoreObject from '@ember/object/core'; + // tslint:disable-next-line:no-duplicate-imports + import EmberMixin from '@ember/object/mixin'; + import Observable from '@ember/object/observable'; // Get an alias to the global Array type to use in inner scope below. type GlobalArray = T[]; - // TODO: TypeScript 3.0 - // type FunctionArgs any> = F extends (...args: infer ARGS) => any ? ARGS : never; - type FunctionArgs = - F extends (a: infer A) => any - ? [A] - : F extends (a: infer A, b: infer B) => any - ? [A, B] - : F extends (a: infer A, b: infer B, c: infer C) => any - ? [A, B, C] - : F extends (a: infer A, b: infer B, c: infer C, d: infer D) => any - ? [A, B, C, D] - : F extends (a: infer A, b: infer B, c: infer C, d: infer D, e: infer E) => any - ? [A, B, C, D, E] - : never; - type Mix = B & Pick>; type Mix3 = Mix, C>; type Mix4 = Mix3, C, D>; @@ -61,7 +74,7 @@ declare module 'ember' { /** * Ember.Object.extend(...) accepts any number of mixins or literals. */ - type MixinOrLiteral = Ember.Mixin | T; + type MixinOrLiteral = EmberMixin | T; /** * Used to infer the type of ember classes of type `T`. @@ -94,10 +107,6 @@ declare module 'ember' { type QueryParamTypes = 'boolean' | 'number' | 'array' | 'string'; type QueryParamScopeTypes = 'controller' | 'model'; - type ObserverMethod = - | (keyof Target) - | ((this: Target, sender: Sender, key: string, value: any, rev: number) => void); - interface RenderOptions { into?: string; controller?: string; @@ -201,33 +210,32 @@ declare module 'ember' { */ willDestroyElement(): void; } - const ViewMixin: Ember.Mixin; + const ViewMixin: EmberMixin; /** - Ember.CoreView is an abstract class that exists to give view-like behavior to both Ember's main - view class Ember.Component and other classes that don't need the full functionality of Ember.Component. - - Unless you have specific needs for CoreView, you will use Ember.Component in your applications. - **/ + * Ember.CoreView is an abstract class that exists to give view-like behavior to both Ember's main + * view class Ember.Component and other classes that don't need the full functionality of Ember.Component. + * Unless you have specific needs for CoreView, you will use Ember.Component in your applications. + */ class CoreView extends Ember.Object.extend(Ember.Evented, Ember.ActionHandler) {} interface ActionSupport { sendAction(action: string, ...params: any[]): void; } - const ActionSupport: Ember.Mixin; + const ActionSupport: EmberMixin; interface ClassNamesSupport { /** - A list of properties of the view to apply as class names. If the property is a string value, - the value of that string will be applied as a class name. - - If the value of the property is a Boolean, the name of that property is added as a dasherized - class name. - - If you would prefer to use a custom value instead of the dasherized property name, you can - pass a binding like this: `classNameBindings: ['isUrgent:urgent']` - - This list of properties is inherited from the component's superclasses as well. - */ + * A list of properties of the view to apply as class names. If the property is a string value, + * the value of that string will be applied as a class name. + * + * If the value of the property is a Boolean, the name of that property is added as a dasherized + * class name. + * + * If you would prefer to use a custom value instead of the dasherized property name, you can + * pass a binding like this: `classNameBindings: ['isUrgent:urgent']` + * + * This list of properties is inherited from the component's superclasses as well. + */ classNameBindings: string[]; /** * Standard CSS class names to apply to the view's outer element. This @@ -236,7 +244,7 @@ declare module 'ember' { */ classNames: string[]; } - const ClassNamesSupport: Ember.Mixin; + const ClassNamesSupport: EmberMixin; interface TriggerActionOptions { action?: string; @@ -244,11 +252,11 @@ declare module 'ember' { actionContext?: Ember.Object; } /** - Ember.TargetActionSupport is a mixin that can be included in a class to add a triggerAction method - with semantics similar to the Handlebars {{action}} helper. In normal Ember usage, the {{action}} - helper is usually the best choice. This mixin is most often useful when you are doing more - complex event handling in Components. - **/ + * Ember.TargetActionSupport is a mixin that can be included in a class to add a triggerAction method + * with semantics similar to the Handlebars {{action}} helper. In normal Ember usage, the {{action}} + * helper is usually the best choice. This mixin is most often useful when you are doing more + * complex event handling in Components. + */ interface TargetActionSupport { triggerAction(opts: TriggerActionOptions): boolean; } @@ -287,187 +295,112 @@ declare module 'ember' { underscore(): string; w(): string[]; } - /** - * Given a fullName return a factory manager. + * Ember.ActionHandler is available on some familiar classes including Ember.Route, + * Ember.Component, and Ember.Controller. (Internally the mixin is used by Ember.CoreView, + * Ember.ControllerMixin, and Ember.Route and available to the above classes through inheritance.) */ - interface _ContainerProxyMixin { - /** - * Returns an object that can be used to provide an owner to a - * manually created instance. - */ - ownerInjection(): {}; - /** - * Given a fullName return a corresponding instance. - */ - lookup(fullName: string, options?: {}): any; - /** - * Given a fullName return a corresponding factory. - */ - factoryFor(fullName: string, options?: {}): any; - } - const _ContainerProxyMixin: Mixin<_ContainerProxyMixin>; - - /** - * RegistryProxyMixin is used to provide public access to specific - * registry functionality. - */ - interface _RegistryProxyMixin { - /** - * Given a fullName return the corresponding factory. - */ - resolveRegistration(fullName: string): Function; - /** - * Registers a factory or value that can be used for dependency injection (with - * `inject`) or for service lookup. Each factory is registered with - * a full name including two parts: `type:name`. - */ - register(fullName: string, factory: any, options?: { singleton?: boolean, instantiate?: boolean }): any; - /** - * Unregister a factory. - */ - unregister(fullName: string): any; - /** - * Check if a factory is registered. - */ - hasRegistration(fullName: string): boolean; - /** - * Register an option for a particular factory. - */ - registerOption(fullName: string, optionName: string, options: {}): any; - /** - * Return a specific registered option for a particular factory. - */ - registeredOption(fullName: string, optionName: string): {}; - /** - * Register options for a particular factory. - */ - registerOptions(fullName: string, options: {}): any; - /** - * Return registered options for a particular factory. - */ - registeredOptions(fullName: string): {}; - /** - * Allow registering options for all factories of a type. - */ - registerOptionsForType(type: string, options: {}): any; - /** - * Return the registered options for all factories of a type. - */ - registeredOptionsForType(type: string): {}; - /** - * Define a dependency injection onto a specific factory or all factories - * of a type. - */ - inject(factoryNameOrType: string, property: string, injectionName: string): any; - } - const _RegistryProxyMixin: Mixin<_RegistryProxyMixin>; - /** - Ember.ActionHandler is available on some familiar classes including Ember.Route, - Ember.Component, and Ember.Controller. (Internally the mixin is used by Ember.CoreView, - Ember.ControllerMixin, and Ember.Route and available to the above classes through inheritance.) - **/ interface ActionHandler { /** - Triggers a named action on the ActionHandler. Any parameters supplied after the actionName - string will be passed as arguments to the action target function. - - If the ActionHandler has its target property set, actions may bubble to the target. - Bubbling happens when an actionName can not be found in the ActionHandler's actions - hash or if the action target function returns true. - **/ + * Triggers a named action on the ActionHandler. Any parameters supplied after the actionName + * string will be passed as arguments to the action target function. + * + * If the ActionHandler has its target property set, actions may bubble to the target. + * Bubbling happens when an actionName can not be found in the ActionHandler's actions + * hash or if the action target function returns true. + */ send(actionName: string, ...args: any[]): void; /** - The collection of functions, keyed by name, available on this ActionHandler as action targets. - **/ + * The collection of functions, keyed by name, available on this ActionHandler as action targets. + */ actions: ActionsHash; } - const ActionHandler: Ember.Mixin; + const ActionHandler: EmberMixin; /** - An instance of Ember.Application is the starting point for every Ember application. It helps to - instantiate, initialize and coordinate the many objects that make up your app. - **/ - class Application extends Engine { + * An instance of Ember.Application is the starting point for every Ember application. It helps to + * instantiate, initialize and coordinate the many objects that make up your app. + */ + class Application extends EmberEngineNs.default { /** - Call advanceReadiness after any asynchronous setup logic has completed. - Each call to deferReadiness must be matched by a call to advanceReadiness - or the application will never become ready and routing will not begin. - **/ + * Call advanceReadiness after any asynchronous setup logic has completed. + * Each call to deferReadiness must be matched by a call to advanceReadiness + * or the application will never become ready and routing will not begin. + */ advanceReadiness(): void; /** - Use this to defer readiness until some condition is true. - - This allows you to perform asynchronous setup logic and defer - booting your application until the setup has finished. - - However, if the setup requires a loading UI, it might be better - to use the router for this purpose. - */ + * Use this to defer readiness until some condition is true. + * + * This allows you to perform asynchronous setup logic and defer + * booting your application until the setup has finished. + * + * However, if the setup requires a loading UI, it might be better + * to use the router for this purpose. + */ deferReadiness(): void; /** - defines an injection or typeInjection - **/ + * defines an injection or typeInjection + */ inject(factoryNameOrType: string, property: string, injectionName: string): void; /** - This injects the test helpers into the window's scope. If a function of the - same name has already been defined it will be cached (so that it can be reset - if the helper is removed with `unregisterHelper` or `removeTestHelpers`). - Any callbacks registered with `onInjectHelpers` will be called once the - helpers have been injected. - **/ + * This injects the test helpers into the window's scope. If a function of the + * same name has already been defined it will be cached (so that it can be reset + * if the helper is removed with `unregisterHelper` or `removeTestHelpers`). + * Any callbacks registered with `onInjectHelpers` will be called once the + * helpers have been injected. + */ injectTestHelpers(): void; /** - registers a factory for later injection - @param fullName type:name (e.g., 'model:user') - @param factory (e.g., App.Person) - **/ - register(fullName: string, factory: Function, options?: {}): void; + * registers a factory for later injection + * @param fullName type:name (e.g., 'model:user') + * @param factory (e.g., App.Person) + */ + register(fullName: string, factory: any): void; /** - This removes all helpers that have been registered, and resets and functions - that were overridden by the helpers. - **/ + * This removes all helpers that have been registered, and resets and functions + * that were overridden by the helpers. + */ removeTestHelpers(): void; /** - Reset the application. This is typically used only in tests. - **/ + * Reset the application. This is typically used only in tests. + */ reset(): void; /** - This hook defers the readiness of the application, so that you can start - the app when your tests are ready to run. It also sets the router's - location to 'none', so that the window's location will not be modified - (preventing both accidental leaking of state between tests and interference - with your testing framework). - **/ + * This hook defers the readiness of the application, so that you can start + * the app when your tests are ready to run. It also sets the router's + * location to 'none', so that the window's location will not be modified + * (preventing both accidental leaking of state between tests and interference + * with your testing framework). + */ setupForTesting(): void; /** - The DOM events for which the event dispatcher should listen. - */ + * The DOM events for which the event dispatcher should listen. + */ customEvents: EventDispatcherEvents; /** - The Ember.EventDispatcher responsible for delegating events to this application's views. - **/ + * The Ember.EventDispatcher responsible for delegating events to this application's views. + */ eventDispatcher: EventDispatcher; /** - Set this to provide an alternate class to Ember.DefaultResolver - **/ + * Set this to provide an alternate class to Ember.DefaultResolver + */ resolver: DefaultResolver; /** - The root DOM element of the Application. This can be specified as an - element or a jQuery-compatible selector string. - - This is the element that will be passed to the Application's, eventDispatcher, - which sets up the listeners for event delegation. Every view in your application - should be a child of the element you specify here. - **/ + * The root DOM element of the Application. This can be specified as an + * element or a jQuery-compatible selector string. + * + * This is the element that will be passed to the Application's, eventDispatcher, + * which sets up the listeners for event delegation. Every view in your application + * should be a child of the element you specify here. + */ rootElement: HTMLElement | string; /** - Called when the Application has become ready. - The call will be delayed until the DOM has become ready. - **/ - ready: Function; + * Called when the Application has become ready. + * The call will be delayed until the DOM has become ready. + */ + ready: (...args: any[]) => any; /** - Application's router. - **/ + * Application's router. + */ Router: Router; registry: Registry; /** @@ -481,14 +414,14 @@ declare module 'ember' { buildInstance(options?: object): ApplicationInstance; } /** - The `ApplicationInstance` encapsulates all of the stateful aspects of a - running `Application`. - **/ + * The `ApplicationInstance` encapsulates all of the stateful aspects of a + * running `Application`. + */ class ApplicationInstance extends EngineInstance {} /** - This module implements Observer-friendly Array-like behavior. This mixin is picked up by the - Array class as well as other controllers, etc. that want to appear to be arrays. - **/ + * This module implements Observer-friendly Array-like behavior. This mixin is picked up by the + * Array class as well as other controllers, etc. that want to appear to be arrays. + */ interface Array extends Enumerable { /** * __Required.__ You must implement this method to apply this mixin. @@ -562,13 +495,13 @@ declare module 'ember' { '@each': ComputedProperty; } // Ember.Array rather than Array because the `array-type` lint rule doesn't realize the global is shadowed - const Array: Mixin>; + const Array: EmberMixin>; /** - An ArrayProxy wraps any other object that implements Ember.Array and/or Ember.MutableArray, - forwarding all requests. This makes it very useful for a number of binding use cases or other cases - where being able to swap out the underlying array is useful. - **/ + * An ArrayProxy wraps any other object that implements Ember.Array and/or Ember.MutableArray, + * forwarding all requests. This makes it very useful for a number of binding use cases or other cases + * where being able to swap out the underlying array is useful. + */ interface ArrayProxy extends MutableArray {} class ArrayProxy extends Object.extend(MutableArray as {}) { content: NativeArray; @@ -581,15 +514,15 @@ declare module 'ember' { objectAtContent(idx: number): T | undefined; } /** - AutoLocation will select the best location option based off browser support with the priority order: history, hash, none. - **/ + * AutoLocation will select the best location option based off browser support with the priority order: history, hash, none. + */ class AutoLocation extends Object {} /** * Connects the properties of two objects so that whenever the value of one property changes, * the other property will be changed also. * * @deprecated https://emberjs.com/deprecations/v2.x#toc_ember-binding - **/ + */ class Binding { constructor(toPath: string, fromPath: string); connect(obj: any): Binding; @@ -600,9 +533,9 @@ declare module 'ember' { toString(): string; } /** - The internal class used to create text inputs when the {{input}} helper is used - with type of checkbox. See Handlebars.helpers.input for usage details. - **/ + * The internal class used to create text inputs when the {{input}} helper is used + * with type of checkbox. See Handlebars.helpers.input for usage details. + */ class Checkbox extends Component {} /** * Implements some standard methods for comparing objects. Add this mixin to @@ -611,12 +544,12 @@ declare module 'ember' { interface Comparable { compare(a: any, b: any): number; } - const Comparable: Mixin; + const Comparable: EmberMixin; /** - A view that is completely isolated. Property access in its templates go to the view object - and actions are targeted at the view object. There is no access to the surrounding context or - outer controller; all contextual information is passed in. - **/ + * A view that is completely isolated. Property access in its templates go to the view object + * and actions are targeted at the view object. There is no access to the surrounding context or + * outer controller; all contextual information is passed in. + */ class Component extends CoreView.extend(ViewMixin, ActionSupport, ClassNamesSupport) { // methods readDOMAttr(name: string): string; @@ -685,41 +618,7 @@ declare module 'ember' { */ willUpdate(): void; } - /** - A computed property transforms an objects function into a property. - By default the function backing the computed property will only be called once and the result - will be cached. You can specify various properties that your computed property is dependent on. - This will force the cached result to be recomputed if the dependencies are modified. - **/ - class ComputedProperty { - // Necessary in order to avoid losing type information - // see: https://github.com/typed-ember/ember-cli-typescript/issues/246#issuecomment-414812013 - private ______getType: Get; - private ______setType: Set; - /** - * Call on a computed property to set it into non-cached mode. When in this - * mode the computed property will not automatically cache the return value. - */ - volatile(): this; - /** - * Call on a computed property to set it into read-only mode. When in this - * mode the computed property will throw an error when set. - */ - readOnly(): this; - /** - * Sets the dependent keys on this computed property. Pass any number of - * arguments containing key paths that this computed property depends on. - */ - property(...path: string[]): this; - /** - * In some cases, you may want to annotate computed properties with additional - * metadata about how they function or what values they operate on. For example, - * computed property functions may close over variables that are then no longer - * available for introspection. - */ - meta(meta: {}): this; - meta(): {}; - } + export class ComputedProperty extends EmberObjectComputedNs.default {} /** * A container used to instantiate and cache objects. */ @@ -732,15 +631,7 @@ declare module 'ember' { */ factoryFor(fullName: string, options?: {}): any; } - /** - The ContainerDebugAdapter helps the container and resolver interface - with tools that debug Ember such as the Ember Inspector for Chrome and Firefox. - **/ - class ContainerDebugAdapter extends Object { - resolver: Resolver; - canCatalogEntriesByType(type: string): boolean; - catalogEntriesByType(type: string): string[]; - } + class ContainerDebugAdapter extends _ContainerDebugAdapter {} /** * Additional methods for the Controller. */ @@ -753,9 +644,9 @@ declare module 'ember' { scope?: QueryParamScopeTypes, as?: string }}>; - target: Object; + target: object; } - const ControllerMixin: Ember.Mixin; + const ControllerMixin: EmberMixin; class Controller extends Object.extend(ControllerMixin) {} /** * Implements some standard methods for copying an object. Add this mixin to @@ -773,301 +664,14 @@ declare module 'ember' { */ frozenCopy(): Copyable; } - const Copyable: Ember.Mixin; - class CoreObject { - /** - * As of Ember 3.1, CoreObject constructor takes initial object properties as an argument. - * See: https://github.com/emberjs/ember.js/commit/4709935854d4c29b0d2c054614d53fa2c55309b1 - **/ - constructor(properties?: object); - - _super(...args: any[]): any; - - /** - An overridable method called when objects are instantiated. By default, - does nothing unless it is overridden during class definition. - **/ - init(): void; - - /** - * Defines the properties that will be concatenated from the superclass (instead of overridden). - * @default null - */ - concatenatedProperties: any[]; - - /** - Destroyed object property flag. If this property is true the observers and bindings were - already removed by the effect of calling the destroy() method. - @default false - **/ - isDestroyed: boolean; - /** - Destruction scheduled flag. The destroy() method has been called. The object stays intact - until the end of the run loop at which point the isDestroyed flag is set. - @default false - **/ - isDestroying: boolean; - - /** - Destroys an object by setting the `isDestroyed` flag and removing its - metadata, which effectively destroys observers and bindings. - If you try to set a property on a destroyed object, an exception will be - raised. - Note that destruction is scheduled for the end of the run loop and does not - happen immediately. It will set an isDestroying flag immediately. - @return receiver - */ - destroy(): CoreObject; - - /** - Override to implement teardown. - */ - willDestroy(): void; - - /** - Returns a string representation which attempts to provide more information than Javascript's toString - typically does, in a generic way for all Ember objects (e.g., ""). - @return string representation - **/ - toString(): string; - - static create(this: Class): InstanceType; - - static create>> - >(this: Class, - arg1: T1 & ThisType> - ): InstanceType & T1; - - static create>>, - T2 extends EmberInstanceArguments>> - >(this: Class, - arg1: T1 & ThisType>, - arg2: T2 & ThisType> - ): InstanceType & T1 & T2; - - static create>>, - T2 extends EmberInstanceArguments>>, - T3 extends EmberInstanceArguments>> - >(this: Class, - arg1: T1 & ThisType>, - arg2: T2 & ThisType>, - arg3: T3 & ThisType> - ): InstanceType & T1 & T2 & T3; - - static extend( - this: Statics & EmberClassConstructor - ): Objectify & EmberClassConstructor; - - static extend( - this: Statics & EmberClassConstructor, - arg1: MixinOrLiteral & ThisType> - ): Objectify & EmberClassConstructor; - - static extend< - Statics, - Instance extends B1 & B2, - T1 extends EmberClassArguments, - B1, - T2 extends EmberClassArguments, - B2 - >( - this: Statics & EmberClassConstructor, - arg1: MixinOrLiteral & ThisType>, - arg2: MixinOrLiteral & ThisType> - ): Objectify & EmberClassConstructor; - - static extend< - Statics, - Instance extends B1 & B2 & B3, - T1 extends EmberClassArguments, - B1, - T2 extends EmberClassArguments, - B2, - T3 extends EmberClassArguments, - B3 - >( - this: Statics & EmberClassConstructor, - arg1: MixinOrLiteral & ThisType>, - arg2: MixinOrLiteral & ThisType>, - arg3: MixinOrLiteral & ThisType> - ): Objectify & EmberClassConstructor; - - static extend< - Statics, - Instance extends B1 & B2 & B3 & B4, - T1 extends EmberClassArguments, - B1, - T2 extends EmberClassArguments, - B2, - T3 extends EmberClassArguments, - B3, - T4 extends EmberClassArguments, - B4 - >( - this: Statics & EmberClassConstructor, - arg1: MixinOrLiteral & ThisType>, - arg2: MixinOrLiteral & ThisType>, - arg3: MixinOrLiteral & ThisType>, - arg4: MixinOrLiteral & ThisType> - ): Objectify & EmberClassConstructor; - - static reopen( - this: Statics & EmberClassConstructor - ): Objectify & EmberClassConstructor; - - static reopen( - this: Statics & EmberClassConstructor, - arg1: MixinOrLiteral & ThisType> - ): Objectify & EmberClassConstructor; - - static reopen< - Statics, - Instance extends B1 & B2, - T1 extends EmberClassArguments, - B1, - T2 extends EmberClassArguments, - B2 - >( - this: Statics & EmberClassConstructor, - arg1: MixinOrLiteral & ThisType>, - arg2: MixinOrLiteral & ThisType> - ): Objectify & EmberClassConstructor; - - static reopen< - Statics, - Instance extends B1 & B2 & B3, - T1 extends EmberClassArguments, - B1, - T2 extends EmberClassArguments, - B2, - T3 extends EmberClassArguments, - B3 - >( - this: Statics & EmberClassConstructor, - arg1: MixinOrLiteral & ThisType>, - arg2: MixinOrLiteral & ThisType>, - arg3: MixinOrLiteral & ThisType> - ): Objectify & EmberClassConstructor; - - static reopenClass(this: Statics): Statics; - - static reopenClass( - this: Statics, - arg1: T1 - ): Statics & T1; - - static reopenClass< - Statics, - T1 extends EmberClassArguments, - T2 extends EmberClassArguments - >(this: Statics, arg1: T1, arg2: T2): Statics & T1 & T2; - - static reopenClass< - Statics, - T1 extends EmberClassArguments, - T2 extends EmberClassArguments, - T3 extends EmberClassArguments - >(this: Statics, arg1: T1, arg2: T2, arg3: T3): Statics & T1 & T2 & T3; - - static detect( - this: Statics & EmberClassConstructor, - obj: any - ): obj is Objectify & EmberClassConstructor; - - static detectInstance( - this: EmberClassConstructor, - obj: any - ): obj is Instance; - - /** - Iterate over each computed property for the class, passing its name and any - associated metadata (see metaForProperty) to the callback. - **/ - static eachComputedProperty(callback: Function, binding: {}): void; - /** - Returns the original hash that was passed to meta(). - @param key property name - **/ - static metaForProperty(key: string): {}; - static isClass: boolean; - static isMethod: boolean; - } - /** - * The `DataAdapter` helps a data persistence library - * interface with tools that debug Ember such as Chrome and Firefox. - */ - class DataAdapter extends Object { - /** - * The container-debug-adapter which is used - * to list all models. - */ - containerDebugAdapter: ContainerDebugAdapter; - /** - * Ember Data > v1.0.0-beta.18 - * requires string model names to be passed - * around instead of the actual factories. - */ - acceptsModelName: boolean; - /** - * Specifies how records can be filtered. - * Records returned will need to have a `filterValues` - * property with a key for every name in the returned array. - */ - getFilters(): DataAdapter.Column[]; - /** - * Fetch the model types and observe them for changes. - */ - watchModelTypes( - typesAdded: (types: DataAdapter.WrappedType[]) => void, - typesUpdated: (types: DataAdapter.WrappedType[]) => void - ): () => void; - /** - * Fetch the records of a given type and observe them for changes. - */ - watchRecords( - modelName: string, - recordsAdded: (records: DataAdapter.WrappedRecord[]) => void, - recordsUpdated: (records: DataAdapter.WrappedRecord[]) => void, - recordsRemoved: (idx: number, count: number) => void - ): () => void; - } - namespace DataAdapter { - interface Column { - name: string; - desc: string; - } - interface WrappedRecord { - columnValues: object; - object: object; - } - interface WrappedType { - type: { - name: string; - count: number; - columns: Column[]; - object: typeof Object; - }; - release: () => void; - } - } + const Copyable: EmberMixin; + // TODO: replace with a proper ES6 reexport once we remove declare module 'ember' {} + class Object extends EmberObjectNs.default {} + class CoreObject extends EmberCoreObject {} + class DataAdapter extends _DataAdapter {} const Debug: { - /** - * Allows for runtime registration of handler functions that override the default deprecation behavior. - * Deprecations are invoked by calls to [Ember.deprecate](http://emberjs.com/api/classes/Ember.html#method_deprecate). - * The following example demonstrates its usage by registering a handler that throws an error if the - * message contains the word "should", otherwise defers to the default handler. - */ - registerDeprecationHandler(handler: (message: string, options: { id: string, until: string }, next: () => void) => void): void; - /** - * Allows for runtime registration of handler functions that override the default warning behavior. - * Warnings are invoked by calls made to [Ember.warn](http://emberjs.com/api/classes/Ember.html#method_warn). - * The following example demonstrates its usage by registering a handler that does nothing overriding Ember's - * default warning behavior. - */ - registerWarnHandler(handler: (message: string, options: { id: string }, next: () => void) => void): void; + registerDeprecationHandler: typeof EmberDebugNs.registerDeprecationHandler; + registerWarnHandler: typeof EmberDebugNs.registerWarnHandler; }; /** * The DefaultResolver defines the default lookup rules to resolve @@ -1087,61 +691,8 @@ declare module 'ember' { */ namespace: Application; } - interface Initializer { - name: string; - before?: string[]; - after?: string[]; - initialize(application: T): void; - } - /** - * The `Engine` class contains core functionality for both applications and - * engines. - */ - class Engine extends Namespace.extend(_RegistryProxyMixin) { - /** - * The goal of initializers should be to register dependencies and injections. - * This phase runs once. Because these initializers may load code, they are - * allowed to defer application readiness and advance it. If you need to access - * the container or store you should use an InstanceInitializer that will be run - * after all initializers and therefore after all code is loaded and the app is - * ready. - */ - static initializer(initializer: Initializer): void; - /** - * Instance initializers run after all initializers have run. Because - * instance initializers run after the app is fully set up. We have access - * to the store, container, and other items. However, these initializers run - * after code has loaded and are not allowed to defer readiness. - */ - static instanceInitializer(instanceInitializer: Initializer): void; - /** - * Set this to provide an alternate class to `Ember.DefaultResolver` - */ - resolver: Resolver; - /** - * Create an EngineInstance for this Engine. - */ - buildInstance(options?: object): EngineInstance; - } - /** - * The `EngineInstance` encapsulates all of the stateful aspects of a - * running `Engine`. - */ - class EngineInstance extends Ember.Object.extend( - _RegistryProxyMixin, - _ContainerProxyMixin - ) { - /** - * Unregister a factory. - */ - unregister(fullName: string): any; - - /** - * Initialize the `EngineInstance` and return a promise that resolves - * with the instance itself when the boot process is complete. - */ - boot(): Promise; - } + class EngineInstance extends EmberEngineInstanceNs.default {} + class Engine extends EmberEngineNs.default {} /** * This mixin defines the common interface implemented by enumerable objects * in Ember. Most of these methods follow the standard Array iteration @@ -1302,10 +853,10 @@ declare module 'ember' { */ '[]': ComputedProperty; } - const Enumerable: Mixin>; + const Enumerable: EmberMixin>; /** - A subclass of the JavaScript Error object for use in Ember. - **/ + * A subclass of the JavaScript Error object for use in Ember. + */ const Error: ErrorConstructor; /** * `Ember.EventDispatcher` handles delegating browser events to their @@ -1321,51 +872,7 @@ declare module 'ember' { */ events: EventDispatcherEvents; } - /** - * This mixin allows for Ember objects to subscribe to and emit events. - */ - interface Evented { - /** - * Subscribes to a named event with given function. - */ - on( - name: string, - target: Target, - method: (this: Target, ...args: any[]) => void - ): this; - on(name: string, method: (...args: any[]) => void): this; - /** - * Subscribes a function to a named event and then cancels the subscription - * after the first time the event is triggered. It is good to use ``one`` when - * you only care about the first time an event has taken place. - */ - one( - name: string, - target: Target, - method: (this: Target, ...args: any[]) => void - ): this; - one(name: string, method: (...args: any[]) => void): this; - /** - * Triggers a named event for the object. Any additional arguments - * will be passed as parameters to the functions that are subscribed to the - * event. - */ - trigger(name: string, ...args: any[]): any; - /** - * Cancels subscription for given name, target, and method. - */ - off( - name: string, - target: Target, - method: (this: Target, ...args: any[]) => void - ): this; - off(name: string, method: (...args: any[]) => void): this; - /** - * Checks to see if object has any subscriptions for named event. - */ - has(name: string): boolean; - } - const Evented: Mixin; + const Evented: typeof EmberObjectEventedNs.default; /** * The `Ember.Freezable` mixin implements some basic methods for marking an * object as frozen. Once an object is frozen it should be read only. No changes @@ -1376,7 +883,7 @@ declare module 'ember' { freeze(): Freezable; isFrozen: boolean; } - const Freezable: Mixin; + const Freezable: EmberMixin; /** * `Ember.HashLocation` implements the location API using the browser's * hash. At present, it relies on a `hashchange` event existing in the @@ -1415,7 +922,7 @@ declare module 'ember' { * for Ember. */ const Instrumentation: { - instrument(name: string, payload: any, callback: Function, binding: any): void; + instrument(name: string, payload: any, callback: (...args: any[]) => any, binding: any): void; reset(): void; subscribe(pattern: string, object: any): void; unsubscribe(subscriber: any): void; @@ -1508,7 +1015,7 @@ declare module 'ember' { class Map { copy(): Map; static create(): Map; - forEach(callback: Function, self: any): void; + forEach(callback: (...args: any[]) => any, self: any): void; get(key: any): any; has(key: any): boolean; set(key: any, value: any): void; @@ -1521,39 +1028,7 @@ declare module 'ember' { copy(): MapWithDefault; static create(): MapWithDefault; } - /** - * The `Ember.Mixin` class allows you to create mixins, whose properties can be - * added to other classes. - */ - class Mixin { - /** - * Mixin needs to have *something* on its prototype, otherwise it's treated like an empty interface. - * It cannot be private, sadly. - */ - __ember_mixin__: never; - - static create( - args?: MixinOrLiteral & ThisType> - ): Mixin; - - static create( - arg1: MixinOrLiteral & ThisType>, - arg2: MixinOrLiteral & ThisType> - ): Mixin; - - static create( - arg1: MixinOrLiteral & ThisType>, - arg2: MixinOrLiteral & ThisType>, - arg3: MixinOrLiteral & ThisType> - ): Mixin; - - static create( - arg1: MixinOrLiteral & ThisType>, - arg2: MixinOrLiteral & ThisType>, - arg3: MixinOrLiteral & ThisType>, - arg4: MixinOrLiteral & ThisType> - ): Mixin; - } + class Mixin extends EmberMixin {} /** * This mixin defines the API for modifying array-like objects. These methods * can be applied only to a collection that keeps its items in an ordered set. @@ -1673,115 +1148,6 @@ declare module 'ember' { * application in a larger page). */ class NoneLocation extends Object {} - /** - * `Ember.Object` is the main base class for all Ember objects. It is a subclass - * of `Ember.CoreObject` with the `Ember.Observable` mixin applied. For details, - * see the documentation for each of these. - */ - class Object extends CoreObject.extend(Observable) {} - /** - * `Ember.ObjectProxy` forwards all properties not defined by the proxy itself - * to a proxied `content` object. - */ - class ObjectProxy extends Object { - /** - The object whose properties will be forwarded. - **/ - content: Object; - } - /** - * This mixin provides properties and property observing functionality, core features of the Ember object model. - */ - interface Observable { - /** - * Retrieves the value of a property from the object. - */ - get(key: K): UnwrapComputedPropertyGetter; - /** - * To get the values of multiple properties at once, call `getProperties` - * with a list of strings or an array: - */ - getProperties(list: K[]): Pick< UnwrapComputedPropertyGetters, K>; - getProperties( - ...list: K[] - ): Pick< UnwrapComputedPropertyGetters, K>; - /** - * Sets the provided key or path to the value. - */ - set(key: K, value: this[K]): this[K]; - set(key: keyof this, value: T): T; - /** - * Sets a list of properties at once. These properties are set inside - * a single `beginPropertyChanges` and `endPropertyChanges` batch, so - * observers will be buffered. - */ - setProperties( - hash: Pick - ): Pick< UnwrapComputedPropertySetters, K>; - setProperties( - hash: {[KK in K]: any} - ): Pick< UnwrapComputedPropertySetters, K>; - /** - * Convenience method to call `propertyWillChange` and `propertyDidChange` in - * succession. - */ - notifyPropertyChange(keyName: string): this; - /** - * Adds an observer on a property. - */ - addObserver( - key: keyof this, - target: Target, - method: ObserverMethod - ): void; - addObserver( - key: keyof this, - method: ObserverMethod - ): void; - /** - * Remove an observer you have previously registered on this object. Pass - * the same key, target, and method you passed to `addObserver()` and your - * target will no longer receive notifications. - */ - removeObserver( - key: keyof this, - target: Target, - method: ObserverMethod - ): any; - removeObserver( - key: keyof this, - method: ObserverMethod - ): any; - /** - * Retrieves the value of a property, or a default value in the case that the - * property returns `undefined`. - */ - getWithDefault( - key: K, - defaultValue: UnwrapComputedPropertyGetter - ): UnwrapComputedPropertyGetter; - /** - * Set the value of a property to the current value plus some amount. - */ - incrementProperty(keyName: keyof this, increment?: number): number; - /** - * Set the value of a property to the current value minus some amount. - */ - decrementProperty(keyName: keyof this, decrement?: number): number; - /** - * Set the value of a boolean property to the opposite of its - * current value. - */ - toggleProperty(keyName: keyof this): boolean; - /** - * Returns the cached value of a computed property, if it exists. - * This allows you to inspect the value of a computed property - * without accidentally invoking it if it is intended to be - * generated lazily. - */ - cacheFor(key: K): UnwrapComputedPropertyGetter | undefined; - } - const Observable: Mixin; /** * This class is used internally by Ember and Ember Data. * Please do not use it at this time. We plan to clean it up @@ -1793,42 +1159,12 @@ declare module 'ember' { clear(): void; copy(): OrderedSet; static create(): OrderedSet; - forEach(fn: Function, self: any): void; + forEach(fn: (...args: any[]) => any, self: any): void; has(obj: any): boolean; isEmpty(): boolean; toArray(): any[]; } - /** - * A low level mixin making ObjectProxy promise-aware. - */ - interface PromiseProxyMixin extends RSVP.Promise { - /** - * If the proxied promise is rejected this will contain the reason - * provided. - */ - reason: any; - /** - * Once the proxied promise has settled this will become `false`. - */ - isPending: boolean; - /** - * Once the proxied promise has settled this will become `true`. - */ - isSettled: boolean; - /** - * Will become `true` if the proxied promise is rejected. - */ - isRejected: boolean; - /** - * Will become `true` if the proxied promise is fulfilled. - */ - isFulfilled: boolean; - /** - * The promise whose fulfillment value is being proxied by this object. - */ - promise: RSVP.Promise; - } - const PromiseProxyMixin: Mixin>; + /** * A registry used to store factory and option information keyed * by type. @@ -1842,41 +1178,41 @@ declare module 'ember' { } class Resolver extends Ember.Object {} /** - The `Ember.Route` class is used to define individual routes. Refer to - the [routing guide](http://emberjs.com/guides/routing/) for documentation. - */ + * The `Ember.Route` class is used to define individual routes. Refer to + * the [routing guide](http://emberjs.com/guides/routing/) for documentation. + */ class Route extends Object.extend(ActionHandler, Evented) { // methods /** - This hook is called after this route's model has resolved. - It follows identical async/promise semantics to `beforeModel` - but is provided the route's resolved model in addition to - the `transition`, and is therefore suited to performing - logic that can only take place after the model has already - resolved. - */ + * This hook is called after this route's model has resolved. + * It follows identical async/promise semantics to `beforeModel` + * but is provided the route's resolved model in addition to + * the `transition`, and is therefore suited to performing + * logic that can only take place after the model has already + * resolved. + */ afterModel(resolvedModel: any, transition: Transition): any; /** - This hook is the first of the route entry validation hooks - called when an attempt is made to transition into a route - or one of its children. It is called before `model` and - `afterModel`, and is appropriate for cases when: - 1) A decision can be made to redirect elsewhere without - needing to resolve the model first. - 2) Any async operations need to occur first before the - model is attempted to be resolved. - This hook is provided the current `transition` attempt - as a parameter, which can be used to `.abort()` the transition, - save it for a later `.retry()`, or retrieve values set - on it from a previous hook. You can also just call - `this.transitionTo` to another route to implicitly - abort the `transition`. - You can return a promise from this hook to pause the - transition until the promise resolves (or rejects). This could - be useful, for instance, for retrieving async code from - the server that is required to enter a route. - */ + * This hook is the first of the route entry validation hooks + * called when an attempt is made to transition into a route + * or one of its children. It is called before `model` and + * `afterModel`, and is appropriate for cases when: + * 1) A decision can be made to redirect elsewhere without + * needing to resolve the model first. + * 2) Any async operations need to occur first before the + * model is attempted to be resolved. + * This hook is provided the current `transition` attempt + * as a parameter, which can be used to `.abort()` the transition, + * save it for a later `.retry()`, or retrieve values set + * on it from a previous hook. You can also just call + * `this.transitionTo` to another route to implicitly + * abort the `transition`. + * You can return a promise from this hook to pause the + * transition until the promise resolves (or rejects). This could + * be useful, for instance, for retrieving async code from + * the server that is required to enter a route. + */ beforeModel(transition: Transition): any; /** @@ -2224,27 +1560,27 @@ declare module 'ember' { * in as the only argument. */ interface TextSupport extends TargetActionSupport { - cancel(event: Function): void; - focusIn(event: Function): void; - focusOut(event: Function): void; - insertNewLine(event: Function): void; - keyPress(event: Function): void; + cancel(event: (...args: any[]) => any): void; + focusIn(event: (...args: any[]) => any): void; + focusOut(event: (...args: any[]) => any): void; + insertNewLine(event: (...args: any[]) => any): void; + keyPress(event: (...args: any[]) => any): void; action: string; bubbles: boolean; onEvent: string; } - const TextSupport: Ember.Mixin; + const TextSupport: Mixin; interface Transition { /** - Aborts the Transition. Note you can also implicitly abort a transition - by initiating another transition while a previous one is underway. - */ + * Aborts the Transition. Note you can also implicitly abort a transition + * by initiating another transition while a previous one is underway. + */ abort(): Transition; /** - Retries a previously-aborted transition (making sure to abort the - transition if it's still active). Returns a new transition that - represents the new attempt to transition. - */ + * Retries a previously-aborted transition (making sure to abort the + * transition if it's still active). Returns a new transition that + * represents the new attempt to transition. + */ retry(): Transition; } interface ViewTargetActionSupport { @@ -2412,7 +1748,7 @@ declare module 'ember' { const String: boolean; } namespace Handlebars { - function compile(string: string): Function; + function compile(string: string): (...args: any[]) => any; function compile(environment: any, options?: any, context?: any, asObject?: any): any; function precompile(string: string, options: any): void; class Compiler {} @@ -2421,266 +1757,26 @@ declare module 'ember' { function K(): any; function createFrame(objec: any): any; function Exception(message: string): void; - class SafeString { - constructor(str: string); - toString(): string; - } + const SafeString: typeof HandlebarsNamespace.SafeString; function parse(string: string): any; function print(ast: any): void; const logger: typeof Ember.Logger; function log(level: string, str: string): void; } namespace String { - function camelize(str: string): string; - function capitalize(str: string): string; - function classify(str: string): string; - function dasherize(str: string): string; - function decamelize(str: string): string; + const camelize: typeof EmberStringNs.camelize; + const capitalize: typeof EmberStringNs.capitalize; + const classify: typeof EmberStringNs.classify; + const dasherize: typeof EmberStringNs.dasherize; + const decamelize: typeof EmberStringNs.decamelize; function fmt(...args: string[]): string; - function htmlSafe(str: string): Handlebars.SafeString; - function isHTMLSafe(str: string): boolean; - function loc(template: string, args?: string[]): string; - function underscore(str: string): string; - function w(str: string): string[]; + const htmlSafe: typeof EmberStringNs.htmlSafe; + const isHTMLSafe: typeof EmberStringNs.isHTMLSafe; + const loc: typeof EmberStringNs.loc; + const underscore: typeof EmberStringNs.underscore; + const w: typeof EmberStringNs.w; } - const computed: { - (cb: ComputedPropertyCallback): ComputedProperty; - (k1: string, cb: ComputedPropertyCallback): ComputedProperty; - (k1: string, k2: string, cb: ComputedPropertyCallback): ComputedProperty; - ( - k1: string, - k2: string, - k3: string, - cb: ComputedPropertyCallback - ): ComputedProperty; - ( - k1: string, - k2: string, - k3: string, - k4: string, - cb: ComputedPropertyCallback - ): ComputedProperty; - ( - k1: string, - k2: string, - k3: string, - k4: string, - k5: string, - cb: ComputedPropertyCallback - ): ComputedProperty; - ( - k1: string, - k2: string, - k3: string, - k4: string, - k5: string, - k6: string, - cb: ComputedPropertyCallback - ): ComputedProperty; - ( - k1: string, - k2: string, - k3: string, - k4: string, - k5: string, - k6: string, - k7: string, - ...rest: any[] - ): ComputedProperty; - - /** - * A computed property that returns true if the value of the dependent - * property is null, an empty string, empty array, or empty function. - */ - empty(dependentKey: string): ComputedProperty; - /** - * A computed property that returns true if the value of the dependent - * property is NOT null, an empty string, empty array, or empty function. - */ - notEmpty(dependentKey: string): ComputedProperty; - /** - * A computed property that returns true if the value of the dependent - * property is null or undefined. This avoids errors from JSLint complaining - * about use of ==, which can be technically confusing. - */ - none(dependentKey: string): ComputedProperty; - /** - * A computed property that returns the inverse boolean value - * of the original value for the dependent property. - */ - not(dependentKey: string): ComputedProperty; - /** - * A computed property that converts the provided dependent property - * into a boolean value. - */ - bool(dependentKey: string): ComputedProperty; - /** - * A computed property which matches the original value for the - * dependent property against a given RegExp, returning `true` - * if the value matches the RegExp and `false` if it does not. - */ - match(dependentKey: string, regexp: RegExp): ComputedProperty; - /** - * A computed property that returns true if the provided dependent property - * is equal to the given value. - */ - equal(dependentKey: string, value: any): ComputedProperty; - /** - * A computed property that returns true if the provided dependent property - * is greater than the provided value. - */ - gt(dependentKey: string, value: number): ComputedProperty; - /** - * A computed property that returns true if the provided dependent property - * is greater than or equal to the provided value. - */ - gte(dependentKey: string, value: number): ComputedProperty; - /** - * A computed property that returns true if the provided dependent property - * is less than the provided value. - */ - lt(dependentKey: string, value: number): ComputedProperty; - /** - * A computed property that returns true if the provided dependent property - * is less than or equal to the provided value. - */ - lte(dependentKey: string, value: number): ComputedProperty; - /** - * A computed property that performs a logical `and` on the - * original values for the provided dependent properties. - */ - and(...dependentKeys: string[]): ComputedProperty; - /** - * A computed property which performs a logical `or` on the - * original values for the provided dependent properties. - */ - or(...dependentKeys: string[]): ComputedProperty; - /** - * Creates a new property that is an alias for another property - * on an object. Calls to `get` or `set` this property behave as - * though they were called on the original property. - */ - alias(dependentKey: string): ComputedProperty; - /** - * Where `computed.alias` aliases `get` and `set`, and allows for bidirectional - * data flow, `computed.oneWay` only provides an aliased `get`. The `set` will - * not mutate the upstream property, rather causes the current property to - * become the value set. This causes the downstream property to permanently - * diverge from the upstream property. - */ - oneWay(dependentKey: string): ComputedProperty; - /** - * This is a more semantically meaningful alias of `computed.oneWay`, - * whose name is somewhat ambiguous as to which direction the data flows. - */ - reads(dependentKey: string): ComputedProperty; - /** - * Where `computed.oneWay` provides oneWay bindings, `computed.readOnly` provides - * a readOnly one way binding. Very often when using `computed.oneWay` one does - * not also want changes to propagate back up, as they will replace the value. - */ - readOnly(dependentKey: string): ComputedProperty; - /** - * Creates a new property that is an alias for another property - * on an object. Calls to `get` or `set` this property behave as - * though they were called on the original property, but also - * print a deprecation warning. - */ - deprecatingAlias( - dependentKey: string, - options: { id: string; until: string } - ): ComputedProperty; - /** - * @deprecated Missing deprecation options: https://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options - */ - deprecatingAlias( - dependentKey: string, - options?: { id?: string; until?: string } - ): ComputedProperty; - /** - * A computed property that returns the sum of the values - * in the dependent array. - */ - sum(dependentKey: string): ComputedProperty; - /** - * A computed property that calculates the maximum value in the - * dependent array. This will return `-Infinity` when the dependent - * array is empty. - */ - max(dependentKey: string): ComputedProperty; - /** - * A computed property that calculates the minimum value in the - * dependent array. This will return `Infinity` when the dependent - * array is empty. - */ - min(dependentKey: string): ComputedProperty; - /** - * Returns an array mapped via the callback - */ - map( - dependentKey: string, - callback: (value: any, index: number, array: any[]) => U - ): ComputedProperty; - /** - * Returns an array mapped to the specified key. - */ - mapBy(dependentKey: string, propertyKey: string): ComputedProperty; - /** - * Filters the array by the callback. - */ - filter( - dependentKey: string, - callback: (value: any, index: number, array: any[]) => boolean - ): ComputedProperty; - /** - * Filters the array by the property and value - */ - filterBy( - dependentKey: string, - propertyKey: string, - value?: any - ): ComputedProperty; - /** - * A computed property which returns a new array with all the unique - * elements from one or more dependent arrays. - */ - uniq(propertyKey: string): ComputedProperty; - /** - * A computed property which returns a new array with all the unique - * elements from an array, with uniqueness determined by specific key. - */ - uniqBy(dependentKey: string, propertyKey: string): ComputedProperty; - /** - * A computed property which returns a new array with all the unique - * elements from one or more dependent arrays. - */ - union(...propertyKeys: string[]): ComputedProperty; - /** - * A computed property which returns a new array with all the elements - * two or more dependent arrays have in common. - */ - intersect(...propertyKeys: string[]): ComputedProperty; - /** - * A computed property which returns a new array with all the - * properties from the first dependent array that are not in the second - * dependent array. - */ - setDiff(setAProperty: string, setBProperty: string): ComputedProperty; - /** - * A computed property that returns the array of values - * for the provided dependent properties. - */ - collect(...dependentKeys: string[]): ComputedProperty; - /** - * A computed property which returns a new array with all the - * properties from the first dependent array sorted based on a property - * or sort function. - */ - sort( - itemsKey: string, - sortDefinition: string | ((itemA: any, itemB: any) => number) - ): ComputedProperty; - }; + const computed: typeof EmberObjectNs.computed; const run: { /** * Runs the passed target and method inside of a RunLoop, ensuring any @@ -3001,26 +2097,9 @@ declare module 'ember' { test: boolean, options?: { id?: string; until?: string } ): any; - /** - * Define an assertion that will throw an exception if the condition is not met. - */ - function assert(desc: string, test?: boolean): void | never; - /** - * Display a debug notice. - */ - function debug(message: string): void; - /** - * NOTE: This is a low-level method used by other parts of the API. - * You almost never want to call this method directly. Instead you - * should use Ember.mixin() to define new properties. - */ - function defineProperty( - obj: object, - keyName: string, - desc?: PropertyDescriptor | ComputedProperty, - data?: any, - meta?: any - ): void; + const assert: typeof EmberDebugNs.assert; + const debug: typeof EmberDebugNs.debug; + const defineProperty: typeof EmberObjectNs.defineProperty; /** * Alias an old, deprecated method with its new counterpart. */ @@ -3036,222 +2115,43 @@ declare module 'ember' { message: string, func: Func ): Func; - /** - * Run a function meant for debugging. - */ - function runInDebug(func: () => any): void; - /** - * Display a warning with the provided message. - */ - function warn(message: string, test: boolean, options: { id: string }): void; - function warn(message: string, options: { id: string }): void; - /** - * @deprecated Missing deprecation options: https://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options - */ - function warn(message: string, test: boolean, options?: { id?: string }): void; - /** - * @deprecated Missing deprecation options: https://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options - */ - function warn(message: string, options?: { id?: string }): void; + + export const runInDebug: typeof EmberDebugNs.runInDebug; + export const warn: typeof EmberDebugNs.warn; /** * Global helper method to create a new binding. Just pass the root object * along with a `to` and `from` path to create and connect the binding. * @deprecated https://emberjs.com/deprecations/v2.x#toc_ember-binding */ function bind(obj: {}, to: string, from: string): Binding; - /** - * Returns the cached value for a property, if one exists. - * This can be useful for peeking at the value of a computed - * property that is generated lazily, without accidentally causing - * it to be created. - */ - function cacheFor( - obj: T, - key: K - ): UnwrapComputedPropertyGetter | undefined; - /** - * Add an event listener - */ - function addListener( - obj: Context, - key: keyof Context, - target: Target, - method: ObserverMethod, - once?: boolean - ): void; - function addListener( - obj: Context, - key: keyof Context, - method: ObserverMethod - ): void; - /** - * Remove an event listener - */ - function removeListener( - obj: Context, - key: keyof Context, - target: Target, - method: ObserverMethod - ): any; - function removeListener( - obj: Context, - key: keyof Context, - method: ObserverMethod - ): any; - /** - * Send an event. The execution of suspended listeners - * is skipped, and once listeners are removed. A listener without - * a target is executed on the passed object. If an array of actions - * is not passed, the actions stored on the passed object are invoked. - */ - function sendEvent(obj: any, eventName: string, params?: any[], actions?: any[]): boolean; - /** - * Define a property as a function that should be executed when - * a specified event or events are triggered. - */ - function on(eventNames: string, func: (...args: any[]) => void): (...args: any[]) => void; - /** - * To get multiple properties at once, call `Ember.getProperties` - * with an object followed by a list of strings or an array: - */ - function getProperties(obj: T, list: K[]): Pick, K>; // for dynamic K - function getProperties( - obj: T, - ...list: K[] - ): Pick, K>; - /** - * A value is blank if it is empty or a whitespace string. - */ - function isBlank(obj?: any): boolean; - /** - * Verifies that a value is `null` or an empty string, empty array, - * or empty function. - */ - function isEmpty(obj?: any): boolean; - /** - * Returns true if the passed value is null or undefined. This avoids errors - * from JSLint complaining about use of ==, which can be technically - * confusing. - */ - function isNone(obj?: any): obj is null | undefined; - /** - * A value is present if it not `isBlank`. - */ - function isPresent(obj?: any): boolean; - /** - * Merge the contents of two objects together into the first object. - * @deprecated Use Object.assign - */ - function merge(original: T, updates: U): Mix; - /** - * Makes a method available via an additional name. - */ - function aliasMethod(methodName: string): ComputedProperty; - /** - * Specify a method that observes property changes. - */ - function observer(key1: string, func: (target: any, key: string) => void): void; - function observer( - key1: string, - key2: string, - func: (target: any, key: string) => void - ): void; - function observer( - key1: string, - key2: string, - key3: string, - func: (target: any, key: string) => void - ): void; - function observer( - key1: string, - key2: string, - key3: string, - key4: string, - func: (target: any, key: string) => void - ): void; - function observer( - key1: string, - key2: string, - key3: string, - key4: string, - key5: string, - func: (target: any, key: string) => void - ): void; - /** - * Adds an observer on a property. - */ - function addObserver( - obj: Context, - key: keyof Context, - target: Target, - method: ObserverMethod - ): void; - function addObserver( - obj: Context, - key: keyof Context, - method: ObserverMethod - ): void; - /** - * Remove an observer you have previously registered on this object. Pass - * the same key, target, and method you passed to `addObserver()` and your - * target will no longer receive notifications. - */ - function removeObserver( - obj: Context, - key: keyof Context, - target: Target, - method: ObserverMethod - ): any; - function removeObserver( - obj: Context, - key: keyof Context, - method: ObserverMethod - ): any; - /** - * Gets the value of a property on an object. If the property is computed, - * the function will be invoked. If the property is not defined but the - * object implements the `unknownProperty` method then that will be invoked. - */ - function get(obj: T, key: K): UnwrapComputedPropertyGetter; - /** - * Retrieves the value of a property from an Object, or a default value in the - * case that the property returns `undefined`. - */ - function getWithDefault( - obj: T, - key: K, - defaultValue: UnwrapComputedPropertyGetter - ): UnwrapComputedPropertyGetter; - /** - * Sets the value of a property on an object, respecting computed properties - * and notifying observers and other listeners of the change. If the - * property is not defined but the object implements the `setUnknownProperty` - * method then that will be invoked as well. - */ - function set( - obj: T, - key: K, - value: UnwrapComputedPropertySetter - ): UnwrapComputedPropertyGetter; - /** - * Error-tolerant form of `Ember.set`. Will not blow up if any part of the - * chain is `undefined`, `null`, or destroyed. - */ - function trySet(root: object, path: string, value: any): any; - /** - * Set a list of properties on an object. These properties are set inside - * a single `beginPropertyChanges` and `endPropertyChanges` batch, so - * observers will be buffered. - */ - function setProperties( - obj: T, - hash: Pick, K> - ): Pick, K>; + const cacheFor: typeof EmberObjectInternalsNs.cacheFor; + export const addListener: typeof EmberObjectEventsNs.addListener; + export const removeListener: typeof EmberObjectEventsNs.removeListener; + export const sendEvent: typeof EmberObjectEventsNs.sendEvent; + export const on: typeof EmberObjectEventedNs.on; + + const isBlank: typeof EmberUtilsNs.isBlank; + const isEmpty: typeof EmberUtilsNs.isEmpty; + const isNone: typeof EmberUtilsNs.isNone; + const isPresent: typeof EmberUtilsNs.isPresent; + const merge: typeof EmberPolyfillsNs.merge; + + const aliasMethod: typeof EmberObjectNs.aliasMethod; + const observer: typeof EmberObjectNs.observer; + const addObserver: typeof EmberObjectObserversNs.addObserver; + const removeObserver: typeof EmberObjectObserversNs.removeObserver; + const get: typeof EmberObjectNs.get; + const getWithDefault: typeof EmberObjectNs.getWithDefault; + const getProperties: typeof EmberObjectNs.getProperties; + const setProperties: typeof EmberObjectNs.setProperties; + const set: typeof EmberObjectNs.set; + const trySet: typeof EmberObjectNs.trySet; + /** * Detects when a specific package of Ember (e.g. 'Ember.Application') * has fully loaded and is available for extension. */ - function onLoad(name: string, callback: Function): any; + function onLoad(name: string, callback: (...args: any[]) => any): any; /** * Called when an Ember.js package (e.g Ember.Application) has finished * loading. Triggers any callbacks registered for this event. @@ -3266,37 +2166,24 @@ declare module 'ember' { * will be `true`. */ function A(arr?: T[]): NativeArray; - /** - * Compares two javascript values and returns: - */ - function compare(v: any, w: any): number; + const compare: typeof EmberUtilsNs.compare; /** * Creates a shallow copy of the passed object. A deep copy of the object is * returned if the optional `deep` argument is `true`. */ - function copy(obj: any, deep?: boolean): any; - /** - * Compares two objects, returning true if they are equal. - */ - function isEqual(a: any, b: any): boolean; + const copy: typeof EmberObjectInternalsNs.copy; + const isEqual: typeof EmberUtilsNs.isEqual; /** * Returns true if the passed object is an array or Array-like. */ function isArray(obj: any): obj is ArrayLike; - /** - * Returns a consistent type for the passed object. - */ - function typeOf(value: T): KeysOfType; - function typeOf(): 'undefined'; - function typeOf(item: any): string; + const typeOf: typeof EmberUtilsNs.typeOf; + // TODO: replace with an es6 reexport when declare module 'ember' is removed /** * Copy properties from a source object to a target object. * @deprecated Use Object.assign */ - function assign(target: T, source: U): Mix; - function assign(target: T, source1: U, source2: V): Mix3; - function assign(target: T, source1: U, source2: V, source3: W): Mix4; - + const assign: typeof EmberPolyfillsNs.assign; /** * Polyfill for Object.create * @deprecated Use Object.create @@ -3307,36 +2194,9 @@ declare module 'ember' { * @deprecated Use Object.keys */ function keys(o: any): string[]; - /** - * Returns a unique id for the object. If the object does not yet have a guid, - * one will be assigned to it. You can call this on any object, - * `Ember.Object`-based or not, but be aware that it will add a `_guid` - * property. - */ - function guidFor(obj: any): string; - /** - * Convenience method to inspect an object. This method will attempt to - * convert the object into a useful string description. - */ - function inspect(obj: any): string; - /** - * Checks to see if the `methodName` exists on the `obj`, - * and if it does, invokes it with the arguments passed. - */ - function tryInvoke( - obj: T, - methodName: FNAME, - args: FunctionArgs): T[FNAME] extends ((...args: any[]) => any) - ? ReturnType - : undefined; - function tryInvoke(obj: T, methodName: FNAME): T[FNAME] extends (() => any) ? ReturnType : undefined; - function tryInvoke(obj: object, methodName: string, args?: any[]): undefined; - /** - * Forces the passed object to be part of an array. If the object is already - * an array, it will return the object. Otherwise, it will add the object to - * an array. If obj is `null` or `undefined`, it will return an empty array. - */ - function makeArray(obj?: T[] | T | null): T[]; + const guidFor: typeof EmberObjectInternalsNs.guidFor; + const inspect: typeof EmberDebugNs.inspect; + const tryInvoke: typeof EmberUtilsNs.tryInvoke; /** * Framework objects in an Ember application (components, services, routes, etc.) * are created via a factory and dependency injection system. Each of these @@ -3382,10 +2242,7 @@ declare module 'ember' { const subscribe: typeof Instrumentation.subscribe; const unsubscribe: typeof Instrumentation.unsubscribe; - /** - * Expands `pattern`, invoking `callback` for each expansion. - */ - function expandProperties(pattern: string, callback: (expanded: string) => void): void; + const expandProperties: typeof EmberObjectComputedNs.expandProperties; } type RouteModel = object | string | number; @@ -3396,44 +2253,44 @@ declare module 'ember' { export class RouterService extends Ember.Service { // /** - Name of the current route. - This property represent the logical name of the route, - which is comma separated. - For the following router: - ```app/router.js - Router.map(function() { - this.route('about'); - this.route('blog', function () { - this.route('post', { path: ':post_id' }); - }); - }); - ``` - It will return: - * `index` when you visit `/` - * `about` when you visit `/about` - * `blog.index` when you visit `/blog` - * `blog.post` when you visit `/blog/some-post-id` - */ + * Name of the current route. + * This property represent the logical name of the route, + * which is comma separated. + * For the following router: + * ```app/router.js + * Router.map(function() { + * this.route('about'); + * this.route('blog', function () { + * this.route('post', { path: ':post_id' }); + * }); + * }); + * ``` + * It will return: + * * `index` when you visit `/` + * * `about` when you visit `/about` + * * `blog.index` when you visit `/blog` + * * `blog.post` when you visit `/blog/some-post-id` + */ readonly currentRouteName: string; // /** - Current URL for the application. - This property represent the URL path for this route. - For the following router: - ```app/router.js - Router.map(function() { - this.route('about'); - this.route('blog', function () { - this.route('post', { path: ':post_id' }); - }); - }); - ``` - It will return: - * `/` when you visit `/` - * `/about` when you visit `/about` - * `/blog` when you visit `/blog` - * `/blog/some-post-id` when you visit `/blog/some-post-id` - */ + * Current URL for the application. + * This property represent the URL path for this route. + * For the following router: + * ```app/router.js + * Router.map(function() { + * this.route('about'); + * this.route('blog', function () { + * this.route('post', { path: ':post_id' }); + * }); + * }); + * ``` + * It will return: + * * `/` when you visit `/` + * * `/about` when you visit `/about` + * * `/blog` when you visit `/blog` + * * `/blog/some-post-id` when you visit `/blog/some-post-id` + */ readonly currentURL: string; // /** @@ -3551,7 +2408,6 @@ declare module '@ember/array' { export default EmberArray; export const A: typeof Ember.A; export const isArray: typeof Ember.isArray; - export const makeArray: typeof Ember.makeArray; } declare module '@ember/array/mutable' { @@ -3612,47 +2468,30 @@ declare module '@ember/controller' { // A type registry for Ember `Controller`s. Meant to be declaration-merged // so string lookups resolve to the correct type. + // tslint:disable-next-line:no-empty-interface export interface Registry {} } -declare module '@ember/debug' { - import Ember from 'ember'; - export const assert: typeof Ember.assert; - export const debug: typeof Ember.debug; - export const inspect: typeof Ember.inspect; - export const registerDeprecationHandler: typeof Ember.Debug.registerDeprecationHandler; - export const registerWarnHandler: typeof Ember.Debug.registerWarnHandler; - export const runInDebug: typeof Ember.runInDebug; - export const warn: typeof Ember.warn; -} +// declare module '@ember/debug' { +// import Ember from 'ember'; +// export const assert: typeof Ember.assert; +// export const debug: typeof Ember.debug; +// export const inspect: typeof Ember.inspect; +// export const registerDeprecationHandler: typeof Ember.Debug.registerDeprecationHandler; +// export const registerWarnHandler: typeof Ember.Debug.registerWarnHandler; +// export const runInDebug: typeof Ember.runInDebug; +// export const warn: typeof Ember.warn; +// } -declare module '@ember/debug/container-debug-adapter' { - import Ember from 'ember'; - export default class ContainerDebugAdapter extends Ember.ContainerDebugAdapter { } -} +// declare module '@ember/debug/container-debug-adapter' { +// import Ember from 'ember'; +// export default class ContainerDebugAdapter extends Ember.ContainerDebugAdapter { } +// } -declare module '@ember/debug/data-adapter' { - import Ember from 'ember'; - export default class DataAdapter extends Ember.DataAdapter { } -} - -declare module '@ember/engine' { - import Ember from 'ember'; - export default class Engine extends Ember.Engine { } - export const getEngineParent: typeof Ember.getEngineParent; -} - -declare module '@ember/engine/instance' { - import Ember from 'ember'; - export default class EngineInstance extends Ember.EngineInstance { } -} - -declare module '@ember/enumerable' { - import Ember from 'ember'; - type Enumerable = Ember.Enumerable; - const Enumerable: typeof Ember.Enumerable; - export default Enumerable; -} +// declare module '@ember/debug/data-adapter' { +// import Ember from 'ember'; +// export default class DataAdapter extends Ember.DataAdapter { } +// } declare module '@ember/error' { import Ember from 'ember'; @@ -3660,145 +2499,6 @@ declare module '@ember/error' { export default Error; } -declare module '@ember/instrumentation' { - import Ember from 'ember'; - export const instrument: typeof Ember.instrument; - export const reset: typeof Ember.reset; - export const subscribe: typeof Ember.subscribe; - export const unsubscribe: typeof Ember.unsubscribe; -} - -declare module '@ember/map' { - import Ember from 'ember'; - export default class EmberMap extends Ember.Map { } -} - -declare module '@ember/map/with-default' { - import Ember from 'ember'; - export default class MapWithDefault extends Ember.MapWithDefault { } -} - -declare module '@ember/object' { - import Ember from 'ember'; - export default class EmberObject extends Ember.Object { } - export const aliasMethod: typeof Ember.aliasMethod; - export const computed: typeof Ember.computed; - export const defineProperty: typeof Ember.defineProperty; - export const get: typeof Ember.get; - export const getProperties: typeof Ember.getProperties; - export const getWithDefault: typeof Ember.getWithDefault; - export const observer: typeof Ember.observer; - export const set: typeof Ember.set; - export const setProperties: typeof Ember.setProperties; - export const trySet: typeof Ember.trySet; -} - -declare module '@ember/object/computed' { - import Ember from 'ember'; - type ComputedProperty = Ember.ComputedProperty; - const ComputedProperty: typeof Ember.ComputedProperty; - export default ComputedProperty; - export const alias: typeof Ember.computed.alias; - export const and: typeof Ember.computed.and; - export const bool: typeof Ember.computed.bool; - export const collect: typeof Ember.computed.collect; - export const deprecatingAlias: typeof Ember.computed.deprecatingAlias; - export const empty: typeof Ember.computed.empty; - export const equal: typeof Ember.computed.equal; - export const expandProperties: typeof Ember.expandProperties; - export const filter: typeof Ember.computed.filter; - export const filterBy: typeof Ember.computed.filterBy; - export const gt: typeof Ember.computed.gt; - export const gte: typeof Ember.computed.gte; - export const intersect: typeof Ember.computed.intersect; - export const lt: typeof Ember.computed.lt; - export const lte: typeof Ember.computed.lte; - export const map: typeof Ember.computed.map; - export const mapBy: typeof Ember.computed.mapBy; - export const match: typeof Ember.computed.match; - export const max: typeof Ember.computed.max; - export const min: typeof Ember.computed.min; - export const none: typeof Ember.computed.none; - export const not: typeof Ember.computed.not; - export const notEmpty: typeof Ember.computed.notEmpty; - export const oneWay: typeof Ember.computed.oneWay; - export const or: typeof Ember.computed.or; - export const readOnly: typeof Ember.computed.readOnly; - export const reads: typeof Ember.computed.reads; - export const setDiff: typeof Ember.computed.setDiff; - export const sort: typeof Ember.computed.sort; - export const sum: typeof Ember.computed.sum; - export const union: typeof Ember.computed.union; - export const uniq: typeof Ember.computed.uniq; - export const uniqBy: typeof Ember.computed.uniqBy; -} - -declare module '@ember/object/core' { - import Ember from 'ember'; - export default class CoreObject extends Ember.CoreObject { } -} - -declare module '@ember/object/evented' { - import Ember from 'ember'; - type Evented = Ember.Evented; - const Evented: typeof Ember.Evented; - export default Evented; - export const on: typeof Ember.on; -} - -declare module '@ember/object/events' { - import Ember from 'ember'; - export const addListener: typeof Ember.addListener; - export const removeListener: typeof Ember.removeListener; - export const sendEvent: typeof Ember.sendEvent; -} - -declare module '@ember/object/internals' { - import Ember from 'ember'; - export const cacheFor: typeof Ember.cacheFor; - export const copy: typeof Ember.copy; - export const guidFor: typeof Ember.guidFor; -} - -declare module '@ember/object/mixin' { - import Ember from 'ember'; - export default class Mixin extends Ember.Mixin {} -} - -declare module '@ember/object/observable' { - import Ember from 'ember'; - type Observable = Ember.Observable; - const Observable: typeof Ember.Observable; - export default Observable; -} - -declare module '@ember/object/observers' { - import Ember from 'ember'; - export const addObserver: typeof Ember.addObserver; - export const removeObserver: typeof Ember.removeObserver; -} - -declare module '@ember/object/promise-proxy-mixin' { - import Ember from 'ember'; - type PromiseProxyMixin = Ember.PromiseProxyMixin; - const PromiseProxyMixin: typeof Ember.PromiseProxyMixin; - export default PromiseProxyMixin; -} - -declare module '@ember/object/proxy' { - import Ember from 'ember'; - export default class ObjectProxy extends Ember.ObjectProxy { } -} - -declare module '@ember/polyfills' { - import Ember from 'ember'; - export const assign: typeof Ember.assign; - export const create: typeof Ember.create; - export const hasPropertyAccessors: typeof Ember.platform.hasPropertyAccessors; - export const keys: typeof Ember.keys; - export const merge: typeof Ember.merge; -} - declare module '@ember/routing/auto-location' { import Ember from 'ember'; export default class AutoLocation extends Ember.AutoLocation { } @@ -3869,23 +2569,10 @@ declare module '@ember/service' { // A type registry for Ember `Service`s. Meant to be declaration-merged so // string lookups resolve to the correct type. + // tslint:disable-next-line:no-empty-interface interface Registry {} } -declare module '@ember/string' { - import Ember from 'ember'; - export const camelize: typeof Ember.String.camelize; - export const capitalize: typeof Ember.String.capitalize; - export const classify: typeof Ember.String.classify; - export const dasherize: typeof Ember.String.dasherize; - export const decamelize: typeof Ember.String.decamelize; - export const htmlSafe: typeof Ember.String.htmlSafe; - export const isHTMLSafe: typeof Ember.String.isHTMLSafe; - export const loc: typeof Ember.String.loc; - export const underscore: typeof Ember.String.underscore; - export const w: typeof Ember.String.w; -} - declare module '@ember/test' { import Ember from 'ember'; export const registerAsyncHelper: typeof Ember.Test.registerAsyncHelper; @@ -3900,18 +2587,6 @@ declare module '@ember/test/adapter' { export default class TestAdapter extends Ember.Test.Adapter { } } -declare module '@ember/utils' { - import Ember from 'ember'; - export const compare: typeof Ember.compare; - export const isBlank: typeof Ember.isBlank; - export const isEmpty: typeof Ember.isEmpty; - export const isEqual: typeof Ember.isEqual; - export const isNone: typeof Ember.isNone; - export const isPresent: typeof Ember.isPresent; - export const tryInvoke: typeof Ember.tryInvoke; - export const typeOf: typeof Ember.typeOf; -} - declare module 'htmlbars-inline-precompile' { interface TemplateFactory { __htmlbars_inline_precompile_template_factory: any; diff --git a/types/ember/test/application-instance.ts b/types/ember/test/application-instance.ts index 9ae22e5f26..4ee5cb2027 100644 --- a/types/ember/test/application-instance.ts +++ b/types/ember/test/application-instance.ts @@ -24,6 +24,6 @@ appInstance.lookup('route:basic'); appInstance.boot(); -(async function() { +(async () => { await appInstance.boot(); -}()); +})(); diff --git a/types/ember/test/application.ts b/types/ember/test/application.ts index fe4152c01a..414be66660 100755 --- a/types/ember/test/application.ts +++ b/types/ember/test/application.ts @@ -1,7 +1,7 @@ import Ember from 'ember'; import { assertType } from "./lib/assert"; -let BaseApp = Ember.Application.extend({ +const BaseApp = Ember.Application.extend({ modulePrefix: 'my-app' }); @@ -19,14 +19,14 @@ BaseApp.instanceInitializer({ } }); -let App1 = BaseApp.create({ +const App1 = BaseApp.create({ rootElement: '#app-one', customEvents: { paste: 'paste' } }); -let App2 = BaseApp.create({ +const App2 = BaseApp.create({ rootElement: '#app-two', customEvents: { mouseenter: null, @@ -34,8 +34,8 @@ let App2 = BaseApp.create({ } }); -let App3 = BaseApp.create(); +const App3 = BaseApp.create(); -let App3Instance1 = App3.buildInstance(); +const App3Instance1 = App3.buildInstance(); -let App3Instance2 = App3.buildInstance({ foo: 'bar' }); +const App3Instance2 = App3.buildInstance({ foo: 'bar' }); diff --git a/types/ember/test/array-proxy.ts b/types/ember/test/array-proxy.ts index dceea7b847..d3167323ff 100644 --- a/types/ember/test/array-proxy.ts +++ b/types/ember/test/array-proxy.ts @@ -21,6 +21,6 @@ class MyNewProxy extends Ember.ArrayProxy { isNew = true; } -let x = MyNewProxy.create({ content: Ember.A([1, 2, 3]) }) as MyNewProxy; +const x = MyNewProxy.create({ content: Ember.A([1, 2, 3]) }) as MyNewProxy; assertType(x.get('firstObject')); assertType(x.isNew); diff --git a/types/ember/test/array.ts b/types/ember/test/array.ts index 8416a4a9ec..a56e428387 100755 --- a/types/ember/test/array.ts +++ b/types/ember/test/array.ts @@ -42,7 +42,7 @@ const codes: number[] = letters.map((item, index, enumerable) => { return item.charCodeAt(0); }); -let value = '1,2,3'; -let filters = Ember.A(value.split(',')); +const value = '1,2,3'; +const filters = Ember.A(value.split(',')); filters.push('4'); filters.sort(); diff --git a/types/ember/test/component.ts b/types/ember/test/component.ts index 13ab88cbbd..bcc314300d 100755 --- a/types/ember/test/component.ts +++ b/types/ember/test/component.ts @@ -3,9 +3,6 @@ import Component from '@ember/component'; import Object, { computed } from '@ember/object'; import hbs from 'htmlbars-inline-precompile'; import { assertType } from "./lib/assert"; -import ComputedProperty from '@ember/object/computed'; -import { ExtractPropertyNamesOfType } from 'ember/-private-types/utils'; -import { UnwrapComputedPropertySetter } from 'ember/-private-types/object/computed'; Component.extend({ layout: hbs` diff --git a/types/ember/test/computed.ts b/types/ember/test/computed.ts index f93b07a0f5..347e2c61e2 100755 --- a/types/ember/test/computed.ts +++ b/types/ember/test/computed.ts @@ -23,7 +23,7 @@ const Person = Ember.Object.extend({ return this.get('fullName'); }, set(key, value) { - let [first, last] = value.split(' '); + const [first, last] = value.split(' '); this.set('firstName', first); this.set('lastName', last); return value; @@ -38,7 +38,7 @@ const Person = Ember.Object.extend({ fullNameSetOnly: Ember.computed('firstName', 'lastName', { set(key, value) { - let [first, last] = value.split(' '); + const [first, last] = value.split(' '); this.set('firstName', first); this.set('lastName', last); return value; diff --git a/types/ember/test/debug.ts b/types/ember/test/debug.ts index b3f4bb5f17..e71beba975 100644 --- a/types/ember/test/debug.ts +++ b/types/ember/test/debug.ts @@ -12,7 +12,7 @@ const { * @ember/debug tests */ runInDebug(); // $ExpectError -let x = runInDebug(() => console.log('Should not show up in prod')); // $ExpectType void +runInDebug(() => console.log('Should not show up in prod')); // $ExpectType void // Log a warning if we have more than 3 tomsters const tomsterCount = 2; diff --git a/types/ember/test/detect-instance.ts b/types/ember/test/detect-instance.ts index 1b25beb244..67b379a113 100755 --- a/types/ember/test/detect-instance.ts +++ b/types/ember/test/detect-instance.ts @@ -9,7 +9,7 @@ class ES6Class extends Ember.Object { bar: string; } -let testObject = null; +const testObject = null; if (ExtendClass.detectInstance(testObject)) { assertType(testObject.foo); diff --git a/types/ember/test/detect.ts b/types/ember/test/detect.ts index cd54880f9f..5b23c10a20 100755 --- a/types/ember/test/detect.ts +++ b/types/ember/test/detect.ts @@ -9,7 +9,7 @@ class ES6Class extends Ember.Object { bar: string; } -let TestClass = Ember.Object; +const TestClass = Ember.Object; if (ExtendClass.detect(TestClass)) { assertType(TestClass.create().foo); diff --git a/types/ember/test/ember-tests.ts b/types/ember/test/ember-tests.ts index c78cb282a2..01aaab7452 100755 --- a/types/ember/test/ember-tests.ts +++ b/types/ember/test/ember-tests.ts @@ -136,7 +136,7 @@ people2.isAny('isHappy', 'true'); people2.isAny('isHappy'); // Examples taken from http://emberjs.com/api/classes/Em.RSVP.Promise.html -const promise = new Ember.RSVP.Promise((resolve: Function, reject: Function) => { +const promise = new Ember.RSVP.Promise((resolve: (...args: any[]) => any, reject: (...args: any[]) => any) => { // on success resolve('ok!'); diff --git a/types/ember/test/engine-instance.ts b/types/ember/test/engine-instance.ts index c74914dea5..7a685d520d 100644 --- a/types/ember/test/engine-instance.ts +++ b/types/ember/test/engine-instance.ts @@ -1,4 +1,5 @@ -import EngineInstance from '@ember/engine/instance'; +import Ember from 'ember'; +const { EngineInstance } = Ember; const engineInstance = EngineInstance.create(); engineInstance.register('some:injection', class Foo {}); @@ -21,6 +22,6 @@ engineInstance.lookup('route:basic'); engineInstance.boot(); -(async function() { +(async () => { await engineInstance.boot(); -}()); +})(); diff --git a/types/ember/test/engine.ts b/types/ember/test/engine.ts index 508bd3be4d..49030ea511 100755 --- a/types/ember/test/engine.ts +++ b/types/ember/test/engine.ts @@ -1,7 +1,7 @@ import Ember from 'ember'; import { assertType } from "./lib/assert"; -let BaseEngine = Ember.Engine.extend({ +const BaseEngine = Ember.Engine.extend({ modulePrefix: 'my-engine' }); @@ -19,14 +19,14 @@ BaseEngine.instanceInitializer({ } }); -let Engine1 = BaseEngine.create({ +const Engine1 = BaseEngine.create({ rootElement: '#engine-one', customEvents: { paste: 'paste' } }); -let Engine2 = BaseEngine.create({ +const Engine2 = BaseEngine.create({ rootElement: '#engine-two', customEvents: { mouseenter: null, @@ -34,8 +34,8 @@ let Engine2 = BaseEngine.create({ } }); -let Engine3 = BaseEngine.create(); +const Engine3 = BaseEngine.create(); -let Engine3Instance1 = Engine3.buildInstance(); +const Engine3Instance1 = Engine3.buildInstance(); -let Engine3Instance2 = Engine3.buildInstance({ foo: 'bar' }); +const Engine3Instance2 = Engine3.buildInstance({ foo: 'bar' }); diff --git a/types/ember/test/event.ts b/types/ember/test/event.ts index c934072440..97e68c52c8 100755 --- a/types/ember/test/event.ts +++ b/types/ember/test/event.ts @@ -1,42 +1,42 @@ import Ember from 'ember'; function testOn() { - let Job = Ember.Object.extend({ - logCompleted: Ember.on('completed', function() { + const Job = Ember.Object.extend({ + logCompleted: Ember.on('completed', () => { console.log('Job completed!'); }) }); - let job = Job.create(); + const job = Job.create(); Ember.sendEvent(job, 'completed'); // Logs 'Job completed!' } function testEvented() { - let Person = Ember.Object.extend(Ember.Evented, { + const Person = Ember.Object.extend(Ember.Evented, { greet() { this.trigger('greet'); } }); - let person = Person.create(); + const person = Person.create(); - person.on('greet', function() { + person.on('greet', () => { console.log('Our person has greeted'); }); - person.on('greet', function() { + person.on('greet', () => { console.log('Our person has greeted'); - }).one('greet', function() { + }).one('greet', () => { console.log('Offer one-time special'); - }).off('event', {}, function() {}); + }).off('event', {}, () => {}); person.greet(); } function testObserver() { Ember.Object.extend({ - valueObserver: Ember.observer('value', function() { + valueObserver: Ember.observer('value', () => { // Executes whenever the "value" property changes }) }); diff --git a/types/ember/test/function-ext.ts b/types/ember/test/function-ext.ts index 37d831d49a..77fd35c5d2 100755 --- a/types/ember/test/function-ext.ts +++ b/types/ember/test/function-ext.ts @@ -1,12 +1,14 @@ import Ember from 'ember'; declare global { + // tslint:disable-next-line:no-empty-interface interface Function extends Ember.FunctionPrototypeExtensions {} } Ember.Object.extend({ foo: '', + // tslint:disable-next-line:only-arrow-functions arr: function() { return []; }.property(), @@ -15,7 +17,9 @@ Ember.Object.extend({ return this.get('foo'); }.property('foo', 'bar.@each.baz'), + // tslint:disable-next-line:only-arrow-functions observer: function() {}.observes('foo', 'bar'), + // tslint:disable-next-line:only-arrow-functions on: function() {}.on('foo', 'bar'), }); diff --git a/types/ember/test/helper.ts b/types/ember/test/helper.ts index 2aa79a5ba1..4743841e31 100755 --- a/types/ember/test/helper.ts +++ b/types/ember/test/helper.ts @@ -1,8 +1,8 @@ import Ember from 'ember'; -const FormatCurrencyHelper = Ember.Helper.helper(function(params, hash: { currency: string }) { - let cents = params[0]; - let currency = hash.currency; +const FormatCurrencyHelper = Ember.Helper.helper((params, hash: { currency: string }) => { + const cents = params[0]; + const currency = hash.currency; return `${currency}${cents * 0.01}`; }); diff --git a/types/ember/test/mixin.ts b/types/ember/test/mixin.ts index a89f490a11..46566a9df9 100755 --- a/types/ember/test/mixin.ts +++ b/types/ember/test/mixin.ts @@ -6,7 +6,7 @@ interface EditableMixin { isEditing: boolean; } -const EditableMixin: Ember.Mixin = Ember.Mixin.create({ +const EditableMixin = Ember.Mixin.create({ edit() { this.get('controller'); console.log('starting to edit'); diff --git a/types/ember/test/object.ts b/types/ember/test/object.ts index 7446d5e3ef..060bf8ca81 100755 --- a/types/ember/test/object.ts +++ b/types/ember/test/object.ts @@ -34,8 +34,8 @@ class Foo extends Ember.Object.extend({ }) { b = 5; baz() { - let y = this.b; // $ExpectType number - let z = this.a; // $ExpectType ComputedProperty + const y = this.b; // $ExpectType number + const z = this.a; // $ExpectType ComputedProperty this.b = 10; this.get('b').toFixed(4); // $ExpectType string this.set('a', 'abc').split(','); // $ExpectType string[] @@ -49,3 +49,20 @@ class Foo extends Ember.Object.extend({ }); } } + +export class Foo2 extends Ember.Object { + name!: string; + + changeName(name: string) { + const a: string = this.set('name', name); + const b: number = this.set('name', name); // $ExpectError + const x: string = Ember.set(this, 'name', name); + const y: number = Ember.set(this, 'name', name); // $ExpectError + this.setProperties({ + name + }); + Ember.setProperties(this, { + name + }); + } +} diff --git a/types/ember/test/private/computed-tests.ts b/types/ember/test/private/computed-tests.ts index a4c3e819f6..fc810e64ff 100644 --- a/types/ember/test/private/computed-tests.ts +++ b/types/ember/test/private/computed-tests.ts @@ -1,40 +1,43 @@ -import { Ember } from "ember"; -import { computed } from "@ember/object"; -import { UnwrapComputedPropertySetters, UnwrapComputedPropertyGetters, UnwrapComputedPropertySetter, UnwrapComputedPropertyGetter } from "ember/-private-types/object/computed"; -import ComputedProperty from "@ember/object/computed"; -import { assertType } from "../lib/assert"; +import Ember from 'ember'; +import { + UnwrapComputedPropertySetters, + UnwrapComputedPropertyGetters, + UnwrapComputedPropertySetter, + UnwrapComputedPropertyGetter +} from '@ember/object/-private/types'; +import { assertType } from '../lib/assert'; class Example1 extends Ember.Object.extend({ firstName: '', lastName: '', - allNames: computed('fullName', function() { + allNames: Ember.computed('fullName', function() { return [this.fullName]; }), - fullName: computed('firstName', 'lastName', function() { + fullName: Ember.computed('firstName', 'lastName', function() { return `${this.firstName} ${this.lastName}`; }) }) { - allNames!: ComputedProperty; - fullName!: ComputedProperty; + allNames!: Ember.ComputedProperty; + fullName!: Ember.ComputedProperty; } -let unwrappedGetters1: UnwrapComputedPropertyGetters = {} as any; +const unwrappedGetters1: UnwrapComputedPropertyGetters = {} as any; unwrappedGetters1.firstName; // $ExpectType string unwrappedGetters1.lastName; // $ExpectType string unwrappedGetters1.fullName; // $ExpectType string unwrappedGetters1.allNames; // $ExpectType string[] -let unwrappedSetters1: UnwrapComputedPropertySetters = {} as any; +const unwrappedSetters1: UnwrapComputedPropertySetters = {} as any; unwrappedSetters1.firstName; // $ExpectType string unwrappedSetters1.lastName; // $ExpectType string unwrappedSetters1.fullName; // $ExpectType string unwrappedSetters1.allNames; // $ExpectType string[] class Example2 extends Ember.Object.extend({ - allNames: computed('fullName', function() { + allNames: Ember.computed('fullName', function() { return [this.fullName + '']; - }) , - fullName: computed('firstName', 'lastName', function() { + }), + fullName: Ember.computed('firstName', 'lastName', function() { return `${this.firstName} ${this.lastName}`; }) }) { @@ -52,15 +55,15 @@ class Example2 extends Ember.Object.extend({ this.get('lastName').split(','); // $ExpectType string[] } } -let ex2 = new Example2(); +const ex2 = new Example2(); -let unwrappedGetters2: UnwrapComputedPropertyGetters = (ex2 as any) as UnwrapComputedPropertyGetters; +const unwrappedGetters2: UnwrapComputedPropertyGetters = (ex2 as any) as UnwrapComputedPropertyGetters; assertType(unwrappedGetters2.firstName); // $ExpectType string assertType(unwrappedGetters2.lastName); // $ExpectType string assertType(unwrappedGetters2.fullName); // $ExpectType string assertType(unwrappedGetters2.allNames); // $ExpectType string[] -let unwrappedSetters2: UnwrapComputedPropertySetters = null as any; +const unwrappedSetters2: UnwrapComputedPropertySetters = null as any; assertType(unwrappedSetters2.firstName); // $ExpectType string assertType(unwrappedSetters2.lastName); // $ExpectType string assertType(unwrappedSetters2.fullName); // $ExpectType string @@ -72,11 +75,35 @@ ex2.firstName; // $ExpectType string type UnwStringSet = UnwrapComputedPropertySetter; // $ExpectType string type UnwStringGet = UnwrapComputedPropertyGetter; // $ExpectType string -type UnwCpStringSet1 = UnwrapComputedPropertySetter>; // $ExpectType string -type UnwCpStringGet1 = UnwrapComputedPropertyGetter>; // $ExpectType string -type UnwCpStringSet2 = UnwrapComputedPropertySetter>; // $ExpectType string -type UnwCpStringGet2 = UnwrapComputedPropertyGetter>; // $ExpectType string -type UnwCpStringSet3 = UnwrapComputedPropertySetter>; // $ExpectType string -type UnwCpStringGet3 = UnwrapComputedPropertyGetter>; // $ExpectType number -type UnwCpStringSet4 = UnwrapComputedPropertySetter>; // $ExpectType number -type UnwCpStringGet4 = UnwrapComputedPropertyGetter>; // $ExpectType string +// $ExpectType string +type UnwCpStringSet1 = UnwrapComputedPropertySetter< + Ember.ComputedProperty +>; +// $ExpectType string +type UnwCpStringGet1 = UnwrapComputedPropertyGetter< + Ember.ComputedProperty +>; +// $ExpectType string +type UnwCpStringSet2 = UnwrapComputedPropertySetter< + Ember.ComputedProperty +>; +// $ExpectType string +type UnwCpStringGet2 = UnwrapComputedPropertyGetter< + Ember.ComputedProperty +>; +// $ExpectType string +type UnwCpStringSet3 = UnwrapComputedPropertySetter< + Ember.ComputedProperty +>; +// $ExpectType number +type UnwCpStringGet3 = UnwrapComputedPropertyGetter< + Ember.ComputedProperty +>; +// $ExpectType number +type UnwCpStringSet4 = UnwrapComputedPropertySetter< + Ember.ComputedProperty +>; +// $ExpectType string +type UnwCpStringGet4 = UnwrapComputedPropertyGetter< + Ember.ComputedProperty +>; diff --git a/types/ember/test/private/observable-tests.ts b/types/ember/test/private/observable-tests.ts index be3d4bd69f..cde17b04ab 100644 --- a/types/ember/test/private/observable-tests.ts +++ b/types/ember/test/private/observable-tests.ts @@ -1,9 +1,13 @@ -import Observable from "@ember/object/observable"; -import { UnwrapComputedPropertyGetter, UnwrapComputedPropertyGetters, UnwrapComputedPropertySetters, UnwrapComputedPropertySetter } from "ember/-private-types/object/computed"; // tslint-disable-next-line import { assertType } from "../lib/assert"; -import { Ember } from "ember"; -import { ExtractPropertyNamesOfType } from "ember/-private-types/utils"; +import Ember from "ember"; +import { + ExtractPropertyNamesOfType, + UnwrapComputedPropertyGetter, + UnwrapComputedPropertyGetters, + UnwrapComputedPropertySetters +} from '@ember/object/-private/types'; +import Observable from "@ember/object/observable"; class OtherThing { observerOfDemo(target: DemoObservable, key: 'foo') {} @@ -69,13 +73,13 @@ class DemoObservable implements Observable { notifyPropertyChange(keyName: string): this { throw new Error("Method not implemented."); } - addObserver(key: keyof this, target: Target, method: keyof Target | ((this: Target, sender: this, key: string, value: any, rev: number) => void)): void; - addObserver(key: K, method: keyof this | ((this: this, sender: this, key: K, value: this[K], rev: number) => void)): void; + addObserver(key: keyof this, target: Target, method: keyof Target | ((this: Target, sender: this, key: string, value: any, rev: number) => void)): any; + addObserver(key: K, method: keyof this | ((this: this, sender: this, key: K, value: this[K], rev: number) => void)): any; addObserver(key: any, target: any, method?: any) { throw new Error("Method not implemented."); } - removeObserver(key: keyof this, target: Target, method: keyof Target | ((this: Target, sender: this, key: string, value: any, rev: number) => void)): void; - removeObserver(key: keyof this, method: keyof this | ((this: this, sender: this, key: string, value: any, rev: number) => void)): void; + removeObserver(key: keyof this, target: Target, method: keyof Target | ((this: Target, sender: this, key: string, value: any, rev: number) => void)): any; + removeObserver(key: keyof this, method: keyof this | ((this: this, sender: this, key: string, value: any, rev: number) => void)): any; removeObserver(key: any, target: any, method?: any): void { throw new Error("Method not implemented."); } diff --git a/types/ember/test/reopen.ts b/types/ember/test/reopen.ts index ee5ee04edc..501309d74d 100755 --- a/types/ember/test/reopen.ts +++ b/types/ember/test/reopen.ts @@ -12,7 +12,7 @@ const Person = Ember.Object.extend({ assertType(Person.reopen()); assertType(Person.create().name); -assertType(Person.create().sayHello()); +Person.create().sayHello(); // $ExpectType void const Person2 = Person.reopenClass({ species: 'Homo sapiens', @@ -23,16 +23,16 @@ const Person2 = Person.reopenClass({ }); assertType(Person2.create().name); -assertType(Person2.create().sayHello()); +Person2.create().sayHello(); // $ExpectType void assertType(Person2.species); -let tom = Person2.create({ +const tom = Person2.create({ name: 'Tom Dale' }); -let badTom = Person2.create({ name: 99 }); // $ExpectError +const badTom = Person2.create({ name: 99 }); // $ExpectError -let yehuda = Person2.createPerson('Yehuda Katz'); +const yehuda = Person2.createPerson('Yehuda Katz'); tom.sayHello(); // "Hello. My name is Tom Dale" yehuda.sayHello(); // "Hello. My name is Yehuda Katz" @@ -53,7 +53,7 @@ person3.sayHello(); person3.sayGoodbye(); interface AutoResizeMixin { resizable: true; } -declare const AutoResizeMixin: Ember.Mixin; +const AutoResizeMixin = Ember.Mixin.create({ resizable: true }); const ResizableTextArea = Ember.TextArea.reopen(AutoResizeMixin, { scaling: 1.0 diff --git a/types/ember/test/route.ts b/types/ember/test/route.ts index 84e432dbd3..2256ee3561 100755 --- a/types/ember/test/route.ts +++ b/types/ember/test/route.ts @@ -3,7 +3,9 @@ import Object from '@ember/object'; import Array from '@ember/array'; import Ember from 'ember'; // currently needed for Transition -interface Post extends Ember.Object {} +interface Post extends Ember.Object { + title: string; +} interface Posts extends Array {} diff --git a/types/ember/test/run.ts b/types/ember/test/run.ts index 8d1c82e6e3..596ad5eb07 100755 --- a/types/ember/test/run.ts +++ b/types/ember/test/run.ts @@ -6,7 +6,7 @@ import { assertType } from "./lib/assert"; assertType(Ember.run.queues); function testRun() { - let r = run(function() { + const r = run(() => { // code to be executed within a RunLoop return 123; }); @@ -38,43 +38,43 @@ function testBind() { function testCancel() { const myContext = {}; - let runNext = run.next(myContext, function() { + const runNext = run.next(myContext, () => { // will not be executed }); run.cancel(runNext); - let runLater = run.later(myContext, function() { + const runLater = run.later(myContext, () => { // will not be executed }, 500); run.cancel(runLater); - let runScheduleOnce = run.scheduleOnce('afterRender', myContext, function() { + const runScheduleOnce = run.scheduleOnce('afterRender', myContext, () => { // will not be executed }); run.cancel(runScheduleOnce); - let runOnce = run.once(myContext, function() { + const runOnce = run.once(myContext, () => { // will not be executed }); run.cancel(runOnce); - let throttle = run.throttle(myContext, function() { + const throttle = run.throttle(myContext, () => { // will not be executed }, 1, false); run.cancel(throttle); - let debounce = run.debounce(myContext, function() { + const debounce = run.debounce(myContext, () => { // will not be executed }, 1); run.cancel(debounce); - let debounceImmediate = run.debounce(myContext, function() { + const debounceImmediate = run.debounce(myContext, () => { // will be executed since we passed in true (immediate) }, 100, true); @@ -86,7 +86,7 @@ function testDebounce() { function runIt() { } - let myContext = { name: 'debounce' }; + const myContext = { name: 'debounce' }; run.debounce(runIt, 150); run.debounce(myContext, runIt, 150); @@ -112,20 +112,20 @@ function testBegin() { } function testJoin() { - run.join(function() { + run.join(() => { // creates a new run-loop }); - run(function() { + run(() => { // creates a new run-loop - run.join(function() { + run.join(() => { // joins with the existing run-loop, and queues for invocation on // the existing run-loops action queue. }); }); - new RSVP.Promise(function(resolve) { - Ember.run.later(function() { + new RSVP.Promise((resolve) => { + Ember.run.later(() => { resolve({ msg: 'Hold Your Horses' }); }, 3000); }); @@ -133,14 +133,14 @@ function testJoin() { function testLater() { const myContext = {}; - run.later(myContext, function() { + run.later(myContext, () => { // code here will execute within a RunLoop in about 500ms with this == myContext }, 500); } function testNext() { const myContext = {}; - run.next(myContext, function() { + run.next(myContext, () => { // code to be executed in the next run loop, // which will be scheduled after the current one }); @@ -160,12 +160,12 @@ function testOnce() { function testSchedule() { Ember.Component.extend({ init() { - run.schedule('sync', this, function() { + run.schedule('sync', this, () => { // this will be executed in the first RunLoop queue, when bindings are synced console.log('scheduled on sync queue'); }); - run.schedule('actions', this, function() { + run.schedule('actions', this, () => { // this will be executed in the 'actions' queue, after bindings have synced. console.log('scheduled on actions queue'); }); @@ -183,12 +183,12 @@ function testScheduleOnce() { } const myContext = {}; - run(function() { + run(() => { run.scheduleOnce('afterRender', myContext, sayHi); run.scheduleOnce('afterRender', myContext, sayHi); // sayHi will only be executed once, in the afterRender queue of the RunLoop }); - run.scheduleOnce('actions', myContext, function() { + run.scheduleOnce('actions', myContext, () => { console.log('Closure'); }); } @@ -197,7 +197,7 @@ function testThrottle() { function runIt() { } - let myContext = { name: 'throttle' }; + const myContext = { name: 'throttle' }; run.throttle(runIt, 150); run.throttle(myContext, runIt, 150); diff --git a/types/ember/test/string-ext.ts b/types/ember/test/string-ext.ts index e4ac77d5b4..6d625fd670 100644 --- a/types/ember/test/string-ext.ts +++ b/types/ember/test/string-ext.ts @@ -1,6 +1,7 @@ import Ember from 'ember'; declare global { + // tslint:disable-next-line:no-empty-interface interface String extends Ember.StringPrototypeExtensions {} } diff --git a/types/ember/test/string.ts b/types/ember/test/string.ts index 0543bd60d0..4363b375f3 100644 --- a/types/ember/test/string.ts +++ b/types/ember/test/string.ts @@ -1,4 +1,5 @@ import Ember from 'ember'; +import { SafeString } from 'handlebars'; const { dasherize, camelize, capitalize, classify, decamelize, htmlSafe, loc, underscore, w } = Ember.String; @@ -34,3 +35,7 @@ loc(); // $ExpectError loc("_Hello World"); // $ExpectType string // TODO - fix this case upstream in @types/ember https://github.com/typed-ember/ember-cli-typescript/issues/281 loc("_Hello %@ %@", ["John", "Smith"]); // $ExpectType string + +const handlebarsSafeString: SafeString = Ember.String.htmlSafe('lorem ipsum...'); +Ember.String.htmlSafe('lorem ipsum...'); // $ExpectType SafeString +const regularString: string = Ember.String.htmlSafe('lorem ipsum...'); // $ExpectError diff --git a/types/ember/test/test.ts b/types/ember/test/test.ts index 6cd1b2b908..a0decd2699 100755 --- a/types/ember/test/test.ts +++ b/types/ember/test/test.ts @@ -1,6 +1,6 @@ import Ember from 'ember'; -let pending = 0; +const pending = 0; Ember.Test.registerWaiter(() => pending !== 0); declare const MyDb: { @@ -8,15 +8,15 @@ declare const MyDb: { }; Ember.Test.registerWaiter(MyDb, MyDb.hasPendingTransactions); -Ember.Test.promise(function(resolve) { +Ember.Test.promise((resolve) => { window.setTimeout(resolve, 500); }); -Ember.Test.registerHelper('boot', function(app) { +Ember.Test.registerHelper('boot', (app) => { Ember.run(app, app.advanceReadiness); }); -Ember.Test.registerAsyncHelper('boot', function(app) { +Ember.Test.registerAsyncHelper('boot', (app) => { Ember.run(app, app.advanceReadiness); }); diff --git a/types/ember/test/transition.ts b/types/ember/test/transition.ts index 3a64675c24..47d171e250 100755 --- a/types/ember/test/transition.ts +++ b/types/ember/test/transition.ts @@ -15,7 +15,7 @@ Ember.Controller.extend({ actions: { login() { // Log the user in, then reattempt previous transition if it exists. - let previousTransition = this.get('previousTransition'); + const previousTransition = this.get('previousTransition'); if (previousTransition) { this.set('previousTransition', null); previousTransition.retry(); diff --git a/types/ember/test/utils.ts b/types/ember/test/utils.ts index 77b52ca218..ef38424152 100755 --- a/types/ember/test/utils.ts +++ b/types/ember/test/utils.ts @@ -1,44 +1,43 @@ import Ember from 'ember'; -import * as utils from '@ember/utils'; import { assertType } from "./lib/assert"; function testTypeOf() { - utils.typeOf(); // $ExpectType "undefined" - const str: string = utils.typeOf({}); + Ember.typeOf(); // $ExpectType "undefined" + const str: string = Ember.typeOf({}); } function testIsNoneType() { const maybeUndefined: string | undefined = 'not actually undefined'; - if (utils.isNone(maybeUndefined)) { + if (Ember.isNone(maybeUndefined)) { return; } const anotherString = maybeUndefined + 'another string'; - utils.isNone(); // $ExpectType boolean + Ember.isNone(); // $ExpectType boolean } function testIsBlank() { - utils.isBlank(); // $ExpectType boolean - utils.isBlank(''); // $ExpectType boolean - utils.isBlank('', ''); // $ExpectError + Ember.isBlank(); // $ExpectType boolean + Ember.isBlank(''); // $ExpectType boolean + Ember.isBlank('', ''); // $ExpectError } function testIsEmpty() { - utils.isEmpty(); // $ExpectType boolean - utils.isEmpty(''); // $ExpectType boolean - utils.isEmpty('', ''); // $ExpectError + Ember.isEmpty(); // $ExpectType boolean + Ember.isEmpty(''); // $ExpectType boolean + Ember.isEmpty('', ''); // $ExpectError } function testIsPresent() { - utils.isPresent(); // $ExpectType boolean - utils.isPresent(''); // $ExpectType boolean - utils.isPresent('', ''); // $ExpectError + Ember.isPresent(); // $ExpectType boolean + Ember.isPresent(''); // $ExpectType boolean + Ember.isPresent('', ''); // $ExpectError } function testIsNone() { - utils.isNone(); // $ExpectType boolean - utils.isNone(''); // $ExpectType boolean - utils.isNone('', ''); // $ExpectError + Ember.isNone(); // $ExpectType boolean + Ember.isNone(''); // $ExpectType boolean + Ember.isNone('', ''); // $ExpectError } function testMerge() { @@ -54,7 +53,7 @@ function testAssign() { } function testOnError() { - Ember.onerror = function(error) { + Ember.onerror = (error) => { Ember.$.post('/report-error', { stack: error.stack, otherInformation: 'whatever app state you want to provide' @@ -62,20 +61,12 @@ function testOnError() { }; } -function testMakeArray() { - assertType(Ember.makeArray()); - assertType(Ember.makeArray(null)); - assertType(Ember.makeArray(undefined)); - assertType(Ember.makeArray('lindsay')); - assertType(Ember.makeArray([1, 2, 42])); -} - function testDeprecateFunc() { function newMethod(first: string, second: number): string { return ''; } - let oldMethod = Ember.deprecateFunc('Please use the new method', { id: 'deprecated.id', until: '6.0' }, newMethod); + const oldMethod = Ember.deprecateFunc('Please use the new method', { id: 'deprecated.id', until: '6.0' }, newMethod); assertType(newMethod('first', 123)); assertType(oldMethod('first', 123)); } @@ -128,9 +119,8 @@ function testTryInvoke() { Ember.tryInvoke(new Foo(), 'add', ['4', 3]); // $ExpectType undefined } -(function() { +(() => { /** typeOf */ - // TODO: more specific return type in @types/ember https://github.com/typed-ember/ember-cli-typescript/issues/259 Ember.typeOf(); // $ExpectType "undefined" Ember.typeOf(null); // $ExpectType "null" Ember.typeOf(undefined); // $ExpectType "undefined" @@ -154,7 +144,7 @@ function testTryInvoke() { Ember.typeOf((new Date()) as RegExp | Date); // "regexp" | "date" })(); -(function() { /* assign */ +(() => { /* assign */ Ember.assign({}, { a: 'b'}); Ember.assign({}, { a: 'b'}).a; // $ExpectType string Ember.assign({ a: 6 }, { a: 'b'}).a; // $ExpectType string @@ -165,12 +155,12 @@ function testTryInvoke() { Ember.assign({ a: 'hello' }, { b: 6 }, { a: true }).a; // $ExpectType boolean Ember.assign({ a: 'hello' }, '', { a: true }).a; // $ExpectError Ember.assign({ d: ['gobias industries'] }, { a: 'hello' }, { b: 6 }, { a: true }).d; // $ExpectType string[] -}()); +})(); -(function() { /* merge */ +(() => { /* merge */ Ember.merge({}, { a: 'b'}); Ember.merge({}, { a: 'b'}).a; // $ExpectType string Ember.merge({ a: 6 }, { a: 'b'}).a; // $ExpectType string Ember.merge({ a: 6 }, {}).a; // $ExpectType number Ember.merge({ b: 6 }, {}).a; // $ExpectError -}()); +})(); diff --git a/types/ember/tsconfig.json b/types/ember/tsconfig.json index a267c26dd5..a96a2a7c47 100755 --- a/types/ember/tsconfig.json +++ b/types/ember/tsconfig.json @@ -14,16 +14,24 @@ "typeRoots": [ "../" ], + "paths": { + "@ember/string": ["ember__string"], + "@ember/engine": ["ember__engine"], + "@ember/engine/*": ["ember__engine/*"], + "@ember/utils": ["ember__utils"], + "@ember/utils/*": ["ember__utils/*"], + "@ember/debug": ["ember__debug"], + "@ember/debug/*": ["ember__debug/*"], + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"], + "@ember/polyfills": ["ember__polyfills"] + }, "types": [], "noEmit": true, "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", - "-private-types/utils.d.ts", - "-private-types/mixin.d.ts", - "-private-types/object.d.ts", - "-private-types/object/computed.d.ts", "test/lib/assert.ts", "test/private/computed-tests.ts", "test/private/observable-tests.ts", diff --git a/types/ember/tslint.json b/types/ember/tslint.json index f77f8d2ed8..fa8da19714 100755 --- a/types/ember/tslint.json +++ b/types/ember/tslint.json @@ -1,28 +1,12 @@ { "extends": "dtslint/dt.json", "rules": { - // Heavy use of Function type in this older package. - "ban-types": false, - "jsdoc-format": false, - "no-misused-new": false, - // these are disabled because of rfc176 module exports "strict-export-declare-modifiers": false, - "no-single-declare-module": false, "no-declare-current-package": false, "no-self-import": false, - // We use interfaces in a number of places to express things (including - // mixins in particular, but also including extending a global - // interface) which TS currently can't express correctly. - "no-empty-interface": false, - - "no-duplicate-imports": false, "no-unnecessary-qualifier": false, - "prefer-const": false, - "no-void-expression": false, - "only-arrow-functions": false, - "no-submodule-imports": false, // false positives "unified-signatures": false diff --git a/types/ember__application/tsconfig.json b/types/ember__application/tsconfig.json index 833859d183..7be641d164 100644 --- a/types/ember__application/tsconfig.json +++ b/types/ember__application/tsconfig.json @@ -15,6 +15,10 @@ "../" ], "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"], + "@ember/engine": ["ember__engine"], + "@ember/engine/*": ["ember__engine/*"], "@ember/application": ["ember__application"], "@ember/application/*": ["ember__application/*"] }, diff --git a/types/ember__array/tsconfig.json b/types/ember__array/tsconfig.json index e6c8d509e0..425d873101 100644 --- a/types/ember__array/tsconfig.json +++ b/types/ember__array/tsconfig.json @@ -15,6 +15,8 @@ "../" ], "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"], "@ember/array": ["ember__array"], "@ember/array/*": ["ember__array/*"] }, diff --git a/types/ember__array/types/prototype-extensions.d.ts b/types/ember__array/types/prototype-extensions.d.ts index a6197166ef..42340b83c2 100644 --- a/types/ember__array/types/prototype-extensions.d.ts +++ b/types/ember__array/types/prototype-extensions.d.ts @@ -1,3 +1,4 @@ import Ember from 'ember'; +import Observable from '@ember/object/observable'; -export interface ArrayPrototypeExtensions extends Ember.MutableArray, Ember.Observable, Ember.Copyable {} +export interface ArrayPrototypeExtensions extends Ember.MutableArray, Observable, Ember.Copyable {} diff --git a/types/ember__component/tsconfig.json b/types/ember__component/tsconfig.json index 22181f6879..6e4de73f32 100644 --- a/types/ember__component/tsconfig.json +++ b/types/ember__component/tsconfig.json @@ -15,6 +15,8 @@ "../" ], "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"], "@ember/component": ["ember__component"], "@ember/component/*": ["ember__component/*"] }, diff --git a/types/ember__controller/tsconfig.json b/types/ember__controller/tsconfig.json index de081123ec..865ec007ac 100644 --- a/types/ember__controller/tsconfig.json +++ b/types/ember__controller/tsconfig.json @@ -15,6 +15,8 @@ "../" ], "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"], "@ember/controller": ["ember__controller"] }, "types": [], diff --git a/types/ember__debug/container-debug-adapter.d.ts b/types/ember__debug/container-debug-adapter.d.ts index 4bd24103a4..a689b19e15 100644 --- a/types/ember__debug/container-debug-adapter.d.ts +++ b/types/ember__debug/container-debug-adapter.d.ts @@ -1,2 +1,11 @@ -import Ember from 'ember'; -export default class ContainerDebugAdapter extends Ember.ContainerDebugAdapter { } +import Resolver from '@ember/engine/-private/resolver'; + +/** + * The ContainerDebugAdapter helps the container and resolver interface + * with tools that debug Ember such as the Ember Inspector for Chrome and Firefox. + */ +export default class ContainerDebugAdapter extends Object { + resolver: Resolver; + canCatalogEntriesByType(type: string): boolean; + catalogEntriesByType(type: string): string[]; +} diff --git a/types/ember__debug/data-adapter.d.ts b/types/ember__debug/data-adapter.d.ts index bc86573991..c3e44f9a39 100644 --- a/types/ember__debug/data-adapter.d.ts +++ b/types/ember__debug/data-adapter.d.ts @@ -1,3 +1,64 @@ -import Ember from 'ember'; +import ContainerDebugAdapter from "@ember/debug/container-debug-adapter"; +import EmberObject from "@ember/object"; -export default class DataAdapter extends Ember.DataAdapter {} +declare namespace DataAdapter { + interface Column { + name: string; + desc: string; + } + interface WrappedRecord { + columnValues: object; + object: object; + } + interface WrappedType { + type: { + name: string; + count: number; + columns: Column[]; + object: typeof Object; + }; + release: () => void; + } +} + +/** + * The `DataAdapter` helps a data persistence library + * interface with tools that debug Ember such as Chrome and Firefox. + */ +declare class DataAdapter extends EmberObject { + /** + * The container-debug-adapter which is used + * to list all models. + */ + containerDebugAdapter: ContainerDebugAdapter; + /** + * Ember Data > v1.0.0-beta.18 + * requires string model names to be passed + * around instead of the actual factories. + */ + acceptsModelName: boolean; + /** + * Specifies how records can be filtered. + * Records returned will need to have a `filterValues` + * property with a key for every name in the returned array. + */ + getFilters(): DataAdapter.Column[]; + /** + * Fetch the model types and observe them for changes. + */ + watchModelTypes( + typesAdded: (types: DataAdapter.WrappedType[]) => void, + typesUpdated: (types: DataAdapter.WrappedType[]) => void + ): () => void; + /** + * Fetch the records of a given type and observe them for changes. + */ + watchRecords( + modelName: string, + recordsAdded: (records: DataAdapter.WrappedRecord[]) => void, + recordsUpdated: (records: DataAdapter.WrappedRecord[]) => void, + recordsRemoved: (idx: number, count: number) => void + ): () => void; +} + +export default DataAdapter; diff --git a/types/ember__debug/index.d.ts b/types/ember__debug/index.d.ts index 8f1352baff..5bf709d044 100644 --- a/types/ember__debug/index.d.ts +++ b/types/ember__debug/index.d.ts @@ -4,11 +4,50 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 -import Ember from 'ember'; -export const assert: typeof Ember.assert; -export const debug: typeof Ember.debug; -export const inspect: typeof Ember.inspect; -export const registerDeprecationHandler: typeof Ember.Debug.registerDeprecationHandler; -export const registerWarnHandler: typeof Ember.Debug.registerWarnHandler; -export const runInDebug: typeof Ember.runInDebug; -export const warn: typeof Ember.warn; +/** + * Define an assertion that will throw an exception if the condition is not met. + */ +export function assert(desc: string, test?: boolean): void | never; +/** + * Display a debug notice. + */ +export function debug(message: string): void; + +/** + * Convenience method to inspect an object. This method will attempt to + * convert the object into a useful string description. + */ +export function inspect(obj: any): string; +/** + * Allows for runtime registration of handler functions that override the default deprecation behavior. + * Deprecations are invoked by calls to [Ember.deprecate](http://emberjs.com/api/classes/Ember.html#method_deprecate). + * The following example demonstrates its usage by registering a handler that throws an error if the + * message contains the word "should", otherwise defers to the default handler. + */ +export function registerDeprecationHandler(handler: (message: string, options: { id: string, until: string }, next: () => void) => void): void; +/** + * Allows for runtime registration of handler functions that override the default warning behavior. + * Warnings are invoked by calls made to [Ember.warn](http://emberjs.com/api/classes/Ember.html#method_warn). + * The following example demonstrates its usage by registering a handler that does nothing overriding Ember's + * default warning behavior. + */ +export function registerWarnHandler(handler: (message: string, options: { id: string }, next: () => void) => void): void; + +/** + * Run a function meant for debugging. + */ +export function runInDebug(func: () => any): void; + +/** + * Display a warning with the provided message. + */ +export function warn(message: string, test: boolean, options: { id: string }): void; +export function warn(message: string, options: { id: string }): void; +/** + * @deprecated Missing deprecation options: https://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options + */ +export function warn(message: string, test: boolean, options?: { id?: string }): void; +/** + * @deprecated Missing deprecation options: https://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options + */ +export function warn(message: string, options?: { id?: string }): void; diff --git a/types/ember__debug/tsconfig.json b/types/ember__debug/tsconfig.json index c7688e6861..b6795b034b 100644 --- a/types/ember__debug/tsconfig.json +++ b/types/ember__debug/tsconfig.json @@ -15,6 +15,10 @@ "../" ], "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"], + "@ember/engine": ["ember__engine"], + "@ember/engine/*": ["ember__engine/*"], "@ember/debug": ["ember__debug"], "@ember/debug/*": ["ember__debug/*"] }, diff --git a/types/ember__engine/-private/container-proxy-mixin.d.ts b/types/ember__engine/-private/container-proxy-mixin.d.ts new file mode 100644 index 0000000000..5113ffa317 --- /dev/null +++ b/types/ember__engine/-private/container-proxy-mixin.d.ts @@ -0,0 +1,22 @@ +import Mixin from "@ember/object/mixin"; + +/** + * Given a fullName return a factory manager. + */ +interface ContainerProxyMixin { + /** + * Returns an object that can be used to provide an owner to a + * manually created instance. + */ + ownerInjection(): {}; + /** + * Given a fullName return a corresponding instance. + */ + lookup(fullName: string, options?: {}): any; + /** + * Given a fullName return a corresponding factory. + */ + factoryFor(fullName: string, options?: {}): any; +} +declare const ContainerProxyMixin: Mixin; +export default ContainerProxyMixin; diff --git a/types/ember__engine/-private/registry-proxy-mixin.d.ts b/types/ember__engine/-private/registry-proxy-mixin.d.ts new file mode 100644 index 0000000000..3a04e086c4 --- /dev/null +++ b/types/ember__engine/-private/registry-proxy-mixin.d.ts @@ -0,0 +1,65 @@ +import Mixin from '@ember/object/mixin'; + +/** + * RegistryProxyMixin is used to provide public access to specific + * registry functionality. + */ +interface RegistryProxyMixin { + /** + * Given a fullName return the corresponding factory. + */ + resolveRegistration(fullName: string): any; + /** + * Registers a factory or value that can be used for dependency injection (with + * `inject`) or for service lookup. Each factory is registered with + * a full name including two parts: `type:name`. + */ + register( + fullName: string, + factory: any, + options?: { singleton?: boolean; instantiate?: boolean } + ): any; + /** + * Unregister a factory. + */ + unregister(fullName: string): any; + /** + * Check if a factory is registered. + */ + hasRegistration(fullName: string): boolean; + /** + * Register an option for a particular factory. + */ + registerOption(fullName: string, optionName: string, options: {}): any; + /** + * Return a specific registered option for a particular factory. + */ + registeredOption(fullName: string, optionName: string): {}; + /** + * Register options for a particular factory. + */ + registerOptions(fullName: string, options: {}): any; + /** + * Return registered options for a particular factory. + */ + registeredOptions(fullName: string): {}; + /** + * Allow registering options for all factories of a type. + */ + registerOptionsForType(type: string, options: {}): any; + /** + * Return the registered options for all factories of a type. + */ + registeredOptionsForType(type: string): {}; + /** + * Define a dependency injection onto a specific factory or all factories + * of a type. + */ + inject( + factoryNameOrType: string, + property: string, + injectionName: string + ): any; +} +declare const RegistryProxyMixin: Mixin; +export default RegistryProxyMixin; diff --git a/types/ember__engine/-private/resolver.d.ts b/types/ember__engine/-private/resolver.d.ts new file mode 100644 index 0000000000..f4d6ae9ea0 --- /dev/null +++ b/types/ember__engine/-private/resolver.d.ts @@ -0,0 +1,3 @@ +import EmberObject from "@ember/object"; + +export default class Resolver extends EmberObject {} diff --git a/types/ember__engine/-private/types/initializer.d.ts b/types/ember__engine/-private/types/initializer.d.ts new file mode 100644 index 0000000000..9663900272 --- /dev/null +++ b/types/ember__engine/-private/types/initializer.d.ts @@ -0,0 +1,6 @@ +export default interface Initializer { + name: string; + before?: string[]; + after?: string[]; + initialize(application: T): void; +} diff --git a/types/ember__engine/index.d.ts b/types/ember__engine/index.d.ts index 1d86a53f39..314201689d 100644 --- a/types/ember__engine/index.d.ts +++ b/types/ember__engine/index.d.ts @@ -4,7 +4,45 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 -import Ember from 'ember'; +// import Ember from 'ember'; +import EmberObject from '@ember/object'; +import RegistryProxyMixin from '@ember/engine/-private/registry-proxy-mixin'; +import Initializer from '@ember/engine/-private/types/initializer'; +import EngineInstance from '@ember/engine/instance'; +import Resolver from '@ember/engine/-private/resolver'; -export default class Engine extends Ember.Engine { } -export const getEngineParent: typeof Ember.getEngineParent; +/** + * The `Engine` class contains core functionality for both applications and + * engines. + */ +export default class Engine extends EmberObject.extend(RegistryProxyMixin) { + /** + * The goal of initializers should be to register dependencies and injections. + * This phase runs once. Because these initializers may load code, they are + * allowed to defer application readiness and advance it. If you need to access + * the container or store you should use an InstanceInitializer that will be run + * after all initializers and therefore after all code is loaded and the app is + * ready. + */ + static initializer(initializer: Initializer): void; + /** + * Instance initializers run after all initializers have run. Because + * instance initializers run after the app is fully set up. We have access + * to the store, container, and other items. However, these initializers run + * after code has loaded and are not allowed to defer readiness. + */ + static instanceInitializer(instanceInitializer: Initializer): void; + /** + * Set this to provide an alternate class to `Ember.DefaultResolver` + */ + resolver: Resolver; + /** + * Create an EngineInstance for this Engine. + */ + buildInstance(options?: object): EngineInstance; +} + +/** + * `getEngineParent` retrieves an engine instance's parent instance. + */ +export function getEngineParent(engine: EngineInstance): EngineInstance; diff --git a/types/ember__engine/instance.d.ts b/types/ember__engine/instance.d.ts index 36e7948231..8224793d40 100644 --- a/types/ember__engine/instance.d.ts +++ b/types/ember__engine/instance.d.ts @@ -1,3 +1,23 @@ -import Ember from 'ember'; +import ContainerProxyMixin from "@ember/engine/-private/container-proxy-mixin"; +import RegistryProxyMixin from "@ember/engine/-private/registry-proxy-mixin"; +import EmberObject from "@ember/object"; -export default class EngineInstance extends Ember.EngineInstance { } +/** + * The `EngineInstance` encapsulates all of the stateful aspects of a + * running `Engine`. + */ +export default class EngineInstance extends EmberObject.extend( + RegistryProxyMixin, + ContainerProxyMixin +) { + /** + * Unregister a factory. + */ + unregister(fullName: string): any; + + /** + * Initialize the `EngineInstance` and return a promise that resolves + * with the instance itself when the boot process is complete. + */ + boot(): Promise; +} diff --git a/types/ember__engine/tsconfig.json b/types/ember__engine/tsconfig.json index 0c76748ca3..5052d049ab 100644 --- a/types/ember__engine/tsconfig.json +++ b/types/ember__engine/tsconfig.json @@ -15,6 +15,8 @@ "../" ], "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"], "@ember/engine": ["ember__engine"], "@ember/engine/*": ["ember__engine/*"] }, @@ -25,6 +27,10 @@ "files": [ "index.d.ts", "instance.d.ts", + "-private/registry-proxy-mixin.d.ts", + "-private/resolver.d.ts", + "-private/container-proxy-mixin.d.ts", + "-private/types/initializer.d.ts", "test/engine.ts", "test/engine-instance.ts" ] diff --git a/types/ember__error/ember__error-tests.ts b/types/ember__error/ember__error-tests.ts new file mode 100644 index 0000000000..a5e605cfee --- /dev/null +++ b/types/ember__error/ember__error-tests.ts @@ -0,0 +1,3 @@ +import Error from '@ember/error'; + +new Error('Fuuuuuuuu'); // $ExpectType Error diff --git a/types/ember__error/index.d.ts b/types/ember__error/index.d.ts new file mode 100644 index 0000000000..40a660ae0e --- /dev/null +++ b/types/ember__error/index.d.ts @@ -0,0 +1,10 @@ +// Type definitions for @ember/error 3.0 +// Project: http://emberjs.com/ +// Definitions by: Mike North +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +import Ember from 'ember'; + +declare const Error: typeof Ember.Error; +export default Error; diff --git a/types/ember__error/tsconfig.json b/types/ember__error/tsconfig.json new file mode 100644 index 0000000000..92f8f7f0ca --- /dev/null +++ b/types/ember__error/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "paths": { + "@ember/error": ["ember__error"] + }, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "ember__error-tests.ts" + ] +} diff --git a/types/ember__error/tslint.json b/types/ember__error/tslint.json new file mode 100644 index 0000000000..495d29983d --- /dev/null +++ b/types/ember__error/tslint.json @@ -0,0 +1,5 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + } +} diff --git a/types/ember__object/-private/types.d.ts b/types/ember__object/-private/types.d.ts new file mode 100644 index 0000000000..cd8d713152 --- /dev/null +++ b/types/ember__object/-private/types.d.ts @@ -0,0 +1,118 @@ +import Mixin from '@ember/object/mixin'; +import ComputedProperty from '@ember/object/computed'; + +/** + * Map type `T` to a plain object hash with the identity mapping. + * + * Discards any additional object identity like the ability to `new()` up the class. + * The `new()` capability is added back later by merging `EmberClassConstructor` + * + * Implementation is carefully chosen for the reasons described in + * https://github.com/typed-ember/ember-typings/pull/29 + */ +export type Objectify = Readonly; + +export type ExtractPropertyNamesOfType = { + [K in keyof T]: T[K] extends S ? K : never +}[keyof T]; + +export type Fix = { [K in keyof T]: T[K] }; + +/** + * Used to infer the type of ember classes of type `T`. + * + * Generally you would use `EmberClass.create()` instead of `new EmberClass()`. + * + * The single-arg constructor is required by the typescript compiler. + * The multi-arg constructor is included for better ergonomics. + * + * Implementation is carefully chosen for the reasons described in + * https://github.com/typed-ember/ember-typings/pull/29 + */ +export type EmberClassConstructor = (new (properties?: object) => T) & + (new (...args: any[]) => T); + +/** + * Check that any arguments to `create()` match the type's properties. + * + * Accept any additional properties and add merge them into the instance. + */ +export type EmberInstanceArguments = Partial & { + [key: string]: any; +}; + +/** + * Accept any additional properties and add merge them into the prototype. + */ +export interface EmberClassArguments { + [key: string]: any; +} + +/** + * Ember.Object.extend(...) accepts any number of mixins or literals. + */ +export type MixinOrLiteral = Mixin | T; + +/** + * Deconstructs computed properties into the types which would be returned by `.get()`. + */ +export type UnwrapComputedPropertyGetter = T extends ComputedProperty< + infer U, + any +> + ? U + : T; +export type UnwrapComputedPropertyGetters = { + [P in keyof T]: UnwrapComputedPropertyGetter +}; + +export type UnwrapComputedPropertySetter = T extends ComputedProperty< + any, + infer V +> + ? V + : T; +export type UnwrapComputedPropertySetters = { + [P in keyof T]: UnwrapComputedPropertySetter +}; + +export type ComputedPropertyGetterFunction = (this: any, key: string) => T; +export type ComputedPropertySetterFunction = ( + this: any, + key: string, + newVal: T, + oldVal: T +) => T; + +export interface ComputedPropertyGetterObj { + get(this: any, key: string): T; +} + +export interface ComputedPropertySetterObj { + set(this: any, key: string, value: T): T; +} +export type ComputedPropertyObj = + | ComputedPropertyGetterObj + | ComputedPropertySetterObj + | (ComputedPropertyGetterObj & ComputedPropertySetterObj); + +export type ComputedPropertyGetter = + | ComputedPropertyGetterFunction + | ComputedPropertyGetterObj; +export type ComputedPropertySetter = + | ComputedPropertySetterFunction + | ComputedPropertySetterObj; + +export type ComputedPropertyCallback = + | ComputedPropertyGetterFunction + | ComputedPropertyObj; + +export type ObserverMethod = + | (keyof Target) + | (( + this: Target, + sender: Sender, + key: string, + value: any, + rev: number + ) => void); diff --git a/types/ember__object/computed.d.ts b/types/ember__object/computed.d.ts new file mode 100644 index 0000000000..e63ee86294 --- /dev/null +++ b/types/ember__object/computed.d.ts @@ -0,0 +1,77 @@ +import { computed } from '@ember/object'; + +/** + * A computed property transforms an objects function into a property. + * By default the function backing the computed property will only be called once and the result + * will be cached. You can specify various properties that your computed property is dependent on. + * This will force the cached result to be recomputed if the dependencies are modified. + */ +export default class ComputedProperty { + // Necessary in order to avoid losing type information + // see: https://github.com/typed-ember/ember-cli-typescript/issues/246#issuecomment-414812013 + private ______getType: Get; + private ______setType: Set; + /** + * Call on a computed property to set it into non-cached mode. When in this + * mode the computed property will not automatically cache the return value. + */ + volatile(): this; + /** + * Call on a computed property to set it into read-only mode. When in this + * mode the computed property will throw an error when set. + */ + readOnly(): this; + /** + * Sets the dependent keys on this computed property. Pass any number of + * arguments containing key paths that this computed property depends on. + */ + property(...path: string[]): this; + /** + * In some cases, you may want to annotate computed properties with additional + * metadata about how they function or what values they operate on. For example, + * computed property functions may close over variables that are then no longer + * available for introspection. + */ + meta(meta: {}): this; + meta(): {}; +} + +export const alias: typeof computed.alias; +export const and: typeof computed.and; +export const bool: typeof computed.bool; +export const collect: typeof computed.collect; +export const deprecatingAlias: typeof computed.deprecatingAlias; +export const empty: typeof computed.empty; +export const equal: typeof computed.equal; +/** + * Expands `pattern`, invoking `callback` for each expansion. + */ +export function expandProperties( + pattern: string, + callback: (expanded: string) => void +): void; +export const filter: typeof computed.filter; +export const filterBy: typeof computed.filterBy; +export const gt: typeof computed.gt; +export const gte: typeof computed.gte; +export const intersect: typeof computed.intersect; +export const lt: typeof computed.lt; +export const lte: typeof computed.lte; +export const map: typeof computed.map; +export const mapBy: typeof computed.mapBy; +export const match: typeof computed.match; +export const max: typeof computed.max; +export const min: typeof computed.min; +export const none: typeof computed.none; +export const not: typeof computed.not; +export const notEmpty: typeof computed.notEmpty; +export const oneWay: typeof computed.oneWay; +export const or: typeof computed.or; +export const readOnly: typeof computed.readOnly; +export const reads: typeof computed.reads; +export const setDiff: typeof computed.setDiff; +export const sort: typeof computed.sort; +export const sum: typeof computed.sum; +export const union: typeof computed.union; +export const uniq: typeof computed.uniq; +export const uniqBy: typeof computed.uniqBy; diff --git a/types/ember__object/core.d.ts b/types/ember__object/core.d.ts new file mode 100644 index 0000000000..8bafd342f5 --- /dev/null +++ b/types/ember__object/core.d.ts @@ -0,0 +1,265 @@ +import { + EmberInstanceArguments, + UnwrapComputedPropertySetters, + EmberClassConstructor, + Objectify, + MixinOrLiteral, + EmberClassArguments, + Fix +} from '@ember/object/-private/types'; + +export default class CoreObject { + /** + * As of Ember 3.1, CoreObject constructor takes initial object properties as an argument. + * See: https://github.com/emberjs/ember.js/commit/4709935854d4c29b0d2c054614d53fa2c55309b1 + */ + constructor(properties?: object); + + _super(...args: any[]): any; + + /** + * An overridable method called when objects are instantiated. By default, + * does nothing unless it is overridden during class definition. + */ + init(): void; + + /** + * Defines the properties that will be concatenated from the superclass (instead of overridden). + * @default null + */ + concatenatedProperties: any[]; + + /** + * Destroyed object property flag. If this property is true the observers and bindings were + * already removed by the effect of calling the destroy() method. + * @default false + */ + isDestroyed: boolean; + /** + * Destruction scheduled flag. The destroy() method has been called. The object stays intact + * until the end of the run loop at which point the isDestroyed flag is set. + * @default false + */ + isDestroying: boolean; + + /** + * Destroys an object by setting the `isDestroyed` flag and removing its + * metadata, which effectively destroys observers and bindings. + * If you try to set a property on a destroyed object, an exception will be + * raised. + * Note that destruction is scheduled for the end of the run loop and does not + * happen immediately. It will set an isDestroying flag immediately. + * @return receiver + */ + destroy(): CoreObject; + + /** + * Override to implement teardown. + */ + willDestroy(): void; + + /** + * Returns a string representation which attempts to provide more information than Javascript's toString + * typically does, in a generic way for all Ember objects (e.g., ""). + * @return string representation + */ + toString(): string; + + static create( + this: Class + ): InstanceType; + + static create< + Class extends typeof CoreObject, + T1 extends EmberInstanceArguments< + UnwrapComputedPropertySetters> + > + >( + this: Class, + arg1: T1 & ThisType> + ): InstanceType & T1; + + static create< + Class extends typeof CoreObject, + T1 extends EmberInstanceArguments< + UnwrapComputedPropertySetters> + >, + T2 extends EmberInstanceArguments< + UnwrapComputedPropertySetters> + > + >( + this: Class, + arg1: T1 & ThisType>, + arg2: T2 & ThisType> + ): InstanceType & T1 & T2; + + static create< + Class extends typeof CoreObject, + T1 extends EmberInstanceArguments< + UnwrapComputedPropertySetters> + >, + T2 extends EmberInstanceArguments< + UnwrapComputedPropertySetters> + >, + T3 extends EmberInstanceArguments< + UnwrapComputedPropertySetters> + > + >( + this: Class, + arg1: T1 & ThisType>, + arg2: T2 & ThisType>, + arg3: T3 & ThisType> + ): InstanceType & T1 & T2 & T3; + + static extend( + this: Statics & EmberClassConstructor + ): Objectify & EmberClassConstructor; + + static extend< + Statics, + Instance extends B1, + T1 extends EmberClassArguments, + B1 + >( + this: Statics & EmberClassConstructor, + arg1: MixinOrLiteral & ThisType> + ): Objectify & EmberClassConstructor; + + static extend< + Statics, + Instance extends B1 & B2, + T1 extends EmberClassArguments, + B1, + T2 extends EmberClassArguments, + B2 + >( + this: Statics & EmberClassConstructor, + arg1: MixinOrLiteral & ThisType>, + arg2: MixinOrLiteral & ThisType> + ): Objectify & EmberClassConstructor; + + static extend< + Statics, + Instance extends B1 & B2 & B3, + T1 extends EmberClassArguments, + B1, + T2 extends EmberClassArguments, + B2, + T3 extends EmberClassArguments, + B3 + >( + this: Statics & EmberClassConstructor, + arg1: MixinOrLiteral & ThisType>, + arg2: MixinOrLiteral & ThisType>, + arg3: MixinOrLiteral & ThisType> + ): Objectify & EmberClassConstructor; + + static extend< + Statics, + Instance extends B1 & B2 & B3 & B4, + T1 extends EmberClassArguments, + B1, + T2 extends EmberClassArguments, + B2, + T3 extends EmberClassArguments, + B3, + T4 extends EmberClassArguments, + B4 + >( + this: Statics & EmberClassConstructor, + arg1: MixinOrLiteral & ThisType>, + arg2: MixinOrLiteral & ThisType>, + arg3: MixinOrLiteral & ThisType>, + arg4: MixinOrLiteral & + ThisType> + ): Objectify & EmberClassConstructor; + + static reopen( + this: Statics & EmberClassConstructor + ): Objectify & EmberClassConstructor; + + static reopen< + Statics, + Instance extends B1, + T1 extends EmberClassArguments, + B1 + >( + this: Statics & EmberClassConstructor, + arg1: MixinOrLiteral & ThisType> + ): Objectify & EmberClassConstructor; + + static reopen< + Statics, + Instance extends B1 & B2, + T1 extends EmberClassArguments, + B1, + T2 extends EmberClassArguments, + B2 + >( + this: Statics & EmberClassConstructor, + arg1: MixinOrLiteral & ThisType>, + arg2: MixinOrLiteral & ThisType> + ): Objectify & EmberClassConstructor; + + static reopen< + Statics, + Instance extends B1 & B2 & B3, + T1 extends EmberClassArguments, + B1, + T2 extends EmberClassArguments, + B2, + T3 extends EmberClassArguments, + B3 + >( + this: Statics & EmberClassConstructor, + arg1: MixinOrLiteral & ThisType>, + arg2: MixinOrLiteral & ThisType>, + arg3: MixinOrLiteral & ThisType> + ): Objectify & EmberClassConstructor; + + static reopenClass(this: Statics): Statics; + + static reopenClass( + this: Statics, + arg1: T1 + ): Statics & T1; + + static reopenClass< + Statics, + T1 extends EmberClassArguments, + T2 extends EmberClassArguments + >(this: Statics, arg1: T1, arg2: T2): Statics & T1 & T2; + + static reopenClass< + Statics, + T1 extends EmberClassArguments, + T2 extends EmberClassArguments, + T3 extends EmberClassArguments + >(this: Statics, arg1: T1, arg2: T2, arg3: T3): Statics & T1 & T2 & T3; + + static detect( + this: Statics & EmberClassConstructor, + obj: any + ): obj is Objectify & EmberClassConstructor; + + static detectInstance( + this: EmberClassConstructor, + obj: any + ): obj is Instance; + + /** + * Iterate over each computed property for the class, passing its name and any + * associated metadata (see metaForProperty) to the callback. + */ + static eachComputedProperty( + callback: (...args: any[]) => any, + binding: {} + ): void; + /** + * Returns the original hash that was passed to meta(). + * @param key property name + */ + static metaForProperty(key: string): {}; + static isClass: boolean; + static isMethod: boolean; +} diff --git a/types/ember__object/evented.d.ts b/types/ember__object/evented.d.ts new file mode 100644 index 0000000000..0ac341fbc9 --- /dev/null +++ b/types/ember__object/evented.d.ts @@ -0,0 +1,56 @@ +import Mixin from '@ember/object/mixin'; + +/** + * This mixin allows for Ember objects to subscribe to and emit events. + */ +interface Evented { + /** + * Subscribes to a named event with given function. + */ + on( + name: string, + target: Target, + method: (this: Target, ...args: any[]) => void + ): this; + on(name: string, method: (...args: any[]) => void): this; + /** + * Subscribes a function to a named event and then cancels the subscription + * after the first time the event is triggered. It is good to use ``one`` when + * you only care about the first time an event has taken place. + */ + one( + name: string, + target: Target, + method: (this: Target, ...args: any[]) => void + ): this; + one(name: string, method: (...args: any[]) => void): this; + /** + * Triggers a named event for the object. Any additional arguments + * will be passed as parameters to the functions that are subscribed to the + * event. + */ + trigger(name: string, ...args: any[]): any; + /** + * Cancels subscription for given name, target, and method. + */ + off( + name: string, + target: Target, + method: (this: Target, ...args: any[]) => void + ): this; + off(name: string, method: (...args: any[]) => void): this; + /** + * Checks to see if object has any subscriptions for named event. + */ + has(name: string): boolean; +} +declare const Evented: Mixin; +export default Evented; +/** + * Define a property as a function that should be executed when + * a specified event or events are triggered. + */ +export function on( + eventNames: string, + func: (...args: any[]) => void +): (...args: any[]) => void; diff --git a/types/ember__object/events.d.ts b/types/ember__object/events.d.ts new file mode 100644 index 0000000000..a08bed2379 --- /dev/null +++ b/types/ember__object/events.d.ts @@ -0,0 +1,43 @@ +import { ObserverMethod } from '@ember/object/-private/types'; + +/** + * Add an event listener + */ +export function addListener( + obj: Context, + key: keyof Context, + target: Target, + method: ObserverMethod, + once?: boolean +): void; +export function addListener( + obj: Context, + key: keyof Context, + method: ObserverMethod +): void; +/** + * Remove an event listener + */ +export function removeListener( + obj: Context, + key: keyof Context, + target: Target, + method: ObserverMethod +): any; +export function removeListener( + obj: Context, + key: keyof Context, + method: ObserverMethod +): any; +/** + * Send an event. The execution of suspended listeners + * is skipped, and once listeners are removed. A listener without + * a target is executed on the passed object. If an array of actions + * is not passed, the actions stored on the passed object are invoked. + */ +export function sendEvent( + obj: any, + eventName: string, + params?: any[], + actions?: any[] +): boolean; diff --git a/types/ember__object/index.d.ts b/types/ember__object/index.d.ts new file mode 100644 index 0000000000..416c9a6135 --- /dev/null +++ b/types/ember__object/index.d.ts @@ -0,0 +1,393 @@ +// Type definitions for @ember/object 3.0 +// Project: http://emberjs.com/ +// Definitions by: Mike North +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +import CoreObject from '@ember/object/core'; +import Observable from '@ember/object/observable'; +import { + ComputedPropertyCallback, + UnwrapComputedPropertyGetter, + UnwrapComputedPropertySetter, + UnwrapComputedPropertyGetters, + UnwrapComputedPropertySetters +} from '@ember/object/-private/types'; +import ComputedProperty from '@ember/object/computed'; + +/** + * `Ember.Object` is the main base class for all Ember objects. It is a subclass + * of `Ember.CoreObject` with the `Ember.Observable` mixin applied. For details, + * see the documentation for each of these. + */ +export default class EmberObject extends CoreObject.extend(Observable) {} + +export const computed: { + (cb: ComputedPropertyCallback): ComputedProperty; + (k1: string, cb: ComputedPropertyCallback): ComputedProperty; + ( + k1: string, + k2: string, + cb: ComputedPropertyCallback + ): ComputedProperty; + ( + k1: string, + k2: string, + k3: string, + cb: ComputedPropertyCallback + ): ComputedProperty; + ( + k1: string, + k2: string, + k3: string, + k4: string, + cb: ComputedPropertyCallback + ): ComputedProperty; + ( + k1: string, + k2: string, + k3: string, + k4: string, + k5: string, + cb: ComputedPropertyCallback + ): ComputedProperty; + ( + k1: string, + k2: string, + k3: string, + k4: string, + k5: string, + k6: string, + cb: ComputedPropertyCallback + ): ComputedProperty; + ( + k1: string, + k2: string, + k3: string, + k4: string, + k5: string, + k6: string, + k7: string, + ...rest: any[] + ): ComputedProperty; + + /** + * A computed property that returns true if the value of the dependent + * property is null, an empty string, empty array, or empty function. + */ + empty(dependentKey: string): ComputedProperty; + /** + * A computed property that returns true if the value of the dependent + * property is NOT null, an empty string, empty array, or empty function. + */ + notEmpty(dependentKey: string): ComputedProperty; + /** + * A computed property that returns true if the value of the dependent + * property is null or undefined. This avoids errors from JSLint complaining + * about use of ==, which can be technically confusing. + */ + none(dependentKey: string): ComputedProperty; + /** + * A computed property that returns the inverse boolean value + * of the original value for the dependent property. + */ + not(dependentKey: string): ComputedProperty; + /** + * A computed property that converts the provided dependent property + * into a boolean value. + */ + bool(dependentKey: string): ComputedProperty; + /** + * A computed property which matches the original value for the + * dependent property against a given RegExp, returning `true` + * if the value matches the RegExp and `false` if it does not. + */ + match(dependentKey: string, regexp: RegExp): ComputedProperty; + /** + * A computed property that returns true if the provided dependent property + * is equal to the given value. + */ + equal(dependentKey: string, value: any): ComputedProperty; + /** + * A computed property that returns true if the provided dependent property + * is greater than the provided value. + */ + gt(dependentKey: string, value: number): ComputedProperty; + /** + * A computed property that returns true if the provided dependent property + * is greater than or equal to the provided value. + */ + gte(dependentKey: string, value: number): ComputedProperty; + /** + * A computed property that returns true if the provided dependent property + * is less than the provided value. + */ + lt(dependentKey: string, value: number): ComputedProperty; + /** + * A computed property that returns true if the provided dependent property + * is less than or equal to the provided value. + */ + lte(dependentKey: string, value: number): ComputedProperty; + /** + * A computed property that performs a logical `and` on the + * original values for the provided dependent properties. + */ + and(...dependentKeys: string[]): ComputedProperty; + /** + * A computed property which performs a logical `or` on the + * original values for the provided dependent properties. + */ + or(...dependentKeys: string[]): ComputedProperty; + /** + * Creates a new property that is an alias for another property + * on an object. Calls to `get` or `set` this property behave as + * though they were called on the original property. + */ + alias(dependentKey: string): ComputedProperty; + /** + * Where `computed.alias` aliases `get` and `set`, and allows for bidirectional + * data flow, `computed.oneWay` only provides an aliased `get`. The `set` will + * not mutate the upstream property, rather causes the current property to + * become the value set. This causes the downstream property to permanently + * diverge from the upstream property. + */ + oneWay(dependentKey: string): ComputedProperty; + /** + * This is a more semantically meaningful alias of `computed.oneWay`, + * whose name is somewhat ambiguous as to which direction the data flows. + */ + reads(dependentKey: string): ComputedProperty; + /** + * Where `computed.oneWay` provides oneWay bindings, `computed.readOnly` provides + * a readOnly one way binding. Very often when using `computed.oneWay` one does + * not also want changes to propagate back up, as they will replace the value. + */ + readOnly(dependentKey: string): ComputedProperty; + /** + * Creates a new property that is an alias for another property + * on an object. Calls to `get` or `set` this property behave as + * though they were called on the original property, but also + * print a deprecation warning. + */ + deprecatingAlias( + dependentKey: string, + options: { id: string; until: string } + ): ComputedProperty; + /** + * @deprecated Missing deprecation options: https://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options + */ + deprecatingAlias( + dependentKey: string, + options?: { id?: string; until?: string } + ): ComputedProperty; + /** + * A computed property that returns the sum of the values + * in the dependent array. + */ + sum(dependentKey: string): ComputedProperty; + /** + * A computed property that calculates the maximum value in the + * dependent array. This will return `-Infinity` when the dependent + * array is empty. + */ + max(dependentKey: string): ComputedProperty; + /** + * A computed property that calculates the minimum value in the + * dependent array. This will return `Infinity` when the dependent + * array is empty. + */ + min(dependentKey: string): ComputedProperty; + /** + * Returns an array mapped via the callback + */ + map( + dependentKey: string, + callback: (value: any, index: number, array: any[]) => U + ): ComputedProperty; + /** + * Returns an array mapped to the specified key. + */ + mapBy(dependentKey: string, propertyKey: string): ComputedProperty; + /** + * Filters the array by the callback. + */ + filter( + dependentKey: string, + callback: (value: any, index: number, array: any[]) => boolean + ): ComputedProperty; + /** + * Filters the array by the property and value + */ + filterBy( + dependentKey: string, + propertyKey: string, + value?: any + ): ComputedProperty; + /** + * A computed property which returns a new array with all the unique + * elements from one or more dependent arrays. + */ + uniq(propertyKey: string): ComputedProperty; + /** + * A computed property which returns a new array with all the unique + * elements from an array, with uniqueness determined by specific key. + */ + uniqBy(dependentKey: string, propertyKey: string): ComputedProperty; + /** + * A computed property which returns a new array with all the unique + * elements from one or more dependent arrays. + */ + union(...propertyKeys: string[]): ComputedProperty; + /** + * A computed property which returns a new array with all the elements + * two or more dependent arrays have in common. + */ + intersect(...propertyKeys: string[]): ComputedProperty; + /** + * A computed property which returns a new array with all the + * properties from the first dependent array that are not in the second + * dependent array. + */ + setDiff( + setAProperty: string, + setBProperty: string + ): ComputedProperty; + /** + * A computed property that returns the array of values + * for the provided dependent properties. + */ + collect(...dependentKeys: string[]): ComputedProperty; + /** + * A computed property which returns a new array with all the + * properties from the first dependent array sorted based on a property + * or sort function. + */ + sort( + itemsKey: string, + sortDefinition: string | ((itemA: any, itemB: any) => number) + ): ComputedProperty; +}; +/** + * Specify a method that observes property changes. + */ +export function observer void>( + key1: string, + func: Fn +): Fn; +export function observer void>( + key1: string, + key2: string, + func: Fn +): Fn; +export function observer void>( + key1: string, + key2: string, + key3: string, + func: Fn +): Fn; +export function observer void>( + key1: string, + key2: string, + key3: string, + key4: string, + func: Fn +): Fn; +export function observer void>( + key1: string, + key2: string, + key3: string, + key4: string, + key5: string, + func: Fn +): Fn; + +/** + * Makes a method available via an additional name. + */ +export function aliasMethod(methodName: string): ComputedProperty; + +/** + * Gets the value of a property on an object. If the property is computed, + * the function will be invoked. If the property is not defined but the + * object implements the `unknownProperty` method then that will be invoked. + */ +export function get( + obj: T, + key: K +): UnwrapComputedPropertyGetter; +/** + * Retrieves the value of a property from an Object, or a default value in the + * case that the property returns `undefined`. + */ +export function getWithDefault( + obj: T, + key: K, + defaultValue: UnwrapComputedPropertyGetter +): UnwrapComputedPropertyGetter; + +/** + * Sets the value of a property on an object, respecting computed properties + * and notifying observers and other listeners of the change. If the + * property is not defined but the object implements the `setUnknownProperty` + * method then that will be invoked as well. + */ +export function set( + obj: T, + key: K, + value: UnwrapComputedPropertySetter +): UnwrapComputedPropertyGetter; +export function set(obj: T, key: K, value: T[K]): T[K]; + +/** + * To get multiple properties at once, call `Ember.getProperties` + * with an object followed by a list of strings or an array: + */ +export function getProperties( + obj: T, + list: K[] +): Pick, K>; // for dynamic K +export function getProperties( + obj: T, + ...list: K[] +): Pick, K>; + +/** + * Set a list of properties on an object. These properties are set inside + * a single `beginPropertyChanges` and `endPropertyChanges` batch, so + * observers will be buffered. + */ +export function setProperties( + obj: T, + hash: Pick, K> +): Pick, K>; +// TODO: in TS2.9 - Pick | T, K> +export function setProperties( + obj: T, + hash: Pick +): Pick; + +/** + * Error-tolerant form of `Ember.set`. Will not blow up if any part of the + * chain is `undefined`, `null`, or destroyed. + */ +export function trySet(root: object, path: string, value: any): any; + +/** + * NOTE: This is a low-level method used by other parts of the API. + * You almost never want to call this method directly. Instead you + * should use mixin() to define new properties. + */ +export function defineProperty( + obj: object, + keyName: string, + desc?: PropertyDescriptor | ComputedProperty, + data?: any, + meta?: any +): void; + +declare module '@ember/utils/-private/types' { + interface TypeLookup { + class: typeof EmberObject; + instance: EmberObject; + } +} diff --git a/types/ember__object/internals.d.ts b/types/ember__object/internals.d.ts new file mode 100644 index 0000000000..5629b7e3bc --- /dev/null +++ b/types/ember__object/internals.d.ts @@ -0,0 +1,24 @@ +import { UnwrapComputedPropertyGetter } from '@ember/object/-private/types'; + +/** + * Returns the cached value for a property, if one exists. + * This can be useful for peeking at the value of a computed + * property that is generated lazily, without accidentally causing + * it to be created. + */ +export function cacheFor( + obj: T, + key: K +): UnwrapComputedPropertyGetter | undefined; +/** + * Creates a shallow copy of the passed object. A deep copy of the object is + * returned if the optional `deep` argument is `true`. + */ +export function copy(obj: any, deep?: boolean): any; +/** + * Returns a unique id for the object. If the object does not yet have a guid, + * one will be assigned to it. You can call this on any object, + * `Ember.Object`-based or not, but be aware that it will add a `_guid` + * property. + */ +export function guidFor(obj: any): string; diff --git a/types/ember__object/mixin.d.ts b/types/ember__object/mixin.d.ts new file mode 100644 index 0000000000..26cd20c1e1 --- /dev/null +++ b/types/ember__object/mixin.d.ts @@ -0,0 +1,36 @@ +import EmberObject from "@ember/object"; +import { Fix, MixinOrLiteral } from "@ember/object/-private/types"; + +/** + * The `Ember.Mixin` class allows you to create mixins, whose properties can be + * added to other classes. + */ +export default class Mixin { + /** + * Mixin needs to have *something* on its prototype, otherwise it's treated like an empty interface. + * It cannot be private, sadly. + */ + __ember_mixin__: never; + + static create( + args?: MixinOrLiteral & ThisType> + ): Mixin; + + static create( + arg1: MixinOrLiteral & ThisType>, + arg2: MixinOrLiteral & ThisType> + ): Mixin; + + static create( + arg1: MixinOrLiteral & ThisType>, + arg2: MixinOrLiteral & ThisType>, + arg3: MixinOrLiteral & ThisType> + ): Mixin; + + static create( + arg1: MixinOrLiteral & ThisType>, + arg2: MixinOrLiteral & ThisType>, + arg3: MixinOrLiteral & ThisType>, + arg4: MixinOrLiteral & ThisType> + ): Mixin; +} diff --git a/types/ember__object/observable.d.ts b/types/ember__object/observable.d.ts new file mode 100644 index 0000000000..e6c3c59534 --- /dev/null +++ b/types/ember__object/observable.d.ts @@ -0,0 +1,97 @@ +import { UnwrapComputedPropertyGetter, UnwrapComputedPropertyGetters, UnwrapComputedPropertySetters, ObserverMethod } from "@ember/object/-private/types"; +import Mixin from "@ember/object/mixin"; +import CoreObject from "@ember/object/core"; + +/** + * This mixin provides properties and property observing functionality, core features of the Ember object model. + */ +interface Observable { + /** + * Retrieves the value of a property from the object. + */ + get(key: K): UnwrapComputedPropertyGetter; + /** + * To get the values of multiple properties at once, call `getProperties` + * with a list of strings or an array: + */ + getProperties( + list: K[] + ): Pick, K>; + getProperties( + ...list: K[] + ): Pick, K>; + /** + * Sets the provided key or path to the value. + */ + set(key: K, value: this[K]): this[K]; + set(key: keyof this, value: T): T; + /** + * Sets a list of properties at once. These properties are set inside + * a single `beginPropertyChanges` and `endPropertyChanges` batch, so + * observers will be buffered. + */ + setProperties( + hash: Pick + ): Pick, K>; + setProperties( + // tslint:disable-next-line:unified-signatures + hash: { [KK in K]: any } + ): Pick, K>; + /** + * Convenience method to call `propertyWillChange` and `propertyDidChange` in + * succession. + */ + notifyPropertyChange(keyName: string): this; + /** + * Adds an observer on a property. + */ + addObserver( + key: keyof this, + target: Target, + method: ObserverMethod + ): this; + addObserver(key: keyof this, method: ObserverMethod): this; + /** + * Remove an observer you have previously registered on this object. Pass + * the same key, target, and method you passed to `addObserver()` and your + * target will no longer receive notifications. + */ + removeObserver( + key: keyof this, + target: Target, + method: ObserverMethod + ): this; + removeObserver(key: keyof this, method: ObserverMethod): this; + /** + * Retrieves the value of a property, or a default value in the case that the + * property returns `undefined`. + */ + getWithDefault( + key: K, + defaultValue: UnwrapComputedPropertyGetter + ): UnwrapComputedPropertyGetter; + /** + * Set the value of a property to the current value plus some amount. + */ + incrementProperty(keyName: keyof this, increment?: number): number; + /** + * Set the value of a property to the current value minus some amount. + */ + decrementProperty(keyName: keyof this, decrement?: number): number; + /** + * Set the value of a boolean property to the opposite of its + * current value. + */ + toggleProperty(keyName: keyof this): boolean; + /** + * Returns the cached value of a computed property, if it exists. + * This allows you to inspect the value of a computed property + * without accidentally invoking it if it is intended to be + * generated lazily. + */ + cacheFor( + key: K + ): UnwrapComputedPropertyGetter | undefined; +} +declare const Observable: Mixin; +export default Observable; diff --git a/types/ember__object/observers.d.ts b/types/ember__object/observers.d.ts new file mode 100644 index 0000000000..f1decdb96f --- /dev/null +++ b/types/ember__object/observers.d.ts @@ -0,0 +1,32 @@ +import { ObserverMethod } from "@ember/object/-private/types"; + +/** + * Adds an observer on a property. + */ +export function addObserver( + obj: Context, + key: keyof Context, + target: Target, + method: ObserverMethod +): void; +export function addObserver( + obj: Context, + key: keyof Context, + method: ObserverMethod +): void; +/** + * Remove an observer you have previously registered on this object. Pass + * the same key, target, and method you passed to `addObserver()` and your + * target will no longer receive notifications. + */ +export function removeObserver( + obj: Context, + key: keyof Context, + target: Target, + method: ObserverMethod +): any; +export function removeObserver( + obj: Context, + key: keyof Context, + method: ObserverMethod +): any; diff --git a/types/ember__object/promise-proxy-mixin.d.ts b/types/ember__object/promise-proxy-mixin.d.ts new file mode 100644 index 0000000000..ce2782f204 --- /dev/null +++ b/types/ember__object/promise-proxy-mixin.d.ts @@ -0,0 +1,35 @@ +import Mixin from "@ember/object/mixin"; +import RSVP from "rsvp"; + +/** + * A low level mixin making ObjectProxy promise-aware. + */ +interface PromiseProxyMixin extends RSVP.Promise { + /** + * If the proxied promise is rejected this will contain the reason + * provided. + */ + reason: any; + /** + * Once the proxied promise has settled this will become `false`. + */ + isPending: boolean; + /** + * Once the proxied promise has settled this will become `true`. + */ + isSettled: boolean; + /** + * Will become `true` if the proxied promise is rejected. + */ + isRejected: boolean; + /** + * Will become `true` if the proxied promise is fulfilled. + */ + isFulfilled: boolean; + /** + * The promise whose fulfillment value is being proxied by this object. + */ + promise: RSVP.Promise; +} +declare const PromiseProxyMixin: Mixin>; +export default PromiseProxyMixin; diff --git a/types/ember__object/proxy.d.ts b/types/ember__object/proxy.d.ts new file mode 100644 index 0000000000..841b211e49 --- /dev/null +++ b/types/ember__object/proxy.d.ts @@ -0,0 +1,12 @@ +import EmberObject from "@ember/object"; + +/** + * `Ember.ObjectProxy` forwards all properties not defined by the proxy itself + * to a proxied `content` object. + */ +export default class ObjectProxy extends EmberObject { + /** + * The object whose properties will be forwarded. + */ + content: object; +} diff --git a/types/ember__object/test/access-modifier.ts b/types/ember__object/test/access-modifier.ts new file mode 100644 index 0000000000..281d4e5624 --- /dev/null +++ b/types/ember__object/test/access-modifier.ts @@ -0,0 +1,21 @@ +import { assertType } from './lib/assert'; +import EmberObject from '@ember/object'; + +class Foo extends EmberObject { + hello() { return 'world'; } + protected bar() { return 'bar'; } + private baz() { return 'baz'; } +} +const f = new Foo(); +assertType(f.hello()); +assertType(f.bar()); // $ExpectError +assertType(f.baz()); // $ExpectError + +// TODO: enable after TS 3.0 https://github.com/typed-ember/ember-cli-typescript/issues/291 +// class Foo2 extends EmberObject.extend({ +// bar: '' +// }) { +// hello() { return 'world'; } +// protected bar() { return 'bar'; } // $ExpectError +// private baz() { return 'baz'; } +// } diff --git a/types/ember__object/test/computed.ts b/types/ember__object/test/computed.ts new file mode 100644 index 0000000000..481a513856 --- /dev/null +++ b/types/ember__object/test/computed.ts @@ -0,0 +1,198 @@ +import EmberObject, { computed } from '@ember/object'; +import ComputedProperty, { + alias, + or, + and, + filter, + equal, + empty, + filterBy, + notEmpty, + none, + not, + min, + max, + gt, + gte, + lt, + lte, + readOnly, + reads, + setDiff, + sort, + intersect, + mapBy, + match, + map, + oneWay, + sum, + union, + uniqBy, + uniq, + deprecatingAlias, + bool, + collect +} from '@ember/object/computed'; +import { assertType } from './lib/assert'; + +const Person = EmberObject.extend({ + firstName: '', + lastName: '', + age: 0, + + noArgs: computed(() => 'test'), + + fullName: computed('firstName', 'lastName', function() { + return `${this.get('firstName')} ${this.get('lastName')}`; + }), + + fullNameReadonly: computed('fullName', function() { + return this.get('fullName'); + }).readOnly(), + + fullNameWritable: computed('firstName', 'lastName', { + get() { + return this.get('fullName'); + }, + set(key, value) { + const [first, last] = value.split(' '); + this.set('firstName', first); + this.set('lastName', last); + return value; + } + }), + + fullNameGetOnly: computed('fullName', { + get() { + return this.get('fullName'); + } + }), + + fullNameSetOnly: computed('firstName', 'lastName', { + set(key, value) { + const [first, last] = value.split(' '); + this.set('firstName', first); + this.set('lastName', last); + return value; + } + }), + + combinators: computed(function() { + return this.get('firstName'); + }).property('firstName') + .meta({ foo: 'bar' }) + .volatile() + .readOnly(), + + explicitlyDeclared: alias('fullName') as ComputedProperty, +}); + +const person = Person.create({ + firstName: 'Fred', + lastName: 'Smith', + age: 29, +}); + +assertType(person.firstName); +assertType(person.age); +assertType>(person.noArgs); +assertType>(person.fullName); +assertType>(person.fullNameReadonly); +assertType>(person.fullNameWritable); +assertType>(person.fullNameGetOnly); +assertType>(person.fullNameSetOnly); +assertType>(person.combinators); +assertType>(person.explicitlyDeclared); + +assertType(person.get('firstName')); +assertType(person.get('age')); +assertType(person.get('noArgs')); +assertType(person.get('fullName')); +assertType(person.get('fullNameReadonly')); +assertType(person.get('fullNameWritable')); +assertType(person.get('fullNameGetOnly')); +assertType(person.get('fullNameSetOnly')); +assertType(person.get('combinators')); +assertType(person.get('explicitlyDeclared')); + +assertType<{ firstName: string, fullName: string, age: number }>(person.getProperties('firstName', 'fullName', 'age')); + +const person2 = Person.create({ + fullName: 'Fred Smith' +}); + +assertType(person2.get('firstName')); +assertType(person2.get('fullName')); + +const person3 = Person.extend({ + firstName: 'Fred', + fullName: 'Fred Smith' +}).create(); + +assertType(person3.get('firstName')); +assertType(person3.get('fullName')); + +const person4 = Person.extend({ + firstName: computed(() => 'Fred'), + fullName: computed(() => 'Fred Smith') +}).create(); + +assertType(person4.get('firstName')); +assertType(person4.get('fullName')); + +// computed property macros +const objectWithComputedProperties = EmberObject.extend({ + alias: alias('foo'), + and: and('foo', 'bar', 'baz', 'qux'), + bool: bool('foo'), + collect: collect('foo', 'bar', 'baz', 'qux'), + deprecatingAlias: deprecatingAlias('foo', { + id: 'hamster.deprecate-banana', + until: '3.0.0' + }), + empty: empty('foo'), + equalNumber: equal('foo', 1), + equalString: equal('foo', 'bar'), + equalObject: equal('foo', {}), + filter: filter('foo', (item) => item === 'bar'), + filterBy1: filterBy('foo', 'bar'), + filterBy2: filterBy('foo', 'bar', false), + gt: gt('foo', 3), + gte: gte('foo', 3), + intersect: intersect('foo', 'bar', 'baz', 'qux'), + lt: lt('foo', 3), + lte: lte('foo', 3), + map: map('foo', (item, index) => item.bar), + mapBy: mapBy('foo', 'bar'), + match: match('foo', /^tom.ter$/), + max: max('foo'), + min: min('foo'), + none: none('foo'), + not: not('foo'), + notEmpty: notEmpty('foo'), + oneWay: oneWay('foo'), + or: or('foo', 'bar', 'baz', 'qux'), + readOnly: readOnly('foo'), + reads: reads('foo'), + setDiff: setDiff('foo', 'bar'), + sort1: sort('foo', 'bar'), + sort2: sort('foo', (itemA, itemB) => { + if (itemA < itemB) { + return -1; + } else if (itemA > itemB) { + return 1; + } else { + return 0; + } + }), + sum: sum('foo'), + union: union('foo', 'bar', 'baz', 'qux'), + uniq: uniq('foo'), + uniqBy: uniqBy('foo', 'bar') +}); + +const component2 = EmberObject.extend({ + isAnimal: or('isDog', 'isCat') +}).create(); + +assertType(component2.get('isAnimal')); diff --git a/types/ember__object/test/core.ts b/types/ember__object/test/core.ts new file mode 100644 index 0000000000..984f5eec12 --- /dev/null +++ b/types/ember__object/test/core.ts @@ -0,0 +1,198 @@ +import Ember from 'ember'; +import { assertType } from './lib/assert'; + +/** Newable tests */ +const co1 = new Ember.CoreObject(); + +// TODO: Enable in TS 3.0 see: https://github.com/typed-ember/ember-cli-typescript/issues/291 +// co1.concatenatedProperties; // $ExpectType string[] +co1.isDestroyed; // $ExpectType boolean +co1.isDestroying; // $ExpectType boolean +co1.destroy(); // $ExpectType CoreObject +co1.toString(); // $ExpectType string + +/** .create tests */ +const co2 = Ember.CoreObject.create(); +// TODO: Enable in TS 3.0 see: https://github.com/typed-ember/ember-cli-typescript/issues/291 +// co2.concatenatedProperties; // $ExpectType string[] +co2.isDestroyed; // $ExpectType boolean +co2.isDestroying; // $ExpectType boolean +co2.destroy(); // $ExpectType CoreObject +co2.toString(); // $ExpectType string + +/** .create tests w/ initial instance data passed in */ +const co3 = Ember.CoreObject.create({ foo: '123', bar: 456 }); + +co3.foo; // $ExpectType string +co3.bar; // $ExpectType number + +/** .extend with a zero-argument .create() */ +const co4 = Ember.CoreObject.extend({ + foo: '123', + bar: 456, + baz(): [string, number] { + return [this.foo, this.bar]; + } +}).create(); + +co4.foo; // $ExpectType string +co4.bar; // $ExpectType number +co4.baz; // $ExpectType () => [string, number] + +/** .extend with inconsistent arguments passed into .create() */ +const class05 = Ember.CoreObject.extend({ + foo: '123' as (string | boolean), + bar: 456, + baz() { + return [this.foo, this.bar]; + } +}); +const c05 = class05.create({ foo: 99 }); // $ExpectError +const c05b = class05.create({ foo: true }); +const c05c = class05.create({ foo: 'abc' }); +assertType(c05b.foo); // $ExpectError +assertType(c05c.foo); // $ExpectError + +/** two .extend arguments with a zero-argument .create() */ +const co6 = Ember.CoreObject.extend({ + foo: '123', + bar: 456, + baz() { + return [this.foo, this.bar]; + }, + func1() { + // this includes stuff from CoreObject + this.init; // $ExpectType () => void + // this includes stuff from this extend-arg + this.foo; // $ExpectType string + // this does not include stuff from later extend args + this.bee; // $ExpectError + } +}, { + foo: 99, + bee: 'honey', + func2() { + // this includes stuff from CoreObject + this.init; // $ExpectType () => void + // this includes stuff from this extend-arg + // TODO: switch to "$ExpectType number" in TS 3.0 see: https://github.com/typed-ember/ember-cli-typescript/issues/291 + this.foo; // $ExpectType string & number + // this includes stuff from earlier extend-args + this.bar; // $ExpectType number + } +}).create(); + +// TODO: enable in TS 3.0 see: https://github.com/typed-ember/ember-cli-typescript/issues/291 +// assertType(co6.foo); // $ExpectError +assertType(co6.bar); // $ExpectType number +assertType<() => Array>(co6.baz); // $ExpectType () => (string | number)[] + +/** three .extend arguments with a zero-argument .create() */ +const co7 = Ember.CoreObject.extend({ + foo: '123', + bar: 456, + baz() { + return [this.foo, this.bar]; + }, + func1() { + // this includes stuff from CoreObject + this.init; // $ExpectType () => void + // this includes stuff from this extend-arg + this.foo; // $ExpectType string + // this does not include stuff from later extend args + this.bee; // $ExpectError + } +}, { + foo: 99, + bee: 'honey', + func2() { + // this includes stuff from CoreObject + this.init; // $ExpectType () => void + // this includes stuff from this extend-arg + // TODO: switch to "$ExpectType number" in TS 3.0 see: https://github.com/typed-ember/ember-cli-typescript/issues/291 + this.foo; // $ExpectType string & number + // this includes stuff from earlier extend-args + this.bar; // $ExpectType number + } +}, { + foo: '99', + money: 'in the banana stand', + func3() { + // this includes stuff from CoreObject + this.init; // $ExpectType () => void + // this includes stuff from this extend-arg + this.money; // $ExpectType string + // this includes stuff from earlier extend-args + this.bee; // $ExpectType string + this.bar; // $ExpectType number + } +}).create(); +// TODO: enable in TS 3.0 see: https://github.com/typed-ember/ember-cli-typescript/issues/291 +// assertType(co7.foo); // $ExpectError +assertType(co7.bar); // $ExpectType number +assertType(co7.money); // $ExpectType string +assertType<() => Array>(co7.baz); // $ExpectType () => (string | number)[] + +/** four .extend arguments with a zero-argument .create() */ +const co8 = Ember.CoreObject.extend({ + foo: '123', + bar: 456, + baz() { + return [this.foo, this.bar]; + }, + func1() { + // this includes stuff from CoreObject + this.init; // $ExpectType () => void + // this includes stuff from this extend-arg + this.foo; // $ExpectType string + // this does not include stuff from later extend args + this.bee; // $ExpectError + } +}, { + foo: 99, + bee: 'honey', + func2() { + // this includes stuff from CoreObject + this.init; // $ExpectType () => void + // this includes stuff from this extend-arg + // TODO: switch to "$ExpectType number" in TS 3.0 see: https://github.com/typed-ember/ember-cli-typescript/issues/291 + this.foo; // $ExpectType string & number + // this includes stuff from earlier extend-args + this.bar; // $ExpectType number + // this does not include stuff from later extend args + this.money; // $ExpectError + } +}, { + foo: '99', + money: 'in the banana stand', + func3() { + // this includes stuff from CoreObject + this.init; // $ExpectType () => void + // this includes stuff from this extend-arg + this.money; // $ExpectType string + // this includes stuff from earlier extend-args + this.bee; // $ExpectType string + this.bar; // $ExpectType number + // this does not include stuff from later extend args + this.neighborhood; // $ExpectError + } +}, { + foo: '99', + neighborhood: 'sudden valley', + func4() { + // this includes stuff from CoreObject + this.init; // $ExpectType () => void + // this includes stuff from this extend-arg + this.neighborhood; // $ExpectType string + // this includes stuff from earlier extend-args + this.bee; // $ExpectType string + this.bar; // $ExpectType number + this.money; // $ExpectType string + } +}).create(); + +// TODO: enable in TS 3.0 see: https://github.com/typed-ember/ember-cli-typescript/issues/291 +// assertType(co8.foo); // $ExpectError +assertType(co8.bar); // $ExpectType number +assertType(co8.money); // $ExpectType string +assertType<() => Array>(co8.baz); // $ExpectType () => (string | number)[] diff --git a/types/ember__object/test/create-negative.ts b/types/ember__object/test/create-negative.ts new file mode 100644 index 0000000000..2298ae8cf3 --- /dev/null +++ b/types/ember__object/test/create-negative.ts @@ -0,0 +1,9 @@ +import { assertType } from './lib/assert'; +import Ember from 'ember'; +import { PersonWithNumberName, Person } from './create'; + +Person.create({ firstName: 99 }); // $ExpectError +Person.create({}, { firstName: 99 }); // $ExpectError +Person.create({}, {}, { firstName: 99 }); // $ExpectError + +const p4 = new PersonWithNumberName(); diff --git a/types/ember__object/test/create.ts b/types/ember__object/test/create.ts new file mode 100644 index 0000000000..fbc1b3600a --- /dev/null +++ b/types/ember__object/test/create.ts @@ -0,0 +1,54 @@ +import { assertType } from './lib/assert'; +import EmberObject, { computed } from '@ember/object'; +import ComputedProperty from '@ember/object/computed'; + +/** + * Zero-argument case + */ +const o = EmberObject.create(); +// create returns an object +assertType(o); +// object returned by create type-checks as an instance of Ember.Object +assertType(o.isDestroyed); // from instance +assertType(o.isDestroying); // from instance +assertType<(key: keyof EmberObject) => any>(o.get); // from prototype + +/** + * One-argument case + */ +const o1 = EmberObject.create({x: 9, y: 'hello', z: false}); +assertType(o1.x); +assertType(o1.y); +o1.y; // $ExpectType string +o1.z; // $ExpectType boolean + +const obj = EmberObject.create({ a: 1 }, { b: 2 }, { c: 3 }); +assertType(obj.b); +assertType(obj.a); +assertType(obj.c); + +export class Person extends EmberObject { + fullName = computed('firstName', 'lastName', function() { + return [this.firstName + this.lastName].join(' '); + }); + firstName: string; + lastName: string; + age: number; +} +const p = new Person(); + +assertType(p.firstName); +assertType>(p.fullName); +assertType(p.get('fullName')); + +const p2 = Person.create({ firstName: 'string' }); +const p2b = Person.create({}, { firstName: 'string' }); +const p2c = Person.create({}, {}, { firstName: 'string' }); + +export class PersonWithNumberName extends Person.extend({ + fullName: 6 +}) {} + +const p4 = new PersonWithNumberName(); +assertType(p4.firstName); +assertType(p4.fullName); diff --git a/types/ember__object/test/detect-instance.ts b/types/ember__object/test/detect-instance.ts new file mode 100755 index 0000000000..d65fa0f686 --- /dev/null +++ b/types/ember__object/test/detect-instance.ts @@ -0,0 +1,20 @@ +import { assertType } from './lib/assert'; +import EmberObject from '@ember/object'; + +const ExtendClass = EmberObject.extend({ + foo: 'hello' +}); + +class ES6Class extends EmberObject { + bar: string; +} + +const testObject = null; + +if (ExtendClass.detectInstance(testObject)) { + assertType(testObject.foo); +} + +if (ES6Class.detectInstance(testObject)) { + assertType(testObject.bar); +} diff --git a/types/ember__object/test/detect.ts b/types/ember__object/test/detect.ts new file mode 100755 index 0000000000..878acced29 --- /dev/null +++ b/types/ember__object/test/detect.ts @@ -0,0 +1,20 @@ +import { assertType } from './lib/assert'; +import EmberObject from '@ember/object'; + +const ExtendClass = EmberObject.extend({ + foo: 'hello' +}); + +class ES6Class extends EmberObject { + bar: string; +} + +const TestClass = EmberObject; + +if (ExtendClass.detect(TestClass)) { + assertType(TestClass.create().foo); +} + +if (ES6Class.detect(TestClass)) { + assertType(TestClass.create().bar); +} diff --git a/types/ember__object/test/event.ts b/types/ember__object/test/event.ts new file mode 100644 index 0000000000..b54529d587 --- /dev/null +++ b/types/ember__object/test/event.ts @@ -0,0 +1,61 @@ +import EmberObject, { observer } from '@ember/object'; +import { sendEvent, addListener, removeListener } from '@ember/object/events'; +import Evented, { on } from '@ember/object/evented'; + +function testOn() { + const Job = EmberObject.extend({ + logCompleted: on('completed', () => { + console.log('Job completed!'); + }) + }); + + const job = Job.create(); + + sendEvent(job, 'completed'); // Logs 'Job completed!' +} + +function testEvented() { + const Person = EmberObject.extend(Evented, { + greet() { + this.trigger('greet'); + } + }); + + const person = Person.create(); + + person.on('greet', () => { + console.log('Our person has greeted'); + }); + + person.on('greet', () => { + console.log('Our person has greeted'); + }).one('greet', () => { + console.log('Offer one-time special'); + }).off('event', {}, () => {}); + + person.greet(); +} + +function testObserver() { + EmberObject.extend({ + // TODO: enable after https://github.com/typed-ember/ember-cli-typescript/issues/290 + // valueObserver: observer('value', () => { + // // Executes whenever the "value" property changes + // }) + }); +} + +function testListener() { + EmberObject.extend({ + init() { + addListener(this, 'willDestroy', this, 'willDestroyListener'); + addListener(this, 'willDestroy', this, 'willDestroyListener', true); + addListener(this, 'willDestroy', this, this.willDestroyListener); + addListener(this, 'willDestroy', this, this.willDestroyListener, true); + removeListener(this, 'willDestroy', this, 'willDestroyListener'); + removeListener(this, 'willDestroy', this, this.willDestroyListener); + }, + willDestroyListener() { + } + }); +} diff --git a/types/ember__object/test/extend.ts b/types/ember__object/test/extend.ts new file mode 100644 index 0000000000..8d61168dc3 --- /dev/null +++ b/types/ember__object/test/extend.ts @@ -0,0 +1,61 @@ +import EmberObject from '@ember/object'; +import { assertType } from './lib/assert'; + +const Person = EmberObject.extend({ + firstName: '', + lastName: '', + + getFullName() { + return `${this.firstName} ${this.lastName}`; + }, + getFullName2(): string { + return `${this.get('firstName')} ${this.get('lastName')}`; + } +}); + +assertType(Person.prototype.firstName); +assertType<() => string>(Person.prototype.getFullName); + +const person = Person.create({ + firstName: 'Joe', + lastName: 'Blow', + extra: 42 +}); + +assertType(person.getFullName()); +assertType(person.extra); + +class ES6Person extends EmberObject { + firstName: string; + lastName: string; + + get fullName() { + return `${this.firstName} ${this.lastName}`; + } + get fullName2(): string { + return `${this.get('firstName')} ${this.get('lastName')}`; + } +} + +assertType(ES6Person.prototype.firstName); +assertType(ES6Person.prototype.fullName); + +const es6Person = ES6Person.create({ + firstName: 'Joe', + lastName: 'Blow', + extra: 42 +}); + +assertType(es6Person.fullName); +assertType(es6Person.extra); + +class PersonWithStatics extends EmberObject { + static isPerson = true; +} +const PersonWithStatics2 = PersonWithStatics.extend({}); +class PersonWithStatics3 extends PersonWithStatics {} +class PersonWithStatics4 extends PersonWithStatics2 {} +assertType(PersonWithStatics.isPerson); +assertType(PersonWithStatics2.isPerson); +assertType(PersonWithStatics3.isPerson); +assertType(PersonWithStatics4.isPerson); diff --git a/types/ember__object/test/lib/assert.ts b/types/ember__object/test/lib/assert.ts new file mode 100644 index 0000000000..262d18bc2c --- /dev/null +++ b/types/ember__object/test/lib/assert.ts @@ -0,0 +1,5 @@ +/** Static assertion that `value` has type `T` */ +// Disable tslint here b/c the generic is used to let us do a type coercion and +// validate that coercion works for the type value "passed into" the function. +// tslint:disable-next-line:no-unnecessary-generics +export declare function assertType(value: T): T; diff --git a/types/ember__object/test/object.ts b/types/ember__object/test/object.ts new file mode 100644 index 0000000000..b47aa22ffb --- /dev/null +++ b/types/ember__object/test/object.ts @@ -0,0 +1,75 @@ +import EmberObject, { computed } from "@ember/object"; + +const LifetimeHooks = EmberObject.extend({ + resource: null as {} | null, + + init() { + this._super(); + this.resource = {}; + }, + + willDestroy() { + delete this.resource; + this._super(); + } +}); + +class MyObject30 extends EmberObject { + constructor() { + super(); + } +} + +class MyObject31 extends EmberObject { + constructor(properties: object) { + super(properties); + } +} + +class Foo extends EmberObject { + a = computed({ + get() { return ''; }, + set(key: string, newVal: string) { return ''; } + }); + b = 5; + baz() { + const y = this.b; // $ExpectType number + const z = this.a; // $ExpectType ComputedProperty + this.b = 10; + this.get('b').toFixed(4); // $ExpectType string + this.set('a', 'abc').split(','); // $ExpectType string[] + this.set('b', 10).toFixed(4); // $ExpectType string + + this.setProperties({ b: 11 }); + // this.setProperties({ b: '11' }); // $ExpectError + this.setProperties({ + a: 'def', + b: 11 + }); + } +} + +// TODO: enable after TS 3.0 https://github.com/typed-ember/ember-cli-typescript/issues/291 +// class Foo extends EmberObject.extend({ +// a: computed({ +// get() { return ''; }, +// set(key: string, newVal: string) { return ''; } +// }) +// }) { +// b = 5; +// baz() { +// const y = this.b; // $ExpectType number +// const z = this.a; // $ExpectType ComputedProperty +// this.b = 10; +// this.get('b').toFixed(4); // $ExpectType string +// this.set('a', 'abc').split(','); // $ExpectType string[] +// this.set('b', 10).toFixed(4); // $ExpectType string + +// this.setProperties({ b: 11 }); +// // this.setProperties({ b: '11' }); // $ExpectError +// this.setProperties({ +// a: 'def', +// b: 11 +// }); +// } +// } diff --git a/types/ember__object/test/observable.ts b/types/ember__object/test/observable.ts new file mode 100644 index 0000000000..aa41889d24 --- /dev/null +++ b/types/ember__object/test/observable.ts @@ -0,0 +1,114 @@ +import { assertType } from './lib/assert'; +import EmberObject, { computed, getWithDefault, getProperties, get, setProperties, set } from '@ember/object'; +import { removeObserver, addObserver } from '@ember/object/observers'; + +class MyComponent extends EmberObject { + foo = 'bar'; + + init() { + this._super.apply(this, arguments); + this.addObserver('foo', this, 'fooDidChange'); + this.addObserver('foo', this, this.fooDidChange); + addObserver(this, 'foo', this, 'fooDidChange'); + addObserver(this, 'foo', this, this.fooDidChange); + this.removeObserver('foo', this, 'fooDidChange'); + this.removeObserver('foo', this, this.fooDidChange); + removeObserver(this, 'foo', this, 'fooDidChange'); + removeObserver(this, 'foo', this, this.fooDidChange); + const lambda = () => { + this.fooDidChange(this, 'foo'); + }; + this.addObserver('foo', lambda); + this.removeObserver('foo', lambda); + addObserver(this, 'foo', lambda); + removeObserver(this, 'foo', lambda); + } + + fooDidChange(sender: this, key: string) { + // your code + } +} + +const myComponent = MyComponent.create(); +myComponent.addObserver('foo', null, () => {}); +myComponent.set('foo', 'baz'); + +const person = EmberObject.create({ + name: 'Fred', + age: 29, + capitalized: computed(function() { + return this.get('name').toUpperCase(); + }) +}); + +const pojo = { name: 'Fred', age: 29 }; + +function testGet() { + assertType(get(person, 'name')); + assertType(get(person, 'age')); + assertType(get(person, 'capitalized')); + assertType(person.get('name')); + assertType(person.get('age')); + assertType(person.get('capitalized')); + assertType(get(pojo, 'name')); +} + +function testGetProperties() { + assertType<{ name: string }>(getProperties(person, 'name')); + assertType<{ name: string, age: number }>(getProperties(person, 'name', 'age')); + assertType<{ name: string, age: number }>(getProperties(person, [ 'name', 'age' ])); + assertType<{ name: string, age: number, capitalized: string }>(getProperties(person, 'name', 'age', 'capitalized')); + assertType<{ name: string }>(person.getProperties('name')); + assertType<{ name: string, age: number }>(person.getProperties('name', 'age')); + assertType<{ name: string, age: number }>(person.getProperties([ 'name', 'age' ])); + assertType<{ name: string, age: number, capitalized: string }>(person.getProperties('name', 'age', 'capitalized')); + assertType<{ name: string, age: number }>(getProperties(pojo, 'name', 'age')); +} + +function testGetWithDefault() { + assertType(getWithDefault(person, 'name', 'Joe')); + assertType(getWithDefault(person, 'age', 20)); + assertType(getWithDefault(person, 'capitalized', 'JOE')); + assertType(person.getWithDefault('name', 'Joe')); + assertType(person.getWithDefault('age', 20)); + assertType(person.getWithDefault('capitalized', 'JOE')); + assertType(getWithDefault(pojo, 'name', 'JOE')); +} + +function testSet() { + assertType(set(person, 'name', 'Joe')); + assertType(set(person, 'age', 35)); + assertType(set(person, 'capitalized', 'JOE')); + assertType(person.set('name', 'Joe')); + assertType(person.set('age', 35)); + assertType(person.set('capitalized', 'JOE')); + assertType(set(pojo, 'name', 'Joe')); +} + +function testSetProperties() { + assertType<{ name: string }>(setProperties(person, { name: 'Joe' })); + assertType<{ name: string, age: number }>(setProperties(person, { name: 'Joe', age: 35 })); + assertType<{ name: string, capitalized: string }>(setProperties(person, { name: 'Joe', capitalized: 'JOE' })); + assertType<{ name: string }>(person.setProperties({ name: 'Joe' })); + assertType<{ name: string, age: number }>(person.setProperties({ name: 'Joe', age: 35 })); + assertType<{ name: string, capitalized: string }>(person.setProperties({ name: 'Joe', capitalized: 'JOE' })); + assertType<{ name: string, age: number }>(setProperties(pojo, { name: 'Joe', age: 35 })); +} + +function testDynamic() { + const obj: any = {}; + const dynamicKey: string = 'dummy'; // tslint:disable-line:no-inferrable-types + + assertType(get(obj, 'dummy')); + assertType(get(obj, dynamicKey)); + assertType(getWithDefault(obj, 'dummy', 'default')); + assertType(getWithDefault(obj, dynamicKey, 'default')); + assertType<{ dummy: any }>(getProperties(obj, 'dummy')); + assertType<{ dummy: any }>(getProperties(obj, [ 'dummy' ])); + assertType(getProperties(obj, dynamicKey)); + assertType(getProperties(obj, [ dynamicKey ])); + assertType(set(obj, 'dummy', 'value')); + assertType(set(obj, dynamicKey, 'value')); + assertType<{ dummy: string }>(setProperties(obj, { dummy: 'value '})); + assertType(setProperties(obj, { [dynamicKey]: 'value' })); +} diff --git a/types/ember__object/test/reopen.ts b/types/ember__object/test/reopen.ts new file mode 100644 index 0000000000..13084c4bce --- /dev/null +++ b/types/ember__object/test/reopen.ts @@ -0,0 +1,72 @@ +import { assertType } from "./lib/assert"; +import EmberObject from "@ember/object"; +import Mixin from "@ember/object/mixin"; + +type Person = typeof Person.prototype; +const Person = EmberObject.extend({ + name: '', + sayHello() { + alert(`Hello. My name is ${this.get('name')}`); + } +}); + +assertType(Person.reopen()); + +assertType(Person.create().name); +// tslint:disable-next-line no-void-expression +assertType(Person.create().sayHello()); + +const Person2 = Person.reopenClass({ + species: 'Homo sapiens', + + createPerson(name: string): Person { + return Person.create({ name }); + } +}); + +assertType(Person2.create().name); +// tslint:disable-next-line no-void-expression +assertType(Person2.create().sayHello()); +assertType(Person2.species); + +const tom = Person2.create({ + name: 'Tom Dale' +}); + +const badTom = Person2.create({ name: 99 }); // $ExpectError + +const yehuda = Person2.createPerson('Yehuda Katz'); + +tom.sayHello(); // "Hello. My name is Tom Dale" +yehuda.sayHello(); // "Hello. My name is Yehuda Katz" +alert(Person2.species); // "Homo sapiens" + +const Person3 = Person2.reopen({ + goodbyeMessage: 'goodbye', + + sayGoodbye() { + alert(`${this.get('goodbyeMessage')}, ${this.get('name')}`); + } +}); + +const person3 = Person3.create(); +person3.get('name'); +person3.get('goodbyeMessage'); +person3.sayHello(); +person3.sayGoodbye(); + +interface AutoResizeMixin { resizable: true; } +declare const AutoResizeMixin: Mixin; + +const ResizableTextArea = EmberObject.reopen(AutoResizeMixin, { + scaling: 1.0 +}); +const text = ResizableTextArea.create(); +// TODO fix upstream +// assertType(text.resizable); +assertType(text.scaling); + +const Reopened = EmberObject.reopenClass({ a: 1 }, { b: 2 }, { c: 3 }); +assertType(Reopened.a); +assertType(Reopened.b); +assertType(Reopened.c); diff --git a/types/ember__object/tsconfig.json b/types/ember__object/tsconfig.json new file mode 100644 index 0000000000..079b2f1c4d --- /dev/null +++ b/types/ember__object/tsconfig.json @@ -0,0 +1,52 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"] + }, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "computed.d.ts", + "core.d.ts", + "evented.d.ts", + "events.d.ts", + "index.d.ts", + "internals.d.ts", + "mixin.d.ts", + "observable.d.ts", + "observers.d.ts", + "promise-proxy-mixin.d.ts", + "proxy.d.ts", + "-private/types.d.ts", + "test/lib/assert.ts", + "test/access-modifier.ts", + "test/core.ts", + "test/computed.ts", + "test/create.ts", + "test/create-negative.ts", + "test/detect.ts", + "test/detect-instance.ts", + "test/event.ts", + "test/extend.ts", + "test/object.ts", + "test/observable.ts", + "test/reopen.ts" + ] +} diff --git a/types/ember__object/tslint.json b/types/ember__object/tslint.json new file mode 100644 index 0000000000..1a60b8a5dd --- /dev/null +++ b/types/ember__object/tslint.json @@ -0,0 +1,4 @@ +{ + "extends": "dtslint/dt.json", + "rules": { } +} diff --git a/types/ember__polyfills/ember__polyfills-tests.ts b/types/ember__polyfills/ember__polyfills-tests.ts index 044ed0413c..68a6588a69 100644 --- a/types/ember__polyfills/ember__polyfills-tests.ts +++ b/types/ember__polyfills/ember__polyfills-tests.ts @@ -6,13 +6,10 @@ import { assign, merge } from '@ember/polyfills'; assign({ a: 6 }, { a: 'b'}).a; // $ExpectType string assign({ a: 6 }, {}).a; // $ExpectType number assign({ b: 6 }, {}).a; // $ExpectError - // TODO enable after https://github.com/typed-ember/ember-cli-typescript/issues/291 - // assign({}, { b: 6 }, {}).b; // $ExpectType number + assign({}, { b: 6 }, {}).b; // $ExpectType number assign({ a: 'hello' }, { b: 6 }, {}).a; // $ExpectType string - // TODO enable after https://github.com/typed-ember/ember-cli-typescript/issues/291 - // assign({ a: 'hello' }, { b: 6 }, { a: true }).a; // $ExpectType boolean - // TODO enable after https://github.com/typed-ember/ember-cli-typescript/issues/291 - // assign({ a: 'hello' }, '', { a: true }).a; // $ExpectError + assign({ a: 'hello' }, { b: 6 }, { a: true }).a; // $ExpectType boolean + assign({ a: 'hello' }, '', { a: true }).a; // $ExpectError assign({ d: ['gobias industries'] }, { a: 'hello' }, { b: 6 }, { a: true }).d; // $ExpectType string[] })(); diff --git a/types/ember__polyfills/index.d.ts b/types/ember__polyfills/index.d.ts index 2a3c9b4a93..1bca6dbba4 100644 --- a/types/ember__polyfills/index.d.ts +++ b/types/ember__polyfills/index.d.ts @@ -4,7 +4,18 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 -import Ember from 'ember'; +import { Mix, Mix3, Mix4 } from './types'; -export const assign: typeof Ember.assign; -export const merge: typeof Ember.merge; +/** + * Copy properties from a source object to a target object. + * @deprecated Use Object.assign + */ +export function assign(target: T, source: U): Mix; +export function assign(target: T, source1: U, source2: V): Mix3; +export function assign(target: T, source1: U, source2: V, source3: W): Mix4; + +/** + * Merge the contents of two objects together into the first object. + * @deprecated Use Object.assign + */ +export function merge(original: T, updates: U): Mix; diff --git a/types/ember__polyfills/tsconfig.json b/types/ember__polyfills/tsconfig.json index a2a6bd371b..ab08b95d99 100644 --- a/types/ember__polyfills/tsconfig.json +++ b/types/ember__polyfills/tsconfig.json @@ -15,7 +15,8 @@ "../" ], "paths": { - "@ember/polyfills": ["ember__polyfills"] + "@ember/polyfills": ["ember__polyfills"], + "@ember/polyfills/*": ["ember__polyfills/*"] }, "types": [], "noEmit": true, @@ -23,6 +24,7 @@ }, "files": [ "index.d.ts", + "types.d.ts", "ember__polyfills-tests.ts" ] } diff --git a/types/ember__polyfills/types.d.ts b/types/ember__polyfills/types.d.ts new file mode 100644 index 0000000000..d1c8cf2306 --- /dev/null +++ b/types/ember__polyfills/types.d.ts @@ -0,0 +1,4 @@ +export type Mix = B & Pick>; +export type Mix3 = Mix, C>; +export type Mix4 = Mix3, C, D>; +export default Mix; diff --git a/types/ember__routing/tsconfig.json b/types/ember__routing/tsconfig.json index 4bd4d95832..d48c533db5 100644 --- a/types/ember__routing/tsconfig.json +++ b/types/ember__routing/tsconfig.json @@ -15,6 +15,8 @@ "../" ], "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"], "@ember/routing": ["ember__routing"], "@ember/routing/*": ["ember__routing/*"] }, diff --git a/types/ember__runloop/ember__runloop-tests.ts b/types/ember__runloop/ember__runloop-tests.ts new file mode 100644 index 0000000000..132d687bbd --- /dev/null +++ b/types/ember__runloop/ember__runloop-tests.ts @@ -0,0 +1,203 @@ +import Ember from 'ember'; +import RSVP from 'rsvp'; +import { run } from '@ember/runloop'; + +Ember.run.queues; // $ExpectType EmberRunQueues[] +const queues: string[] = Ember.run.queues; + +function testRun() { + run(() => { // $ExpectType number + // code to be executed within a RunLoop + return 123; + }); + + function destroyApp(application: Ember.Application) { + Ember.run(application, 'destroy'); + run(application, function() { + this.destroy(); + }); + } +} + +function testBind() { + Ember.Component.extend({ + init() { + const bound = Ember.run.bind(this, this.setupEditor); + bound(); + }, + + editor: null as string | null, + + setupEditor(editor: string) { + this.set('editor', editor); + } + }); +} + +function testCancel() { + const myContext = {}; + + const runNext = run.next(myContext, () => { + // will not be executed + }); + + run.cancel(runNext); + + const runLater = run.later(myContext, () => { + // will not be executed + }, 500); + + run.cancel(runLater); + + const runScheduleOnce = run.scheduleOnce('afterRender', myContext, () => { + // will not be executed + }); + + run.cancel(runScheduleOnce); + + const runOnce = run.once(myContext, () => { + // will not be executed + }); + + run.cancel(runOnce); + + const throttle = run.throttle(myContext, () => { + // will not be executed + }, 1, false); + + run.cancel(throttle); + + const debounce = run.debounce(myContext, () => { + // will not be executed + }, 1); + + run.cancel(debounce); + + const debounceImmediate = run.debounce(myContext, () => { + // will be executed since we passed in true (immediate) + }, 100, true); + + // the 100ms delay until this method can be called again will be canceled + run.cancel(debounceImmediate); +} + +function testDebounce() { + function runIt() { + } + + const myContext = { name: 'debounce' }; + + run.debounce(runIt, 150); + run.debounce(myContext, runIt, 150); + run.debounce(myContext, runIt, 150, true); + + Ember.Component.extend({ + searchValue: 'test', + fetchResults(value: string) {}, + + actions: { + handleTyping() { + // the fetchResults function is passed into the component from its parent + Ember.run.debounce(this, this.get('fetchResults'), this.get('searchValue'), 250); + } + } + }); +} + +function testBegin() { + run.begin(); + // code to be executed within a RunLoop + run.end(); +} + +function testJoin() { + run.join(() => { + // creates a new run-loop + }); + + run(() => { + // creates a new run-loop + run.join(() => { + // joins with the existing run-loop, and queues for invocation on + // the existing run-loops action queue. + }); + }); + + new RSVP.Promise((resolve) => { + Ember.run.later(() => { + resolve({ msg: 'Hold Your Horses' }); + }, 3000); + }); +} + +function testLater() { + const myContext = {}; + run.later(myContext, () => { + // code here will execute within a RunLoop in about 500ms with this == myContext + }, 500); +} + +function testNext() { + const myContext = {}; + run.next(myContext, () => { + // code to be executed in the next run loop, + // which will be scheduled after the current one + }); +} + +function testOnce() { + Ember.Component.extend({ + init() { + Ember.run.once(this, 'processFullName'); + }, + + processFullName() { + } + }); +} + +function testSchedule() { + Ember.Component.extend({ + init() { + run.schedule('sync', this, () => { + // this will be executed in the first RunLoop queue, when bindings are synced + console.log('scheduled on sync queue'); + }); + + run.schedule('actions', this, () => { + // this will be executed in the 'actions' queue, after bindings have synced. + console.log('scheduled on actions queue'); + }); + } + }); + + Ember.run.schedule('actions', () => { + // Do more things + }); +} + +function testScheduleOnce() { + function sayHi() { + console.log('hi'); + } + + const myContext = {}; + run(() => { + run.scheduleOnce('afterRender', myContext, sayHi); + run.scheduleOnce('afterRender', myContext, sayHi); + // sayHi will only be executed once, in the afterRender queue of the RunLoop + }); + run.scheduleOnce('actions', myContext, () => { + console.log('Closure'); + }); +} + +function testThrottle() { + function runIt() { + } + + const myContext = { name: 'throttle' }; + + run.throttle(runIt, 150); + run.throttle(myContext, runIt, 150); +} diff --git a/types/ember__runloop/index.d.ts b/types/ember__runloop/index.d.ts new file mode 100644 index 0000000000..acc8c3ad8a --- /dev/null +++ b/types/ember__runloop/index.d.ts @@ -0,0 +1,21 @@ +// Type definitions for @ember/runloop 3.0 +// Project: http://emberjs.com/ +// Definitions by: Mike North +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +import Ember from 'ember'; + +export const begin: typeof Ember.run.begin; +export const bind: typeof Ember.run.bind; +export const cancel: typeof Ember.run.cancel; +export const debounce: typeof Ember.run.debounce; +export const end: typeof Ember.run.end; +export const join: typeof Ember.run.join; +export const later: typeof Ember.run.later; +export const next: typeof Ember.run.next; +export const once: typeof Ember.run.once; +export const run: typeof Ember.run; +export const schedule: typeof Ember.run.schedule; +export const scheduleOnce: typeof Ember.run.scheduleOnce; +export const throttle: typeof Ember.run.throttle; diff --git a/types/ember__runloop/tsconfig.json b/types/ember__runloop/tsconfig.json new file mode 100644 index 0000000000..3ece4d5f92 --- /dev/null +++ b/types/ember__runloop/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"], + "@ember/engine": ["ember__engine"], + "@ember/engine/*": ["ember__engine/*"], + "@ember/runloop": ["ember__runloop"] + }, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "ember__runloop-tests.ts" + ] +} diff --git a/types/ember__runloop/tslint.json b/types/ember__runloop/tslint.json new file mode 100644 index 0000000000..1a60b8a5dd --- /dev/null +++ b/types/ember__runloop/tslint.json @@ -0,0 +1,4 @@ +{ + "extends": "dtslint/dt.json", + "rules": { } +} diff --git a/types/ember__service/tsconfig.json b/types/ember__service/tsconfig.json index 9f0a8a04c2..f1cfe16ca1 100644 --- a/types/ember__service/tsconfig.json +++ b/types/ember__service/tsconfig.json @@ -15,6 +15,8 @@ "../" ], "paths": { + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"], "@ember/service": ["ember__service"] }, "types": [], diff --git a/types/ember__string/ember__string-tests.ts b/types/ember__string/ember__string-tests.ts new file mode 100644 index 0000000000..1f045b849d --- /dev/null +++ b/types/ember__string/ember__string-tests.ts @@ -0,0 +1,38 @@ +import { dasherize, camelize, capitalize, classify, decamelize, htmlSafe, loc, underscore, w } from '@ember/string'; +import { SafeString } from 'handlebars'; + +dasherize(); // $ExpectError +dasherize('blue man group'); // $ExpectType string +dasherize('', ''); // $ExpectError + +camelize(); // $ExpectError +camelize('blue man group'); // $ExpectType string +camelize('', ''); // $ExpectError + +decamelize(); // $ExpectError +decamelize('blue man group'); // $ExpectType string +decamelize('', ''); // $ExpectError + +underscore(); // $ExpectError +underscore('blue man group'); // $ExpectType string +underscore('', ''); // $ExpectError + +w(); // $ExpectError +w('blue man group'); // $ExpectType string[] +w('', ''); // $ExpectError + +classify(); // $ExpectError +classify('blue man group'); // $ExpectType string +classify('', ''); // $ExpectError + +capitalize(); // $ExpectError +capitalize('blue man group'); // $ExpectType string +capitalize('', ''); // $ExpectError + +loc(); // $ExpectError +loc("_Hello World"); // $ExpectType string +loc("_Hello %@ %@", ["John", "Smith"]); // $ExpectType string + +const handlebarsSafeString: SafeString = htmlSafe('lorem ipsum...'); +htmlSafe('lorem ipsum...'); // $ExpectType SafeString +const regularString: string = htmlSafe('lorem ipsum...'); // $ExpectError diff --git a/types/ember__string/index.d.ts b/types/ember__string/index.d.ts new file mode 100644 index 0000000000..d000cfa443 --- /dev/null +++ b/types/ember__string/index.d.ts @@ -0,0 +1,18 @@ +// Type definitions for @ember/string 3.0 +// Project: http://emberjs.com/ +// Definitions by: Mike North +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +import { SafeString } from 'handlebars'; + +export function camelize(str: string): string; +export function capitalize(str: string): string; +export function classify(str: string): string; +export function dasherize(str: string): string; +export function decamelize(str: string): string; +export function htmlSafe(str: string): Handlebars.SafeString; +export function isHTMLSafe(str: string): boolean; +export function loc(template: string, args?: string[]): string; +export function underscore(str: string): string; +export function w(str: string): string[]; diff --git a/types/ember__string/tsconfig.json b/types/ember__string/tsconfig.json new file mode 100644 index 0000000000..100fad10f5 --- /dev/null +++ b/types/ember__string/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "paths": { + "@ember/string": ["ember__string"] + }, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "ember__string-tests.ts" + ] +} diff --git a/types/ember__string/tslint.json b/types/ember__string/tslint.json new file mode 100644 index 0000000000..10d875b8db --- /dev/null +++ b/types/ember__string/tslint.json @@ -0,0 +1,4 @@ +{ + "extends": "dtslint/dt.json", + "rules": {} +} diff --git a/types/ember__test-helpers/tsconfig.json b/types/ember__test-helpers/tsconfig.json index de0efdd984..31f47f69cb 100644 --- a/types/ember__test-helpers/tsconfig.json +++ b/types/ember__test-helpers/tsconfig.json @@ -17,6 +17,10 @@ "noEmit": true, "forceConsistentCasingInFileNames": true, "paths": { + "@ember/engine": ["ember__engine"], + "@ember/engine/*": ["ember__engine/*"], + "@ember/object": ["ember__object"], + "@ember/object/*": ["ember__object/*"], "@ember/test-helpers": ["ember__test-helpers"] } }, diff --git a/types/ember__test/adapter.d.ts b/types/ember__test/adapter.d.ts new file mode 100644 index 0000000000..5f312cf381 --- /dev/null +++ b/types/ember__test/adapter.d.ts @@ -0,0 +1,2 @@ +import Ember from 'ember'; +export default class TestAdapter extends Ember.Test.Adapter { } diff --git a/types/ember__test/ember__test-tests.ts b/types/ember__test/ember__test-tests.ts new file mode 100644 index 0000000000..b98ab26a01 --- /dev/null +++ b/types/ember__test/ember__test-tests.ts @@ -0,0 +1,39 @@ +import { registerWaiter, registerHelper, registerAsyncHelper } from '@ember/test'; +import TestAdapter from '@ember/test/adapter'; + +const pending = 0; +registerWaiter(() => pending !== 0); + +declare const MyDb: { + hasPendingTransactions(): boolean; +}; + +registerWaiter(MyDb, MyDb.hasPendingTransactions); +registerWaiter(); // $ExpectError + +registerHelper('boot', app => { + app.advanceReadiness(); // $ExpectType void + app.deferReadiness(); // $ExpectType void + app.register('foo', class {}); // $ExpectType void + app.register('foo'); // $ExpectError + app.register(); // $ExpectError +}); + +registerAsyncHelper('boot', app => { + app.advanceReadiness(); + app.deferReadiness(); + app.register('foo', class {}); +}); + +registerAsyncHelper('waitForPromise', (app, promise) => { + app.advanceReadiness(); + app.deferReadiness(); + app.register('foo', class {}); + return new Promise(() => { + const adapter = new TestAdapter(); + adapter.asyncStart(); + return promise.then(() => { + adapter.asyncEnd(); + }); + }); +}); diff --git a/types/ember__test/index.d.ts b/types/ember__test/index.d.ts new file mode 100644 index 0000000000..94bc312566 --- /dev/null +++ b/types/ember__test/index.d.ts @@ -0,0 +1,12 @@ +// Type definitions for @ember/test 3.0 +// Project: http://emberjs.com/ +// Definitions by: Mike North +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +import Ember from 'ember'; +export const registerAsyncHelper: typeof Ember.Test.registerAsyncHelper; +export const registerHelper: typeof Ember.Test.registerHelper; +export const registerWaiter: typeof Ember.Test.registerWaiter; +export const unregisterHelper: typeof Ember.Test.unregisterHelper; +export const unregisterWaiter: typeof Ember.Test.unregisterWaiter; diff --git a/types/ember__test/tsconfig.json b/types/ember__test/tsconfig.json new file mode 100644 index 0000000000..89f8c76b60 --- /dev/null +++ b/types/ember__test/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "paths": { + "@ember/test": ["ember__test"], + "@ember/test/*": ["ember__test/*"] + }, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "adapter.d.ts", + "ember__test-tests.ts" + ] +} diff --git a/types/ember__test/tslint.json b/types/ember__test/tslint.json new file mode 100644 index 0000000000..1a60b8a5dd --- /dev/null +++ b/types/ember__test/tslint.json @@ -0,0 +1,4 @@ +{ + "extends": "dtslint/dt.json", + "rules": { } +} diff --git a/types/ember__utils/-private/types.d.ts b/types/ember__utils/-private/types.d.ts new file mode 100644 index 0000000000..36e1ae42f5 --- /dev/null +++ b/types/ember__utils/-private/types.d.ts @@ -0,0 +1,32 @@ +export type KeysOfType = keyof Pick; + +export interface TypeLookup { + string: string; + number: number; + boolean: boolean; + regexp: RegExp; + function: (...args: any[]) => any; + array: any[]; + error: Error; + filelist: FileList; + date: Date; + null: null; + undefined: undefined; +} + +// TODO: TypeScript 3.0 +// type FunctionArgs any> = F extends (...args: infer ARGS) => any ? ARGS : never; +export type FunctionArgs = + F extends (a: infer A) => any + ? [A] + : F extends (a: infer A, b: infer B) => any + ? [A, B] + : F extends (a: infer A, b: infer B, c: infer C) => any + ? [A, B, C] + : F extends (a: infer A, b: infer B, c: infer C, d: infer D) => any + ? [A, B, C, D] + : F extends (a: infer A, b: infer B, c: infer C, d: infer D, e: infer E) => any + ? [A, B, C, D, E] + : never; diff --git a/types/ember__utils/ember__utils-tests.ts b/types/ember__utils/ember__utils-tests.ts index 8b270f1bec..53121a4e75 100644 --- a/types/ember__utils/ember__utils-tests.ts +++ b/types/ember__utils/ember__utils-tests.ts @@ -8,7 +8,6 @@ import { tryInvoke, typeOf } from '@ember/utils'; -import EmberObject from '@ember/object'; (function() { /** isNone */ @@ -17,8 +16,7 @@ import EmberObject from '@ember/object'; return; } const anotherString = maybeUndefined + 'another string'; - // TODO fix upstream in @types/ember https://github.com/typed-ember/ember-cli-typescript/issues/256 - // isNone(); // $ExpectType boolean + isNone(); // $ExpectType boolean isNone(null); // $ExpectType boolean isNone(undefined); // $ExpectType boolean isNone(''); // $ExpectType boolean @@ -30,10 +28,9 @@ import EmberObject from '@ember/object'; /** tryInvoke */ let d = new Date('03/15/2013'); - // TODO fix enhance in @types/ember https://github.com/typed-ember/ember-cli-typescript/issues/257 - // tryInvoke(d, 'getTime'); // $ExpectType number - // tryInvoke(d, 'setFullYear', [2014]); // $ExpectType number - // tryInvoke(d, 'noSuchMethod', [2014]); // $ExpectType undefined + tryInvoke(d, 'getTime'); // $ExpectType number + tryInvoke(d, 'setFullYear', [2014]); // $ExpectType number + tryInvoke(d, 'noSuchMethod', [2014]); // $ExpectType undefined tryInvoke(d, 'getTime'); tryInvoke(d, 'setFullYear', [2014]); tryInvoke(d, 'noSuchMethod', [2014]); @@ -41,8 +38,7 @@ import EmberObject from '@ember/object'; (function() { /** isPresent */ - // TODO fix upstream in @types/ember https://github.com/typed-ember/ember-cli-typescript/issues/258 - // isPresent(); // $ExpectType boolean + isPresent(); // $ExpectType boolean isPresent(null); // $ExpectType boolean isPresent(undefined); // $ExpectType boolean isPresent(''); // $ExpectType boolean @@ -63,29 +59,27 @@ import EmberObject from '@ember/object'; (function() { /** typeOf */ - // TODO: more specific return type in @types/ember https://github.com/typed-ember/ember-cli-typescript/issues/259 - // typeOf(null); // $ExpectType 'null' - // typeOf(undefined); // $ExpectType 'undefined' - // typeOf('michael'); // $ExpectType 'string' - // // tslint:disable-next-line:no-construct - // typeOf(new String('michael')); // $ExpectType 'string' - // typeOf(101); // $ExpectType 'number' - // // tslint:disable-next-line:no-construct - // typeOf(new Number(101)); // $ExpectType 'number' - // typeOf(true); // $ExpectType 'boolean' - // // tslint:disable-next-line:no-construct - // typeOf(new Boolean(true)); // $ExpectType 'boolean' - // typeOf(() => 4); // $ExpectType 'function' - // typeOf([1, 2, 90]); // $ExpectType 'array' - // typeOf(/abc/); // $ExpectType 'regexp' - // typeOf(new Date()); // $ExpectType 'date' - // typeOf(FileList); // $ExpectType 'filelist' - // // typeOf(EmberObject.extend()); // $ExpectType 'class' - // // typeOf(EmberObject.create()); // $ExpectType 'instance' - // typeOf(new Error('teamocil')); // $ExpectType 'error' + typeOf(null); // $ExpectType "null" + typeOf(undefined); // $ExpectType "undefined" + typeOf('michael'); // $ExpectType "string" + // tslint:disable-next-line:no-construct + typeOf(new String('michael')); // $ExpectType "string" + typeOf(101); // $ExpectType "number" + // tslint:disable-next-line:no-construct + typeOf(new Number(101)); // $ExpectType "number" + typeOf(true); // $ExpectType "boolean" + // tslint:disable-next-line:no-construct + typeOf(new Boolean(true)); // $ExpectType "boolean" + typeOf(() => 4); // $ExpectType "function" + typeOf([1, 2, 90]); // $ExpectType "array" + typeOf(/abc/); // $ExpectType "regexp" + typeOf(new Date()); // $ExpectType "date" + typeOf(new FileList()); // $ExpectType "filelist" + // typeOf(EmberObject.extend()); // $ExpectType "class" + // typeOf(EmberObject.create()); // $ExpectType "instance" + typeOf(new Error('teamocil')); // $ExpectType "error" - // TODO fix upstream in @types/ember https://github.com/typed-ember/ember-cli-typescript/issues/260 - // typeOf(); + typeOf(); typeOf(null); typeOf(undefined); typeOf('michael'); @@ -130,8 +124,7 @@ import EmberObject from '@ember/object'; (function() { /** isBlank */ - // TODO fix upstream in @types/ember https://github.com/typed-ember/ember-cli-typescript/issues/254 - // isBlank(); // $ExpectType boolean + isBlank(); // $ExpectType boolean isBlank(null); // $ExpectType boolean isBlank(undefined); // $ExpectType boolean isBlank(''); // $ExpectType boolean @@ -147,8 +140,7 @@ import EmberObject from '@ember/object'; (function() { /** isEmpty */ - // TODO fix upstream in @types/ember https://github.com/typed-ember/ember-cli-typescript/issues/255 - // isEmpty(); // $ExpectType boolean + isEmpty(); // $ExpectType boolean isEmpty(null); // $ExpectType boolean isEmpty(undefined); // $ExpectType boolean isEmpty(''); // $ExpectType boolean @@ -162,10 +154,3 @@ import EmberObject from '@ember/object'; isEmpty({ size: 1 }); // $ExpectType boolean isEmpty({ size: () => 0 }); // $ExpectType boolean })(); - -class Foo extends EmberObject.extend({ - abc: true, - bar() { return '123'; } -}) { - def: 'hello'; -} diff --git a/types/ember__utils/index.d.ts b/types/ember__utils/index.d.ts index 89a9a6cd96..4489602a23 100644 --- a/types/ember__utils/index.d.ts +++ b/types/ember__utils/index.d.ts @@ -4,13 +4,57 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 -import Ember from 'ember'; +import { TypeLookup, KeysOfType, FunctionArgs } from "./-private/types"; -export const compare: typeof Ember.compare; -export const isBlank: typeof Ember.isBlank; -export const isEmpty: typeof Ember.isEmpty; -export const isEqual: typeof Ember.isEqual; -export const isNone: typeof Ember.isNone; -export const isPresent: typeof Ember.isPresent; -export const tryInvoke: typeof Ember.tryInvoke; -export const typeOf: typeof Ember.typeOf; +/** + * Compares two javascript values and returns: + */ +export function compare(v: any, w: any): number; + +/** + * A value is blank if it is empty or a whitespace string. + */ +export function isBlank(obj?: any): boolean; + +/** + * Verifies that a value is `null` or an empty string, empty array, + * or empty function. + */ +export function isEmpty(obj?: any): boolean; + +/** + * Compares two objects, returning true if they are equal. + */ +export function isEqual(a: any, b: any): boolean; + +/** + * Returns true if the passed value is null or undefined. This avoids errors + * from JSLint complaining about use of ==, which can be technically + * confusing. + */ +export function isNone(obj?: any): obj is null | undefined; + +/** + * A value is present if it not `isBlank`. + */ +export function isPresent(obj?: any): boolean; + +/** + * Checks to see if the `methodName` exists on the `obj`, + * and if it does, invokes it with the arguments passed. + */ +export function tryInvoke( + obj: T, + methodName: FNAME, + args: FunctionArgs): T[FNAME] extends ((...args: any[]) => any) + ? ReturnType + : undefined; +export function tryInvoke(obj: T, methodName: FNAME): T[FNAME] extends (() => any) ? ReturnType : undefined; +export function tryInvoke(obj: object, methodName: string, args?: any[]): undefined; + +/** + * Returns a consistent type for the passed object. + */ +export function typeOf(value: T): KeysOfType; +export function typeOf(): 'undefined'; +export function typeOf(item: any): string; diff --git a/types/ember__utils/tsconfig.json b/types/ember__utils/tsconfig.json index 559e22e847..505ee72dec 100644 --- a/types/ember__utils/tsconfig.json +++ b/types/ember__utils/tsconfig.json @@ -23,6 +23,7 @@ }, "files": [ "index.d.ts", + "-private/types.d.ts", "ember__utils-tests.ts" ] } diff --git a/types/encoding-down/encoding-down-tests.ts b/types/encoding-down/encoding-down-tests.ts new file mode 100644 index 0000000000..c541522317 --- /dev/null +++ b/types/encoding-down/encoding-down-tests.ts @@ -0,0 +1,13 @@ +import { AbstractLevelDOWN } from 'abstract-leveldown'; +import EncodingDOWN from 'encoding-down'; + +const test = (encoding: EncodingDOWN) => { + encoding.put("key", "value", (err?: Error) => { }); + encoding.put(1, "value", { something: true }, (err?: Error) => { }); + + encoding.get("key", (err?: Error) => { }); + encoding.get(1, { something: true }, (err: Error | undefined, value: any) => { }); +}; + +// $ExpectType void +test(new EncodingDOWN(new AbstractLevelDOWN("here"))); diff --git a/types/encoding-down/index.d.ts b/types/encoding-down/index.d.ts new file mode 100644 index 0000000000..d25ff11f2c --- /dev/null +++ b/types/encoding-down/index.d.ts @@ -0,0 +1,59 @@ +// Type definitions for encoding-down 5.0 +// Project: https://github.com/Level/encoding-down +// Definitions by: Meirion Hughes +// Daniel Byrne +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +import { + AbstractLevelDOWN, + AbstractIteratorOptions, + AbstractIterator, + AbstractOpenOptions, + AbstractGetOptions, + ErrorCallback, + ErrorValueCallback, + AbstractChainedBatch, + AbstractBatch, + AbstractOptions +} from 'abstract-leveldown'; + +import { CodecOptions, CodecEncoder } from 'level-codec'; + +interface EncodingDown extends AbstractLevelDOWN { + get(key: K, cb: ErrorValueCallback): void; + get(key: K, options: EncodingDown.GetOptions, cb: ErrorValueCallback): void; + + put(key: K, value: V, cb: ErrorCallback): void; + put(key: K, value: V, options: EncodingDown.PutOptions, cb: ErrorCallback): void; + + del(key: K, cb: ErrorCallback): void; + del(key: K, options: EncodingDown.DelOptions, cb: ErrorCallback): void; + + batch(): EncodingDown.ChainedBatch; + batch(array: AbstractBatch[], cb: ErrorCallback): EncodingDown.ChainedBatch; + batch(array: AbstractBatch[], options: EncodingDown.BatchOptions, cb: ErrorCallback): EncodingDown.ChainedBatch; + + iterator(options?: EncodingDown.IteratorOptions): AbstractIterator; +} + +declare namespace EncodingDown { + interface GetOptions extends AbstractGetOptions, CodecOptions {} + interface PutOptions extends AbstractOptions, CodecOptions {} + interface DelOptions extends AbstractOptions, CodecOptions {} + interface BatchOptions extends AbstractOptions, CodecOptions {} + interface IteratorOptions extends AbstractIteratorOptions, CodecOptions {} + interface ChainedBatch extends AbstractChainedBatch { + write(cb: any): any; + write(options: CodecOptions & AbstractOptions, cb: any): any; + } + interface Constructor { + // tslint:disable-next-line:no-unnecessary-generics + (db: AbstractLevelDOWN, options?: CodecOptions): EncodingDown; + // tslint:disable-next-line:no-unnecessary-generics + new (db: AbstractLevelDOWN, options?: CodecOptions): EncodingDown; + } +} + +declare const EncodingDown: EncodingDown.Constructor; +export default EncodingDown; diff --git a/types/encoding-down/tsconfig.json b/types/encoding-down/tsconfig.json new file mode 100644 index 0000000000..d95d49b5c7 --- /dev/null +++ b/types/encoding-down/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "encoding-down-tests.ts" + ] +} \ No newline at end of file diff --git a/types/encoding-down/tslint.json b/types/encoding-down/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/encoding-down/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/enzyme/enzyme-tests.tsx b/types/enzyme/enzyme-tests.tsx index e1762b843e..0711243d0c 100644 --- a/types/enzyme/enzyme-tests.tsx +++ b/types/enzyme/enzyme-tests.tsx @@ -363,6 +363,10 @@ function ShallowWrapperTest() { shallowWrapper.simulate('click', args); } + function test_simulateError(error: any) { + shallowWrapper.simulateError(error); + } + function test_setState() { shallowWrapper = shallowWrapper.setState({ stateProperty: 'state' }, () => console.log('state updated')); } diff --git a/types/enzyme/index.d.ts b/types/enzyme/index.d.ts index a91f60b3c6..60262e3d04 100644 --- a/types/enzyme/index.d.ts +++ b/types/enzyme/index.d.ts @@ -221,6 +221,13 @@ export interface CommonWrapper

> { */ simulate(event: string, ...args: any[]): this; + /** + * Used to simulate throwing a rendering error. Pass an error to throw. + * Returns itself. + * @param error + */ + simulateError(error: any): this; + /** * A method to invoke setState() on the root component instance similar to how you might in the definition of * the component, and re-renders. This method is useful for testing your component in hard to achieve states, diff --git a/types/fabric/fabric-impl.d.ts b/types/fabric/fabric-impl.d.ts index 6749f6b47c..9ca9cee5ce 100644 --- a/types/fabric/fabric-impl.d.ts +++ b/types/fabric/fabric-impl.d.ts @@ -2048,6 +2048,11 @@ interface IObjectOptions { */ borderColor?: string; + /** + * Array specifying dash pattern of an object's border (hasBorder must be true) + */ + borderDashArray?: number[]; + /** * Color of controlling corners of an object (when it's active) */ @@ -3114,6 +3119,10 @@ interface ITextOptions extends IObjectOptions { * Line height */ lineHeight?: number; + /** + * Character spacing + */ + charSpacing?: number; /** * When defined, an object is rendered via stroke and this property specifies its color. * Backwards incompatibility note?: This property was named "strokeStyle" until v1.1.6 @@ -3254,6 +3263,15 @@ export class Text extends Object { * @param lineHeight Line height */ setLineHeight(lineHeight: number): Text; + /** + * Retrieves object's charSpacing + */ + getCharSpacing(): number; + /** + * Sets object's charSpacing + * @param charSpacing Character spacing + */ + setCharSpacing(charSpacing: number): Text; /** * Retrieves object's textAlign */ diff --git a/types/fastify-jwt/fastify-jwt-tests.ts b/types/fastify-jwt/fastify-jwt-tests.ts new file mode 100644 index 0000000000..9015990b25 --- /dev/null +++ b/types/fastify-jwt/fastify-jwt-tests.ts @@ -0,0 +1,85 @@ +import { IncomingMessage, Server, ServerResponse } from "http"; +import { FastifyInstance, FastifyReply, FastifyRequest } from "fastify-jwt"; + +const fastify: FastifyInstance = { + jwt: { + decode: (token, options) => { + return token; + }, + secret: "some-string", + sign: (payload, options) => { + return JSON.stringify(payload); + }, + verify: (token, options) => { + return token; + }, + }, +}; + +const req: FastifyRequest = { + jwtVerify: (_options) => { + return req; + }, +}; + +const res: FastifyReply = { + jwtSign: (_payload, _options, _next) => { + return res; + }, +}; + +fastify.jwt.sign({ a: "b" }, {}, (err, token) => { + if (err) { + throw err; + } + + return token; +}); + +fastify.jwt.sign("string", { algorithm: "some-algorithm" }, (err, token) => { + if (err) { + throw err; + } + + return token; +}); + +fastify.jwt.sign([], {}, (err, token) => { + if (err) { + throw err; + } + + return token; +}); + +fastify.jwt.sign(9999, {}, (err, token) => { + if (err) { + throw err; + } + + return token; +}); + +fastify.jwt.decode("some-token"); +fastify.jwt.decode("some-token"); +fastify.jwt.secret = "some-secret"; +fastify.jwt.verify("some-token", {}, (err) => { + if (err) { + throw err; + } + + return true; +}); + +req.jwtVerify(); +req.jwtVerify({}); +req.jwtVerify({}, () => "string"); +req.jwtVerify(() => "string", () => "string"); + +res.jwtSign("payload"); +res.jwtSign("payload", {}); +res.jwtSign("payload", {}, () => "string"); +res.jwtSign({ a: "b" }, {}, () => "string"); +res.jwtSign([], {}, () => "string"); +res.jwtSign(9999, {}, () => "string"); +res.jwtSign("payload", () => "string", () => "string"); diff --git a/types/fastify-jwt/index.d.ts b/types/fastify-jwt/index.d.ts new file mode 100644 index 0000000000..801a135f84 --- /dev/null +++ b/types/fastify-jwt/index.d.ts @@ -0,0 +1,26 @@ +// Type definitions for fastify-jwt 0.4 +// Project: https://github.com/fastify/fastify-jwt#readme +// Definitions by: My Self +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +import { Secret, SignOptions, VerifyOptions, VerifyCallback, SignCallback, DecodeOptions } from 'jsonwebtoken'; + +export interface FastifyInstance { + jwt: jwt; +} + +export interface jwt { + sign: (payload: any, options?: SignOptions, callback?: SignCallback) => void; + verify: (token: string, options?: VerifyOptions, callback?: VerifyCallback) => void; + decode: (token: string, options?: DecodeOptions) => null | { [key: string]: any } | string; + secret: Secret; +} + +export interface FastifyRequest { + jwtVerify: (options?: VerifyOptions | VerifyCallback, next?: VerifyCallback) => Promise | null | { [key: string]: any } | string; +} + +export interface FastifyReply { + jwtSign: (payload: any, options?: SignOptions | SignCallback, next?: SignCallback) => void; +} diff --git a/types/fastify-jwt/tsconfig.json b/types/fastify-jwt/tsconfig.json new file mode 100644 index 0000000000..a0149e0fe8 --- /dev/null +++ b/types/fastify-jwt/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": false, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "fastify-jwt-tests.ts" + ] +} diff --git a/types/fastify-jwt/tslint.json b/types/fastify-jwt/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/fastify-jwt/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/find-process/find-process-tests.ts b/types/find-process/find-process-tests.ts new file mode 100644 index 0000000000..0f43ada399 --- /dev/null +++ b/types/find-process/find-process-tests.ts @@ -0,0 +1,16 @@ +/// + +import find = require('find-process'); + +find('pid', 12345).then((processList) => { + processList.forEach((ps) => { + console.log('Full command with args: ' + ps.cmd); + console.log('User group ID (for *nix): ' + ps.gid); + console.log('command/process name: ' + ps.name); + console.log('Process ID: ' + ps.pid); + console.log('Parent process ID: ' + ps.ppid); + console.log('User ID (for *nix): ' + ps.uid); + }); +}, (err) => { + console.log(err.stack || err); +}); diff --git a/types/find-process/index.d.ts b/types/find-process/index.d.ts new file mode 100644 index 0000000000..078a36c0aa --- /dev/null +++ b/types/find-process/index.d.ts @@ -0,0 +1,10 @@ +// Type definitions for find-process 1.1 +// Project: https://github.com/yibn2008/find-process +// Definitions by: Buaban Buataitom +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +declare function find(by: string, value: string | number): Promise>; +declare namespace find {} + +export = find; diff --git a/types/find-process/tsconfig.json b/types/find-process/tsconfig.json new file mode 100644 index 0000000000..4b17c53c33 --- /dev/null +++ b/types/find-process/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": ["index.d.ts", "find-process-tests.ts"] +} diff --git a/types/find-process/tslint.json b/types/find-process/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/find-process/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} diff --git a/types/fluent-ffmpeg/index.d.ts b/types/fluent-ffmpeg/index.d.ts index 1e9eaf5eb4..317a772d59 100644 --- a/types/fluent-ffmpeg/index.d.ts +++ b/types/fluent-ffmpeg/index.d.ts @@ -1,6 +1,8 @@ // Type definitions for node-fluent-ffmpeg 2.1 // Project: https://github.com/fluent-ffmpeg/node-fluent-ffmpeg -// Definitions by: KIM Jaesuck a.k.a. gim tcaesvk , DingWeizhe +// Definitions by: KIM Jaesuck a.k.a. gim tcaesvk +// DingWeizhe +// Mounir Abid // Definitions: https://github.com/DefinitelyType/DefinitelyTyped /// @@ -11,7 +13,7 @@ import * as stream from "stream"; declare namespace Ffmpeg { interface FfmpegCommandLogger { error(...data: any[]): void; - warning(...data: any[]): void; + warn(...data: any[]): void; info(...data: any[]): void; debug(...data: any[]): void; } diff --git a/types/franc/franc-tests.ts b/types/franc/franc-tests.ts new file mode 100644 index 0000000000..cb687e1001 --- /dev/null +++ b/types/franc/franc-tests.ts @@ -0,0 +1,14 @@ +import detect = require('franc'); + +const testText = 'This is an example sentence'; +const testOptions = { + minLength: 3, + whitelist: ['eng'], + blacklist: [], +}; + +detect(testText); +detect(testText, testOptions); + +detect.all(testText); +detect.all(testText, testOptions)[0]; diff --git a/types/franc/index.d.ts b/types/franc/index.d.ts new file mode 100644 index 0000000000..613c46946f --- /dev/null +++ b/types/franc/index.d.ts @@ -0,0 +1,24 @@ +// Type definitions for franc 4.0 +// Project: https://github.com/wooorm/franc/ +// Definitions by: William LeGate +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +// ISO 639-3 code (see: https://iso639-3.sil.org/code_tables/639/data) +type ISO6393 = string; + +// Range [0, 1] +type Confidence = number; + +interface Options { + minLength?: number; + whitelist?: ISO6393[]; + blacklist?: ISO6393[]; +} + +declare function detect(text: string, options?: Options): ISO6393; + +declare namespace detect { + function all(text: string, options?: Options): [ISO6393, number]; +} + +export = detect; diff --git a/types/franc/tsconfig.json b/types/franc/tsconfig.json new file mode 100644 index 0000000000..2fe0151ec5 --- /dev/null +++ b/types/franc/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": ["index.d.ts", "franc-tests.ts"] +} diff --git a/types/franc/tslint.json b/types/franc/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/franc/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/freedom/tsconfig.json b/types/freedom/tsconfig.json index dd0bd2e13c..adada163d4 100644 --- a/types/freedom/tsconfig.json +++ b/types/freedom/tsconfig.json @@ -1,24 +1,16 @@ { - "files": [ - "index.d.ts", - "freedom-tests.ts" - ], + "files": ["index.d.ts", "freedom-tests.ts"], "compilerOptions": { "module": "commonjs", - "lib": [ - "es6", - "dom" - ], + "lib": ["es6", "dom"], "noImplicitAny": true, "noImplicitThis": true, "strictNullChecks": false, "strictFunctionTypes": true, "baseUrl": "../", - "typeRoots": [ - "../" - ], + "typeRoots": ["../"], "types": [], "noEmit": true, "forceConsistentCasingInFileNames": true } -} \ No newline at end of file +} diff --git a/types/fuzzaldrin-plus/fuzzaldrin-plus-tests.ts b/types/fuzzaldrin-plus/fuzzaldrin-plus-tests.ts index b5d83d4e9c..ac3579ef4b 100644 --- a/types/fuzzaldrin-plus/fuzzaldrin-plus-tests.ts +++ b/types/fuzzaldrin-plus/fuzzaldrin-plus-tests.ts @@ -196,16 +196,8 @@ fz.filter(['Maybe', 'Me'], 'me', { key: true }) // $ExpectError fz.filter(['Maybe', 'Me'], 'me', { preparedQuery: {} }) // $ExpectError -fz.filter([{ title: 'Maybe' }, { title: 'Me' }], 'me', { - key: 1 -}) +fz.filter([{ title: 'Maybe' }, { title: 'Me' }], 'me', { key: 1 }) // $ExpectError -fz.filter([{ title: 'Maybe' }, { title: 'Me' }], 'me', { - allowErrors: 'not a boolean', - key: 1 -}) +fz.filter([{ title: 'Maybe' }, { title: 'Me' }], 'me', { allowErrors: 'not a boolean', key: 1 }) // $ExpectError -fz.filter([{ title: 'Maybe' }, { title: 'Me' }], 'me', { - allowErrors: 'not a boolean', - key: 'title' -}) +fz.filter([{ title: 'Maybe' }, { title: 'Me' }], 'me', { allowErrors: 'not a boolean', key: 'title' }) diff --git a/types/gl-matrix/gl-matrix-tests.ts b/types/gl-matrix/gl-matrix-tests.ts index cf9c4ef616..e557acf79d 100644 --- a/types/gl-matrix/gl-matrix-tests.ts +++ b/types/gl-matrix/gl-matrix-tests.ts @@ -74,6 +74,7 @@ outVec2 = vec2.cross(outVec3, vec2A, vec2B); outVec2 = vec2.lerp(outVec2, vec2A, vec2B, 0.5); outVec2 = vec2.random(outVec2); outVec2 = vec2.random(outVec2, 5.0); +outVec2 = vec2.rotate(outVec2, vec2A, vec2B, Math.PI * 0.5); outVec2 = vec2.transformMat2(outVec2, vec2A, mat2A); outVec2 = vec2.transformMat2d(outVec2, vec2A, mat2dA); outVec2 = vec2.transformMat3(outVec2, vec2A, mat3A); diff --git a/types/gl-matrix/index.d.ts b/types/gl-matrix/index.d.ts index 2c86b6a057..33db200cd6 100644 --- a/types/gl-matrix/index.d.ts +++ b/types/gl-matrix/index.d.ts @@ -374,6 +374,17 @@ declare module 'gl-matrix' { */ public static random(out: vec2, scale: number): vec2; + /** + * Rotate a 2D vector + * + * @param out The receiving vec2 + * @param a The vec2 point to rotate + * @param b The origin of the rotation + * @param c The angle of rotation + * @returns out + */ + public static rotate(out: vec2, a: vec2, b: vec2, c: number): vec2; + /** * Transforms the vec2 with a mat2 * @@ -1959,13 +1970,13 @@ declare module 'gl-matrix' { * @returns out */ public static transpose(out: mat3, a: mat3): mat3; - + /** * Generates a 2D projection matrix with the given bounds * * @param out the receiving matrix * @param width width of your gl context - * @param height height of gl context + * @param height height of gl context * @returns out */ public static projection(out: mat3, width: number, height: number): mat3; @@ -2510,9 +2521,9 @@ declare module 'gl-matrix' { public static getTranslation(out: vec3, mat: mat4): vec3; /** - * Returns the scaling factor component of a transformation matrix. - * If a matrix is built with fromRotationTranslationScale with a - * normalized Quaternion parameter, the returned vector will be + * Returns the scaling factor component of a transformation matrix. + * If a matrix is built with fromRotationTranslationScale with a + * normalized Quaternion parameter, the returned vector will be * the same as the scaling vector originally supplied. * @param {vec3} out Vector to receive scaling factor component * @param {mat4} mat Matrix to be decomposed (input) diff --git a/types/glob/glob-tests.ts b/types/glob/glob-tests.ts index e0f612e682..e67e41317b 100644 --- a/types/glob/glob-tests.ts +++ b/types/glob/glob-tests.ts @@ -5,7 +5,7 @@ const Glob = glob.Glob; const pattern = "test/a/**/[cg]/../[cg]"; console.log(pattern); - const mg = new Glob(pattern, {mark: true, sync: true}, (er, matches) => { + const mg = new Glob(pattern, {mark: true, sync: true, symlinks: {"test/a/foo": true}}, (er, matches) => { if (er) { console.error(er); return; @@ -28,3 +28,6 @@ const Glob = glob.Glob; }); console.log("after"); })(); + +glob.sync('/foo/*', {realpath: true, realpathCache: {'/foo/bar': '/bar'}, ignore: '/foo/baz'}); +glob.sync('/*', {nodir: true, cache: {'/': ['bar', 'baz']}, statCache: {'/foo/bar': false, '/foo/baz': {isDirectory() { return true; }}}}); diff --git a/types/glob/index.d.ts b/types/glob/index.d.ts index 92c2532e79..9b0e1e5cb8 100644 --- a/types/glob/index.d.ts +++ b/types/glob/index.d.ts @@ -1,13 +1,13 @@ -// Type definitions for Glob 5.0 +// Type definitions for Glob 7.1 // Project: https://github.com/isaacs/node-glob // Definitions by: vvakame // voy +// Klaus Meinhardt // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// import events = require("events"); -import fs = require('fs'); import minimatch = require("minimatch"); declare function G(pattern: string, cb: (err: Error | null, matches: string[]) => void): void; @@ -33,9 +33,10 @@ declare namespace G { stat?: boolean; silent?: boolean; strict?: boolean; - cache?: { [path: string]: any /* boolean | string | string[] */ }; - statCache?: { [path: string]: fs.Stats }; - symlinks?: any; + cache?: { [path: string]: boolean | 'DIR' | 'FILE' | string[] }; + statCache?: { [path: string]: false | { isDirectory(): boolean} | undefined }; + symlinks?: { [path: string]: boolean | undefined }; + realpathCache?: { [path: string]: string }; sync?: boolean; nounique?: boolean; nonull?: boolean; @@ -46,15 +47,12 @@ declare namespace G { nocase?: boolean; matchBase?: any; nodir?: boolean; - ignore?: any; /* string | string[] */ + ignore?: string | string[]; follow?: boolean; realpath?: boolean; nonegate?: boolean; nocomment?: boolean; absolute?: boolean; - - /** Deprecated. */ - globDebug?: boolean; } interface IGlobStatic extends events.EventEmitter { @@ -72,9 +70,9 @@ declare namespace G { minimatch: minimatch.IMinimatch; options: IOptions; aborted: boolean; - cache: { [path: string]: any /* boolean | string | string[] */ }; - statCache: { [path: string]: fs.Stats }; - symlinks: { [path: string]: boolean }; + cache: { [path: string]: boolean | 'DIR' | 'FILE' | string[] }; + statCache: { [path: string]: false | { isDirectory(): boolean; } | undefined }; + symlinks: { [path: string]: boolean | undefined }; realpathCache: { [path: string]: string }; found: string[]; } @@ -83,29 +81,6 @@ declare namespace G { pause(): void; resume(): void; abort(): void; - - /** Deprecated. */ - EOF: any; - /** Deprecated. */ - paused: boolean; - /** Deprecated. */ - maxDepth: number; - /** Deprecated. */ - maxLength: number; - /** Deprecated. */ - changedCwd: boolean; - /** Deprecated. */ - cwd: string; - /** Deprecated. */ - root: string; - /** Deprecated. */ - error: any; - /** Deprecated. */ - matches: string[]; - /** Deprecated. */ - log(...args: any[]): void; - /** Deprecated. */ - emitMatch(m: any): void; } } diff --git a/types/glob/v5/glob-tests.ts b/types/glob/v5/glob-tests.ts new file mode 100644 index 0000000000..e0f612e682 --- /dev/null +++ b/types/glob/v5/glob-tests.ts @@ -0,0 +1,30 @@ +import glob = require("glob"); +const Glob = glob.Glob; + +(() => { + const pattern = "test/a/**/[cg]/../[cg]"; + console.log(pattern); + + const mg = new Glob(pattern, {mark: true, sync: true}, (er, matches) => { + if (er) { + console.error(er); + return; + } + console.log("matches", matches); + }); + console.log("after"); +})(); + +(() => { + const pattern = "{./*/*,/*,/usr/local/*}"; + console.log(pattern); + + const mg = new Glob(pattern, {mark: true}, (er, matches) => { + if (er) { + console.error(er); + return; + } + console.log("matches", matches); + }); + console.log("after"); +})(); diff --git a/types/glob/v5/index.d.ts b/types/glob/v5/index.d.ts new file mode 100644 index 0000000000..92c2532e79 --- /dev/null +++ b/types/glob/v5/index.d.ts @@ -0,0 +1,112 @@ +// Type definitions for Glob 5.0 +// Project: https://github.com/isaacs/node-glob +// Definitions by: vvakame +// voy +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +import events = require("events"); +import fs = require('fs'); +import minimatch = require("minimatch"); + +declare function G(pattern: string, cb: (err: Error | null, matches: string[]) => void): void; +declare function G(pattern: string, options: G.IOptions, cb: (err: Error | null, matches: string[]) => void): void; + +declare namespace G { + function __promisify__(pattern: string, options?: IOptions): Promise; + + function sync(pattern: string, options?: IOptions): string[]; + + function hasMagic(pattern: string, options?: IOptions): boolean; + + let Glob: IGlobStatic; + let GlobSync: IGlobSyncStatic; + + interface IOptions extends minimatch.IOptions { + cwd?: string; + root?: string; + dot?: boolean; + nomount?: boolean; + mark?: boolean; + nosort?: boolean; + stat?: boolean; + silent?: boolean; + strict?: boolean; + cache?: { [path: string]: any /* boolean | string | string[] */ }; + statCache?: { [path: string]: fs.Stats }; + symlinks?: any; + sync?: boolean; + nounique?: boolean; + nonull?: boolean; + debug?: boolean; + nobrace?: boolean; + noglobstar?: boolean; + noext?: boolean; + nocase?: boolean; + matchBase?: any; + nodir?: boolean; + ignore?: any; /* string | string[] */ + follow?: boolean; + realpath?: boolean; + nonegate?: boolean; + nocomment?: boolean; + absolute?: boolean; + + /** Deprecated. */ + globDebug?: boolean; + } + + interface IGlobStatic extends events.EventEmitter { + new (pattern: string, cb?: (err: Error | null, matches: string[]) => void): IGlob; + new (pattern: string, options: IOptions, cb?: (err: Error | null, matches: string[]) => void): IGlob; + prototype: IGlob; + } + + interface IGlobSyncStatic { + new (pattern: string, options?: IOptions): IGlobBase; + prototype: IGlobBase; + } + + interface IGlobBase { + minimatch: minimatch.IMinimatch; + options: IOptions; + aborted: boolean; + cache: { [path: string]: any /* boolean | string | string[] */ }; + statCache: { [path: string]: fs.Stats }; + symlinks: { [path: string]: boolean }; + realpathCache: { [path: string]: string }; + found: string[]; + } + + interface IGlob extends IGlobBase, events.EventEmitter { + pause(): void; + resume(): void; + abort(): void; + + /** Deprecated. */ + EOF: any; + /** Deprecated. */ + paused: boolean; + /** Deprecated. */ + maxDepth: number; + /** Deprecated. */ + maxLength: number; + /** Deprecated. */ + changedCwd: boolean; + /** Deprecated. */ + cwd: string; + /** Deprecated. */ + root: string; + /** Deprecated. */ + error: any; + /** Deprecated. */ + matches: string[]; + /** Deprecated. */ + log(...args: any[]): void; + /** Deprecated. */ + emitMatch(m: any): void; + } +} + +export = G; diff --git a/types/glob/v5/tsconfig.json b/types/glob/v5/tsconfig.json new file mode 100644 index 0000000000..d23d57a828 --- /dev/null +++ b/types/glob/v5/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": false, + "strictFunctionTypes": true, + "baseUrl": "../../", + "typeRoots": [ + "../../" + ], + "paths": { + "glob": [ + "glob/v5" + ] + }, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "glob-tests.ts" + ] +} diff --git a/types/glob/v5/tslint.json b/types/glob/v5/tslint.json new file mode 100644 index 0000000000..2c7c1bed53 --- /dev/null +++ b/types/glob/v5/tslint.json @@ -0,0 +1,6 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + "interface-name": false + } +} diff --git a/types/google-apps-script/google-apps-script.properties.d.ts b/types/google-apps-script/google-apps-script.properties.d.ts index 184c46b28f..af38a01c9f 100644 --- a/types/google-apps-script/google-apps-script.properties.d.ts +++ b/types/google-apps-script/google-apps-script.properties.d.ts @@ -19,7 +19,7 @@ declare namespace GoogleAppsScript { deleteProperty(key: string): Properties; getKeys(): string[]; getProperties(): Object; - getProperty(key: string): string; + getProperty(key: string): string | null; setProperties(properties: Object): Properties; setProperties(properties: Object, deleteAllOthers: boolean): Properties; setProperty(key: string, value: string): Properties; @@ -56,7 +56,7 @@ declare namespace GoogleAppsScript { deleteProperty(key: string): ScriptProperties; getKeys(): string[]; getProperties(): Object; - getProperty(key: string): string; + getProperty(key: string): string | null; setProperties(properties: Object): ScriptProperties; setProperties(properties: Object, deleteAllOthers: boolean): ScriptProperties; setProperty(key: string, value: string): ScriptProperties; @@ -73,7 +73,7 @@ declare namespace GoogleAppsScript { deleteProperty(key: string): UserProperties; getKeys(): string[]; getProperties(): Object; - getProperty(key: string): string; + getProperty(key: string): string | null; setProperties(properties: Object): UserProperties; setProperties(properties: Object, deleteAllOthers: boolean): UserProperties; setProperty(key: string, value: string): UserProperties; diff --git a/types/google-map-react/google-map-react-tests.tsx b/types/google-map-react/google-map-react-tests.tsx index 552e75d362..09bd8588be 100644 --- a/types/google-map-react/google-map-react-tests.tsx +++ b/types/google-map-react/google-map-react-tests.tsx @@ -13,6 +13,17 @@ const options: MapOptions = { featureType: "administrative", elementType: "all", stylers: [ {saturation: "-100"} ] + }, + { + featureType: "administrative.neighborhood", + stylers: [ {visibility: "off" } ] + }, + { + elementType: "labels.text.stroke", + stylers: [ {color: "#242f3e"} ] + }, + { + stylers: [ {color: "#fcfffd"} ] } ], }; diff --git a/types/google-map-react/index.d.ts b/types/google-map-react/index.d.ts index 6f4cf1fe7f..4c566df796 100644 --- a/types/google-map-react/index.d.ts +++ b/types/google-map-react/index.d.ts @@ -9,8 +9,8 @@ import * as React from 'react'; export type BootstrapURLKeys = ({ key: string; } | { client: string; v: string; }) & { language?: string }; export interface MapTypeStyle { - elementType: string; - featureType: string; + elementType?: string; + featureType?: string; stylers: any[]; } diff --git a/types/got/got-tests.ts b/types/got/got-tests.ts index 1eb2d89aa8..610ac87c26 100644 --- a/types/got/got-tests.ts +++ b/types/got/got-tests.ts @@ -258,3 +258,5 @@ got('todomvc', { got(new url.URL('http://todomvc.com')); got(url.parse('http://todomvc.com')); + +got('https://todomvc.com', { rejectUnauthorized: false }); diff --git a/types/got/index.d.ts b/types/got/index.d.ts index 86a3d42131..775985e581 100644 --- a/types/got/index.d.ts +++ b/types/got/index.d.ts @@ -75,7 +75,7 @@ declare const got: got.GotFn & CancelError: typeof CancelError; }; -interface InternalRequestOptions extends http.RequestOptions { +interface InternalRequestOptions extends https.RequestOptions { // Redeclare options with `any` type for allow specify types incompatible with http.RequestOptions. timeout?: any; agent?: any; @@ -93,7 +93,7 @@ declare namespace got { type GotStreamFn = (url: GotUrl, options?: GotOptions) => GotEmitter & nodeStream.Duplex; - type GotUrl = string | http.RequestOptions | Url | URL; + type GotUrl = string | https.RequestOptions | Url | URL; interface GotBodyOptions extends GotOptions { body?: string | Buffer | nodeStream.Readable; diff --git a/types/graphql-relay/index.d.ts b/types/graphql-relay/index.d.ts index 842e1ad4f1..87634b98c9 100644 --- a/types/graphql-relay/index.d.ts +++ b/types/graphql-relay/index.d.ts @@ -244,6 +244,7 @@ export interface MutationConfig { inputFields: Thunk; outputFields: Thunk>; mutateAndGetPayload: mutationFn; + deprecationReason?: string; } /** diff --git a/types/heatmap.js/heatmap.js-tests.ts b/types/heatmap.js/heatmap.js-tests.ts index ca1d3ff604..cc8d62ced4 100644 --- a/types/heatmap.js/heatmap.js-tests.ts +++ b/types/heatmap.js/heatmap.js-tests.ts @@ -115,11 +115,8 @@ declare const container: HTMLElement; data: validData }); - heatmap.setData({ // $ExpectError - min: 0, - max: 1, - data: [{ xPos: 1, yPos: 2, value: 5 }] - }); + // $ExpectError + heatmap.setData({ min: 0, max: 1, data: [{ xPos: 1, yPos: 2, value: 5 }] }); } { @@ -137,11 +134,8 @@ declare const container: HTMLElement; data: validData }); - heatmap.setData({ // $ExpectError - min: 0, - max: 1, - data: [{ x: 1, y: 2, value: 5 }] - }); + // $ExpectError + heatmap.setData({ min: 0, max: 1, data: [{ x: 1, y: 2, value: 5 }] }); } // -- Heatmap#setDataMax / Heatmap#setDataMin -- diff --git a/types/highcharts/highstock.d.ts b/types/highcharts/highstock.d.ts index a97ae9effa..cc92bebe36 100644 --- a/types/highcharts/highstock.d.ts +++ b/types/highcharts/highstock.d.ts @@ -2,7 +2,8 @@ // Project: http://www.highcharts.com/ // Definitions by: David Deutsch -// Definitions by: Dave Baumann +// Dave Baumann +// Richard Ison // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped import * as Highcharts from "highcharts"; @@ -31,11 +32,16 @@ declare namespace Highstock { yAxis?: Highcharts.AxisOptions; } + interface RangeSelectorButtonEvent { + click?(event: Event): void; + } + interface RangeSelectorButton { type: string; // Defines the timespan, can be one of 'millisecond', 'second', 'minute', 'day', 'week', 'month', 'ytd' (year to date), 'year' and 'all'. count?: number; text: string; dataGrouping?: any; // not sure how this works + events?: RangeSelectorButtonEvent; } interface RangeSelectorOptions { diff --git a/types/highcharts/index.d.ts b/types/highcharts/index.d.ts index a71e07c925..bc6eddbd80 100644 --- a/types/highcharts/index.d.ts +++ b/types/highcharts/index.d.ts @@ -59,6 +59,8 @@ declare namespace Highcharts { value: any; isFirst: number; isLast: number; + chart: ChartObject; + axis: AxisObject; } interface AxisLabels { @@ -103,7 +105,8 @@ declare namespace Highcharts { format?: string; /** * Callback JavaScript function to format the label. The value is given by this.value. Additional properties for - * this are axis, chart, isFirst and isLast. + * this are axis, chart, isFirst and isLast. The value of the default label formatter can be retrieved by calling + * this.axis.defaultLabelFormatter.call(this) within the function. * @default function() {return this.value;} */ formatter?(this: AxisLabelFormatterOptions): string; @@ -376,6 +379,316 @@ declare namespace Highcharts { zIndex?: number; } + interface AnnotationsPoint { + /** + * The x position of the point. Units can be either in axis or chart pixel coordinates. + * @default undefined + * @since 6.0.0 + */ + x?: number; + /** + * This number defines which xAxis the point is connected to. + * It refers to either the axis id or the index of the axis in the xAxis array. + * If the option is not configured or the axis is not found the point's x coordinate refers to the chart pixels. + * @default undefined + * @since 6.0.0 + */ + xAxis?: number | string; + /** + * The y position of the point. Units can be either in axis or chart pixel coordinates. + * @default undefined + * @since 6.0.0 + */ + y?: number; + /** + * This number defines which yAxis the point is connected to. + * It refers to either the axis id or the index of the axis in the yAxis array. + * If the option is not configured or the axis is not found the point's y coordinate refers to the chart pixels. + * @default undefined + * @since 6.0.0 + */ + yAxis?: number; + } + + interface AnnotationsLabelOptions { + /** + * The alignment of the annotation's label. If right, the right side of the label should be touching the point. + * @default "center" + * @since 6.0.0 + */ + align?: "left" | "center" | "right"; + /** + * The alignment of the annotation's label. If right, the right side of the label should be touching the point. + * @default false + * @since 6.0.0 + */ + allowOverlap?: boolean; + /** + * The background color or gradient for the annotation's label. + * @default rgba(0, 0, 0, 0.75) + * @since 6.0.0 + */ + backgroundColor?: string | Gradient; + /** + * The border color for the annotation's label. + * @default "black" + * @since 6.0.0 + */ + borderColor?: string | Gradient; + /** + * The border radius in pixels for the annotation's label. + * @default 1 + * @since 6.0.0 + */ + borderRadius?: number; + /** + * The border width in pixels for the annotation's label. + * @default 1 + * @since 6.0.0 + */ + borderWidth?: number; + /** + * Whether to hide the annotation's label that is outside the plot area. + * @default false + * @since 6.0.0 + */ + crop?: boolean; + /** + * The label's pixel distance from the point. + * @default undefined + * @since 6.0.0 + */ + distance?: number; + /** + * A format string for the data label. + * @default undefined + * @since 6.0.0 + */ + format?: string; + /** + * Callback JavaScript function to format the annotation's label. + * Note that if a format or text are defined, the format or text take precedence and the formatter is ignored. + * This refers to a point object. + * @default function () { return defined(this.y) ? this.y : 'Annotation label'; } + * @since 6.0.0 + */ + formatter?: Function; + /** + * How to handle the annotation's label that flow outside the plot area. + * The justify option aligns the label inside the plot area. + * @default "justify + * @since 6.0.0 + */ + overflow?: "justify" | "none"; + /** + * When either the borderWidth or the backgroundColor is set, this is the padding within the box. + * @default 5 + * @since 6.0.0 + */ + padding?: number; + /** + * The shadow of the box. The shadow can be an object configuration containing color, offsetX, offsetY, opacity and width. + * @default false + * @since 6.0.0 + */ + shadow?: + | boolean + | { + color?: string | Gradient; + offsetX?: number; + offsetY?: number; + opacity?: number; + width?: number; + }; + /** + * The name of a symbol to use for the border around the label. Symbols are predefined functions on the Renderer object. + * @default "callout" + * @since 6.0.0 + */ + shape?: "connector" | "rect" | "circle" | "diamond" | "triangle"; + /** + * Styles for the annotation's label. + * @default "callout" + * @since 6.0.0 + */ + style?: { + /** + * @default "contrast" + * @since 6.0.0 + */ + color?: string; + fontFamily?: string; + /** + * @default "11px" + * @since 6.0.0 + */ + fontSize?: string; + /** + * @default "normal" + * @since 6.0.0 + */ + fontWeight?: string; + textAlign?: string; + }; + /** + * Alias for the format option. + * @default undefined + * @since 6.0.0 + */ + text?: string; + /** + * Whether to use HTML to render the annotation's label. + * @default false + * @since 6.0.0 + */ + useHTML?: boolean; + /** + * The vertical alignment of the annotation's label. + * @default "bottom" + * @since 6.0.0 + */ + verticalAlign?: "bottom" | "middle" | "top"; + /** + * The x position offset of the label relative to the point. + * Note that if a distance is defined, the distance takes precedence over x and y options. + * @default 0 + * @since 6.0.0 + */ + x?: number; + /** + * The y position offset of the label relative to the point. + * Note that if a distance is defined, the distance takes precedence over x and y options. + * @default -16 + * @since 6.0.0 + */ + y?: number; + } + + interface AnnotationsLabel extends AnnotationsLabelOptions { + /** + * This option defines the point to which the label will be connected. + * It can be either the point which exists in the series - it is referenced by the point's id + * - or a new point with defined x, y properties and optionally axes. + * @since 6.0.0 + */ + point?: string | AnnotationsPoint; + } + + interface AnnotationsShapeOptions { + /** + * The color of the shape's fill. + * @default rgba(0, 0, 0, 0.75) + * @since 6.0.0 + */ + fill: string; + /** + * The height of the shape. + * @default undefined + * @since 6.0.0 + */ + height: number; + /** + * The radius of the shape. + * @default 0 + * @since 6.0.0 + */ + r: number; + /** + * The color of the shape's stroke. + * @default rgba(0, 0, 0, 0.75) + * @since 6.0.0 + */ + stroke: string; + /** + * The pixel stroke width of the shape. + * @default 1 + * @since 6.0.0 + */ + strokeWidth: number; + /** + * The type of the shape, e.g. circle or rectangle. + * @default "rect" + * @since 6.0.0 + */ + type: "circle" | "path" | "rect"; + /** + * The width of the shape. + * @default undefined + * @since 6.0.0 + */ + width: number; + } + + interface AnnotationsShape extends AnnotationsShapeOptions { + /** + * Id of the marker which will be drawn at the final vertex of the path. Custom markers can be defined in defs property. + * @default undefined + * @since 6.0.0 + */ + markerEnd: string; + /** + * Id of the marker which will be drawn at the final vertex of the path. Custom markers can be defined in defs property. + * @default undefined + * @since 6.0.0 + */ + markerStart: string; + /** + * This option defines the point to which the shape will be connected. + * It can be either the point which exists in the series - it is referenced by the point's id + * - or a new point with defined x, y properties and optionally axes. + * @since 6.0.0 + */ + point?: string | AnnotationsPoint; + /** + * An array of points for the shape. This option is available for shapes which can use multiple points such as path. + * A point can be either a point object or a point's id. + * @default undefined + * @since 6.0.0 + */ + points?: Array; + } + + /** + * Options for configuring annotations, for example labels, arrows or shapes. Annotations can be tied to points, + * axis coordinates or chart pixel coordinates. + */ + interface AnnotationsOptions { + /** + * Options for annotation's labels. Each label inherits options from the labelOptions object. + * An option from the labelOptions can be overwritten by config for a specific label. + * @since 6.0.0 + */ + labelOptions?: AnnotationsLabelOptions; + /** + * An array of labels for the annotation. For options that apply to multiple labels, they can be added to the labelOptions. + * @since 6.0.0 + */ + labels?: AnnotationsLabel[]; + /** + * Options for annotation's shapes. Each shape inherits options from the shapeOptions object. + * An option from the shapeOptions can be overwritten by config for a specific shape. + * @since 6.0.0 + */ + shapeOptions?: AnnotationsShapeOptions; + /** + * An array of shapes for the annotation. For options that apply to multiple shapes, they can be added to the shapeOptions. + * @since 6.0.0 + */ + shapes?: AnnotationsShape[]; + /** + * Whether the annotation is visible. + * @default true + * @since 6.0.0 + */ + visible?: boolean; + /** + * The Z index of the annotation. + * @default 6 + * @since 6.0.0 + */ + zIndex?: number; + } + /** * Options for configuring accessibility for the chart. Requires the accessibility module to be loaded. * For a description of the module and information on its features, see Highcharts Accessibility. @@ -5557,6 +5870,12 @@ declare namespace Highcharts { * Individual data label for each point. The options are the same as the ones for plotOptions.series.dataLabels */ dataLabels?: DataLabels; + /** + * A description of the point to add to the screen reader information about the point. + * @default undefined + * @since 5.0.0 + */ + description?: string; /** * The id of a series in the drilldown.series array to use for a drilldown for this point. * @since 3.0.8 @@ -5923,6 +6242,16 @@ declare namespace Highcharts { * The y value. */ formatter?(): boolean | string; + /** + * Whether to allow the tooltip to render outside the chart's SVG element box. + * By default (false), the tooltip is rendered within the chart's SVG element, which results in + * the tooltip being aligned inside the chart area. For small charts, this may result in + * clipping or overlapping. When true, a separate SVG element is created and overlaid on the + * page, allowing the tooltip to be aligned inside the page itself. + * @default false + * @since 6.1.1 + */ + outside?: boolean; /** * Padding inside the tooltip, in pixels. * @since 5.0.0 @@ -6079,6 +6408,10 @@ declare namespace Highcharts { * @since 5.0.0 */ accessibility?: AccessibilityOptions; + /** + * Options for configuring annotations, for example labels, arrows or shapes. + */ + annotations?: AnnotationsOptions; /** * Options regarding the chart area and plot area as well as general chart options. */ @@ -6167,7 +6500,7 @@ declare namespace Highcharts { * Allows setting a set of rules to apply for different screen or chart sizes. Each rule specifies additional chart options. * @since 5.0.0 */ - responsive?: ResponsiveOptions[]; + responsive?: ResponsiveOptions; /** * The actual series to append to the chart. In addition to the members listed below, any member of the plotOptions * for that specific type of plot can be added to a series individually. For example, even though a general @@ -6236,6 +6569,13 @@ declare namespace Highcharts { * Configuration options for the axes are given in options.xAxis and options.yAxis. */ interface AxisObject { + dataMin: number; + dataMax: number; + userMin: number; + userMax: number; + bottom: number; + left: number; + width: number; /** * Add a plot band after render time. * @param options A configuration object consisting of the same members as options.xAxis.plotBands @@ -6248,6 +6588,7 @@ declare namespace Highcharts { * @since 1.2.0 */ addPlotLine(options: PlotLines): void; + defaultLabelFormatter(this: AxisLabelFormatterOptions): string; /** * Get the current extremes for the axis. * @since 1.2.0 @@ -6370,6 +6711,8 @@ declare namespace Highcharts { * @since 3.0.8 */ addSeriesAsDrilldown(point: PointObject, seriesOptions: IndividualSeriesOptions): void; + chartHeight?: number; + chartWidth?: number; /** * A reference to the containing HTML element, dynamically inserted into the element given in chart.renderTo. * @since 1.2.5 @@ -6479,6 +6822,10 @@ declare namespace Highcharts { * @since 1.2.0 */ options: Options; + plotLeft?: number; + plotSizeX?: number; + plotSizeY?: number; + plotTop?: number; /** * Exporting module required. Clears away other elements in the page and prints the chart as it is displayed. By * default, when the exporting module is enabled, a button at the upper left calls this method. diff --git a/types/highcharts/test/highstock.ts b/types/highcharts/test/highstock.ts index 2021e65b68..f1a464f491 100644 --- a/types/highcharts/test/highstock.ts +++ b/types/highcharts/test/highstock.ts @@ -25,6 +25,14 @@ $(() => { rangeSelector: { allButtonsEnabled: true, selected: 1, + buttons: [{ + type: 'month', + count: 1, + text: '1m', + events: { + click: () => { } + } + }], buttonTheme: { // styles for the buttons fill: 'none', stroke: 'none', diff --git a/types/html2canvas/index.d.ts b/types/html2canvas/index.d.ts index 4fcfd81338..7d6c8eb5c8 100644 --- a/types/html2canvas/index.d.ts +++ b/types/html2canvas/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for html2canvas.js 1.0-alpha // Project: https://github.com/niklasvh/html2canvas -// Definitions by: Richard Hepburn , Pei-Tang Huang , Sebastian Schocke +// Definitions by: Richard Hepburn , Pei-Tang Huang , Sebastian Schocke , Rickard Staaf // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 @@ -35,6 +35,9 @@ declare namespace Html2Canvas { /** Whether to log events in the console. */ logging?: boolean; + /** Callback function which is called when the Document has been cloned for rendering, can be used to modify the contents that will be rendered without affecting the original source document. */ + onclone?: { (doc: HTMLDocument): void }; + /** Url to the proxy which is to be used for loading cross-origin images. If left empty, cross-origin images won't be loaded. */ proxy?: string; diff --git a/types/i18next/index.d.ts b/types/i18next/index.d.ts index 484745bcad..9c310a4770 100644 --- a/types/i18next/index.d.ts +++ b/types/i18next/index.d.ts @@ -1,8 +1,9 @@ -// Type definitions for i18next 8.4 +// Type definitions for i18next 11.9 // Project: http://i18next.com // Definitions by: Michael Ledin // Budi Irawan // Giedrius Grabauskas +// Silas Rech // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 @@ -15,6 +16,18 @@ declare namespace i18next { type FormatFunction = (value: string, format?: string, lng?: string) => string; + /* tslint:disable-next-line:no-empty-interface */ + interface DetectionPluginOptions { + } + + /* tslint:disable-next-line:no-empty-interface */ + interface BackendPluginOptions { + } + + /* tslint:disable-next-line:no-empty-interface */ + interface CachePluginOptions { + } + interface InterpolationOptions { /** * format function see formatting for details @@ -37,6 +50,11 @@ declare namespace i18next { * @default true */ escapeValue?: boolean; + /** + * If true, then value passed into escape function is not casted to string, use with custom escape function that does its own type check + * @default false + */ + useRawValueToEscape?: boolean; /** * prefix for interpolation * @default '{{' @@ -91,7 +109,12 @@ declare namespace i18next { * global variables to use in interpolation replacements * @default undefined */ - defaultVariables?: any; + defaultVariables?: { [index: string]: any }; + /** + * after how many interpolation runs to break out before throwing a stack overflow + * @default 1000 + */ + maxReplaces?: number; } interface ReactOptions { @@ -204,6 +227,15 @@ declare namespace i18next { */ saveMissing?: boolean; + /** + * experimental: enable to update default values using the saveMissing + * (Works only if defaultValue different from translated value. + * Only useful on initial development or when keeping code as source of truth not changing values outside of code. + * Only supported if backend supports it already) + * @default false + */ + updateMissing?: boolean; + /** * @default 'fallback' */ @@ -213,7 +245,7 @@ declare namespace i18next { * Used for custom missing key handling (needs saveMissing set to true!) * @default false */ - missingKeyHandler?: false | ((lng: string, ns: string, key: string, fallbackValue: string) => void); + missingKeyHandler?: false | ((lngs: string[], ns: string, key: string, fallbackValue: string) => void); /** * receives a key that was not found in `t()` and returns a value, that will be returned by `t()` @@ -227,6 +259,12 @@ declare namespace i18next { */ appendNamespaceToMissingKey?: boolean; + /** + * gets called in case a interpolation value is undefined. This method will not be called if the value is empty string or null + * @default noop + */ + missingInterpolationHandler?: (text: string, value: any) => any; + /** * will use 'plural' as suffix for languages only having 1 plural form, setting it to false will suffix all with numbers * @default true @@ -284,19 +322,19 @@ declare namespace i18next { * options for language detection - check documentation of plugin * @default undefined */ - detection?: object; + detection?: DetectionPluginOptions; /** * options for backend - check documentation of plugin * @default undefined */ - backend?: object; + backend?: BackendPluginOptions; /** * options for cache layer - check documentation of plugin * @default undefined */ - cache?: object; + cache?: CachePluginOptions; /** * options for react - check documentation of plugin diff --git a/types/i18next/v8/i18next-tests.ts b/types/i18next/v8/i18next-tests.ts new file mode 100644 index 0000000000..1a425084e8 --- /dev/null +++ b/types/i18next/v8/i18next-tests.ts @@ -0,0 +1,455 @@ +import * as i18next from 'i18next'; + +i18next.init({ + lng: "en", + debug: true, + resources: { + en: { + translation: { + key: "hello world" + } + } + } +}, (err: any, t: i18next.TranslationFunction) => { + // initialized and ready to go! + const value: string = i18next.t('key'); +}); + +i18next.init({ initImmediate: false }); + +i18next.init({ + lng: 'en', + debug: true, + resources: { + en: { + translation: { + key: "hello world" + } + }, + de: { + translation: { + key: "hello welt" + } + } + } +}, (err: any, t: i18next.TranslationFunction) => { + // init set content + updateContent(); +}); + +i18next.init({ + ns: ['common', 'moduleA', 'moduleB'], + defaultNS: 'moduleA' +}, (err: any, t: i18next.TranslationFunction) => { + i18next.t('myKey'); // key in moduleA namespace (defined default) + i18next.t('common:myKey'); // key in common namespace +}); + +i18next.loadNamespaces('anotherNamespace', (err: any, t: i18next.TranslationFunction) => { /* ... */ }); + +// fallback to one language +i18next.init({ + lng: 'en-GB' +}, () => { + i18next.t('i18n'); // -> "Internationalisation" + i18next.t('i18n_short'); // -> "i18n" (from en.json) + + // force loading en + i18next.t('i18n', { lng: 'en' }); // -> "Internationalization" +}); + +// fallback to one language +i18next.init({ + fallbackLng: 'en' +}); + +// fallback ordered +i18next.init({ + fallbackLng: ['fr', 'en'] +}); + +// fallback depending on user language +i18next.init({ + fallbackLng: { + 'de-CH': ['fr', 'it'], + 'zh-HANT': ['zh-HANS', 'en'], + es: ['fr'], + default: ['en'] + } +}); + +const updateContent = () => { + const value: string = i18next.t('key'); +}; + +const changeLng = (lng: string) => { + i18next.changeLanguage(lng); +}; + +i18next.init({ + // files to load + ns: ['app', 'common'], + + // default namespace (needs no prefix on calling t) + defaultNS: 'app', + + // fallback, can be a string or an array of namespaces + fallbackNS: 'common' +}, () => { + i18next.t('title'); // -> "i18next" + + i18next.t('button.save'); // -> "save" (fallback from common) + + // without fallbackNS you would have to prefix namespace + // to access keys in that namespace + i18next.t('common:button.save'); // -> "save" +}); + +i18next.init({ + lng: 'de', + + // allow keys to be phrases having `:`, `.` + nsSeparator: false, + keySeparator: false, + + // do not load a fallback + fallbackLng: false +}); + +const error404 = '404'; +i18next.t([`error.${error404}`, 'error.unspecific']); // -> "The page was not found" + +const error502 = '502'; +i18next.t([`error.${error502}`, 'error.unspecific']); // -> "Something went wrong" + +i18next.t('No one says a key can not be the fallback.'); +// -> "Niemand sagt ein key kann nicht als Ersatz dienen." + +i18next.t('This will be shown if the current loaded translations to not have this.'); +// -> "This will be shown if the current loaded translations to not have this." + +const languageChangedCallback = () => { + updateContent(); +}; + +i18next.on('languageChanged', languageChangedCallback); +i18next.off('languageChanged', languageChangedCallback); + +i18next + .init({ + fallbackLng: 'en', + debug: true, + ns: ['special', 'common'], + defaultNS: 'special', + backend: { + // load from i18next-gitbook repo + loadPath: 'https://raw.githubusercontent.com/i18next/i18next-gitbook/master/locales/{{lng}}/{{ns}}.json', + crossDomain: true + } + }, (err: any, t: i18next.TranslationFunction) => { + // init set content + updateContent2(); + }); + +// just set some content and react to language changes +// could be optimized using vue-i18next, jquery-i18next, react-i18next, ... +const updateContent2 = () => { + const value: string = i18next.t('title', { what: 'i18next' }); + const value2: string = i18next.t('common:button.save', { count: Math.floor(Math.random() * 2 + 1) }); + const value3 = `detected user language: "${i18next.language}" --> loaded languages: "${i18next.languages.join(', ')}"`; +}; + +i18next.init({ + fallbackLng: 'en', + ns: ['file1', 'file2'], + defaultNS: 'file1', + debug: true +}, (err: any, t: i18next.TranslationFunction) => { + if (err) { + console.log('something went wrong loading', err); + return; + } + t('key'); // -> same as i18next.t +}); + +// with only callback +i18next.init((err: any, t: i18next.TranslationFunction) => { + if (err) { + console.log('something went wrong loading', err); + return; + } + t('key'); // -> same as i18next.t +}); + +const v: string = i18next.t('my.key'); +const a: boolean = i18next.exists('my.key'); + +// fix language to german +const de = i18next.getFixedT('de'); +const z: string = de('myKey'); + +// or fix the namespace to anotherNamespace +const anotherNamespace = i18next.getFixedT(null, 'anotherNamespace'); +const x: string = anotherNamespace('anotherNamespaceKey'); // no need to prefix ns i18n.t('anotherNamespace:anotherNamespaceKey'); + +i18next.changeLanguage('en', (err: any, t: i18next.TranslationFunction) => { + if (err) { + console.log('something went wrong loading', err); + return; + } + t('key'); // -> same as i18next.t +}); + +i18next.loadNamespaces('myNamespace', (err: any, t: i18next.TranslationFunction) => { /* resources have been loaded */ }); +i18next.loadNamespaces(['myNamespace1', 'myNamespace2'], (err: any, t: i18next.TranslationFunction) => { /* resources have been loaded */ }); + +i18next.loadLanguages('de', (err: any, t: i18next.TranslationFunction) => { /* resources have been loaded */ }); +i18next.loadLanguages(['de', 'fr'], (err: any, t: i18next.TranslationFunction) => { /* resources have been loaded */ }); + +// reload all +i18next.reloadResources(); + +// reload languages +i18next.reloadResources(['de', 'fr']); + +// reload namespaces for all languages +i18next.reloadResources(null, ['ns1', 'ns2']); + +// reload namespaces in languages +i18next.reloadResources(['de', 'fr'], ['ns1', 'ns2']); + +// for current language +i18next.dir(); + +// for another language +i18next.dir('en-US'); // -> "ltr"; +i18next.dir('ar'); // -> "rtl"; + +// key = 'hello {{what}}' +i18next.t('key', { what: i18next.format('world', 'uppercase') }); // -> hello WORLD + +const newInstance = i18next.createInstance({ + fallbackLng: 'en', + ns: ['file1', 'file2'], + defaultNS: 'file1', + debug: true +}, (err: any, t: i18next.TranslationFunction) => { + if (err) { + console.log('something went wrong loading', err); + return; + } + t('key'); // -> same as i18next.t +}); + +// is the same as +newInstance.init({ + fallbackLng: 'en', + ns: ['file1', 'file2'], + defaultNS: 'file1', + debug: true +}, (err: any, t: i18next.TranslationFunction) => { + if (err) { + console.log('something went wrong loading', err); + return; + } + t('key'); // -> same as i18next.t +}); + +const newInstance2 = i18next.cloneInstance({ + fallbackLng: 'en', + ns: ['file1', 'file2'], + defaultNS: 'file1', + debug: true +}, (err: any, t: i18next.TranslationFunction) => { + if (err) { + console.log('something went wrong loading', err); + return; + } + t('key'); // -> same as i18next.t +}); + +// is the same as +const newInstance3 = i18next.cloneInstance(); +newInstance.init({ + fallbackLng: 'en', + ns: ['file1', 'file2'], + defaultNS: 'file1', + debug: true +}, (err: any, t: i18next.TranslationFunction) => { + if (err) { + console.log('something went wrong loading', err); + return; + } + t('key'); // -> same as i18next.t +}); + +i18next.on('initialized', options => { }); +i18next.on('loaded', loaded => { }); +i18next.on('failedLoading', (lng: string, ns: string, msg: string) => { }); +i18next.on('missingKey', (lngs: string[], namespace: string, key: string, res: string) => { }); +i18next.on('added', (lng: string, ns: string) => { }); +i18next.on('removed', (lng: string, ns: string) => { }); +i18next.on('languageChanged', (lng: string) => { }); +i18next.on("customEvent", () => { }); + +i18next.getResource("en", "test", "key"); +i18next.getResource("en", "test", "key", { keySeparator: "-" }); + +i18next.addResource("en", "test", "key", "value"); +i18next.addResource("en", "test", "key", "value", { keySeparator: "-", silent: false }); + +i18next.addResources("en", "test", { key: "value" }); + +i18next.addResourceBundle('en', 'translations', { + key: 'value', +}, true, true); + +const has: boolean = i18next.hasResourceBundle("en", "test"); + +i18next.getResourceBundle("en", "test"); + +i18next.removeResourceBundle("en", "test"); + +i18next + .init({ + resources: { + en: { + namespace1: { + key: 'hello from namespace 1' + }, + namespace2: { + key: 'hello from namespace 2' + } + }, + de: { + namespace1: { + key: 'hallo von namespace 1' + }, + namespace2: { + key: 'hallo von namespace 2' + } + } + } + }); + +i18next.init(); + +i18next.addResourceBundle("en", 'namespace1', { + key: 'hello from namespace 1' +}); + +i18next + .init({ + backend: { + // for all available options read the backend's repository readme file + loadPath: '/locales/{{lng}}/{{ns}}.json' + } + }); + +i18next.init({ + ns: ['common', 'moduleA'], + defaultNS: 'moduleA' +}); + +i18next.t('key', { what: 'i18next', how: 'great' }); + +const author = { + name: 'Jan', + github: 'jamuhl' +}; +i18next.t('key', { author }); + +i18next.t('keyEscaped', { myVar: '' }); +// -> "no danger <img />" + +i18next.t('keyUnescaped', { myVar: '' }); +// -> "dangerous " + +i18next.t('keyEscaped', { myVar: '', interpolation: { escapeValue: false } }); +// -> "no danger " (obviously could be dangerous) + +i18next + .init({ + lng: 'en', + fallbackLng: 'en', + + resources: { + en: { + translation: { + key1: 'test', + interpolateKey: 'add {{insert}} {{up, uppercase}}', + interpolateKey2: 'add {{insert}} {{up, uppercase}}' + } + } + }, + + interpolation: { + escapeValue: false, // not needed for react!! + formatSeparator: ',', + format: (value: string, format: string, lng: string) => { + if (format === 'uppercase') return value.toUpperCase(); + return value; + } + } + }); + +i18next.t('key', { count: 0 }); // -> "items" +i18next.t('key', { count: 1 }); // -> "item" +i18next.t('key', { count: 5 }); // -> "items" +i18next.t('key', { count: 100 }); // -> "items" +i18next.t('keyWithCount', { count: 0 }); // -> "0 items" +i18next.t('keyWithCount', { count: 1 }); // -> "1 item" +i18next.t('keyWithCount', { count: 5 }); // -> "5 items" +i18next.t('keyWithCount', { count: 100 }); // -> "100 items" + +i18next.t('key1_interval', { postProcess: 'interval', count: 1 }); // -> "one item" +i18next.t('key1_interval', { postProcess: 'interval', count: 4 }); // -> "a few items" +i18next.t('key1_interval', { postProcess: 'interval', count: 100 }); // -> "a lot of items" + +// not matching into a range it will fallback to +// the regular plural form +i18next.t('key2_interval', { postProcess: 'interval', count: 1 }); // -> "one item" +i18next.t('key2_interval', { postProcess: 'interval', count: 4 }); // -> "a few items" +i18next.t('key2_interval', { postProcess: 'interval', count: 100 }); // -> "100 items" +i18next.t('friend', { context: 'male', count: 1 }); // -> "A boyfriend" +i18next.t('friend', { context: 'male', count: 1 }); // -> "A boyfriend" +i18next.t('friend', { context: 'female', count: 100 }); // -> "100 girlfriends" +i18next.t('friend', { context: 'female', count: 100 }); // -> "100 girlfriends" +i18next.t('tree', { returnObjects: true, something: 'gold' }); +// -> { res: 'added gold' } + +i18next.t('array', { returnObjects: true }); +// -> ['a', 'b', 'c'] +i18next.t('arrayJoin', { joinArrays: '+' }); +// -> "line1+line2+line3" + +i18next.t('arrayJoinWithInterpolation', { myVar: 'interpolate', joinArrays: ' ' }); +// -> "you can interpolate" + +i18next.t('arrayOfObjects.0.name'); +// -> "tom" + +type KeyList = "friend" | "tree"; + +interface CustomOptions { + myVar: string; +} + +i18next.t("friend"); +i18next.t(["friend", "tree"]); +i18next.t("friend", { myVar: "someValue" }); +i18next.t(["friend", "tree"], { myVar: "someValue" }); +i18next.t("friend", { myVar: "someValue" }); +i18next.t(["friend", "tree"], { myVar: "someValue" }); + +const t1: i18next.TranslationFunction = (key: string, options: i18next.TranslationOptions) => ""; +const t2: i18next.TranslationFunction<{ value: string }> = (key: string, options: i18next.TranslationOptions) => ({ value: "asd" }); +const t3: i18next.TranslationFunction = (key: string | string[], options: i18next.TranslationOptions) => ""; +const t4: i18next.TranslationFunction = (key: KeyList | KeyList[], options: i18next.TranslationOptions) => ""; + +i18next.exists("friend"); +i18next.exists(["friend", "tree"]); +i18next.exists("friend", { myVar: "someValue" }); +i18next.exists(["friend", "tree"], { myVar: "someValue" }); +i18next.exists("friend", { myVar: "someValue" }); +i18next.exists(["friend", "tree"], { myVar: "someValue" }); diff --git a/types/i18next/v8/index.d.ts b/types/i18next/v8/index.d.ts new file mode 100644 index 0000000000..484745bcad --- /dev/null +++ b/types/i18next/v8/index.d.ts @@ -0,0 +1,619 @@ +// Type definitions for i18next 8.4 +// Project: http://i18next.com +// Definitions by: Michael Ledin +// Budi Irawan +// Giedrius Grabauskas +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +declare namespace i18next { + interface FallbackLngObjList { + [language: string]: string[]; + } + + type FallbackLng = string | string[] | FallbackLngObjList; + + type FormatFunction = (value: string, format?: string, lng?: string) => string; + + interface InterpolationOptions { + /** + * format function see formatting for details + * @default noop + */ + format?: FormatFunction; + /** + * used to separate format from interpolation value + * @default ',' + */ + formatSeparator?: string; + /** + * escape function + * @default str => str + */ + escape?(str: string): string; + + /** + * escape passed in values to avoid xss injection + * @default true + */ + escapeValue?: boolean; + /** + * prefix for interpolation + * @default '{{' + */ + prefix?: string; + /** + * suffix for interpolation + * @default '}}' + */ + suffix?: string; + /** + * escaped prefix for interpolation (regexSafe) + * @default undefined + */ + prefixEscaped?: string; + /** + * escaped suffix for interpolation (regexSafe) + * @default undefined + */ + suffixEscaped?: string; + /** + * suffix to unescaped mode + * @default undefined + */ + unescapeSuffix?: string; + /** + * prefix to unescaped mode + * @default '-' + */ + unescapePrefix?: string; + /** + * prefix for nesting + * @default '$t(' + */ + nestingPrefix?: string; + /** + * suffix for nesting + * @default ')' + */ + nestingSuffix?: string; + /** + * escaped prefix for nesting (regexSafe) + * @default undefined + */ + nestingPrefixEscaped?: string; + /** + * escaped suffix for nesting (regexSafe) + * @default undefined + */ + nestingSuffixEscaped?: string; + /** + * global variables to use in interpolation replacements + * @default undefined + */ + defaultVariables?: any; + } + + interface ReactOptions { + /** + * set to true if you like to wait for loaded in every translated hoc + * @default false + */ + wait?: boolean; + /** + * set it to fallback to let passed namespaces to translated hoc act as fallbacks + * @default 'default' + */ + nsMode?: 'default' | 'fallback'; + /** + * set it to the default parent element created by the Trans component. + * @default 'div' + */ + defaultTransParent?: string; + /** + * set which events trigger a rerender, can be set to false or string of events + * @default 'languageChanged loaded' + */ + bindI18n?: string | false; + /** + * set which events on store trigger a rerender, can be set to false or string of events + * @default 'added removed' + */ + bindStore?: string | false; + } + + interface InitOptions { + /** + * logs info level to console output. Helps finding issues with loading not working. + * @default false + */ + debug?: boolean; + + /** + * resources to initialize with (if not using loading or not appending using addResourceBundle) + * @default undefined + */ + resources?: Resource; + + /** + * language to use (overrides language detection) + * @default undefined + */ + lng?: string; + + /** + * language to use if translations in user language are not available. + * @default 'dev' + */ + fallbackLng?: false | FallbackLng; + + /** + * array of allowed languages + * @default false + */ + whitelist?: false | string[]; + + /** + * if true will pass eg. en-US if finding en in whitelist + * @default false + */ + nonExplicitWhitelist?: boolean; + + /** + * language codes to lookup, given set language is + * 'en-US': 'all' --> ['en-US', 'en', 'dev'], + * 'currentOnly' --> 'en-US', + * 'languageOnly' --> 'en' + * @default 'all' + */ + load?: "all" | "currentOnly" | "languageOnly"; + + /** + * array of languages to preload. Important on serverside to assert translations are loaded before rendering views. + * @default false + */ + preload?: false | string[]; + + /** + * language will be lowercased eg. en-US --> en-us + * @default false + */ + lowerCaseLng?: boolean; + + /** + * string or array of namespaces to load + * @default 'translation' + */ + ns?: string | string[]; + + /** + * default namespace used if not passed to translation function + * @default 'translation' + */ + defaultNS?: string; + + /** + * string or array of namespaces to lookup key if not found in given namespace. + * @default false + */ + fallbackNS?: false | string | string[]; + + /** + * calls save missing key function on backend if key not found + * @default false + */ + saveMissing?: boolean; + + /** + * @default 'fallback' + */ + saveMissingTo?: "current" | "all" | "fallback"; + + /** + * Used for custom missing key handling (needs saveMissing set to true!) + * @default false + */ + missingKeyHandler?: false | ((lng: string, ns: string, key: string, fallbackValue: string) => void); + + /** + * receives a key that was not found in `t()` and returns a value, that will be returned by `t()` + * @default noop + */ + parseMissingKeyHandler?(key: string): any; + + /** + * appends namespace to missing key + * @default false + */ + appendNamespaceToMissingKey?: boolean; + + /** + * will use 'plural' as suffix for languages only having 1 plural form, setting it to false will suffix all with numbers + * @default true + */ + simplifyPluralSuffix?: boolean; + + /** + * string or array of postProcessors to apply per default + * @default false + */ + postProcess?: false | string | string[]; + + /** + * allows null values as valid translation + * @default true + */ + returnNull?: boolean; + + /** + * allows empty string as valid translation + * @default true + */ + returnEmptyString?: boolean; + + /** + * allows objects as valid translation result + * @default false + */ + returnObjects?: boolean; + + /** + * Gets called if object was passed in as key but returnObjects was set to false + * @default noop + */ + returnedObjectHandler?(key: string, value: string, options: any): void; + + /** + * char, eg. '\n' that arrays will be joined by + * @default false + */ + joinArrays?: false | string; + + /** + * default: sets defaultValue + * @default args => ({ defaultValue: args[1] }) + */ + overloadTranslationOptionHandler?(args: string[]): TranslationOptions; + + /** + * @see https://www.i18next.com/interpolation.html + */ + interpolation?: InterpolationOptions; + + /** + * options for language detection - check documentation of plugin + * @default undefined + */ + detection?: object; + + /** + * options for backend - check documentation of plugin + * @default undefined + */ + backend?: object; + + /** + * options for cache layer - check documentation of plugin + * @default undefined + */ + cache?: object; + + /** + * options for react - check documentation of plugin + * @default undefined + */ + react?: ReactOptions; + + /** + * triggers resource loading in init function inside a setTimeout (default async behaviour). + * Set it to false if your backend loads resources sync - that way calling i18next.t after + * init is possible without relaying on the init callback. + * @default true + */ + initImmediate?: boolean; + + /** + * char to separate keys + * @default '.' + */ + keySeparator?: false | string; + + /** + * char to split namespace from key + * @default ':' + */ + nsSeparator?: false | string; + + /** + * char to split plural from key + * @default '_' + */ + pluralSeparator?: string; + + /** + * char to split context from key + * @default '_' + */ + contextSeparator?: string; + + /** + * prefixes the namespace to the returned key when using cimode + * @default false + */ + appendNamespaceToCIMode?: boolean; + + /** + * Compatibility JSON version + */ + compatibilityJSON?: string; + } + + // Add an indexer to assure that interpolation arguments can be passed + type TranslationOptions = TranslationOptionsBase & TCustomOptions & { [key: string]: any }; + + interface TranslationOptionsBase { + /** + * defaultValue to return if a translation was not found + */ + defaultValue?: any; + /** + * count value used for plurals + */ + count?: number; + /** + * used for contexts (eg. male\female) + */ + context?: any; + /** + * object with vars for interpolation - or put them directly in options + */ + replace?: any; + /** + * override language to use + */ + lng?: string; + /** + * override languages to use + */ + lngs?: string[]; + /** + * override language to lookup key if not found see fallbacks for details + */ + fallbackLng?: FallbackLng; + /** + * override namespaces (string or array) + */ + ns?: string | string[]; + /** + * override char to separate keys + */ + keySeparator?: string; + /** + * override char to split namespace from key + */ + nsSeparator?: string; + /** + * accessing an object not a translation string (can be set globally too) + */ + returnObjects?: boolean; + /** + * char, eg. '\n' that arrays will be joined by (can be set globally too) + */ + joinArrays?: string; + /** + * string or array of postProcessors to apply see interval plurals as a sample + */ + postProcess?: string | string[]; + /** + * override interpolation options + */ + interpolation?: InterpolationOptions; + } + + type Callback = (error: any, t: TranslationFunction) => void; + + type TranslationFunction = + (key: TKeys | TKeys[], options?: TranslationOptions) => TResult; + + interface Resource { + [language: string]: ResourceLanguage; + } + + interface ResourceLanguage { + [namespace: string]: ResourceKey; + } + + interface ResourceKey { + [key: string]: any; + } + + interface i18n { + /** + * The default export of the i18next module is an i18next instance ready to be initialized by calling init. + * You can create additional instances using the createInstance function. + * + * @param options - Initial options. + * @param callback - will be called after all translations were loaded or with an error when failed (in case of using a backend). + */ + init(options: InitOptions, callback?: Callback): i18n; + init(callback?: Callback): i18n; + + loadResources(callback?: (err: any) => void): void; + + /** + * The use function is there to load additional plugins to i18next. + * For available module see the plugins page and don't forget to read the documentation of the plugin. + */ + use(module: any): i18n; + + /** + * Please have a look at the translation functions like interpolation, formatting and plurals for more details on using it. + */ + t: TranslationFunction; + + /** + * Uses the same resolve functionality as the t function and returns true if a key exists. + */ + exists: TranslationFunction; + + /** + * Returns a t function that defaults to given language or namespace. + * Both params could be arrays of languages or namespaces and will be treated as fallbacks in that case. + * On the returned function you can like in the t function override the languages or namespaces by passing them in options or by prepending namespace. + */ + getFixedT(lng: string | string[], ns?: string | string[]): TranslationFunction; + getFixedT(lng: null, ns: string | string[]): TranslationFunction; + + /** + * Changes the language. The callback will be called as soon translations were loaded or an error occurs while loading. + * HINT: For easy testing - setting lng to 'cimode' will set t function to always return the key. + */ + changeLanguage(lng: string, callback?: Callback): void; + + /** + * Is set to the current detected or set language. + * If you need the primary used language depending on your configuration (whilelist, load) you will prefer using i18next.languages[0]. + */ + language: string; + + /** + * Is set to an array of language-codes that will be used it order to lookup the translation value. + */ + languages: string[]; + + /** + * Loads additional namespaces not defined in init options. + */ + loadNamespaces(ns: string | string[], callback: Callback): void; + + /** + * Loads additional languages not defined in init options (preload). + */ + loadLanguages(lngs: string | string[], callback: Callback): void; + + /** + * Reloads resources on given state. Optionally you can pass an array of languages and namespaces as params if you don't want to reload all. + */ + reloadResources(lngs?: string[], ns?: string[]): void; + reloadResources(lngs: null, ns: string[]): void; + + /** + * Changes the default namespace. + */ + setDefaultNamespace(ns: string): void; + + /** + * Returns rtl or ltr depending on languages read direction. + */ + dir(lng?: string): "ltr" | "rtl"; + + /** + * Exposes interpolation.format function added on init. + */ + format: FormatFunction; + + /** + * Will return a new i18next instance. + * Please read the options page for details on configuration options. + * Providing a callback will automatically call init. + * The callback will be called after all translations were loaded or with an error when failed (in case of using a backend). + */ + createInstance(options?: InitOptions, callback?: Callback): i18n; + + /** + * Creates a clone of the current instance. Shares store, plugins and initial configuration. + * Can be used to create an instance sharing storage but being independent on set language or namespaces. + */ + cloneInstance(options?: InitOptions, callback?: Callback): i18n; + + /** + * Gets fired after initialization. + */ + on(event: "initialized", callback: (options: InitOptions) => void): void; + + /** + * Gets fired on loaded resources. + */ + on(event: "loaded", callback: (loaded: boolean) => void): void; + + /** + * Gets fired if loading resources failed. + */ + on(event: "failedLoading", callback: (lng: string, ns: string, msg: string) => void): void; + + /** + * Gets fired on accessing a key not existing. + */ + on(event: "missingKey", callback: (lngs: string[], namespace: string, key: string, res: string) => void): void; + + /** + * Gets fired when resources got added or removed. + */ + on(event: "added" | "removed", callback: (lng: string, ns: string) => void): void; + + /** + * Gets fired when changeLanguage got called. + */ + on(event: "languageChanged", callback: (lng: string) => void): void; + + /** + * Event listener + */ + on(event: string, listener: (...args: any[]) => void): void; + + /** + * Remove event listener + */ + off(event: string, listener: (...args: any[]) => void): void; + + /** + * Gets one value by given key. + */ + getResource(lng: string, ns: string, key: string, options?: { keySeparator?: string }): any; + + /** + * Adds one key/value. + */ + addResource(lng: string, ns: string, key: string, value: string, options?: { keySeparator?: string, silent?: boolean }): void; + + /** + * Adds multiple key/values. + */ + addResources(lng: string, ns: string, resources: any): void; + + /** + * Adds a complete bundle. + * Setting deep param to true will extend existing translations in that file. + * Setting overwrite to true it will overwrite existing translations in that file. + */ + addResourceBundle(lng: string, ns: string, resources: any, deep?: boolean, overwrite?: boolean): void; + + /** + * Checks if a resource bundle exists. + */ + hasResourceBundle(lng: string, ns: string): boolean; + + /** + * Returns a resource bundle. + */ + getResourceBundle(lng: string, ns: string): any; + + /** + * Removes an existing bundle. + */ + removeResourceBundle(lng: string, ns: string): void; + + /** + * Current options + */ + options: InitOptions; + + /** + * Is initialized + */ + isInitialized: boolean; + } +} + +declare const i18next: i18next.i18n; +export = i18next; diff --git a/types/i18next/v8/tsconfig.json b/types/i18next/v8/tsconfig.json new file mode 100644 index 0000000000..cb9f9ab724 --- /dev/null +++ b/types/i18next/v8/tsconfig.json @@ -0,0 +1,29 @@ +{ + "files": [ + "index.d.ts", + "i18next-tests.ts" + ], + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": false, + "baseUrl": "../../", + "typeRoots": [ + "../../" + ], + "paths": { + "i18next": [ + "i18next/v8" + ] + }, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/types/i18next/v8/tslint.json b/types/i18next/v8/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/i18next/v8/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/isaac/index.d.ts b/types/isaac/index.d.ts new file mode 100644 index 0000000000..57d7047b8e --- /dev/null +++ b/types/isaac/index.d.ts @@ -0,0 +1,11 @@ +// Type definitions for isaac 0.0 +// Project: https://github.com/StefanoBalocco/isaac.js +// Definitions by: Martin Olsson +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export function internals(): any; +export function prng(n: number): void; +export function rand(): number; +export function random(): number; +export function reset(): void; +export function seed(s: string | number | ReadonlyArray): void; diff --git a/types/isaac/isaac-tests.ts b/types/isaac/isaac-tests.ts new file mode 100644 index 0000000000..e6f624f8ec --- /dev/null +++ b/types/isaac/isaac-tests.ts @@ -0,0 +1,8 @@ +import * as isaac from 'isaac'; + +const r1 = isaac.random(); +const r2 = isaac.rand(); +isaac.reset(); +isaac.seed(42); +const r3 = isaac.random(); +const r4 = isaac.rand(); diff --git a/types/isaac/tsconfig.json b/types/isaac/tsconfig.json new file mode 100644 index 0000000000..14e814e3a3 --- /dev/null +++ b/types/isaac/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "isaac-tests.ts" + ] +} diff --git a/types/isaac/tslint.json b/types/isaac/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/isaac/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/joi/index.d.ts b/types/joi/index.d.ts index 5af6969665..166be7d526 100644 --- a/types/joi/index.d.ts +++ b/types/joi/index.d.ts @@ -13,6 +13,8 @@ // Rafael Kallis // Conan Lai // Peter Thorson +// Will Garcia +// Simon Schick // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.4 @@ -147,6 +149,13 @@ export interface UriOptions { relativeOnly?: boolean; } +export interface DataUriOptions { + /** + * optional parameter defaulting to true which will require = padding if true or make padding optional if false + */ + paddingRequired?: boolean; +} + export interface Base64Options { /** * optional parameter defaulting to true which will require = padding if true or make padding optional if false @@ -630,6 +639,11 @@ export interface StringSchema extends AnySchema { */ uri(options?: UriOptions): this; + /** + * Requires the string value to be a valid data URI string. + */ + dataUri(options?: DataUriOptions): this; + /** * Requires the string value to be a valid GUID. */ diff --git a/types/joi/joi-tests.ts b/types/joi/joi-tests.ts index 5defe20cc1..c9805e1fc3 100644 --- a/types/joi/joi-tests.ts +++ b/types/joi/joi-tests.ts @@ -120,6 +120,12 @@ base64Opts = { paddingRequired: bool }; // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- +let dataUriOpts: Joi.DataUriOptions = null; + +dataUriOpts = { paddingRequired: bool }; + +// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- + let whenOpts: Joi.WhenOptions = null; whenOpts = { is: x }; @@ -818,6 +824,8 @@ strSchema = strSchema.normalize(); strSchema = strSchema.normalize('NFKC'); strSchema = strSchema.base64(); strSchema = strSchema.base64(base64Opts); +strSchema = strSchema.dataUri(); +strSchema = strSchema.dataUri(dataUriOpts); { // common strSchema = strSchema.allow(x); diff --git a/types/jquery/index.d.ts b/types/jquery/index.d.ts index b03a48dc6f..7f31f818ab 100644 --- a/types/jquery/index.d.ts +++ b/types/jquery/index.d.ts @@ -21,6 +21,7 @@ // John Reilly // Dick van den Brink // Thomas Schulz +// Terry Mun // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 @@ -3487,7 +3488,7 @@ interface JQuery extends Iterable { * @see \`{@link https://api.jquery.com/appendTo/ }\` * @since 1.0 */ - appendTo(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this; + appendTo(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this; /** * Set one or more attributes for the set of matched elements. * @@ -5078,7 +5079,7 @@ interface JQuery extends Iterable { * @see \`{@link https://api.jquery.com/prependTo/ }\` * @since 1.0 */ - prependTo(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this; + prependTo(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this; /** * Get the immediately preceding sibling of each element in the set of matched elements. If a selector * is provided, it retrieves the previous sibling only if it matches that selector. @@ -5854,10 +5855,23 @@ interface JQuery extends Iterable { [n: number]: TElement; } -// ES5 compatibility +// #region ES5 compatibility + // tslint:disable-next-line:no-empty-interface interface Iterable { } +interface SymbolConstructor { + /** + * A String value that is used in the creation of the default string description of an object. + * Called by the built-in method Object.prototype.toString. + */ + readonly toStringTag: symbol; +} + +declare var Symbol: SymbolConstructor; + +// #endregion + declare namespace JQuery { type TypeOrArray = T | T[]; type Node = Element | Text | Comment | DocumentFragment; @@ -6770,6 +6784,7 @@ declare namespace JQuery { * Represents the completion of an asynchronous operation */ interface _Promise { + readonly [Symbol.toStringTag]: "Promise"; /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. diff --git a/types/jquery/jquery-tests.ts b/types/jquery/jquery-tests.ts index 417d2e7941..43371f96c3 100644 --- a/types/jquery/jquery-tests.ts +++ b/types/jquery/jquery-tests.ts @@ -5670,6 +5670,9 @@ function JQuery() { // $ExpectType JQuery $('span').appendTo($('p')); + + // $ExpectType JQuery + $('span').appendTo(document.createDocumentFragment()); } function insertAfter() { @@ -5733,6 +5736,9 @@ function JQuery() { // $ExpectType JQuery $('span').prependTo($('p')); + + // $ExpectType JQuery + $('span').prependTo(document.createDocumentFragment()); } function clone() { @@ -7111,7 +7117,7 @@ function JQuery_jqXHR() { } } - function compatibleWithPromise(): JQuery._Promise { + function compatibleWithPromise(): Promise { return p; } @@ -7535,7 +7541,7 @@ function JQuery_Promise3() { return s; } - function compatibleWithPromise(): JQuery._Promise { + function compatibleWithPromise(): Promise { return p; } @@ -7680,7 +7686,7 @@ function JQuery_Promise2(p: JQuery.Promise2 { + function compatibleWithPromise(): Promise { return p; } @@ -7801,7 +7807,7 @@ function JQuery_Promise(p: JQuery.Promise) { return s; } - function compatibleWithPromise(): JQuery._Promise { + function compatibleWithPromise(): Promise { return p; } } diff --git a/types/jsforce/api/apex.d.ts b/types/jsforce/api/apex.d.ts new file mode 100644 index 0000000000..32cd1e7143 --- /dev/null +++ b/types/jsforce/api/apex.d.ts @@ -0,0 +1,25 @@ +import { Connection, Callback, RestApiOptions } from '../connection'; + +export class Apex { + constructor(conn: Connection); + + get(path: string, options: RestApiOptions, callback?: Callback): Promise; + get(path: string, callback?: Callback): Promise; + + post(path: string, body: object, options: RestApiOptions, callback?: Callback): Promise; + post(path: string, body: object, callback?: Callback): Promise; + post(path: string, callback?: Callback): Promise; + + put(path: string, body: object, options: RestApiOptions, callback?: Callback): Promise; + put(path: string, body: object, callback?: Callback): Promise; + put(path: string, callback?: Callback): Promise; + + patch(path: string, body: object, options: RestApiOptions, callback?: Callback): Promise; + patch(path: string, body: object, callback?: Callback): Promise; + patch(path: string, callback?: Callback): Promise; + + del(path: string, options: RestApiOptions, callback?: Callback): Promise; + del(path: string, callback?: Callback): Promise; + delete(path: string, options: RestApiOptions, callback?: Callback): Promise; + delete(path: string, callback?: Callback): Promise; +} diff --git a/types/jsforce/connection.d.ts b/types/jsforce/connection.d.ts index e7fd593b01..60716753ae 100644 --- a/types/jsforce/connection.d.ts +++ b/types/jsforce/connection.d.ts @@ -7,6 +7,7 @@ import { SObject } from './salesforce-object'; import { Analytics } from './api/analytics'; import { Chatter } from './api/chatter'; import { Metadata } from './api/metadata'; +import { Apex } from './api/apex'; import { Bulk } from './bulk'; import { Cache } from './cache' import { OAuth2, Streaming } from '.'; @@ -141,6 +142,7 @@ export class Connection extends BaseConnection { tooling: Tooling; analytics: Analytics; + apex: Apex; chatter: Chatter; metadata: Metadata; bulk: Bulk; diff --git a/types/jsforce/index.d.ts b/types/jsforce/index.d.ts index d92677a5eb..c36f39095a 100644 --- a/types/jsforce/index.d.ts +++ b/types/jsforce/index.d.ts @@ -1,16 +1,18 @@ -// Type definitions for jsforce 1.8 +// Type definitions for jsforce 1.9 // Project: https://github.com/jsforce/jsforce // Definitions by: Dolan Miu // Kamil Ejsymont // Thomas Dvornik // Tim Noonan // Abraham White +// Borys Kupar // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 export * from './api/analytics'; export * from './api/chatter'; export * from './api/metadata'; +export * from './api/apex'; export * from './batch'; export * from './bulk'; export * from './cache'; diff --git a/types/jsforce/jsforce-tests.ts b/types/jsforce/jsforce-tests.ts index 8e572448b4..08ea888062 100644 --- a/types/jsforce/jsforce-tests.ts +++ b/types/jsforce/jsforce-tests.ts @@ -716,3 +716,94 @@ async function testDescribe() { const correctlyCached = object === cachedObject; }); } + +async function testApex(conn: sf.Connection): Promise { + const apex: sf.Apex = conn.apex; + + // Test GET + { + await apex.get('/custom-get-apex-api'); + + apex.get('/custom-get-apex-api', (err: Error | null, response: object) => { + if (!err) { + console.log(response); + } + }); + + apex.get('/custom-get-apex-api', { headers: { 'X-Custom-Header': 'value' } }); + } + + // Test POST + { + await apex.post('/custom-apex-api', { email: 'test@example.com' }); + + apex.post('/custom-apex-api', (err: Error | null, response: object) => { + if (!err) { + console.log(response); + } + }); + + // Including custom body + apex.post('/custom-apex-api', { email: 'test@example.com' }, (err: Error | null, response: object) => { + if (!err) { + console.log(response); + } + }); + } + + // Test PUT + { + await apex.put('/custom-apex-api', { email: 'test@example.com' }); + + apex.put('/custom-apex-api', (err: Error | null, response: object) => { + if (!err) { + console.log(response); + } + }); + + // Including custom body + apex.put('/custom-apex-api', { email: 'test@example.com' }, (err: Error | null, response: object) => { + if (!err) { + console.log(response); + } + }); + } + + // Test PATCH + { + await apex.patch('/custom-apex-api', { email: 'test@example.com' }); + + apex.patch('/custom-apex-api', (err: Error | null, response: object) => { + if (!err) { + console.log(response); + } + }); + + // Including custom body + apex.patch('/custom-apex-api', { email: 'test@example.com' }, (err: Error | null, response: object) => { + if (!err) { + console.log(response); + } + }); + } + + // Test DELETE + { + await apex.del('/custom-apex-api'); + + apex.del('/custom-apex-api', (err: Error | null, response: object) => { + if (!err) { + console.log(response); + } + }); + + // alias + await apex.delete('/custom-apex-api'); + + apex.delete('/custom-apex-api', (err: Error | null, response: object) => { + if (!err) { + console.log(response); + } + }); + } +} diff --git a/types/json-schema/index.d.ts b/types/json-schema/index.d.ts index 314f285b59..156a86c9a5 100644 --- a/types/json-schema/index.d.ts +++ b/types/json-schema/index.d.ts @@ -214,6 +214,7 @@ export type JSONSchema6Type = any[] | boolean | number | null | object | string * JSON Schema V6 * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01 */ +export type JSONSchema6Definition = JSONSchema6 | boolean; export interface JSONSchema6 { $id?: string $ref?: string @@ -281,7 +282,7 @@ export interface JSONSchema6 { * Omitting this keyword has the same behavior as an empty schema. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.9 */ - items?: boolean | JSONSchema6 | JSONSchema6[] + items?: JSONSchema6Definition | JSONSchema6Definition[] /** * This keyword determines how child instances validate for arrays, and does not directly validate the immediate instance itself. @@ -292,7 +293,7 @@ export interface JSONSchema6 { * Omitting this keyword has the same behavior as an empty schema. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.10 */ - additionalItems?: boolean | JSONSchema6 + additionalItems?: JSONSchema6Definition /** * Must be a non-negative integer. @@ -321,7 +322,7 @@ export interface JSONSchema6 { * An array instance is valid against "contains" if at least one of its elements is valid against the given schema. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.14 */ - contains?: boolean | JSONSchema6 + contains?: JSONSchema6Definition /** * Must be a non-negative integer. @@ -356,7 +357,7 @@ export interface JSONSchema6 { * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.18 */ properties?: { - [k: string]: boolean | JSONSchema6 + [k: string]: JSONSchema6Definition } /** @@ -368,7 +369,7 @@ export interface JSONSchema6 { * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.19 */ patternProperties?: { - [k: string]: boolean | JSONSchema6 + [k: string]: JSONSchema6Definition } /** @@ -378,7 +379,7 @@ export interface JSONSchema6 { * The default value is an empty schema which allows any value for additional properties. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.20 */ - additionalProperties?: boolean | JSONSchema6 + additionalProperties?: JSONSchema6Definition /** * This keyword specifies rules that are evaluated if the instance is an object and contains a certain property. @@ -388,7 +389,7 @@ export interface JSONSchema6 { * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.21 */ dependencies?: { - [k: string]: boolean | JSONSchema6 | string[] + [k: string]: JSONSchema6Definition | string[] } /** @@ -397,7 +398,7 @@ export interface JSONSchema6 { * Omitting this keyword has the same behavior as an empty schema. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.22 */ - propertyNames?: boolean | JSONSchema6 + propertyNames?: JSONSchema6Definition /** * This provides an enumeration of all possible values that are valid @@ -425,28 +426,28 @@ export interface JSONSchema6 { /** * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.26 */ - allOf?: JSONSchema6[] + allOf?: JSONSchema6Definition[] /** * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.27 */ - anyOf?: JSONSchema6[] + anyOf?: JSONSchema6Definition[] /** * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.28 */ - oneOf?: JSONSchema6[] + oneOf?: JSONSchema6Definition[] /** * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.29 */ - not?: boolean | JSONSchema6 + not?: JSONSchema6Definition /** * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-7.1 */ definitions?: { - [k: string]: boolean | JSONSchema6 + [k: string]: JSONSchema6Definition } /** @@ -508,6 +509,11 @@ export type JSONSchema7Version = 'http://json-schema.org/schema#' | 'http://json-schema.org/draft-07/schema#' | 'http://json-schema.org/draft-07/hyper-schema#'; +/** + * JSON Schema v7 + * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01 + */ +export type JSONSchema7Definition = JSONSchema7 | boolean; export interface JSONSchema7 { $id?: string; $ref?: string; @@ -540,8 +546,8 @@ export interface JSONSchema7 { /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.4 */ - items?: JSONSchema7 | JSONSchema7[]; - additionalItems?: JSONSchema7; + items?: JSONSchema7Definition | JSONSchema7Definition[]; + additionalItems?: JSONSchema7Definition; maxItems?: number; minItems?: number; uniqueItems?: boolean; @@ -554,31 +560,31 @@ export interface JSONSchema7 { minProperties?: number; required?: string[]; properties?: { - [key: string]: JSONSchema7; + [key: string]: JSONSchema7Definition; }; patternProperties?: { - [key: string]: JSONSchema7; + [key: string]: JSONSchema7Definition; }; - additionalProperties?: JSONSchema7; + additionalProperties?: JSONSchema7Definition; dependencies?: { - [key: string]: JSONSchema7 | string[]; + [key: string]: JSONSchema7Definition | string[]; }; - propertyNames?: JSONSchema7; + propertyNames?: JSONSchema7Definition; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.6 */ - if?: JSONSchema7; - then?: JSONSchema7; - else?: JSONSchema7; + if?: JSONSchema7Definition; + then?: JSONSchema7Definition; + else?: JSONSchema7Definition; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.7 */ - allOf?: JSONSchema7[]; - anyOf?: JSONSchema7[]; - oneOf?: JSONSchema7[]; - not?: JSONSchema7; + allOf?: JSONSchema7Definition[]; + anyOf?: JSONSchema7Definition[]; + oneOf?: JSONSchema7Definition[]; + not?: JSONSchema7Definition; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7 @@ -595,7 +601,7 @@ export interface JSONSchema7 { * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-9 */ definitions?: { - [key: string]: JSONSchema7; + [key: string]: JSONSchema7Definition; }; /** diff --git a/types/json-schema/json-schema-tests.ts b/types/json-schema/json-schema-tests.ts index 66cf7c5af5..ae750271b5 100644 --- a/types/json-schema/json-schema-tests.ts +++ b/types/json-schema/json-schema-tests.ts @@ -8,7 +8,9 @@ import { JSONSchema7, JSONSchema7Array, JSONSchema7Type, - JSONSchema7TypeName + JSONSchema7TypeName, + JSONSchema6Definition, + JSONSchema7Definition } from 'json-schema' /* JSON Schema 4 */ @@ -80,6 +82,10 @@ import { } } +// Class +class Schema4 implements JSONSchema4 { +} + /* JSON Schema 6 */ // SimpleType @@ -96,10 +102,10 @@ import { const c: JSONSchema6Type = [1, 2] } -// JSONSchema6 +// JSONSchema6Definition () => { - const a: JSONSchema6 = {} - const b: JSONSchema6 = { + const a: JSONSchema6Definition = {} + const b: JSONSchema6Definition = { $id: 'foo', $ref: 'foo/bar', $schema: 'http://json-schema.org/schema#', @@ -149,6 +155,11 @@ import { propertyNames: {}, format: 'date-time' } + const c: JSONSchema6Definition = false; +} + +// Class +class Schema6 implements JSONSchema6 { } /* JSON Schema 7 */ @@ -167,10 +178,10 @@ import { const c: JSONSchema7Type = [1, 2] } -// JSONSchema4 +// JSONSchema7Definition () => { - const a: JSONSchema7 = {} - const b: JSONSchema7 = { + const a: JSONSchema7Definition = {} + const b: JSONSchema7Definition = { $id: 'foo', $ref: 'foo/bar', $schema: 'http://json-schema.org/schema#', @@ -228,4 +239,9 @@ import { if: {}, then: {} } + const c: JSONSchema7Definition = false; +} + +// Class +class Schema7 implements JSONSchema7 { } diff --git a/types/jss/index.d.ts b/types/jss/index.d.ts index c8e0f13c6c..edcb0ba95f 100644 --- a/types/jss/index.d.ts +++ b/types/jss/index.d.ts @@ -77,7 +77,7 @@ export interface StyleSheet { export type GenerateClassName = (rule: Rule, sheet?: StyleSheet) => string; export interface JSSPlugin { - [key: string]: () => Partial<{ + [key: string]: Partial<{ onCreateRule(name: string, style: Style, options: RuleOptions): Rule; onProcessRule(rule: Rule, sheet: StyleSheet): void; onProcessStyle(style: Style, rule: Rule, sheet: StyleSheet): Style; diff --git a/types/jwt-then/index.d.ts b/types/jwt-then/index.d.ts new file mode 100644 index 0000000000..9a957ff4d2 --- /dev/null +++ b/types/jwt-then/index.d.ts @@ -0,0 +1,63 @@ +// Type definitions for jwt-then 1.0 +// Project: https://github.com/fl0w/jwt-then#readme +// Definitions by: Definitions by: Max Uetrecht +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +/// + +export type Secret = string | Buffer | { key: string; passphrase: string }; + +export interface SignOptions { + /** + * Signature algorithm. Could be one of these values : + * - HS256: HMAC using SHA-256 hash algorithm (default) + * - HS384: HMAC using SHA-384 hash algorithm + * - HS512: HMAC using SHA-512 hash algorithm + * - RS256: RSASSA using SHA-256 hash algorithm + * - RS384: RSASSA using SHA-384 hash algorithm + * - RS512: RSASSA using SHA-512 hash algorithm + * - ES256: ECDSA using P-256 curve and SHA-256 hash algorithm + * - ES384: ECDSA using P-384 curve and SHA-384 hash algorithm + * - ES512: ECDSA using P-521 curve and SHA-512 hash algorithm + * - none: No digital signature or MAC value included + */ + algorithm?: string; + keyid?: string; + /** expressed in seconds or a string describing a time span [zeit/ms](https://github.com/zeit/ms.js). Eg: 60, "2 days", "10h", "7d" */ + expiresIn?: string | number; + /** expressed in seconds or a string describing a time span [zeit/ms](https://github.com/zeit/ms.js). Eg: 60, "2 days", "10h", "7d" */ + notBefore?: string | number; + audience?: string | string[]; + subject?: string; + issuer?: string; + jwtid?: string; + noTimestamp?: boolean; + header?: object; + encoding?: string; +} + +/** + * Sign the given payload into a JSON Web Token string + * @param payload - Payload to sign, could be an literal, buffer or string + * @param secretOrPrivateKey - Either the secret for HMAC algorithms, or the PEM encoded private key for RSA and ECDSA. + * @param [options] - Options for the signature + * @returns A proiose containing the JSON Web Token string + */ +export function sign( + payload: string | Buffer | object, + secretOrPrivateKey: Secret, + options?: SignOptions, +): Promise; + +/** + * Verify given token using a secret or a public key to get a decoded token + * @param token - JWT string to verify + * @param secretOrPublicKey - Either the secret for HMAC algorithms, or the PEM encoded public key for RSA and ECDSA. + * @param [options] - Options for the verification + * @returns A promise containing either an error or the decoded JSON Web Token string + */ +export function verify( + token: string, + secretOrPublicKey: string | Buffer, +): Promise; diff --git a/types/jwt-then/jwt-then-tests.ts b/types/jwt-then/jwt-then-tests.ts new file mode 100644 index 0000000000..d9ad3812ae --- /dev/null +++ b/types/jwt-then/jwt-then-tests.ts @@ -0,0 +1,11 @@ +import jwt = require("jwt-then"); +import fs = require("fs"); + +const testObject = { foo: "bar" }; + +(async () => { + const token = await jwt.sign(testObject, "foobar"); + const verified = await jwt.verify(token, "foobar"); + + console.log(token, verified); +})(); diff --git a/types/jwt-then/tsconfig.json b/types/jwt-then/tsconfig.json new file mode 100644 index 0000000000..aa5eb794cf --- /dev/null +++ b/types/jwt-then/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "jwt-then-tests.ts" + ] +} diff --git a/types/jwt-then/tslint.json b/types/jwt-then/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/jwt-then/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/k6/crypto.d.ts b/types/k6/crypto.d.ts new file mode 100644 index 0000000000..5885be847e --- /dev/null +++ b/types/k6/crypto.d.ts @@ -0,0 +1,30 @@ +export type OutputEncoding = 'hex' | 'base64'; + +export function hmac(algorithm: string, secret: string, data: string, outputEncoding: OutputEncoding): string; + +export function md4(input: string, outputEncoding: OutputEncoding): string; + +export function md5(input: string, outputEncoding: OutputEncoding): string; + +export function sha1(input: string, outputEncoding: OutputEncoding): string; + +export function sha256(input: string, outputEncoding: OutputEncoding): string; + +export function sha384(input: string, outputEncoding: OutputEncoding): string; + +export function sha512(input: string, outputEncoding: OutputEncoding): string; + +export function sha512_224(input: string, outputEncoding: OutputEncoding): string; + +export function sha512_256(input: string, outputEncoding: OutputEncoding): string; + +export function ripemd160(input: string, outputEncoding: OutputEncoding): string; + +export function createHash(algorithm: string): Hasher; + +export function createHMAC(algorithm: string, secret: string): Hasher; + +export interface Hasher { + update: (input: string) => void; + digest: (outputEncoding: OutputEncoding) => string; +} diff --git a/types/k6/http.d.ts b/types/k6/http.d.ts new file mode 100644 index 0000000000..e47e86f9b5 --- /dev/null +++ b/types/k6/http.d.ts @@ -0,0 +1,96 @@ +import { bytes } from '.'; + +export function batch(requests: ReadonlyArray): { [key: string]: Response }; +export function batch(requests: ReadonlyArray): Response[]; + +export function del(url: string, body?: string | object, params?: RequestParams): Response; + +export function get(url: string, params?: RequestParams): Response; + +export function options(url: string, body?: string | object, params?: RequestParams): Response; + +export function patch(url: string, body?: string | object, params?: RequestParams): Response; + +export function post(url: string, body?: string | object, params?: RequestParams): Response; + +export function put(url: string, body?: string | object, params?: RequestParams): Response; + +export function request(method: string, url: string, body?: string | object, params?: RequestParams): Response; + +export interface RequestParams { + auth?: string; + cookies?: object; + headers?: object; + jar?: object; + redirects?: number; + tags?: object; + timeout?: number; +} + +export type Request = string | RequestObj; + +export interface RequestObj { + url: string; + method?: string; + body?: string | object; + params?: RequestParams; +} + +export interface Response { + body: string; + cookies: object; + error: string; + headers: { [key: string]: string }; + ocsp: { + produced_at: number, + this_update: number, + next_update: number, + revocation_reason: string, + revoked_at: number, + status: string + }; + proto: string; + remote_ip: string; + remote_port: number; + request: { + body: string, + cookies: object, + headers: object, + method: string, + url: string + }; + status: number; + timings: { + blocked: number, + looking_up: number, + connecting: number, + tls_handshaking: number, + sending: number, + waiting: number, + receiving: number, + duration: number + }; + tls_cipher_suite: string; + tls_version: string; + url: string; + clickLink: (params?: { + selector?: string, + params?: RequestParams + }) => Response; + html: (selector?: string) => any; + json: () => any; + submitForm: (params?: { + formSelector?: string, + fields?: object, + submitSelector?: string, + params?: RequestParams + }) => Response; +} + +export function file(data: string | bytes, filename?: string, contentType?: string): FileData; + +export interface FileData { + data: string | bytes; + filename?: string; + content_type?: string; +} diff --git a/types/k6/index.d.ts b/types/k6/index.d.ts new file mode 100644 index 0000000000..1ec5ff6d5f --- /dev/null +++ b/types/k6/index.d.ts @@ -0,0 +1,20 @@ +// Type definitions for k6 0.0 +// Project: https://github.com/loadimpact/k6#readme +// Definitions by: MajorBreakfast +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +export type bytes = any; + +declare global { + function open(filePath: string): string; + function open(filePath: string, mode: 'b'): bytes; +} + +export function check(val: T, sets: { [key: string]: (val: T) => boolean }, tags?: object): boolean; + +export function fail(err?: string): undefined; + +export function group(name: string, fn: () => T): T; + +export function sleep(t: number): void; diff --git a/types/k6/k6-tests.ts b/types/k6/k6-tests.ts new file mode 100644 index 0000000000..e40bc2e99c --- /dev/null +++ b/types/k6/k6-tests.ts @@ -0,0 +1,205 @@ +import http from "k6/http"; +import { check, sleep, fail, group } from "k6"; + +const users = JSON.parse(open("./users.json")); +const __VU = 1; + +function test1() { + const user = users[__VU - 1]; + console.log(`${user.username}, ${user.password}`); + sleep(3); +} + +const binFile1 = open("/path/to/file.bin", "b"); + +export default function test2() { + const data = { + field: "this is a standard form field", + file: http.file(binFile1, "test.bin") + }; + const res = http.post("https://example.com/upload", data); + sleep(3); +} + +function test3() { + const res = http.get("http://httpbin.org"); + check(res, { + "response code was 200": (res) => res.status === 200, + "body size was 1234 bytes": (res) => res.body.length === 1234, + }); +} + +function test4() { + const res = http.get("https://loadimpact.com"); + check(res, { + "status code MUST be 200": (res) => res.status === 200, + }) || fail("status code was *not* 200"); +} + +function test5() { + group("my user scenario", () => { + group("front page", () => { + const res = http.get("https://loadimpact.com"); + check(res, { + "status code is 200": (res) => res.status === 200, + }); + }); + group("features page", () => { + const res = http.get("https://loadimpact.com/features"); + check(res, { + "status code is 200": (res) => res.status === 200, + "h1 message is correct": (res) => res.html("h1").text().startsWith("Simple yet realistic load testing"), + }); + }); + }); +} + +function test6() { + http.get("https://loadimpact.com"); + sleep(Math.random() * 30); + http.get("https://loadimpact.com/features"); +} + +function httpTest1() { + const responses = http.batch([ + "http://test.loadimpact.com", + "http://test.loadimpact.com/style.css", + "http://test.loadimpact.com/images/logo.png", + ]); + check(responses[0], { + "main page status was 200": res => res.status === 200, + }); +} + +function httpTest2() { + const req1 = { + method: "GET", + url: "http://httpbin.org/get", + }; + const req2 = { + method: "GET", + url: "http://test.loadimpact.com", + }; + const req3 = { + method: "POST", + url: "http://httpbin.org/post", + body: { + hello: "world!", + }, + params: { headers: { "Content-Type": "application/x-www-form-urlencoded" } } + }; + const responses = http.batch([req1, req2, req3]); + // httpbin.org should return our POST data in the response body, so + // we check the third response object to see that the POST worked. + check(responses[2], { + "form data OK": (res) => JSON.parse(res.body)["form"]["hello"] === "world!", + }); +} + +const binFile = open("/path/to/file.bin", "b"); + +function httpTest3() { + const data = { + field: "this is a standard form field", + file: http.file(binFile, "test.bin") + }; + const res = http.post("https://example.com/upload", data); + sleep(3); +} + +function httpTest4() { + return http.get("https://loadimpact.com"); +} + +function httpTest5() { + const options = { maxRedirects: 10 }; + + const baseURL = "https://dev-li-david.pantheonsite.io"; + + // Fetch the login page, with the login HTML form + const res1 = http.get(baseURL + "/user/login"); + + // Extract hidden value needed to POST form + const formBuildID = (res1.body.match('name="form_build_id" value="(.*)"') || [])[1]; + // Create an Object containing the form data + const formdata = { + name: "testuser1", + pass: "testuser1", + form_build_id: formBuildID, + form_id: "user_login", + op: "Log in", + }; + const headers = { "Content-Type": "application/x-www-form-urlencoded" }; + // Send login request + const res2 = http.post(baseURL + "/user/login", formdata, { headers }); + // Verify that we ended up on the user page + check(res2, { + "login succeeded": (res2) => res2.url === `${baseURL}/users/testuser1`, + }) || fail("login failed"); +} + +function httpTest6() { + const params = { + cookies: { my_cookie: "value" }, + headers: { "X-MyHeader": "k6test" }, + redirects: 5, + tags: { k6test: "yes" } + }; + http.get("https://loadimpact.com", params); +} + +function httpTest7() { + const url1 = "https://api.loadimpact.com/v3/account/me"; + const url2 = "http://httpbin.org/get"; + const apiToken = "f232831bda15dd233c53b9c548732c0197619a3d3c451134d9abded7eb5bb195"; + const requestHeaders = { + "User-Agent": "k6", + Authorization: "Token " + apiToken + }; + + http.batch([ + { method: "GET", url: url1, params: { headers: requestHeaders } }, + { method: "GET", url: url2 } + ]); +} + +function httpTest8() { + // Passing username and password as part of URL plus the auth option will authenticate using HTTP Digest authentication + const res = http.get("http://user:passwd@httpbin.org/digest-auth/auth/user/passwd", {auth: "digest"}); + + // Verify response + check(res, { + "status is 200": (r) => r.status === 200, + "is authenticated": (r) => r.json().authenticated === true, + "is correct user": (r) => r.json().user === "user" + }); +} + +function httpTest9() { + const res = http.get("https://loadimpact.com"); + for (const p in res.headers) { + if (res.headers.hasOwnProperty(p)) { + console.log(`${p} : ${res.headers[p]}`); + } + } + check(res, { + "status is 200": (r) => r.status === 200, + "caption is correct": (r) => r.html("h1").text() === "Example Domain", + }); +} + +function httpTest10() { + // Request page with links + let res = http.get("https://httpbin.org/links/10/0"); + + // Now, click the 4th link on the page + res = res.clickLink({ selector: 'a:nth-child(4)' }); +} + +function httpTest11() { + // Request page containing a form + let res = http.get("https://httpbin.org/forms/post"); + + // Now, submit form setting/overriding some fields of the form + res = res.submitForm({ fields: { custname: "test", extradata: "test2" }, submitSelector: "mySubmit" }); +} diff --git a/types/k6/tsconfig.json b/types/k6/tsconfig.json new file mode 100644 index 0000000000..2c8ee87b9c --- /dev/null +++ b/types/k6/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es2015", "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true + }, + "files": [ + "index.d.ts", + "http.d.ts", + "crypto.d.ts", + "k6-tests.ts" + ] +} diff --git a/types/k6/tslint.json b/types/k6/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/k6/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/kendo-ui/index.d.ts b/types/kendo-ui/index.d.ts index c1d114aaee..819e28404d 100644 --- a/types/kendo-ui/index.d.ts +++ b/types/kendo-ui/index.d.ts @@ -1,22 +1,30 @@ -// Type definitions for Kendo UI Professional v2018.2.516 +// Type definitions for Kendo UI Professional v2018.3.911 // Project: http://www.telerik.com/kendo-ui // Definitions by: Telerik // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 - /// +/* + * Please, submit Pull Requests in the telerik/kendo-ui-core repo at + * https://github.com/telerik/kendo-ui-core/tree/master/typescript + * + * See contributor instructions at + * https://github.com/telerik/kendo-ui-core#how-to-contribute + */ + declare namespace kendo { function culture(): { name: string; calendar: { AM: string[]; PM: string[]; + "/": string; + ":": string; days: { names: string[]; namesAbbr: string[]; namesShort: string[]; - firstDay: number; }; months: { names: string[]; @@ -37,17 +45,19 @@ declare namespace kendo { u: string; y: string; }; + firstDay: number; twoDigitYearMax: number; }; calendars: { standard: { AM: string[]; PM: string[]; + "/": string; + ":": string; days: { names: string[]; namesAbbr: string[]; namesShort: string[]; - firstDay: number; }; months: { names: string[]; @@ -68,21 +78,28 @@ declare namespace kendo { u: string; y: string; }; + firstDay: string; twoDigitYearMax: number; }; }; numberFormat: { currency: { decimals: number; + ",": string; + ".": string; groupSize: number[]; pattern: string[]; symbol: string; }; decimals: number; + ",": string; + ".": string; groupSize: number[]; pattern: string[]; percent: { decimals: number; + ",": string; + ".": string; groupSize: number[]; pattern: string[]; symbol: string; @@ -95,11 +112,12 @@ declare namespace kendo { calendar?: { AM: string[]; PM: string[]; + "/": string; + ":": string; days: { names: string[]; namesAbbr: string[]; namesShort: string[]; - firstDay: number; }; months: { names: string[]; @@ -120,17 +138,19 @@ declare namespace kendo { u: string; y: string; }; + firstDay: number; twoDigitYearMax: number; }; calendars?: { standard: { AM: string[]; PM: string[]; + "/": string; + ":": string; days: { names: string[]; namesAbbr: string[]; namesShort: string[]; - firstDay: number; }; months: { names: string[]; @@ -151,21 +171,28 @@ declare namespace kendo { u: string; y: string; }; + firstDay: number; twoDigitYearMax: number; }; }; numberFormat?: { currency: { decimals: number; + ",": string; + ".": string; groupSize: number[]; pattern: string[]; symbol: string; }; decimals: number; + ",": string; + ".": string; groupSize: number[]; pattern: string[]; percent: { decimals: number; + ",": string; + ".": string; groupSize: number[]; pattern: string[]; symbol: string; @@ -191,9 +218,9 @@ declare namespace kendo { function guid(): string; - function widgetInstance(element: JQuery, suite: typeof kendo.ui): kendo.ui.Widget; - function widgetInstance(element: JQuery, suite: typeof kendo.mobile.ui): kendo.ui.Widget; - function widgetInstance(element: JQuery, suite: typeof kendo.dataviz.ui): kendo.ui.Widget; + function widgetInstance(element: JQuery, suite?: typeof kendo.ui): kendo.ui.Widget; + function widgetInstance(element: JQuery, suite?: typeof kendo.mobile.ui): kendo.ui.Widget; + function widgetInstance(element: JQuery, suite?: typeof kendo.dataviz.ui): kendo.ui.Widget; var ns: string; @@ -269,9 +296,19 @@ declare namespace kendo { static extend(prototype: Object): Observable; init(...args: any[]): void; + bind(eventName: string, handler: Function): Observable; + bind(events: string[], handler: Function): Observable; + bind(events: string[], handlers: { [eventName: string]: Function}): Observable; + one(eventName: string, handler: Function): Observable; + one(events: string[], handler: Function): Observable; + one(events: string[], handlers: { [eventName: string]: Function}): Observable; + first(eventName: string, handler: Function): Observable; + first(events: string[], handler: Function): Observable; + first(events: string[], handlers: { [eventName: string]: Function}): Observable; + trigger(eventName: string, e?: any): boolean; unbind(eventName: string, handler?: any): Observable; } @@ -862,12 +899,17 @@ declare namespace kendo.data { constructor(options?: PivotDataSourceOptions); init(options?: PivotDataSourceOptions): void; catalog(val: string): void; - columns(val: string[]): string[]; + catalog(): string; + columns(val: string[]): void; + columns(): string[]; cube(val: string): void; + cube(): string; discover(options: PivotDiscoverRequestOptions): JQueryPromise; - measures(val: string[]): string[]; + measures(val: string[]): void; + measures(): string[]; measuresAxis(): string; - rows(val: string[]): string[]; + rows(val: string[]): void; + rows(): string[]; schemaCatalogs(): JQueryPromise; schemaCubes(): JQueryPromise; schemaDimensions(): JQueryPromise; @@ -880,6 +922,7 @@ declare namespace kendo.data { create?: DataSourceTransportCreate | ((options: DataSourceTransportOptions) => void); destroy?: DataSourceTransportDestroy | ((options: DataSourceTransportOptions) => void); push?: Function; + submit?: Function; read?: DataSourceTransportRead | ((options: DataSourceTransportOptions) => void); signalr?: DataSourceTransportSignalr | ((options: DataSourceTransportOptions) => void); update?: DataSourceTransportUpdate | ((options: DataSourceTransportOptions) => void); @@ -1081,7 +1124,6 @@ declare namespace kendo.data { query(options?: any): JQueryPromise; read(data?: any): JQueryPromise; remove(model: kendo.data.ObservableObject): void; - skip(): number; sort(sort: DataSourceSortItem): void; sort(sort: DataSourceSortItem[]): void; sort(): DataSourceSortItem[]; @@ -1352,6 +1394,8 @@ declare namespace kendo.ui { currentTarget: JQuery; constructor(element: Element, options?: DraggableOptions); options: DraggableOptions; + + cancelHold(): void; } interface DraggableEvent { @@ -1482,6 +1526,7 @@ declare namespace kendo.mobile { constructor(element?: any, options?: ApplicationOptions); init(element?: any, options?: ApplicationOptions): void; + changeLoadingMessage(text: string): void; hideLoading(): void; navigate(url: string, transition?: string): void; replace(url: string, transition?: string): void; @@ -1608,6 +1653,8 @@ declare namespace kendo.ui { close(): void; dataItem(index: number): any; + dataItem(index: Element): any; + dataItem(index: JQuery): any; destroy(): void; enable(enable: boolean): void; focus(): void; @@ -1732,6 +1779,7 @@ declare namespace kendo.ui { name?: string; enable?: boolean; icon?: string; + iconClass?: string; imageUrl?: string; spriteCssClass?: string; click?(e: ButtonClickEvent): void; @@ -1779,9 +1827,11 @@ declare namespace kendo.ui { badge?: string; enabled?: boolean; icon?: string; + iconClass?: string; imageUrl?: string; selected?: boolean; text?: string; + encoded?: boolean; } interface ButtonGroupOptions { @@ -1856,7 +1906,7 @@ declare namespace kendo.ui { dates?: any; depth?: string; disableDates?: any|Function; - footer?: false | string | Function; + footer?: boolean|string|Function; format?: string; max?: Date; messages?: CalendarMessages; @@ -2505,7 +2555,7 @@ declare namespace kendo.ui { dates?: any; depth?: string; disableDates?: any|Function; - footer?: string|Function; + footer?: boolean|string|Function; format?: string; max?: Date; min?: Date; @@ -2598,7 +2648,7 @@ declare namespace kendo.ui { dates?: any; depth?: string; disableDates?: any|Function; - footer?: string; + footer?: boolean|string|Function; format?: string; interval?: number; max?: Date; @@ -2970,6 +3020,7 @@ declare namespace kendo.ui { dataBound?(e: DropDownTreeDataBoundEvent): void; filtering?(e: DropDownTreeFilteringEvent): void; open?(e: DropDownTreeOpenEvent): void; + select?(e: DropDownTreeSelectEvent): void; } interface DropDownTreeEvent { sender: DropDownTree; @@ -2993,6 +3044,10 @@ declare namespace kendo.ui { interface DropDownTreeOpenEvent extends DropDownTreeEvent { } + interface DropDownTreeSelectEvent extends DropDownTreeEvent { + node?: Element; + } + class Editor extends kendo.ui.Widget { @@ -3013,7 +3068,7 @@ declare namespace kendo.ui { createRange(document?: Document): Range; destroy(): void; - encodedValue(): void; + encodedValue(): string; exec(name: string, params: any): void; focus(): void; getRange(): Range; @@ -3959,6 +4014,7 @@ declare namespace kendo.ui { removeRow(row: Element): void; removeRow(row: JQuery): void; reorderColumn(destIndex: number, column: any): void; + resizeColumn(column: any, value: number): void; saveAsExcel(): void; saveAsPDF(): JQueryPromise; saveChanges(): void; @@ -4067,6 +4123,7 @@ declare namespace kendo.ui { footerTemplate?: string|Function; format?: string; groupable?: boolean; + groupHeaderColumnTemplate?: string|Function; groupHeaderTemplate?: string|Function; groupFooterTemplate?: string|Function; headerAttributes?: any; @@ -4074,6 +4131,7 @@ declare namespace kendo.ui { hidden?: boolean; locked?: boolean; lockable?: boolean; + media?: string; minResizableWidth?: number; minScreenWidth?: number; selectable?: boolean; @@ -4294,7 +4352,7 @@ declare namespace kendo.ui { columnMenu?: boolean | GridColumnMenu; dataSource?: any|any|kendo.data.DataSource; detailTemplate?: string|Function; - editable?: boolean | "inline" | "incell" | "popup" | GridEditable; + editable?: boolean | string | GridEditable; excel?: GridExcel; filterable?: boolean | GridFilterable; groupable?: boolean | GridGroupable; @@ -4312,7 +4370,7 @@ declare namespace kendo.ui { scrollable?: boolean | GridScrollable; selectable?: boolean|string; sortable?: boolean | GridSortable; - toolbar?: string|Function|(string|GridToolbarItem)[]; + toolbar?: GridToolbarItem[]; beforeEdit?(e: GridBeforeEditEvent): void; cancel?(e: GridCancelEvent): void; cellClose?(e: GridCellCloseEvent): void; @@ -4943,6 +5001,158 @@ declare namespace kendo.ui { item?: HTMLElement; } + class MultiColumnComboBox extends kendo.ui.Widget { + + static fn: MultiColumnComboBox; + + options: MultiColumnComboBoxOptions; + + dataSource: kendo.data.DataSource; + input: JQuery; + list: JQuery; + ul: JQuery; + + element: JQuery; + wrapper: JQuery; + + static extend(proto: Object): MultiColumnComboBox; + + constructor(element: Element, options?: MultiColumnComboBoxOptions); + + + close(): void; + dataItem(index?: number): any; + destroy(): void; + enable(enable: boolean): void; + focus(): void; + items(): any; + open(): void; + readonly(readonly: boolean): void; + refresh(): void; + search(word: string): void; + select(): number; + select(li: JQuery): void; + select(li: number): void; + select(li: Function): void; + setDataSource(dataSource: kendo.data.DataSource): void; + suggest(value: string): void; + text(): string; + text(text: string): void; + toggle(toggle: boolean): void; + value(): string; + value(value: string): void; + + } + + interface MultiColumnComboBoxAnimationClose { + effects?: string; + duration?: number; + } + + interface MultiColumnComboBoxAnimationOpen { + effects?: string; + duration?: number; + } + + interface MultiColumnComboBoxAnimation { + close?: MultiColumnComboBoxAnimationClose; + open?: MultiColumnComboBoxAnimationOpen; + } + + interface MultiColumnComboBoxColumn { + field?: string; + title?: string; + template?: string|Function; + headerTemplate?: string|Function; + width?: number|string; + } + + interface MultiColumnComboBoxPopup { + appendTo?: string; + origin?: string; + position?: string; + } + + interface MultiColumnComboBoxVirtual { + itemHeight?: number; + mapValueTo?: string; + valueMapper?: Function; + } + + interface MultiColumnComboBoxOptions { + name?: string; + animation?: MultiColumnComboBoxAnimation; + autoBind?: boolean; + autoWidth?: boolean; + cascadeFrom?: string; + cascadeFromField?: string; + columns?: MultiColumnComboBoxColumn[]; + clearButton?: boolean; + dataSource?: any|any|kendo.data.DataSource; + dataTextField?: string; + dataValueField?: string; + delay?: number; + dropDownWidth?: string|number; + enable?: boolean; + enforceMinLength?: boolean; + filter?: string; + filterFields?: any; + fixedGroupTemplate?: string|Function; + footerTemplate?: string|Function; + groupTemplate?: string|Function; + height?: number; + highlightFirst?: boolean; + ignoreCase?: boolean; + index?: number; + minLength?: number; + noDataTemplate?: string|Function; + placeholder?: string; + popup?: MultiColumnComboBoxPopup; + suggest?: boolean; + syncValueAndText?: boolean; + headerTemplate?: string|Function; + template?: string|Function; + text?: string; + value?: string; + valuePrimitive?: boolean; + virtual?: boolean | MultiColumnComboBoxVirtual; + change?(e: MultiColumnComboBoxChangeEvent): void; + close?(e: MultiColumnComboBoxCloseEvent): void; + dataBound?(e: MultiColumnComboBoxDataBoundEvent): void; + filtering?(e: MultiColumnComboBoxFilteringEvent): void; + open?(e: MultiColumnComboBoxOpenEvent): void; + select?(e: MultiColumnComboBoxSelectEvent): void; + cascade?(e: MultiColumnComboBoxCascadeEvent): void; + } + interface MultiColumnComboBoxEvent { + sender: MultiColumnComboBox; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + interface MultiColumnComboBoxChangeEvent extends MultiColumnComboBoxEvent { + } + + interface MultiColumnComboBoxCloseEvent extends MultiColumnComboBoxEvent { + } + + interface MultiColumnComboBoxDataBoundEvent extends MultiColumnComboBoxEvent { + } + + interface MultiColumnComboBoxFilteringEvent extends MultiColumnComboBoxEvent { + filter?: any; + } + + interface MultiColumnComboBoxOpenEvent extends MultiColumnComboBoxEvent { + } + + interface MultiColumnComboBoxSelectEvent extends MultiColumnComboBoxEvent { + dataItem?: any; + item?: JQuery; + } + + interface MultiColumnComboBoxCascadeEvent extends MultiColumnComboBoxEvent { + } class MultiSelect extends kendo.ui.Widget { @@ -5310,18 +5520,18 @@ declare namespace kendo.ui { constructor(element: Element, options?: PanelBarOptions); - append(item: string, referenceItem: string): kendo.ui.PanelBar; - append(item: string, referenceItem: Element): kendo.ui.PanelBar; - append(item: string, referenceItem: JQuery): kendo.ui.PanelBar; - append(item: Element, referenceItem: string): kendo.ui.PanelBar; - append(item: Element, referenceItem: Element): kendo.ui.PanelBar; - append(item: Element, referenceItem: JQuery): kendo.ui.PanelBar; - append(item: JQuery, referenceItem: string): kendo.ui.PanelBar; - append(item: JQuery, referenceItem: Element): kendo.ui.PanelBar; - append(item: JQuery, referenceItem: JQuery): kendo.ui.PanelBar; - append(item: any, referenceItem: string): kendo.ui.PanelBar; - append(item: any, referenceItem: Element): kendo.ui.PanelBar; - append(item: any, referenceItem: JQuery): kendo.ui.PanelBar; + append(item: string, referenceItem?: string): kendo.ui.PanelBar; + append(item: string, referenceItem?: Element): kendo.ui.PanelBar; + append(item: string, referenceItem?: JQuery): kendo.ui.PanelBar; + append(item: Element, referenceItem?: string): kendo.ui.PanelBar; + append(item: Element, referenceItem?: Element): kendo.ui.PanelBar; + append(item: Element, referenceItem?: JQuery): kendo.ui.PanelBar; + append(item: JQuery, referenceItem?: string): kendo.ui.PanelBar; + append(item: JQuery, referenceItem?: Element): kendo.ui.PanelBar; + append(item: JQuery, referenceItem?: JQuery): kendo.ui.PanelBar; + append(item: any, referenceItem?: string): kendo.ui.PanelBar; + append(item: any, referenceItem?: Element): kendo.ui.PanelBar; + append(item: any, referenceItem?: JQuery): kendo.ui.PanelBar; clearSelection(): void; collapse(element: string, useAnimation: boolean): kendo.ui.PanelBar; collapse(element: Element, useAnimation: boolean): kendo.ui.PanelBar; @@ -5656,12 +5866,12 @@ declare namespace kendo.ui { interface PivotGridExpandMemberEvent extends PivotGridEvent { axis?: string; - path?: string; + path?: string[]; } interface PivotGridCollapseMemberEvent extends PivotGridEvent { axis?: string; - path?: string; + path?: string[]; } interface PivotGridExcelExportEvent extends PivotGridEvent { @@ -6658,6 +6868,7 @@ declare namespace kendo.ui { sheetByIndex(index: number): kendo.spreadsheet.Sheet; insertSheet(options: any): kendo.spreadsheet.Sheet; moveSheetToIndex(sheet: kendo.spreadsheet.Sheet, index: number): void; + refresh(): void; removeSheet(sheet: kendo.spreadsheet.Sheet): void; renameSheet(sheet: kendo.spreadsheet.Sheet, newSheetName: string): kendo.spreadsheet.Sheet; toJSON(): any; @@ -7202,6 +7413,8 @@ declare namespace kendo.ui { element: JQuery; wrapper: JQuery; + popup: kendo.ui.Popup; + static extend(proto: Object): ToolBar; constructor(element: Element, options?: ToolBarOptions); @@ -7526,6 +7739,13 @@ declare namespace kendo.ui { dataSource: kendo.data.DataSource; columns: any; + table: JQuery; + tbody: JQuery; + thead: JQuery; + content: JQuery; + lockedHeader: JQuery; + lockedTable: JQuery; + lockedContent: JQuery; element: JQuery; wrapper: JQuery; @@ -7541,8 +7761,10 @@ declare namespace kendo.ui { autoFitColumn(column: number): void; autoFitColumn(column: string): void; autoFitColumn(column: any): void; + cancelChanges(): void; cancelRow(): void; clearSelection(): void; + closeCell(isCancel?: boolean): void; collapse(row: string): JQueryPromise; collapse(row: Element): JQueryPromise; collapse(row: JQuery): JQueryPromise; @@ -7550,6 +7772,7 @@ declare namespace kendo.ui { dataItem(row: Element): kendo.data.TreeListModel; dataItem(row: JQuery): kendo.data.TreeListModel; destroy(): void; + editCell(cell: JQuery): void; editRow(row: JQuery): void; expand(row: string): JQueryPromise; expand(row: Element): JQueryPromise; @@ -7563,6 +7786,7 @@ declare namespace kendo.ui { removeRow(row: JQuery): void; saveAsExcel(): void; saveAsPDF(): JQueryPromise; + saveChanges(): void; saveRow(): void; select(): JQuery; select(rows: Element): void; @@ -7585,6 +7809,9 @@ declare namespace kendo.ui { filter?: string; sortAscending?: string; sortDescending?: string; + settings?: string; + lock?: string; + unlock?: string; } interface TreeListColumnMenu { @@ -7612,7 +7839,9 @@ declare namespace kendo.ui { interface TreeListColumn { attributes?: any; + columns?: any; command?: TreeListColumnCommandItem[]; + editable?: Function; encoded?: boolean; expandable?: boolean; field?: string; @@ -7710,6 +7939,8 @@ declare namespace kendo.ui { createchild?: string; destroy?: string; edit?: string; + save?: string; + cancel?: string; excel?: string; pdf?: string; update?: string; @@ -7722,6 +7953,32 @@ declare namespace kendo.ui { requestFailed?: string; retry?: string; } + interface TreeListPageableMessages { + display?: string; + empty?: string; + page?: string; + of?: string; + itemsPerPage?: string; + first?: string; + last?: string; + next?: string; + previous?: string; + refresh?: string; + morePages?: string; + } + + interface TreeListPageable { + alwaysVisible?: boolean; + pageSize?: number; + previousNext?: boolean; + numeric?: boolean; + buttonCount?: number; + input?: boolean; + pageSizes?: boolean|any; + refresh?: boolean; + info?: boolean; + messages?: TreeListPageableMessages; + } interface TreeListPdfMargin { bottom?: number|string; @@ -7773,12 +8030,15 @@ declare namespace kendo.ui { height?: number|string; messages?: TreeListMessages; navigatable?: boolean; + pageable?: boolean | TreeListPageable; pdf?: TreeListPdf; scrollable?: boolean|any; selectable?: boolean|string; sortable?: boolean | TreeListSortable; toolbar?: TreeListToolbarItem[] | any; + beforeEdit?(e: TreeListBeforeEditEvent): void; cancel?(e: TreeListCancelEvent): void; + cellClose?(e: TreeListCellCloseEvent): void; change?(e: TreeListChangeEvent): void; collapse?(e: TreeListCollapseEvent): void; dataBinding?(e: TreeListDataBindingEvent): void; @@ -7791,14 +8051,17 @@ declare namespace kendo.ui { excelExport?(e: TreeListExcelExportEvent): void; expand?(e: TreeListExpandEvent): void; filterMenuInit?(e: TreeListFilterMenuInitEvent): void; + filterMenuOpen?(e: TreeListFilterMenuOpenEvent): void; pdfExport?(e: TreeListPdfExportEvent): void; remove?(e: TreeListRemoveEvent): void; save?(e: TreeListSaveEvent): void; + saveChanges?(e: TreeListSaveChangesEvent): void; columnShow?(e: TreeListColumnShowEvent): void; columnHide?(e: TreeListColumnHideEvent): void; columnReorder?(e: TreeListColumnReorderEvent): void; columnResize?(e: TreeListColumnResizeEvent): void; columnMenuInit?(e: TreeListColumnMenuInitEvent): void; + columnMenuOpen?(e: TreeListColumnMenuOpenEvent): void; columnLock?(e: TreeListColumnLockEvent): void; columnUnlock?(e: TreeListColumnUnlockEvent): void; } @@ -7808,11 +8071,21 @@ declare namespace kendo.ui { isDefaultPrevented(): boolean; } + interface TreeListBeforeEditEvent extends TreeListEvent { + model?: kendo.data.Model; + } + interface TreeListCancelEvent extends TreeListEvent { container?: JQuery; model?: kendo.data.TreeListModel; } + interface TreeListCellCloseEvent extends TreeListEvent { + container?: JQuery; + model?: kendo.data.Model; + type?: string; + } + interface TreeListChangeEvent extends TreeListEvent { } @@ -7867,6 +8140,11 @@ declare namespace kendo.ui { field?: string; } + interface TreeListFilterMenuOpenEvent extends TreeListEvent { + container?: JQuery; + field?: string; + } + interface TreeListPdfExportEvent extends TreeListEvent { promise?: JQueryPromise; } @@ -7881,6 +8159,9 @@ declare namespace kendo.ui { container?: JQuery; } + interface TreeListSaveChangesEvent extends TreeListEvent { + } + interface TreeListColumnShowEvent extends TreeListEvent { column?: any; } @@ -7906,6 +8187,11 @@ declare namespace kendo.ui { field?: string; } + interface TreeListColumnMenuOpenEvent extends TreeListEvent { + container?: JQuery; + field?: string; + } + interface TreeListColumnLockEvent extends TreeListEvent { column?: any; } @@ -8425,274 +8711,6 @@ declare namespace kendo.ui { } -} -declare namespace kendo.geometry { - class Arc extends Observable { - - - options: ArcOptions; - - anticlockwise: boolean; - center: kendo.geometry.Point; - endAngle: number; - radiusX: number; - radiusY: number; - startAngle: number; - - constructor(center: any|kendo.geometry.Point, options?: ArcOptions); - - - bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; - getAnticlockwise(): boolean; - getCenter(): kendo.geometry.Point; - getEndAngle(): number; - getRadiusX(): number; - getRadiusY(): number; - getStartAngle(): number; - pointAt(angle: number): kendo.geometry.Point; - setAnticlockwise(value: boolean): kendo.geometry.Arc; - setCenter(value: kendo.geometry.Point): kendo.geometry.Arc; - setEndAngle(value: number): kendo.geometry.Arc; - setRadiusX(value: number): kendo.geometry.Arc; - setRadiusY(value: number): kendo.geometry.Arc; - setStartAngle(value: number): kendo.geometry.Arc; - - } - - interface ArcOptions { - name?: string; - } - interface ArcEvent { - sender: Arc; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Circle extends Observable { - - - options: CircleOptions; - - center: kendo.geometry.Point; - radius: number; - - constructor(center: any|kendo.geometry.Point, radius: number); - - - bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; - clone(): kendo.geometry.Circle; - equals(other: kendo.geometry.Circle): boolean; - getCenter(): kendo.geometry.Point; - getRadius(): number; - pointAt(angle: number): kendo.geometry.Point; - setCenter(value: kendo.geometry.Point): kendo.geometry.Point; - setCenter(value: any): kendo.geometry.Point; - setRadius(value: number): kendo.geometry.Circle; - - } - - interface CircleOptions { - name?: string; - } - interface CircleEvent { - sender: Circle; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Matrix extends Observable { - - - options: MatrixOptions; - - a: number; - b: number; - c: number; - d: number; - e: number; - f: number; - - - static rotate(angle: number, x: number, y: number): kendo.geometry.Matrix; - static scale(scaleX: number, scaleY: number): kendo.geometry.Matrix; - static translate(x: number, y: number): kendo.geometry.Matrix; - static unit(): kendo.geometry.Matrix; - - clone(): kendo.geometry.Matrix; - equals(other: kendo.geometry.Matrix): boolean; - round(digits: number): kendo.geometry.Matrix; - multiplyCopy(matrix: kendo.geometry.Matrix): kendo.geometry.Matrix; - toArray(digits: number): any; - toString(digits: number, separator: string): string; - - } - - interface MatrixOptions { - name?: string; - } - interface MatrixEvent { - sender: Matrix; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Point extends Observable { - - - options: PointOptions; - - x: number; - y: number; - - constructor(x: number, y: number); - - static create(x: number, y: number): kendo.geometry.Point; - static create(x: any, y: number): kendo.geometry.Point; - static create(x: kendo.geometry.Point, y: number): kendo.geometry.Point; - static min(): kendo.geometry.Point; - static max(): kendo.geometry.Point; - static minPoint(): kendo.geometry.Point; - static maxPoint(): kendo.geometry.Point; - - clone(): kendo.geometry.Point; - distanceTo(point: kendo.geometry.Point): number; - equals(other: kendo.geometry.Point): boolean; - getX(): number; - getY(): number; - move(x: number, y: number): kendo.geometry.Point; - rotate(angle: number, center: kendo.geometry.Point): kendo.geometry.Point; - rotate(angle: number, center: any): kendo.geometry.Point; - round(digits: number): kendo.geometry.Point; - scale(scaleX: number, scaleY: number): kendo.geometry.Point; - scaleCopy(scaleX: number, scaleY: number): kendo.geometry.Point; - setX(value: number): kendo.geometry.Point; - setY(value: number): kendo.geometry.Point; - toArray(digits: number): any; - toString(digits: number, separator: string): string; - transform(tansformation: kendo.geometry.Transformation): kendo.geometry.Point; - transformCopy(tansformation: kendo.geometry.Transformation): kendo.geometry.Point; - translate(dx: number, dy: number): kendo.geometry.Point; - translateWith(vector: kendo.geometry.Point): kendo.geometry.Point; - translateWith(vector: any): kendo.geometry.Point; - - } - - interface PointOptions { - name?: string; - } - interface PointEvent { - sender: Point; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Rect extends Observable { - - - options: RectOptions; - - origin: kendo.geometry.Point; - size: kendo.geometry.Size; - - constructor(origin: kendo.geometry.Point|any, size: kendo.geometry.Size|any); - - static fromPoints(pointA: kendo.geometry.Point, pointB: kendo.geometry.Point): kendo.geometry.Rect; - static union(rectA: kendo.geometry.Rect, rectB: kendo.geometry.Rect): kendo.geometry.Rect; - - bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; - bottomLeft(): kendo.geometry.Point; - bottomRight(): kendo.geometry.Point; - center(): kendo.geometry.Point; - clone(): kendo.geometry.Rect; - equals(other: kendo.geometry.Rect): boolean; - getOrigin(): kendo.geometry.Point; - getSize(): kendo.geometry.Size; - height(): number; - setOrigin(value: kendo.geometry.Point): kendo.geometry.Rect; - setOrigin(value: any): kendo.geometry.Rect; - setSize(value: kendo.geometry.Size): kendo.geometry.Rect; - setSize(value: any): kendo.geometry.Rect; - topLeft(): kendo.geometry.Point; - topRight(): kendo.geometry.Point; - width(): number; - - } - - interface RectOptions { - name?: string; - } - interface RectEvent { - sender: Rect; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Size extends Observable { - - - options: SizeOptions; - - width: number; - height: number; - - - static create(width: number, height: number): kendo.geometry.Size; - static create(width: any, height: number): kendo.geometry.Size; - static create(width: kendo.geometry.Size, height: number): kendo.geometry.Size; - - clone(): kendo.geometry.Size; - equals(other: kendo.geometry.Size): boolean; - getWidth(): number; - getHeight(): number; - setWidth(value: number): kendo.geometry.Size; - setHeight(value: number): kendo.geometry.Size; - - } - - interface SizeOptions { - name?: string; - } - interface SizeEvent { - sender: Size; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Transformation extends Observable { - - - options: TransformationOptions; - - - - - clone(): kendo.geometry.Transformation; - equals(other: kendo.geometry.Transformation): boolean; - matrix(): kendo.geometry.Matrix; - multiply(transformation: kendo.geometry.Transformation): kendo.geometry.Transformation; - rotate(angle: number, center: any): kendo.geometry.Transformation; - rotate(angle: number, center: kendo.geometry.Point): kendo.geometry.Transformation; - scale(scaleX: number, scaleY: number): kendo.geometry.Transformation; - translate(x: number, y: number): kendo.geometry.Transformation; - - } - - interface TransformationOptions { - name?: string; - } - interface TransformationEvent { - sender: Transformation; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - } declare namespace kendo.drawing { class Arc extends kendo.drawing.Element { @@ -9485,8 +9503,426 @@ declare namespace kendo.drawing { +} +declare namespace kendo.geometry { + class Arc extends Observable { + + + options: ArcOptions; + + anticlockwise: boolean; + center: kendo.geometry.Point; + endAngle: number; + radiusX: number; + radiusY: number; + startAngle: number; + + constructor(center: any|kendo.geometry.Point, options?: ArcOptions); + + + bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; + getAnticlockwise(): boolean; + getCenter(): kendo.geometry.Point; + getEndAngle(): number; + getRadiusX(): number; + getRadiusY(): number; + getStartAngle(): number; + pointAt(angle: number): kendo.geometry.Point; + setAnticlockwise(value: boolean): kendo.geometry.Arc; + setCenter(value: kendo.geometry.Point): kendo.geometry.Arc; + setEndAngle(value: number): kendo.geometry.Arc; + setRadiusX(value: number): kendo.geometry.Arc; + setRadiusY(value: number): kendo.geometry.Arc; + setStartAngle(value: number): kendo.geometry.Arc; + + } + + interface ArcOptions { + name?: string; + } + interface ArcEvent { + sender: Arc; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Circle extends Observable { + + + options: CircleOptions; + + center: kendo.geometry.Point; + radius: number; + + constructor(center: any|kendo.geometry.Point, radius: number); + + + bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; + clone(): kendo.geometry.Circle; + equals(other: kendo.geometry.Circle): boolean; + getCenter(): kendo.geometry.Point; + getRadius(): number; + pointAt(angle: number): kendo.geometry.Point; + setCenter(value: kendo.geometry.Point): kendo.geometry.Point; + setCenter(value: any): kendo.geometry.Point; + setRadius(value: number): kendo.geometry.Circle; + + } + + interface CircleOptions { + name?: string; + } + interface CircleEvent { + sender: Circle; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Matrix extends Observable { + + + options: MatrixOptions; + + a: number; + b: number; + c: number; + d: number; + e: number; + f: number; + + + static rotate(angle: number, x: number, y: number): kendo.geometry.Matrix; + static scale(scaleX: number, scaleY: number): kendo.geometry.Matrix; + static translate(x: number, y: number): kendo.geometry.Matrix; + static unit(): kendo.geometry.Matrix; + + clone(): kendo.geometry.Matrix; + equals(other: kendo.geometry.Matrix): boolean; + round(digits: number): kendo.geometry.Matrix; + multiplyCopy(matrix: kendo.geometry.Matrix): kendo.geometry.Matrix; + toArray(digits: number): any; + toString(digits: number, separator: string): string; + + } + + interface MatrixOptions { + name?: string; + } + interface MatrixEvent { + sender: Matrix; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Point extends Observable { + + + options: PointOptions; + + x: number; + y: number; + + constructor(x: number, y: number); + + static create(x: number, y: number): kendo.geometry.Point; + static create(x: any, y: number): kendo.geometry.Point; + static create(x: kendo.geometry.Point, y: number): kendo.geometry.Point; + static min(): kendo.geometry.Point; + static max(): kendo.geometry.Point; + static minPoint(): kendo.geometry.Point; + static maxPoint(): kendo.geometry.Point; + + clone(): kendo.geometry.Point; + distanceTo(point: kendo.geometry.Point): number; + equals(other: kendo.geometry.Point): boolean; + getX(): number; + getY(): number; + move(x: number, y: number): kendo.geometry.Point; + rotate(angle: number, center: kendo.geometry.Point): kendo.geometry.Point; + rotate(angle: number, center: any): kendo.geometry.Point; + round(digits: number): kendo.geometry.Point; + scale(scaleX: number, scaleY: number): kendo.geometry.Point; + scaleCopy(scaleX: number, scaleY: number): kendo.geometry.Point; + setX(value: number): kendo.geometry.Point; + setY(value: number): kendo.geometry.Point; + toArray(digits: number): any; + toString(digits: number, separator: string): string; + transform(tansformation: kendo.geometry.Transformation): kendo.geometry.Point; + transformCopy(tansformation: kendo.geometry.Transformation): kendo.geometry.Point; + translate(dx: number, dy: number): kendo.geometry.Point; + translateWith(vector: kendo.geometry.Point): kendo.geometry.Point; + translateWith(vector: any): kendo.geometry.Point; + + } + + interface PointOptions { + name?: string; + } + interface PointEvent { + sender: Point; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Rect extends Observable { + + + options: RectOptions; + + origin: kendo.geometry.Point; + size: kendo.geometry.Size; + + constructor(origin: kendo.geometry.Point|any, size: kendo.geometry.Size|any); + + static fromPoints(pointA: kendo.geometry.Point, pointB: kendo.geometry.Point): kendo.geometry.Rect; + static union(rectA: kendo.geometry.Rect, rectB: kendo.geometry.Rect): kendo.geometry.Rect; + + bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; + bottomLeft(): kendo.geometry.Point; + bottomRight(): kendo.geometry.Point; + center(): kendo.geometry.Point; + clone(): kendo.geometry.Rect; + equals(other: kendo.geometry.Rect): boolean; + getOrigin(): kendo.geometry.Point; + getSize(): kendo.geometry.Size; + height(): number; + setOrigin(value: kendo.geometry.Point): kendo.geometry.Rect; + setOrigin(value: any): kendo.geometry.Rect; + setSize(value: kendo.geometry.Size): kendo.geometry.Rect; + setSize(value: any): kendo.geometry.Rect; + topLeft(): kendo.geometry.Point; + topRight(): kendo.geometry.Point; + width(): number; + + } + + interface RectOptions { + name?: string; + } + interface RectEvent { + sender: Rect; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Size extends Observable { + + + options: SizeOptions; + + width: number; + height: number; + + + static create(width: number, height: number): kendo.geometry.Size; + static create(width: any, height: number): kendo.geometry.Size; + static create(width: kendo.geometry.Size, height: number): kendo.geometry.Size; + + clone(): kendo.geometry.Size; + equals(other: kendo.geometry.Size): boolean; + getWidth(): number; + getHeight(): number; + setWidth(value: number): kendo.geometry.Size; + setHeight(value: number): kendo.geometry.Size; + + } + + interface SizeOptions { + name?: string; + } + interface SizeEvent { + sender: Size; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Transformation extends Observable { + + + options: TransformationOptions; + + + + + clone(): kendo.geometry.Transformation; + equals(other: kendo.geometry.Transformation): boolean; + matrix(): kendo.geometry.Matrix; + multiply(transformation: kendo.geometry.Transformation): kendo.geometry.Transformation; + rotate(angle: number, center: any): kendo.geometry.Transformation; + rotate(angle: number, center: kendo.geometry.Point): kendo.geometry.Transformation; + scale(scaleX: number, scaleY: number): kendo.geometry.Transformation; + translate(x: number, y: number): kendo.geometry.Transformation; + + } + + interface TransformationOptions { + name?: string; + } + interface TransformationEvent { + sender: Transformation; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + } declare namespace kendo.dataviz.ui { + class ArcGauge extends kendo.ui.Widget { + + static fn: ArcGauge; + + options: ArcGaugeOptions; + + + element: JQuery; + wrapper: JQuery; + + static extend(proto: Object): ArcGauge; + + constructor(element: Element, options?: ArcGaugeOptions); + + + destroy(): void; + exportImage(options: any): JQueryPromise; + exportPDF(options?: kendo.drawing.PDFOptions): JQueryPromise; + exportSVG(options: any): JQueryPromise; + redraw(): void; + resize(force?: boolean): void; + setOptions(options: any): void; + svg(): void; + imageDataURL(): string; + value(): void; + value(): void; + + } + + interface ArcGaugeColor { + color?: string; + from?: number; + to?: number; + } + + interface ArcGaugeGaugeAreaBorder { + color?: string; + dashType?: string; + opacity?: number; + width?: number; + } + + interface ArcGaugeGaugeAreaMargin { + top?: number; + bottom?: number; + left?: number; + right?: number; + } + + interface ArcGaugeGaugeArea { + background?: string; + border?: ArcGaugeGaugeAreaBorder; + height?: number; + margin?: ArcGaugeGaugeAreaMargin; + width?: number; + } + + interface ArcGaugeScaleLabelsBorder { + color?: string; + dashType?: string; + opacity?: number; + width?: number; + } + + interface ArcGaugeScaleLabelsMargin { + top?: number; + bottom?: number; + left?: number; + right?: number; + } + + interface ArcGaugeScaleLabelsPadding { + top?: number; + bottom?: number; + left?: number; + right?: number; + } + + interface ArcGaugeScaleLabels { + background?: string; + border?: ArcGaugeScaleLabelsBorder; + color?: string; + font?: string; + format?: string; + margin?: ArcGaugeScaleLabelsMargin; + padding?: ArcGaugeScaleLabelsPadding; + position?: string; + template?: string|Function; + visible?: boolean; + } + + interface ArcGaugeScaleMajorTicks { + color?: string; + size?: number; + visible?: boolean; + width?: number; + } + + interface ArcGaugeScaleMinorTicks { + color?: string; + size?: number; + visible?: boolean; + width?: number; + } + + interface ArcGaugeScale { + endAngle?: number; + labels?: ArcGaugeScaleLabels; + majorTicks?: ArcGaugeScaleMajorTicks; + majorUnit?: number; + max?: number; + min?: number; + minorTicks?: ArcGaugeScaleMinorTicks; + minorUnit?: number; + rangeLineCap?: string; + rangePlaceholderColor?: string; + rangeSize?: number; + rangeDistance?: number; + reverse?: boolean; + startAngle?: number; + } + + interface ArcGaugeExportImageOptions { + width?: string; + height?: string; + } + + interface ArcGaugeExportSVGOptions { + raw?: boolean; + } + + interface ArcGaugeOptions { + name?: string; + color?: string; + colors?: ArcGaugeColor[]; + gaugeArea?: ArcGaugeGaugeArea; + opacity?: number; + renderAs?: string; + scale?: ArcGaugeScale; + theme?: string; + transitions?: boolean; + value?: number; + } + interface ArcGaugeEvent { + sender: ArcGauge; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + class Barcode extends kendo.ui.Widget { static fn: Barcode; @@ -9676,7 +10112,7 @@ declare namespace kendo.dataviz.ui { margin?: ChartAxisDefaultsLabelsMargin; mirror?: boolean; padding?: ChartAxisDefaultsLabelsPadding; - rotation?: string | ChartAxisDefaultsLabelsRotation; + rotation?: string | number | ChartAxisDefaultsLabelsRotation; skip?: number; step?: number; template?: string|Function; @@ -9875,7 +10311,7 @@ declare namespace kendo.dataviz.ui { margin?: ChartCategoryAxisItemLabelsMargin; mirror?: boolean; padding?: ChartCategoryAxisItemLabelsPadding; - rotation?: string | ChartCategoryAxisItemLabelsRotation; + rotation?: string | number | ChartCategoryAxisItemLabelsRotation; skip?: number; step?: number; template?: string|Function; @@ -10090,6 +10526,7 @@ declare namespace kendo.dataviz.ui { majorTicks?: ChartCategoryAxisItemMajorTicks; max?: any; maxDateGroups?: number; + maxDivisions?: number; min?: any; minorGridLines?: ChartCategoryAxisItemMinorGridLines; minorTicks?: ChartCategoryAxisItemMinorTicks; @@ -11079,7 +11516,7 @@ declare namespace kendo.dataviz.ui { margin?: ChartValueAxisItemLabelsMargin; mirror?: boolean; padding?: ChartValueAxisItemLabelsPadding; - rotation?: string | ChartValueAxisItemLabelsRotation; + rotation?: string | number | ChartValueAxisItemLabelsRotation; skip?: number; step?: number; template?: string|Function; @@ -11368,7 +11805,7 @@ declare namespace kendo.dataviz.ui { margin?: ChartXAxisItemLabelsMargin; mirror?: boolean; padding?: ChartXAxisItemLabelsPadding; - rotation?: string | ChartXAxisItemLabelsRotation; + rotation?: string | number | ChartXAxisItemLabelsRotation; skip?: number; step?: number; template?: string|Function; @@ -11658,7 +12095,7 @@ declare namespace kendo.dataviz.ui { margin?: ChartYAxisItemLabelsMargin; mirror?: boolean; padding?: ChartYAxisItemLabelsPadding; - rotation?: ChartYAxisItemLabelsRotation; + rotation?: number |ChartYAxisItemLabelsRotation; skip?: number; step?: number; template?: string|Function; @@ -11911,11 +12348,23 @@ declare namespace kendo.dataviz.ui { data?: any; } + interface ChartSeriesOverEventSeries { + type?: string; + name?: string; + data?: any; + } + + interface ChartSeriesLeaveEventSeries { + type?: string; + name?: string; + data?: any; + } + interface ChartOptions { name?: string; autoBind?: boolean; axisDefaults?: ChartAxisDefaults; - categoryAxis?: ChartCategoryAxisItem[]; + categoryAxis?: ChartCategoryAxisItem | ChartCategoryAxisItem[]; chartArea?: ChartChartArea; dataSource?: any|any|kendo.data.DataSource; legend?: ChartLegend; @@ -11932,9 +12381,9 @@ declare namespace kendo.dataviz.ui { title?: string | ChartTitle; tooltip?: ChartTooltip; transitions?: boolean; - valueAxis?: ChartValueAxisItem[]; - xAxis?: ChartXAxisItem[]; - yAxis?: ChartYAxisItem[]; + valueAxis?: ChartValueAxisItem | ChartValueAxisItem[]; + xAxis?: ChartXAxisItem | ChartXAxisItem[]; + yAxis?: ChartYAxisItem | ChartYAxisItem[]; zoomable?: boolean | ChartZoomable; axisLabelClick?(e: ChartAxisLabelClickEvent): void; dataBound?(e: ChartDataBoundEvent): void; @@ -11943,16 +12392,22 @@ declare namespace kendo.dataviz.ui { dragStart?(e: ChartDragStartEvent): void; legendItemClick?(e: ChartLegendItemClickEvent): void; legendItemHover?(e: ChartLegendItemHoverEvent): void; + legendItemLeave?(e: ChartLegendItemLeaveEvent): void; noteClick?(e: ChartNoteClickEvent): void; noteHover?(e: ChartNoteHoverEvent): void; + noteLeave?(e: ChartNoteLeaveEvent): void; + paneRender?(e: ChartPaneRenderEvent): void; plotAreaClick?(e: ChartPlotAreaClickEvent): void; plotAreaHover?(e: ChartPlotAreaHoverEvent): void; + plotAreaLeave?(e: ChartPlotAreaLeaveEvent): void; render?(e: ChartRenderEvent): void; select?(e: ChartSelectEvent): void; selectEnd?(e: ChartSelectEndEvent): void; selectStart?(e: ChartSelectStartEvent): void; seriesClick?(e: ChartSeriesClickEvent): void; seriesHover?(e: ChartSeriesHoverEvent): void; + seriesOver?(e: ChartSeriesOverEvent): void; + seriesLeave?(e: ChartSeriesLeaveEvent): void; zoom?(e: ChartZoomEvent): void; zoomEnd?(e: ChartZoomEndEvent): void; zoomStart?(e: ChartZoomStartEvent): void; @@ -12006,6 +12461,14 @@ declare namespace kendo.dataviz.ui { text?: string; } + interface ChartLegendItemLeaveEvent extends ChartEvent { + element?: any; + pointIndex?: number; + series?: any; + seriesIndex?: number; + text?: string; + } + interface ChartNoteClickEvent extends ChartEvent { category?: any; dataItem?: any; @@ -12024,6 +12487,21 @@ declare namespace kendo.dataviz.ui { visual?: any; } + interface ChartNoteLeaveEvent extends ChartEvent { + category?: any; + dataItem?: any; + element?: any; + series?: any; + value?: any; + visual?: any; + } + + interface ChartPaneRenderEvent extends ChartEvent { + pane?: kendo.dataviz.ChartPane; + name?: string; + index?: number; + } + interface ChartPlotAreaClickEvent extends ChartEvent { category?: any; element?: any; @@ -12042,6 +12520,9 @@ declare namespace kendo.dataviz.ui { y?: any; } + interface ChartPlotAreaLeaveEvent extends ChartEvent { + } + interface ChartRenderEvent extends ChartEvent { } @@ -12086,6 +12567,28 @@ declare namespace kendo.dataviz.ui { value?: any; } + interface ChartSeriesOverEvent extends ChartEvent { + category?: any; + dataItem?: any; + element?: any; + originalEvent?: any; + percentage?: any; + series?: ChartSeriesOverEventSeries; + stackValue?: any; + value?: any; + } + + interface ChartSeriesLeaveEvent extends ChartEvent { + category?: any; + dataItem?: any; + element?: any; + originalEvent?: any; + percentage?: any; + series?: ChartSeriesLeaveEventSeries; + stackValue?: any; + value?: any; + } + interface ChartZoomEvent extends ChartEvent { axisRanges?: any; delta?: number; @@ -12162,6 +12665,7 @@ declare namespace kendo.dataviz.ui { remove(items: any, undoable: boolean): void; resize(): void; save(): void; + saveAsPdf(): JQueryPromise; saveEdit(): void; select(): any; select(elements: kendo.dataviz.diagram.Connection, options: any): void; @@ -13040,6 +13544,7 @@ declare namespace kendo.dataviz.ui { exportSVG(options: any): JQueryPromise; redraw(): void; resize(force?: boolean): void; + setOptions(options: any): void; svg(): void; imageDataURL(): string; value(): void; @@ -13190,6 +13695,7 @@ declare namespace kendo.dataviz.ui { pointer?: LinearGaugePointerItem[]; renderAs?: string; scale?: LinearGaugeScale; + theme?: string; transitions?: boolean; } interface LinearGaugeEvent { @@ -13729,6 +14235,7 @@ declare namespace kendo.dataviz.ui { exportSVG(options: any): JQueryPromise; redraw(): void; resize(force?: boolean): void; + setOptions(options: any): void; svg(): void; imageDataURL(): string; value(): void; @@ -13765,6 +14272,7 @@ declare namespace kendo.dataviz.ui { interface RadialGaugePointerItem { cap?: RadialGaugePointerItemCap; color?: string; + length?: number; value?: number; } @@ -13855,6 +14363,7 @@ declare namespace kendo.dataviz.ui { pointer?: RadialGaugePointerItem[]; renderAs?: string; scale?: RadialGaugeScale; + theme?: string; transitions?: boolean; } interface RadialGaugeEvent { @@ -14125,6 +14634,7 @@ declare namespace kendo.dataviz.ui { roundToBaseUnit?: boolean; weekStartDay?: number; maxDateGroups?: number; + maxDivisions?: number; visible?: boolean; crosshair?: SparklineCategoryAxisItemCrosshair; notes?: SparklineCategoryAxisItemNotes; @@ -14677,10 +15187,22 @@ declare namespace kendo.dataviz.ui { data?: any; } + interface SparklineSeriesOverEventSeries { + type?: string; + name?: string; + data?: any; + } + + interface SparklineSeriesLeaveEventSeries { + type?: string; + name?: string; + data?: any; + } + interface SparklineOptions { name?: string; axisDefaults?: any; - categoryAxis?: SparklineCategoryAxisItem[]; + categoryAxis?: SparklineCategoryAxisItem | SparklineCategoryAxisItem[]; chartArea?: SparklineChartArea; data?: any; dataSource?: any; @@ -14695,15 +15217,20 @@ declare namespace kendo.dataviz.ui { tooltip?: SparklineTooltip; transitions?: boolean; type?: string; - valueAxis?: SparklineValueAxisItem[]; + valueAxis?: SparklineValueAxisItem | SparklineValueAxisItem[]; axisLabelClick?(e: SparklineAxisLabelClickEvent): void; dataBound?(e: SparklineEvent): void; dragStart?(e: SparklineDragStartEvent): void; drag?(e: SparklineDragEvent): void; dragEnd?(e: SparklineDragEndEvent): void; + paneRender?(e: SparklinePaneRenderEvent): void; plotAreaClick?(e: SparklinePlotAreaClickEvent): void; + plotAreaHover?(e: SparklinePlotAreaHoverEvent): void; + plotAreaLeave?(e: SparklinePlotAreaLeaveEvent): void; seriesClick?(e: SparklineSeriesClickEvent): void; seriesHover?(e: SparklineSeriesHoverEvent): void; + seriesOver?(e: SparklineSeriesOverEvent): void; + seriesLeave?(e: SparklineSeriesLeaveEvent): void; zoomStart?(e: SparklineZoomStartEvent): void; zoom?(e: SparklineZoomEvent): void; zoomEnd?(e: SparklineZoomEndEvent): void; @@ -14738,6 +15265,12 @@ declare namespace kendo.dataviz.ui { originalEvent?: any; } + interface SparklinePaneRenderEvent extends SparklineEvent { + pane?: kendo.dataviz.ChartPane; + name?: string; + index?: number; + } + interface SparklinePlotAreaClickEvent extends SparklineEvent { value?: any; category?: any; @@ -14746,6 +15279,16 @@ declare namespace kendo.dataviz.ui { y?: any; } + interface SparklinePlotAreaHoverEvent extends SparklineEvent { + category?: any; + element?: any; + originalEvent?: any; + value?: any; + } + + interface SparklinePlotAreaLeaveEvent extends SparklineEvent { + } + interface SparklineSeriesClickEvent extends SparklineEvent { value?: any; category?: any; @@ -14764,6 +15307,28 @@ declare namespace kendo.dataviz.ui { percentage?: any; } + interface SparklineSeriesOverEvent extends SparklineEvent { + category?: any; + dataItem?: any; + element?: any; + originalEvent?: any; + percentage?: any; + series?: SparklineSeriesOverEventSeries; + stackValue?: any; + value?: any; + } + + interface SparklineSeriesLeaveEvent extends SparklineEvent { + category?: any; + dataItem?: any; + element?: any; + originalEvent?: any; + percentage?: any; + series?: SparklineSeriesLeaveEventSeries; + stackValue?: any; + value?: any; + } + interface SparklineZoomStartEvent extends SparklineEvent { axisRanges?: any; originalEvent?: any; @@ -15070,6 +15635,7 @@ declare namespace kendo.dataviz.ui { roundToBaseUnit?: boolean; weekStartDay?: number; maxDateGroups?: number; + maxDivisions?: number; visible?: boolean; crosshair?: StockChartCategoryAxisItemCrosshair; notes?: StockChartCategoryAxisItemNotes; @@ -16246,12 +16812,24 @@ declare namespace kendo.dataviz.ui { data?: any; } + interface StockChartSeriesOverEventSeries { + type?: string; + name?: string; + data?: any; + } + + interface StockChartSeriesLeaveEventSeries { + type?: string; + name?: string; + data?: any; + } + interface StockChartOptions { name?: string; dateField?: string; navigator?: StockChartNavigator; axisDefaults?: any; - categoryAxis?: StockChartCategoryAxisItem[]; + categoryAxis?: StockChartCategoryAxisItem | StockChartCategoryAxisItem[]; chartArea?: StockChartChartArea; dataSource?: any; autoBind?: boolean; @@ -16268,7 +16846,7 @@ declare namespace kendo.dataviz.ui { title?: StockChartTitle; tooltip?: StockChartTooltip; transitions?: boolean; - valueAxis?: StockChartValueAxisItem[]; + valueAxis?: StockChartValueAxisItem | StockChartValueAxisItem[]; axisLabelClick?(e: StockChartAxisLabelClickEvent): void; dataBound?(e: StockChartEvent): void; dragStart?(e: StockChartDragStartEvent): void; @@ -16276,16 +16854,22 @@ declare namespace kendo.dataviz.ui { dragEnd?(e: StockChartDragEndEvent): void; legendItemClick?(e: StockChartLegendItemClickEvent): void; legendItemHover?(e: StockChartLegendItemHoverEvent): void; + legendItemLeave?(e: StockChartLegendItemLeaveEvent): void; noteClick?(e: StockChartNoteClickEvent): void; noteHover?(e: StockChartNoteHoverEvent): void; + noteLeave?(e: StockChartNoteLeaveEvent): void; + paneRender?(e: StockChartPaneRenderEvent): void; plotAreaClick?(e: StockChartPlotAreaClickEvent): void; plotAreaHover?(e: StockChartPlotAreaHoverEvent): void; + plotAreaLeave?(e: StockChartPlotAreaLeaveEvent): void; render?(e: StockChartRenderEvent): void; select?(e: StockChartSelectEvent): void; selectEnd?(e: StockChartSelectEndEvent): void; selectStart?(e: StockChartSelectStartEvent): void; seriesClick?(e: StockChartSeriesClickEvent): void; seriesHover?(e: StockChartSeriesHoverEvent): void; + seriesOver?(e: StockChartSeriesOverEvent): void; + seriesLeave?(e: StockChartSeriesLeaveEvent): void; zoomStart?(e: StockChartZoomStartEvent): void; zoom?(e: StockChartZoomEvent): void; zoomEnd?(e: StockChartZoomEndEvent): void; @@ -16336,6 +16920,14 @@ declare namespace kendo.dataviz.ui { element?: any; } + interface StockChartLegendItemLeaveEvent extends StockChartEvent { + element?: any; + pointIndex?: number; + series?: any; + seriesIndex?: number; + text?: string; + } + interface StockChartNoteClickEvent extends StockChartEvent { category?: any; element?: any; @@ -16352,6 +16944,21 @@ declare namespace kendo.dataviz.ui { dataItem?: any; } + interface StockChartNoteLeaveEvent extends StockChartEvent { + category?: any; + dataItem?: any; + element?: any; + series?: any; + value?: any; + visual?: any; + } + + interface StockChartPaneRenderEvent extends StockChartEvent { + pane?: kendo.dataviz.ui.StockChart; + name?: string; + index?: number; + } + interface StockChartPlotAreaClickEvent extends StockChartEvent { value?: any; category?: any; @@ -16369,6 +16976,9 @@ declare namespace kendo.dataviz.ui { y?: any; } + interface StockChartPlotAreaLeaveEvent extends StockChartEvent { + } + interface StockChartRenderEvent extends StockChartEvent { } @@ -16408,6 +17018,28 @@ declare namespace kendo.dataviz.ui { percentage?: any; } + interface StockChartSeriesOverEvent extends StockChartEvent { + category?: any; + dataItem?: any; + element?: any; + originalEvent?: any; + percentage?: any; + series?: StockChartSeriesOverEventSeries; + stackValue?: any; + value?: any; + } + + interface StockChartSeriesLeaveEvent extends StockChartEvent { + category?: any; + dataItem?: any; + element?: any; + originalEvent?: any; + percentage?: any; + series?: StockChartSeriesLeaveEventSeries; + stackValue?: any; + value?: any; + } + interface StockChartZoomStartEvent extends StockChartEvent { axisRanges?: any; originalEvent?: any; @@ -16791,6 +17423,7 @@ declare namespace kendo.dataviz { + findAxisByName(name: string): kendo.dataviz.ChartAxis; series(): any; } @@ -17862,6 +18495,8 @@ declare namespace kendo { function observableHierarchy(array: any): void; function parseDate(value: string, formats?: string, culture?: string): Date; function parseDate(value: string, formats?: any, culture?: string): Date; + function parseExactDate(value: string, formats?: string, culture?: string): Date; + function parseExactDate(value: string, formats?: any, culture?: string): Date; function parseFloat(value: string, culture?: string): number; function parseInt(value: string, culture?: string): number; function parseColor(color: string, noerror: boolean): kendo.Color; @@ -18059,6 +18694,7 @@ declare namespace kendo.spreadsheet { insertColumn(index: number): void; insertRow(index: number): void; range(ref: string): kendo.spreadsheet.Range; + range(rowIndex: number, columnIndex: number, rowCount?: number, columnCount?: number): kendo.spreadsheet.Range; rowHeight(): void; rowHeight(index: number, width?: number): void; selection(): kendo.spreadsheet.Range; @@ -19221,274 +19857,6 @@ declare namespace kendo.ooxml { } -declare namespace kendo.dataviz.geometry { - class Arc extends Observable { - - - options: ArcOptions; - - anticlockwise: boolean; - center: kendo.geometry.Point; - endAngle: number; - radiusX: number; - radiusY: number; - startAngle: number; - - constructor(center: any|kendo.geometry.Point, options?: ArcOptions); - - - bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; - getAnticlockwise(): boolean; - getCenter(): kendo.geometry.Point; - getEndAngle(): number; - getRadiusX(): number; - getRadiusY(): number; - getStartAngle(): number; - pointAt(angle: number): kendo.geometry.Point; - setAnticlockwise(value: boolean): kendo.geometry.Arc; - setCenter(value: kendo.geometry.Point): kendo.geometry.Arc; - setEndAngle(value: number): kendo.geometry.Arc; - setRadiusX(value: number): kendo.geometry.Arc; - setRadiusY(value: number): kendo.geometry.Arc; - setStartAngle(value: number): kendo.geometry.Arc; - - } - - interface ArcOptions { - name?: string; - } - interface ArcEvent { - sender: Arc; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Circle extends Observable { - - - options: CircleOptions; - - center: kendo.geometry.Point; - radius: number; - - constructor(center: any|kendo.geometry.Point, radius: number); - - - bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; - clone(): kendo.geometry.Circle; - equals(other: kendo.geometry.Circle): boolean; - getCenter(): kendo.geometry.Point; - getRadius(): number; - pointAt(angle: number): kendo.geometry.Point; - setCenter(value: kendo.geometry.Point): kendo.geometry.Point; - setCenter(value: any): kendo.geometry.Point; - setRadius(value: number): kendo.geometry.Circle; - - } - - interface CircleOptions { - name?: string; - } - interface CircleEvent { - sender: Circle; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Matrix extends Observable { - - - options: MatrixOptions; - - a: number; - b: number; - c: number; - d: number; - e: number; - f: number; - - - static rotate(angle: number, x: number, y: number): kendo.geometry.Matrix; - static scale(scaleX: number, scaleY: number): kendo.geometry.Matrix; - static translate(x: number, y: number): kendo.geometry.Matrix; - static unit(): kendo.geometry.Matrix; - - clone(): kendo.geometry.Matrix; - equals(other: kendo.geometry.Matrix): boolean; - round(digits: number): kendo.geometry.Matrix; - multiplyCopy(matrix: kendo.geometry.Matrix): kendo.geometry.Matrix; - toArray(digits: number): any; - toString(digits: number, separator: string): string; - - } - - interface MatrixOptions { - name?: string; - } - interface MatrixEvent { - sender: Matrix; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Point extends Observable { - - - options: PointOptions; - - x: number; - y: number; - - constructor(x: number, y: number); - - static create(x: number, y: number): kendo.geometry.Point; - static create(x: any, y: number): kendo.geometry.Point; - static create(x: kendo.geometry.Point, y: number): kendo.geometry.Point; - static min(): kendo.geometry.Point; - static max(): kendo.geometry.Point; - static minPoint(): kendo.geometry.Point; - static maxPoint(): kendo.geometry.Point; - - clone(): kendo.geometry.Point; - distanceTo(point: kendo.geometry.Point): number; - equals(other: kendo.geometry.Point): boolean; - getX(): number; - getY(): number; - move(x: number, y: number): kendo.geometry.Point; - rotate(angle: number, center: kendo.geometry.Point): kendo.geometry.Point; - rotate(angle: number, center: any): kendo.geometry.Point; - round(digits: number): kendo.geometry.Point; - scale(scaleX: number, scaleY: number): kendo.geometry.Point; - scaleCopy(scaleX: number, scaleY: number): kendo.geometry.Point; - setX(value: number): kendo.geometry.Point; - setY(value: number): kendo.geometry.Point; - toArray(digits: number): any; - toString(digits: number, separator: string): string; - transform(tansformation: kendo.geometry.Transformation): kendo.geometry.Point; - transformCopy(tansformation: kendo.geometry.Transformation): kendo.geometry.Point; - translate(dx: number, dy: number): kendo.geometry.Point; - translateWith(vector: kendo.geometry.Point): kendo.geometry.Point; - translateWith(vector: any): kendo.geometry.Point; - - } - - interface PointOptions { - name?: string; - } - interface PointEvent { - sender: Point; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Rect extends Observable { - - - options: RectOptions; - - origin: kendo.geometry.Point; - size: kendo.geometry.Size; - - constructor(origin: kendo.geometry.Point|any, size: kendo.geometry.Size|any); - - static fromPoints(pointA: kendo.geometry.Point, pointB: kendo.geometry.Point): kendo.geometry.Rect; - static union(rectA: kendo.geometry.Rect, rectB: kendo.geometry.Rect): kendo.geometry.Rect; - - bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; - bottomLeft(): kendo.geometry.Point; - bottomRight(): kendo.geometry.Point; - center(): kendo.geometry.Point; - clone(): kendo.geometry.Rect; - equals(other: kendo.geometry.Rect): boolean; - getOrigin(): kendo.geometry.Point; - getSize(): kendo.geometry.Size; - height(): number; - setOrigin(value: kendo.geometry.Point): kendo.geometry.Rect; - setOrigin(value: any): kendo.geometry.Rect; - setSize(value: kendo.geometry.Size): kendo.geometry.Rect; - setSize(value: any): kendo.geometry.Rect; - topLeft(): kendo.geometry.Point; - topRight(): kendo.geometry.Point; - width(): number; - - } - - interface RectOptions { - name?: string; - } - interface RectEvent { - sender: Rect; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Size extends Observable { - - - options: SizeOptions; - - width: number; - height: number; - - - static create(width: number, height: number): kendo.geometry.Size; - static create(width: any, height: number): kendo.geometry.Size; - static create(width: kendo.geometry.Size, height: number): kendo.geometry.Size; - - clone(): kendo.geometry.Size; - equals(other: kendo.geometry.Size): boolean; - getWidth(): number; - getHeight(): number; - setWidth(value: number): kendo.geometry.Size; - setHeight(value: number): kendo.geometry.Size; - - } - - interface SizeOptions { - name?: string; - } - interface SizeEvent { - sender: Size; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - - class Transformation extends Observable { - - - options: TransformationOptions; - - - - - clone(): kendo.geometry.Transformation; - equals(other: kendo.geometry.Transformation): boolean; - matrix(): kendo.geometry.Matrix; - multiply(transformation: kendo.geometry.Transformation): kendo.geometry.Transformation; - rotate(angle: number, center: any): kendo.geometry.Transformation; - rotate(angle: number, center: kendo.geometry.Point): kendo.geometry.Transformation; - scale(scaleX: number, scaleY: number): kendo.geometry.Transformation; - translate(x: number, y: number): kendo.geometry.Transformation; - - } - - interface TransformationOptions { - name?: string; - } - interface TransformationEvent { - sender: Transformation; - preventDefault: Function; - isDefaultPrevented(): boolean; - } - - -} declare namespace kendo.dataviz.drawing { class Arc extends kendo.drawing.Element { @@ -20280,6 +20648,274 @@ declare namespace kendo.dataviz.drawing { +} +declare namespace kendo.dataviz.geometry { + class Arc extends Observable { + + + options: ArcOptions; + + anticlockwise: boolean; + center: kendo.geometry.Point; + endAngle: number; + radiusX: number; + radiusY: number; + startAngle: number; + + constructor(center: any|kendo.geometry.Point, options?: ArcOptions); + + + bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; + getAnticlockwise(): boolean; + getCenter(): kendo.geometry.Point; + getEndAngle(): number; + getRadiusX(): number; + getRadiusY(): number; + getStartAngle(): number; + pointAt(angle: number): kendo.geometry.Point; + setAnticlockwise(value: boolean): kendo.geometry.Arc; + setCenter(value: kendo.geometry.Point): kendo.geometry.Arc; + setEndAngle(value: number): kendo.geometry.Arc; + setRadiusX(value: number): kendo.geometry.Arc; + setRadiusY(value: number): kendo.geometry.Arc; + setStartAngle(value: number): kendo.geometry.Arc; + + } + + interface ArcOptions { + name?: string; + } + interface ArcEvent { + sender: Arc; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Circle extends Observable { + + + options: CircleOptions; + + center: kendo.geometry.Point; + radius: number; + + constructor(center: any|kendo.geometry.Point, radius: number); + + + bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; + clone(): kendo.geometry.Circle; + equals(other: kendo.geometry.Circle): boolean; + getCenter(): kendo.geometry.Point; + getRadius(): number; + pointAt(angle: number): kendo.geometry.Point; + setCenter(value: kendo.geometry.Point): kendo.geometry.Point; + setCenter(value: any): kendo.geometry.Point; + setRadius(value: number): kendo.geometry.Circle; + + } + + interface CircleOptions { + name?: string; + } + interface CircleEvent { + sender: Circle; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Matrix extends Observable { + + + options: MatrixOptions; + + a: number; + b: number; + c: number; + d: number; + e: number; + f: number; + + + static rotate(angle: number, x: number, y: number): kendo.geometry.Matrix; + static scale(scaleX: number, scaleY: number): kendo.geometry.Matrix; + static translate(x: number, y: number): kendo.geometry.Matrix; + static unit(): kendo.geometry.Matrix; + + clone(): kendo.geometry.Matrix; + equals(other: kendo.geometry.Matrix): boolean; + round(digits: number): kendo.geometry.Matrix; + multiplyCopy(matrix: kendo.geometry.Matrix): kendo.geometry.Matrix; + toArray(digits: number): any; + toString(digits: number, separator: string): string; + + } + + interface MatrixOptions { + name?: string; + } + interface MatrixEvent { + sender: Matrix; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Point extends Observable { + + + options: PointOptions; + + x: number; + y: number; + + constructor(x: number, y: number); + + static create(x: number, y: number): kendo.geometry.Point; + static create(x: any, y: number): kendo.geometry.Point; + static create(x: kendo.geometry.Point, y: number): kendo.geometry.Point; + static min(): kendo.geometry.Point; + static max(): kendo.geometry.Point; + static minPoint(): kendo.geometry.Point; + static maxPoint(): kendo.geometry.Point; + + clone(): kendo.geometry.Point; + distanceTo(point: kendo.geometry.Point): number; + equals(other: kendo.geometry.Point): boolean; + getX(): number; + getY(): number; + move(x: number, y: number): kendo.geometry.Point; + rotate(angle: number, center: kendo.geometry.Point): kendo.geometry.Point; + rotate(angle: number, center: any): kendo.geometry.Point; + round(digits: number): kendo.geometry.Point; + scale(scaleX: number, scaleY: number): kendo.geometry.Point; + scaleCopy(scaleX: number, scaleY: number): kendo.geometry.Point; + setX(value: number): kendo.geometry.Point; + setY(value: number): kendo.geometry.Point; + toArray(digits: number): any; + toString(digits: number, separator: string): string; + transform(tansformation: kendo.geometry.Transformation): kendo.geometry.Point; + transformCopy(tansformation: kendo.geometry.Transformation): kendo.geometry.Point; + translate(dx: number, dy: number): kendo.geometry.Point; + translateWith(vector: kendo.geometry.Point): kendo.geometry.Point; + translateWith(vector: any): kendo.geometry.Point; + + } + + interface PointOptions { + name?: string; + } + interface PointEvent { + sender: Point; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Rect extends Observable { + + + options: RectOptions; + + origin: kendo.geometry.Point; + size: kendo.geometry.Size; + + constructor(origin: kendo.geometry.Point|any, size: kendo.geometry.Size|any); + + static fromPoints(pointA: kendo.geometry.Point, pointB: kendo.geometry.Point): kendo.geometry.Rect; + static union(rectA: kendo.geometry.Rect, rectB: kendo.geometry.Rect): kendo.geometry.Rect; + + bbox(matrix: kendo.geometry.Matrix): kendo.geometry.Rect; + bottomLeft(): kendo.geometry.Point; + bottomRight(): kendo.geometry.Point; + center(): kendo.geometry.Point; + clone(): kendo.geometry.Rect; + equals(other: kendo.geometry.Rect): boolean; + getOrigin(): kendo.geometry.Point; + getSize(): kendo.geometry.Size; + height(): number; + setOrigin(value: kendo.geometry.Point): kendo.geometry.Rect; + setOrigin(value: any): kendo.geometry.Rect; + setSize(value: kendo.geometry.Size): kendo.geometry.Rect; + setSize(value: any): kendo.geometry.Rect; + topLeft(): kendo.geometry.Point; + topRight(): kendo.geometry.Point; + width(): number; + + } + + interface RectOptions { + name?: string; + } + interface RectEvent { + sender: Rect; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Size extends Observable { + + + options: SizeOptions; + + width: number; + height: number; + + + static create(width: number, height: number): kendo.geometry.Size; + static create(width: any, height: number): kendo.geometry.Size; + static create(width: kendo.geometry.Size, height: number): kendo.geometry.Size; + + clone(): kendo.geometry.Size; + equals(other: kendo.geometry.Size): boolean; + getWidth(): number; + getHeight(): number; + setWidth(value: number): kendo.geometry.Size; + setHeight(value: number): kendo.geometry.Size; + + } + + interface SizeOptions { + name?: string; + } + interface SizeEvent { + sender: Size; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + + class Transformation extends Observable { + + + options: TransformationOptions; + + + + + clone(): kendo.geometry.Transformation; + equals(other: kendo.geometry.Transformation): boolean; + matrix(): kendo.geometry.Matrix; + multiply(transformation: kendo.geometry.Transformation): kendo.geometry.Transformation; + rotate(angle: number, center: any): kendo.geometry.Transformation; + rotate(angle: number, center: kendo.geometry.Point): kendo.geometry.Transformation; + scale(scaleX: number, scaleY: number): kendo.geometry.Transformation; + translate(x: number, y: number): kendo.geometry.Transformation; + + } + + interface TransformationOptions { + name?: string; + } + interface TransformationEvent { + sender: Transformation; + preventDefault: Function; + isDefaultPrevented(): boolean; + } + + } interface HTMLElement { @@ -20300,24 +20936,25 @@ interface JQueryPromise { interface JQuery { - data(key: any): any; - kendoDraggable(): JQuery; kendoDraggable(options: kendo.ui.DraggableOptions): JQuery; - data(key: "kendoDraggable"): kendo.ui.Draggable; kendoDropTarget(): JQuery; kendoDropTarget(options: kendo.ui.DropTargetOptions): JQuery; - data(key: "kendoDropTarget"): kendo.ui.DropTarget; kendoDropTargetArea(): JQuery; kendoDropTargetArea(options: kendo.ui.DropTargetAreaOptions): JQuery; - data(key: "kendoDropTargetArea"): kendo.ui.DropTargetArea; + + data(key: any): any; kendoAlert(): JQuery; kendoAlert(options: kendo.ui.AlertOptions): JQuery; data(key: "kendoAlert"): kendo.ui.Alert; + kendoArcGauge(): JQuery; + kendoArcGauge(options: kendo.dataviz.ui.ArcGaugeOptions): JQuery; + data(key: "kendoArcGauge"): kendo.dataviz.ui.ArcGauge; + kendoAutoComplete(): JQuery; kendoAutoComplete(options: kendo.ui.AutoCompleteOptions): JQuery; data(key: "kendoAutoComplete"): kendo.ui.AutoComplete; @@ -20522,6 +21159,10 @@ interface JQuery { kendoMobileView(options: kendo.mobile.ui.ViewOptions): JQuery; data(key: "kendoMobileView"): kendo.mobile.ui.View; + kendoMultiColumnComboBox(): JQuery; + kendoMultiColumnComboBox(options: kendo.ui.MultiColumnComboBoxOptions): JQuery; + data(key: "kendoMultiColumnComboBox"): kendo.ui.MultiColumnComboBox; + kendoMultiSelect(): JQuery; kendoMultiSelect(options: kendo.ui.MultiSelectOptions): JQuery; data(key: "kendoMultiSelect"): kendo.ui.MultiSelect; diff --git a/types/klaw-sync/index.d.ts b/types/klaw-sync/index.d.ts index f222804222..78ca30b2ff 100644 --- a/types/klaw-sync/index.d.ts +++ b/types/klaw-sync/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for klaw-sync 2.0 +// Type definitions for klaw-sync 5.0 // Project: https://github.com/manidlou/node-klaw-sync // Definitions by: Brendan Forster // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -30,13 +30,22 @@ declare namespace klawSync { nofile?: boolean /** - * @description when filter function is used, the default behavior is to read all directories even - * if they don't pass the filter function (won't be included but still will be traversed). - * If you set true, there will be neither inclusion nor traversal for directories that - * don't pass the filter function - * @since v2.0.0 + * @description The number of times to recurse before stopping. + * -1 for unlimited. + * @default -1 + * @since v5.0.0 */ - noRecurseOnFailedFilter?: boolean + depthLimit?: number + + /** + * @description Custom fs, useful when mocking fs object. + * @default graceful-fs + * @since v4.0.0 + */ + fs?: { + readdirSync(path: string): string[] + statSync(path: string): fs.Stats + } /** * @description function that gets one argument fn({path: '', stats: {}}) and returns true to include diff --git a/types/klaw-sync/klaw-sync-tests.ts b/types/klaw-sync/klaw-sync-tests.ts index 5875c528fd..41719734bf 100644 --- a/types/klaw-sync/klaw-sync-tests.ts +++ b/types/klaw-sync/klaw-sync-tests.ts @@ -1,5 +1,5 @@ -import * as path from 'path' import klawSync = require('klaw-sync') +import * as fs from 'fs' const outputMessage = (result: klawSync.Item) => { console.log(`file: ${result.path} has size '${result.stats.size}'`) @@ -7,17 +7,18 @@ const outputMessage = (result: klawSync.Item) => { klawSync('/some/dir').forEach(outputMessage) -const defaultOptions = {} +const defaultOptions: klawSync.Options = {} klawSync('/some/dir', defaultOptions).forEach(outputMessage) -const options = { +const options: klawSync.Options = { nodir: true, nofile: false, - noRecurseOnFailedFilter: false, filter(item: klawSync.Item) { return item.path.indexOf('node_modules') < 0 }, + depthLimit: 5, + fs } klawSync('/some/dir', options).forEach(outputMessage) diff --git a/types/koa-router/index.d.ts b/types/koa-router/index.d.ts index f8a31e71cb..b5dc934965 100644 --- a/types/koa-router/index.d.ts +++ b/types/koa-router/index.d.ts @@ -165,55 +165,55 @@ declare class Router { * HTTP get method */ get(name: string, path: string | RegExp, ...middleware: Array): Router; - get(path: string | RegExp, ...middleware: Array): Router; + get(path: string | RegExp | (string | RegExp)[], ...middleware: Array): Router; /** * HTTP post method */ post(name: string, path: string | RegExp, ...middleware: Array): Router; - post(path: string | RegExp, ...middleware: Array): Router; + post(path: string | RegExp | (string | RegExp)[], ...middleware: Array): Router; /** * HTTP put method */ put(name: string, path: string | RegExp, ...middleware: Array): Router; - put(path: string | RegExp, ...middleware: Array): Router; + put(path: string | RegExp | (string | RegExp)[], ...middleware: Array): Router; /** * HTTP delete method */ delete(name: string, path: string | RegExp, ...middleware: Array): Router; - delete(path: string | RegExp, ...middleware: Array): Router; + delete(path: string | RegExp | (string | RegExp)[], ...middleware: Array): Router; /** * Alias for `router.delete()` because delete is a reserved word */ del(name: string, path: string | RegExp, ...middleware: Array): Router; - del(path: string | RegExp, ...middleware: Array): Router; + del(path: string | RegExp | (string | RegExp)[], ...middleware: Array): Router; /** * HTTP head method */ head(name: string, path: string | RegExp, ...middleware: Array): Router; - head(path: string | RegExp, ...middleware: Array): Router; + head(path: string | RegExp | (string | RegExp)[], ...middleware: Array): Router; /** * HTTP options method */ options(name: string, path: string | RegExp, ...middleware: Array): Router; - options(path: string | RegExp, ...middleware: Array): Router; + options(path: string | RegExp | (string | RegExp)[], ...middleware: Array): Router; /** * HTTP path method */ patch(name: string, path: string | RegExp, ...middleware: Array): Router; - patch(path: string | RegExp, ...middleware: Array): Router; + patch(path: string | RegExp | (string | RegExp)[], ...middleware: Array): Router; /** * Register route with all methods. */ all(name: string, path: string | RegExp, ...middleware: Array): Router; - all(path: string | RegExp, ...middleware: Array): Router; + all(path: string | RegExp | (string | RegExp)[], ...middleware: Array): Router; /** * Set the path prefix for a Router instance that was already initialized. diff --git a/types/lambda-log/index.d.ts b/types/lambda-log/index.d.ts new file mode 100644 index 0000000000..f54cb3dfc5 --- /dev/null +++ b/types/lambda-log/index.d.ts @@ -0,0 +1,55 @@ +// Type definitions for lambda-log 2.0 +// Project: https://github.com/KyleRoss/node-lambda-log +// Definitions by: Andrés Reyes Monge +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 +/// + +import { WriteStream } from "fs"; +import { Console } from "console"; +import { EventEmitter } from "events"; + +export interface LambdaLogOptions { + meta?: any; + // Global tags array to include with every log + tags?: string[]; + // Optional function which will run for every log to inject dynamic metadata + dynamicMeta?: null; + // Enable debugging mode (log.debug messages) + debug?: boolean; + // Enable development mode which pretty-prints the log object to the console + dev?: boolean; + // Disables logging to the console (used for testing) + silent?: boolean; + // Optional replacer function for `JSON.stringify` + replacer?: (key: string, value: any) => any; + // Optional stream to write stdout messages to + stdoutStream?: WriteStream; + // Optional stream to write stderr messages to + stderrStream?: WriteStream; +} + +export interface LogLevels { + info: "info"; + warn: "warn"; + error: "error"; + debug: "log" | false; + [key: string]: any; +} + +export class LambdaLog extends EventEmitter { + LambdaLog: LambdaLog; + options: LambdaLogOptions; + console: Console; + + private _logLevels; + private _levels; + + [key: string]: any; + + constructor(options?: LambdaLogOptions, levels?: any); + + log(level: string, msg: string, meta: object, tags: string[]): string; + + assert(test: any, msg: string, meta: object, tags: string[]): boolean | string; +} diff --git a/types/lambda-log/lambda-log-tests.ts b/types/lambda-log/lambda-log-tests.ts new file mode 100644 index 0000000000..259bb66684 --- /dev/null +++ b/types/lambda-log/lambda-log-tests.ts @@ -0,0 +1,4 @@ +import { LambdaLog } from "lambda-log"; + +const log = new LambdaLog(); +log.log("info", "Some Message", {}, ["tag1", "tag2"]); diff --git a/types/lambda-log/tsconfig.json b/types/lambda-log/tsconfig.json new file mode 100644 index 0000000000..d2eb781281 --- /dev/null +++ b/types/lambda-log/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "strictFunctionTypes": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "lambda-log-tests.ts" + ] +} diff --git a/types/lambda-log/tslint.json b/types/lambda-log/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/lambda-log/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/lazy.js/index.d.ts b/types/lazy.js/index.d.ts index cea9ef0dea..6f5f0771c7 100644 --- a/types/lazy.js/index.d.ts +++ b/types/lazy.js/index.d.ts @@ -1,6 +1,6 @@ -// Type definitions for Lazy.js 0.3.2 +// Type definitions for Lazy.js 0.3.3 // Project: https://github.com/dtao/lazy.js/ -// Definitions by: Bart van der Schoor +// Definitions by: Bart van der Schoor , Mike Doughty // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare namespace LazyJS { @@ -8,8 +8,8 @@ declare namespace LazyJS { (value: string): StringLikeSequence; (value: T[]): ArrayLikeSequence; (value: any[]): ArrayLikeSequence; - (value: Object): ObjectLikeSequence; - (value: Object): ObjectLikeSequence; + (value: any): ObjectLikeSequence; + (value: any): ObjectLikeSequence; strict(): LazyStatic; @@ -106,7 +106,7 @@ declare namespace LazyJS { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace Sequence { - function define(methodName: string[], overrides: Object): Function; + function define(methodName: string[], overrides: any): Function; } interface Sequence extends SequenceBase { @@ -116,11 +116,11 @@ declare namespace LazyJS { interface SequenceBase extends SequenceBaser { first(): any; first(count: number): Sequence; - indexOf(value: any, startIndex?: number): Sequence; + indexOf(value: any, startIndex?: number): number; last(): any; last(count: number): Sequence; - lastIndexOf(value: any): Sequence; + lastIndexOf(value: any): number; reverse(): Sequence; } @@ -139,7 +139,7 @@ declare namespace LazyJS { every(predicateFn: TestCallback): boolean; filter(predicateFn: TestCallback): Sequence; find(predicateFn: TestCallback): T; - findWhere(properties: Object): T; + findWhere(properties: any): T; flatten(): Sequence; groupBy(keyFn: GetKeyCallback): ObjectLikeSequence; initial(count?: number): Sequence; @@ -162,14 +162,14 @@ declare namespace LazyJS { sort(sortFn?: CompareCallback, descending?: boolean): Sequence; sortBy(sortFn: NumberCallback, descending?: boolean): Sequence; sortBy(sortFn: string, descending?: boolean): Sequence; - sortedIndex(value: T): Sequence; + sortedIndex(value: T): number; sum(valueFn?: NumberCallback): T; takeWhile(predicateFn: TestCallback): Sequence; toArray(): T[]; - toObject(): Object; + toObject(): any; union(var_args: T[]): Sequence; uniq(): Sequence; - where(properties: Object): Sequence; + where(properties: any): Sequence; without(...var_args: T[]): Sequence; without(var_args: T[]): Sequence; zip(var_args: T[]): Sequence; @@ -178,12 +178,13 @@ declare namespace LazyJS { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace ArrayLikeSequence { - function define(methodName: string[], overrides: Object): Function; + function define(methodName: string[], overrides: any): Function; } interface ArrayLikeSequence extends Sequence { // define()X; concat(var_args: T[]): ArrayLikeSequence; + first(): T; first(count?: number): ArrayLikeSequence; get(index: number): T; length(): number; @@ -209,24 +210,24 @@ declare namespace LazyJS { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace ObjectLikeSequence { - function define(methodName: string[], overrides: Object): Function; + function define(methodName: string[], overrides: any): Function; } interface ObjectLikeSequence extends Sequence { - assign(other: Object): ObjectLikeSequence; + assign(other: any): ObjectLikeSequence; // throws error //async(): X; - defaults(defaults: Object): ObjectLikeSequence; + defaults(defaults: any): ObjectLikeSequence; functions(): Sequence; - get(property: string): ObjectLikeSequence; + get(property: string): T; invert(): ObjectLikeSequence; keys(): Sequence; - merge(others: Object | ObjectLikeSequence, mergeFn?: Function): ObjectLikeSequence; + merge(others: any | ObjectLikeSequence, mergeFn?: Function): ObjectLikeSequence; omit(properties: string[]): ObjectLikeSequence; pairs(): Sequence; pick(properties: string[]): ObjectLikeSequence; toArray(): T[]; - toObject(): Object; + toObject(): any; values(): Sequence; watch(propertyNames: string | string[]): Sequence<{property: string; value: any;}>; @@ -243,7 +244,7 @@ declare namespace LazyJS { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace StringLikeSequence { - function define(methodName: string[], overrides: Object): Function; + function define(methodName: string[], overrides: any): Function; } interface StringLikeSequence extends SequenceBaser { @@ -252,6 +253,7 @@ declare namespace LazyJS { contains(value: string): boolean; endsWith(suffix: string): boolean; first(): string; + first(count: number): StringLikeSequence; indexOf(substring: string, startIndex?: number): number; last(): string; last(count: number): StringLikeSequence; @@ -270,7 +272,6 @@ declare namespace LazyJS { every(predicateFn: TestCallback): boolean; filter(predicateFn: TestCallback): Sequence; find(predicateFn: TestCallback): string; - first(count: number): StringLikeSequence; none(valueFn?: TestCallback): boolean; reject(predicateFn: TestCallback): Sequence; some(predicateFn?: TestCallback): boolean; diff --git a/types/lazy.js/lazy.js-tests.ts b/types/lazy.js/lazy.js-tests.ts index 71220616c4..154b88a877 100644 --- a/types/lazy.js/lazy.js-tests.ts +++ b/types/lazy.js/lazy.js-tests.ts @@ -116,7 +116,7 @@ fooSequence = fooSequence.first(num); fooSequence = fooSequence.flatten(); fooObjectSeq = fooSequence.groupBy(fnGetKeyCallback); -fooSequence = fooSequence.indexOf(x); +num = fooSequence.indexOf(x); fooSequence = fooSequence.initial(); fooSequence = fooSequence.initial(num); fooSequence = fooSequence.intersection(arr); @@ -128,7 +128,7 @@ str = fooSequence.join(str); foo = fooSequence.last(); fooSequence = fooSequence.last(num); -fooSequence = fooSequence.lastIndexOf(foo); +num = fooSequence.lastIndexOf(foo); barSequence = fooSequence.map(fnMapCallback); foo = fooSequence.max(); foo = fooSequence.max(fnNumberCallback); @@ -151,7 +151,7 @@ fooSequence = fooSequence.sortBy(str); fooSequence = fooSequence.sortBy(str, bool); fooSequence = fooSequence.sortBy(fnNumberCallback); fooSequence = fooSequence.sortBy(fnNumberCallback, bool); -fooSequence = fooSequence.sortedIndex(foo); +num = fooSequence.sortedIndex(foo); foo = fooSequence.sum(); foo = fooSequence.sum(fnNumberCallback); fooSequence = fooSequence.takeWhile(fnTestCallback); @@ -168,7 +168,7 @@ obj = fooSequence.toObject(); // ArrayLikeSequence fooArraySeq = fooArraySeq.concat(fooArr); -fooArraySeq = fooArraySeq.first(); +x = fooArraySeq.first(); fooArraySeq = fooArraySeq.first(num); foo = fooArraySeq.get(num); num = fooArraySeq.length(); @@ -185,7 +185,7 @@ fooArraySeq = fooArraySeq.slice(num, num); fooObjectSeq = fooObjectSeq.defaults(obj); fooSequence = fooObjectSeq.functions(); -fooObjectSeq = fooObjectSeq.get(str); +x = fooObjectSeq.get(str); fooObjectSeq = fooObjectSeq.invert(); strSequence = fooObjectSeq.keys(); fooObjectSeq = fooObjectSeq.omit(strArr); diff --git a/types/level-sublevel/tsconfig.json b/types/level-sublevel/tsconfig.json index 4dad69a329..aa78b985dc 100644 --- a/types/level-sublevel/tsconfig.json +++ b/types/level-sublevel/tsconfig.json @@ -13,6 +13,14 @@ "../" ], "types": [], + "paths": { + "levelup": [ + "levelup/v1" + ], + "leveldown": [ + "leveldown/v1" + ] + }, "noEmit": true, "forceConsistentCasingInFileNames": true }, @@ -20,4 +28,4 @@ "index.d.ts", "level-sublevel-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/leveldown/index.d.ts b/types/leveldown/index.d.ts index a281478b43..ae45f2da69 100644 --- a/types/leveldown/index.d.ts +++ b/types/leveldown/index.d.ts @@ -1,148 +1,95 @@ -// Type definitions for LevelDown 1.7 -// Project: https://github.com/level/leveldown -// Definitions by: Thiago de Arruda -// Linus Unnebäck +// Type definitions for leveldown 4.0 +// Project: https://github.com/Level/leveldown +// Definitions by: Meirion Hughes +// Daniel Byrne // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 /// -export = leveldown; +import { + AbstractLevelDOWN, + AbstractIteratorOptions, + AbstractIterator, + AbstractOpenOptions, + AbstractGetOptions, + ErrorCallback, + ErrorValueCallback, + AbstractChainedBatch, + AbstractBatch, + AbstractOptions +} from 'abstract-leveldown'; -declare var leveldown: leveldown.Constructor; +export type Bytes = string | Buffer; +export type ErrorSizeCallback = (err: Error | undefined, size: number) => void; -declare namespace leveldown { -type Bytes = string | Buffer; -type ErrCallback = (error: any) => void; -type ErrNumberCallback = (error: any, value: number) => void; -type ErrBufferCallback = (error: any, value: Buffer) => void; -type ErrStringCallback = (error: any, value: string) => void; -type KeyAsStringCallback = (error: any, key: string, value: Buffer) => void; -type ValueAsStringCallback = (error: any, key: Buffer, value: string) => void; -type KeyAndValueAsStringCallback = (error: any, key: string, value: string) => void; -type KeyAndValueAsBufferCallback = (error: any, key: Buffer, value: Buffer) => void; +export interface LevelDown extends AbstractLevelDOWN { + open(cb: ErrorCallback): void; + open(options: LevelDownOpenOptions, cb: ErrorCallback): void; -interface PutBatch { - type: "put"; - key: Bytes; - value: Bytes; + get(key: Bytes, cb: ErrorValueCallback): void; + get(key: Bytes, options: LevelDownGetOptions, cb: ErrorValueCallback): void; + + put(key: Bytes, value: Bytes, cb: ErrorCallback): void; + put(key: Bytes, value: Bytes, options: LevelDownPutOptions, cb: ErrorCallback): void; + + del(key: Bytes, cb: ErrorCallback): void; + del(key: Bytes, options: LevelDownDelOptions, cb: ErrorCallback): void; + + batch(): AbstractChainedBatch; + batch(array: AbstractBatch[], cb: ErrorCallback): AbstractChainedBatch; + batch(array: AbstractBatch[], options: LevelDownBatchOptions, cb: ErrorCallback): AbstractChainedBatch; + + approximateSize(start: Bytes, end: Bytes, cb: ErrorSizeCallback): void; + compactRange(start: Bytes, end: Bytes, cb: ErrorCallback): void; + getProperty(property: string): string; + destroy(location: string, cb: ErrorCallback): void; + repair(location: string, cb: ErrorCallback): void; + iterator(options?: LevelDownIteratorOptions): LevelDownIterator; } -interface DelBatch { - type: "del"; - key: Bytes; +interface LevelDownConstructor { + new(location: string): LevelDown; + (location: string): LevelDown; } -type Batch = PutBatch | DelBatch; - -interface OpenOptions { - createIfMissing?: boolean; - errorIfExists?: boolean; - compression?: boolean; - cacheSize?: number; +export interface LevelDownOpenOptions extends AbstractOpenOptions { + compression?: boolean; + cacheSize?: number; + writeBufferSize?: number; + blockSize?: number; + maxOpenFiles?: number; + blockRestartInterval?: number; + maxFileSize?: number; } -interface OpenAdvancedOptions extends OpenOptions { - writeBufferSize?: number; - blockSize?: number; - maxOpenFiles?: number; - blockRestartInterval?: number; - maxFileSize?: number; +export interface LevelDownGetOptions extends AbstractGetOptions { + fillCache?: boolean; } -interface WriteOptions { - sync?: boolean; +export interface LevelDownPutOptions extends AbstractOptions { + sync?: boolean; } -interface ReadOptions { - fillCache?: boolean; +export interface LevelDownDelOptions extends AbstractOptions { + sync?: boolean; } -interface BufferReadOptions extends ReadOptions { - asBuffer?: true; +export interface LevelDownBatchOptions extends AbstractOptions { + sync?: boolean; } -interface StringReadOptions extends ReadOptions { - asBuffer: false; +export interface LevelDownIteratorOptions extends AbstractIteratorOptions { + fillCache?: boolean; } -interface IteratorOptions { - gt?: Bytes; - lt?: Bytes; - gte?: Bytes; - lte?: Bytes; - reverse?: boolean; - keys?: boolean; - values?: boolean; - limit?: number; - fillCache?: boolean; +export interface LevelDownIterator extends AbstractIterator { + seek(key: Bytes): void; + binding: any; + cache: any; + finished: any; + fastFuture: any; } -interface KeyAsStringIteratorOptions extends IteratorOptions { - keyAsBuffer: false; - valueAsBuffer?: true; -} - -interface ValueAsStringIteratorOptions extends IteratorOptions { - keyAsBuffer?: true; - valueAsBuffer: false; -} - -interface KeyAndValueAsStringIteratorOptions extends IteratorOptions { - keyAsBuffer: false; - valueAsBuffer: false; -} - -interface KeyAndValueAsBufferIteratorOptions extends IteratorOptions { - keyAsBuffer?: true; - valueAsBuffer?: true; -} - -interface Iterator { - seek(key: Bytes): void; - end(callback: ErrCallback): void; -} - -interface KeyAsStringIterator extends Iterator { - next(callback: KeyAsStringCallback): void; -} - -interface ValueAsStringIterator extends Iterator { - next(callback: ValueAsStringCallback): void; -} - -interface KeyAndValueAsStringIterator extends Iterator { - next(callback: KeyAndValueAsStringCallback): void; -} - -interface KeyAndValueAsBufferIterator extends Iterator { - next(callback: KeyAndValueAsBufferCallback): void; -} - -interface LevelDown { - open(callback: ErrCallback): void; - open(options: OpenOptions, callback: ErrCallback): void; - close(callback?: ErrCallback): void; - put(key: Bytes, value: Bytes, callback: ErrCallback): void; - put(key: Bytes, value: Bytes, options: WriteOptions, callback: ErrCallback): void; - get(key: Bytes, callback: ErrBufferCallback): void; - get(key: Bytes, options: BufferReadOptions, callback: ErrBufferCallback): void; - get(key: Bytes, options: StringReadOptions, callback: ErrStringCallback): void; - del(key: Bytes, callback?: ErrCallback): void; - del(key: Bytes, options: WriteOptions, callback?: ErrCallback): void; - batch(operations: Batch[], callback?: ErrCallback): void; - batch(operations: Batch[], options?: WriteOptions, callback?: ErrCallback): void; - approximateSize(start: Bytes, end: Bytes, callback: ErrNumberCallback): void; - compactRange(start: Bytes, end: Bytes, callback: ErrCallback): void; - getProperty(property: string): string; - iterator(options?: KeyAsStringIteratorOptions): KeyAsStringIterator; - iterator(options?: ValueAsStringIteratorOptions): ValueAsStringIterator; - iterator(options?: KeyAndValueAsStringIteratorOptions): KeyAndValueAsStringIterator; - iterator(options?: KeyAndValueAsBufferIteratorOptions): KeyAndValueAsBufferIterator; -} - -interface Constructor { - (location: string): LevelDown; - destroy(location: string, callback: ErrCallback): void; - repair(location: string, callback: ErrCallback): void; -} -} +declare const LevelDOWN: LevelDownConstructor; +export default LevelDOWN; diff --git a/types/leveldown/leveldown-tests.ts b/types/leveldown/leveldown-tests.ts index 7b00db1a96..8c38bae399 100644 --- a/types/leveldown/leveldown-tests.ts +++ b/types/leveldown/leveldown-tests.ts @@ -1,86 +1,19 @@ -import leveldown = require("leveldown"); +import LevelDOWN from 'leveldown'; -const db = leveldown("db1"); +// can use new, or not. +const a = new LevelDOWN("./tmp/leveldown"); +const b = LevelDOWN("./tmp/leveldown"); -db.open((err) => {}); -db.open({createIfMissing: true}, (err) => {}); +const down = new LevelDOWN("./tmp/leveldown"); -db.put("key", "value", (err) => {}); -db.put(Buffer.from("key"), Buffer.from("value"), (err) => {}); -db.put("key", "value", {sync: true}, (err) => {}); +down.open(() => { + down.put("key", "value", (err?) => { }); + down.put(Buffer.from([1]), "value", { something: true }, (err?) => { }); -db.get("key", {asBuffer: false}, (error, val) => { - console.log(val.toUpperCase()); + down.get("key", (err?) => { }); + down.get(Buffer.from([1]), { something: true }, (err: Error | undefined, value: any) => { }); + + down.close(() => { + // do nothing + }); }); -db.get("key", {fillCache: true}, (error, val) => { - console.log(val.readUInt32BE(0)); -}); -db.get("key", (error, val) => { - console.log(val.readUInt32BE(0)); -}); - -db.del("key"); -db.del("key", (error) => {}); -db.del("key", {sync: true}, (error) => {}); - -db.batch([{ - type: "put", key: "k", value: "v" -}, { - type: "del", key: "k" -}], (error) => {}); - -const keyAsStringIterator = db.iterator({keyAsBuffer: false}); -keyAsStringIterator.next((err, k, v) => { - console.log(k.toUpperCase()); - console.log(v.readUInt32BE(0)); -}); - -const valueAsStringIterator = db.iterator({valueAsBuffer: false}); -valueAsStringIterator.next((err, k, v) => { - console.log(k.readUInt32BE(0)); - console.log(v.toUpperCase()); -}); - -const keyAndValueAsStringIterator = db.iterator({keyAsBuffer: false, valueAsBuffer: false}); -keyAndValueAsStringIterator.next((err, k, v) => { - console.log(k.toUpperCase()); - console.log(v.toUpperCase()); -}); - -const keyAndValueAsBufferIterator1 = db.iterator({keyAsBuffer: true, valueAsBuffer: true}); -keyAndValueAsBufferIterator1.next((err, k, v) => { - console.log(k.readUInt32BE(0)); - console.log(v.readUInt32BE(0)); -}); - -const keyAndValueAsBufferIterator2 = db.iterator({keyAsBuffer: true}); -keyAndValueAsBufferIterator2.next((err, k, v) => { - console.log(k.readUInt32BE(0)); - console.log(v.readUInt32BE(0)); -}); - -const keyAndValueAsBufferIterator3 = db.iterator({valueAsBuffer: true}); -keyAndValueAsBufferIterator3.next((err, k, v) => { - console.log(k.readUInt32BE(0)); - console.log(v.readUInt32BE(0)); -}); - -const keyAndValueAsBufferIterator4 = db.iterator({}); -keyAndValueAsBufferIterator4.next((err, k, v) => { - console.log(k.readUInt32BE(0)); - console.log(v.readUInt32BE(0)); -}); - -keyAndValueAsBufferIterator4.seek("k"); -keyAndValueAsBufferIterator4.end((err) => {}); - -const s: string = db.getProperty("leveldb.stats"); - -db.approximateSize("k1", "k2", (err, size) => { - console.log(size.toExponential()); -}); - -db.compactRange("k1", "k2", (err) => {}); - -leveldown.destroy("/path/to/db", (err) => {}); -leveldown.repair("/path/to/db", (err) => {}); diff --git a/types/leveldown/tsconfig.json b/types/leveldown/tsconfig.json index 68b5638f5b..e2a3f66d9a 100644 --- a/types/leveldown/tsconfig.json +++ b/types/leveldown/tsconfig.json @@ -20,4 +20,4 @@ "index.d.ts", "leveldown-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/leveldown/tslint.json b/types/leveldown/tslint.json index 3db14f85ea..d88586e5bd 100644 --- a/types/leveldown/tslint.json +++ b/types/leveldown/tslint.json @@ -1 +1,3 @@ -{ "extends": "dtslint/dt.json" } +{ + "extends": "dtslint/dt.json" +} diff --git a/types/leveldown/v1/index.d.ts b/types/leveldown/v1/index.d.ts new file mode 100644 index 0000000000..4775beb3ca --- /dev/null +++ b/types/leveldown/v1/index.d.ts @@ -0,0 +1,148 @@ +// Type definitions for leveldown 1.7 +// Project: https://github.com/level/leveldown +// Definitions by: Thiago de Arruda +// Linus Unnebäck +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +export = leveldown; + +declare var leveldown: leveldown.Constructor; + +declare namespace leveldown { +type Bytes = string | Buffer; +type ErrCallback = (error: any) => void; +type ErrNumberCallback = (error: any, value: number) => void; +type ErrBufferCallback = (error: any, value: Buffer) => void; +type ErrStringCallback = (error: any, value: string) => void; +type KeyAsStringCallback = (error: any, key: string, value: Buffer) => void; +type ValueAsStringCallback = (error: any, key: Buffer, value: string) => void; +type KeyAndValueAsStringCallback = (error: any, key: string, value: string) => void; +type KeyAndValueAsBufferCallback = (error: any, key: Buffer, value: Buffer) => void; + +interface PutBatch { + type: "put"; + key: Bytes; + value: Bytes; +} + +interface DelBatch { + type: "del"; + key: Bytes; +} + +type Batch = PutBatch | DelBatch; + +interface OpenOptions { + createIfMissing?: boolean; + errorIfExists?: boolean; + compression?: boolean; + cacheSize?: number; +} + +interface OpenAdvancedOptions extends OpenOptions { + writeBufferSize?: number; + blockSize?: number; + maxOpenFiles?: number; + blockRestartInterval?: number; + maxFileSize?: number; +} + +interface WriteOptions { + sync?: boolean; +} + +interface ReadOptions { + fillCache?: boolean; +} + +interface BufferReadOptions extends ReadOptions { + asBuffer?: true; +} + +interface StringReadOptions extends ReadOptions { + asBuffer: false; +} + +interface IteratorOptions { + gt?: Bytes; + lt?: Bytes; + gte?: Bytes; + lte?: Bytes; + reverse?: boolean; + keys?: boolean; + values?: boolean; + limit?: number; + fillCache?: boolean; +} + +interface KeyAsStringIteratorOptions extends IteratorOptions { + keyAsBuffer: false; + valueAsBuffer?: true; +} + +interface ValueAsStringIteratorOptions extends IteratorOptions { + keyAsBuffer?: true; + valueAsBuffer: false; +} + +interface KeyAndValueAsStringIteratorOptions extends IteratorOptions { + keyAsBuffer: false; + valueAsBuffer: false; +} + +interface KeyAndValueAsBufferIteratorOptions extends IteratorOptions { + keyAsBuffer?: true; + valueAsBuffer?: true; +} + +interface Iterator { + seek(key: Bytes): void; + end(callback: ErrCallback): void; +} + +interface KeyAsStringIterator extends Iterator { + next(callback: KeyAsStringCallback): void; +} + +interface ValueAsStringIterator extends Iterator { + next(callback: ValueAsStringCallback): void; +} + +interface KeyAndValueAsStringIterator extends Iterator { + next(callback: KeyAndValueAsStringCallback): void; +} + +interface KeyAndValueAsBufferIterator extends Iterator { + next(callback: KeyAndValueAsBufferCallback): void; +} + +interface LevelDown { + open(callback: ErrCallback): void; + open(options: OpenOptions, callback: ErrCallback): void; + close(callback?: ErrCallback): void; + put(key: Bytes, value: Bytes, callback: ErrCallback): void; + put(key: Bytes, value: Bytes, options: WriteOptions, callback: ErrCallback): void; + get(key: Bytes, callback: ErrBufferCallback): void; + get(key: Bytes, options: BufferReadOptions, callback: ErrBufferCallback): void; + get(key: Bytes, options: StringReadOptions, callback: ErrStringCallback): void; + del(key: Bytes, callback?: ErrCallback): void; + del(key: Bytes, options: WriteOptions, callback?: ErrCallback): void; + batch(operations: Batch[], callback?: ErrCallback): void; + batch(operations: Batch[], options?: WriteOptions, callback?: ErrCallback): void; + approximateSize(start: Bytes, end: Bytes, callback: ErrNumberCallback): void; + compactRange(start: Bytes, end: Bytes, callback: ErrCallback): void; + getProperty(property: string): string; + iterator(options?: KeyAsStringIteratorOptions): KeyAsStringIterator; + iterator(options?: ValueAsStringIteratorOptions): ValueAsStringIterator; + iterator(options?: KeyAndValueAsStringIteratorOptions): KeyAndValueAsStringIterator; + iterator(options?: KeyAndValueAsBufferIteratorOptions): KeyAndValueAsBufferIterator; +} + +interface Constructor { + (location: string): LevelDown; + destroy(location: string, callback: ErrCallback): void; + repair(location: string, callback: ErrCallback): void; +} +} diff --git a/types/leveldown/v1/leveldown-tests.ts b/types/leveldown/v1/leveldown-tests.ts new file mode 100644 index 0000000000..7b00db1a96 --- /dev/null +++ b/types/leveldown/v1/leveldown-tests.ts @@ -0,0 +1,86 @@ +import leveldown = require("leveldown"); + +const db = leveldown("db1"); + +db.open((err) => {}); +db.open({createIfMissing: true}, (err) => {}); + +db.put("key", "value", (err) => {}); +db.put(Buffer.from("key"), Buffer.from("value"), (err) => {}); +db.put("key", "value", {sync: true}, (err) => {}); + +db.get("key", {asBuffer: false}, (error, val) => { + console.log(val.toUpperCase()); +}); +db.get("key", {fillCache: true}, (error, val) => { + console.log(val.readUInt32BE(0)); +}); +db.get("key", (error, val) => { + console.log(val.readUInt32BE(0)); +}); + +db.del("key"); +db.del("key", (error) => {}); +db.del("key", {sync: true}, (error) => {}); + +db.batch([{ + type: "put", key: "k", value: "v" +}, { + type: "del", key: "k" +}], (error) => {}); + +const keyAsStringIterator = db.iterator({keyAsBuffer: false}); +keyAsStringIterator.next((err, k, v) => { + console.log(k.toUpperCase()); + console.log(v.readUInt32BE(0)); +}); + +const valueAsStringIterator = db.iterator({valueAsBuffer: false}); +valueAsStringIterator.next((err, k, v) => { + console.log(k.readUInt32BE(0)); + console.log(v.toUpperCase()); +}); + +const keyAndValueAsStringIterator = db.iterator({keyAsBuffer: false, valueAsBuffer: false}); +keyAndValueAsStringIterator.next((err, k, v) => { + console.log(k.toUpperCase()); + console.log(v.toUpperCase()); +}); + +const keyAndValueAsBufferIterator1 = db.iterator({keyAsBuffer: true, valueAsBuffer: true}); +keyAndValueAsBufferIterator1.next((err, k, v) => { + console.log(k.readUInt32BE(0)); + console.log(v.readUInt32BE(0)); +}); + +const keyAndValueAsBufferIterator2 = db.iterator({keyAsBuffer: true}); +keyAndValueAsBufferIterator2.next((err, k, v) => { + console.log(k.readUInt32BE(0)); + console.log(v.readUInt32BE(0)); +}); + +const keyAndValueAsBufferIterator3 = db.iterator({valueAsBuffer: true}); +keyAndValueAsBufferIterator3.next((err, k, v) => { + console.log(k.readUInt32BE(0)); + console.log(v.readUInt32BE(0)); +}); + +const keyAndValueAsBufferIterator4 = db.iterator({}); +keyAndValueAsBufferIterator4.next((err, k, v) => { + console.log(k.readUInt32BE(0)); + console.log(v.readUInt32BE(0)); +}); + +keyAndValueAsBufferIterator4.seek("k"); +keyAndValueAsBufferIterator4.end((err) => {}); + +const s: string = db.getProperty("leveldb.stats"); + +db.approximateSize("k1", "k2", (err, size) => { + console.log(size.toExponential()); +}); + +db.compactRange("k1", "k2", (err) => {}); + +leveldown.destroy("/path/to/db", (err) => {}); +leveldown.repair("/path/to/db", (err) => {}); diff --git a/types/leveldown/v1/tsconfig.json b/types/leveldown/v1/tsconfig.json new file mode 100644 index 0000000000..3ac94ae334 --- /dev/null +++ b/types/leveldown/v1/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../../", + "typeRoots": [ + "../../" + ], + "types": [], + "paths": { + "leveldown": [ + "leveldown/v1" + ], + "leveldown/*": [ + "leveldown/v1/*" + ] + }, + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "leveldown-tests.ts" + ] +} diff --git a/types/leveldown/v1/tslint.json b/types/leveldown/v1/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/leveldown/v1/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/levelup/index.d.ts b/types/levelup/index.d.ts index 69c816638b..77ad3330a1 100644 --- a/types/levelup/index.d.ts +++ b/types/levelup/index.d.ts @@ -1,82 +1,123 @@ -// Type definitions for LevelUp +// Type definitions for levelup 3.1 // Project: https://github.com/Level/levelup -// Definitions by: Bret Little , Thiago de Arruda +// Definitions by: Meirion Hughes +// Daniel Byrne // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 /// -import * as leveldown from "leveldown"; +import { EventEmitter } from 'events'; +import { AbstractLevelDOWN, AbstractIteratorOptions, AbstractBatch, ErrorCallback, AbstractOptions, ErrorValueCallback, AbstractGetOptions } from 'abstract-leveldown'; -export = levelup; +type LevelUpPut = + ((key: K, value: V, callback: ErrorCallback) => void) & + ((key: K, value: V, options: O, callback: ErrorCallback) => void) & + ((key: K, value: V, options?: O) => Promise); -declare var levelup: levelup.LevelUpConstructor; +type LevelUpGet = + ((key: K, callback: ErrorValueCallback) => void) & + ((key: K, options: O, callback: ErrorValueCallback) => void) & + ((key: K, options?: O) => Promise); -declare namespace levelup { +type LevelUpDel = + ((key: K, callback: ErrorCallback) => void) & + ((key: K, options: O, callback: ErrorCallback) => void) & + ((key: K, options?: O) => Promise); -interface CustomEncoding { - encode(val: any): Buffer| string; - decode(val: Buffer | string): any; - buffer: boolean; - type: string; -} +type LevelUpBatch = + ((key: K, callback: ErrorCallback) => void) & + ((key: K, options: O, callback: ErrorCallback) => void) & + ((key: K, options?: O) => Promise); -type Encoding = string | CustomEncoding; +type InferDBPut = + DB extends { put: (key: infer K, value: infer V, options: infer O, cb: any) => void } ? + LevelUpPut : + LevelUpPut; -interface Batch { - type: string; - key: any; - value?: any; - keyEncoding?: Encoding; - valueEncoding?: Encoding; -} +type InferDBGet = + DB extends { get: (key: infer K, options: infer O, callback: ErrorValueCallback) => void } ? + LevelUpGet : + LevelUpGet; -interface LevelUpBase { - open(callback ?: (error : any) => any): void; - close(callback ?: (error : any) => any): void; - put(key: any, value: any, callback ?: (error: any) => any): void; - put(key: any, value: any, options?: { sync?: boolean }, callback ?: (error: any) => any): void; - get(key: any, callback ?: (error: any, value: any) => any): void; +type InferDBDel = + DB extends { del: (key: infer K, options: infer O, callback: ErrorCallback) => void } ? + LevelUpDel : + LevelUpDel; - get(key: any, options ?: { keyEncoding?: Encoding; fillCache?: boolean }, callback ?: (error: any, value: any) => any): void; - del(key: any, callback ?: (error: any) => any): void; - del(key: any, options ?: { keyEncoding?: Encoding; sync?: boolean }, callback ?: (error: any) => any): void; +export interface LevelUp extends EventEmitter { + open(): Promise; + open(callback?: ErrorCallback): void; + close(): Promise; + close(callback?: ErrorCallback): void; + put: InferDBPut; + get: InferDBGet; + del: InferDBDel; - batch(array: BatchType[], options?: { keyEncoding?: Encoding; valueEncoding?: Encoding; sync?: boolean }, callback?: (error?: any)=>any): void; - batch(array: BatchType[], callback?: (error?: any)=>any): void; - batch():LevelUpChain; - isOpen():boolean; - isClosed():boolean; - createReadStream(options?: any): any; - createKeyStream(options?: any): any; - createValueStream(options?: any): any; - createWriteStream(options?: any): any; - destroy(location: string, callback?: Function): void; - repair(location: string, callback?: Function): void; -} + batch(array: AbstractBatch[], options?: any): Promise; + batch(array: AbstractBatch[], options: any, callback: (err?: any) => any): void; + batch(array: AbstractBatch[], callback: (err?: any) => any): void; -type LevelUp = LevelUpBase + batch(): LevelUpChain; -interface LevelUpChain { - put(key: any, value: any): LevelUpChain; - put(key: any, value: any, options?: { sync?: boolean }): LevelUpChain; - del(key: any): LevelUpChain; - del(key: any, options ?: { keyEncoding?: Encoding; sync?: boolean }): LevelUpChain; - clear(): LevelUpChain; - write(callback?: (error?: any)=>any) : LevelUpChain; -} + isOpen(): boolean; + isClosed(): boolean; -interface levelupOptions { - createIfMissing?: boolean; - errorIfExists?: boolean; - compression?: boolean; - cacheSize?: number; - keyEncoding?: Encoding; - valueEncoding?: Encoding; - db?: leveldown.Constructor; + createReadStream(options?: AbstractIteratorOptions): NodeJS.ReadableStream; + createKeyStream(options?: AbstractIteratorOptions): NodeJS.ReadableStream; + createValueStream(options?: AbstractIteratorOptions): NodeJS.ReadableStream; + + /* + emitted when a new value is 'put' + */ + on(event: 'put', cb: (key: any, value: any) => void): this; + /* + emitted when a value is deleted + */ + on(event: 'del', cb: (key: any) => void): this; + /* + emitted when a batch operation has executed + */ + on(event: 'batch', cb: (ary: any[]) => void): this; + /* + emitted on given event + */ + on(event: 'open' | 'ready' | 'closed' | 'opening' | 'closing', cb: () => void): this; } interface LevelUpConstructor { - (hostname: string, options?: levelupOptions): LevelUp; + ( + db: DB, + options: any, + cb?: ErrorCallback): LevelUp; + + ( + db: DB, + cb?: ErrorCallback): LevelUp; + + new ( + db: DB, + options: any, + cb?: ErrorCallback): LevelUp; + + new ( + db: DB, + cb?: ErrorCallback): LevelUp; + + errors: /*typeof levelerrors*/ any; // ? level-errors is not in DT } + +export interface LevelUpChain { + readonly length: number; + put(key: K, value: V): this; + del(key: K): this; + clear(): this; + write(callback: ErrorCallback): this; + write(): Promise; } + +export const errors: /*typeof levelerrors*/ any; // ? level-errors is not in DT + +declare const LevelUp: LevelUpConstructor; +export default LevelUp; diff --git a/types/levelup/levelup-tests.ts b/types/levelup/levelup-tests.ts index 2d3867cdd3..bb7fbd0518 100644 --- a/types/levelup/levelup-tests.ts +++ b/types/levelup/levelup-tests.ts @@ -1,11 +1,5 @@ -import levelup = require("levelup"); - -interface BufferEncoding { - encode(val: any): Buffer; - decode(val: Buffer): any; - buffer: boolean; - type: string; -} +import levelup from 'levelup'; +import { AbstractLevelDOWN } from 'abstract-leveldown'; interface StringEncoding { encode(val: any): string; @@ -14,50 +8,39 @@ interface StringEncoding { type: string; } -declare const bufferEncoding: BufferEncoding; declare const stringEncoding: StringEncoding; -var db1 = levelup("db1", { - keyEncoding: bufferEncoding, - valueEncoding: bufferEncoding -}); -var db2 = levelup("db2", { +const db = levelup(new AbstractLevelDOWN('here'), { keyEncoding: stringEncoding, valueEncoding: stringEncoding }); -var db = levelup('./mydb') db.open(); db.close(); -db.open((error)=> { - +db.open((error) => { }); -db.close((error)=> { - +db.close((error) => { }); - db.put("key", {}); -db.put("key", {}, (error)=>{}); -db.put("key", {}, { sync: true}, (error)=>{}); +db.put("key", {}, (error) => {}); +db.put("key", {}, { sync: true}, (error) => {}); db.get("key", {keyEncoding: "json"}, (error, val) => {}); db.get("key", {fillCache: true}, (error, val) => {}); db.get("key", (error, val) => {}); db.del("key"); -db.del("key", (error)=>{}); -db.del("key", {keyEncoding: "json"}, (error)=>{}); -db.del("key", {sync: true}, (error)=>{}); +db.del("key", (error) => {}); +db.del("key", {keyEncoding: "json"}, (error) => {}); +db.del("key", {sync: true}, (error) => {}); db.batch([{ type : 'put' , key : ([1, 2, 3]) , value : { some: 'json' } - , keyEncoding : 'binary' - , valueEncoding : 'json' -}], (error)=> {}); +}], (error: Error | undefined) => {}); db.batch() .del('father') @@ -65,20 +48,23 @@ db.batch() .put('dob', '16 February 1941') .put('spouse', 'Kim Young-sook') .put('occupation', 'Clown') - .write(function () { console.log('Done!') }) + .write(() => { console.log('Done!'); }); + +// $ExpectType boolean +db.isOpen(); +// $ExpectType boolean +db.isClosed(); -var open:boolean = db.isOpen(); -var closed:boolean = db.isClosed(); db.createReadStream() - .on('data', function (data: any) { - console.log(data.key, '=', data.value) + .on('data', (data: any) => { + console.log(data.key, '=', data.value); }) - .on('error', function (err: any) { - console.log('Oh my!', err) + .on('error', (err: any) => { + console.log('Oh my!', err); }) - .on('close', function () { - console.log('Stream closed') - }) - .on('end', function () { - console.log('Stream closed') + .on('close', () => { + console.log('Stream closed'); }) + .on('end', () => { + console.log('Stream closed'); + }); diff --git a/types/levelup/tsconfig.json b/types/levelup/tsconfig.json index 8825ba9b79..35349bd607 100644 --- a/types/levelup/tsconfig.json +++ b/types/levelup/tsconfig.json @@ -6,7 +6,7 @@ ], "noImplicitAny": true, "noImplicitThis": true, - "strictNullChecks": false, + "strictNullChecks": true, "strictFunctionTypes": true, "baseUrl": "../", "typeRoots": [ @@ -20,4 +20,4 @@ "index.d.ts", "levelup-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/levelup/tslint.json b/types/levelup/tslint.json index a41bf5d19a..d88586e5bd 100644 --- a/types/levelup/tslint.json +++ b/types/levelup/tslint.json @@ -1,79 +1,3 @@ { - "extends": "dtslint/dt.json", - "rules": { - "adjacent-overload-signatures": false, - "array-type": false, - "arrow-return-shorthand": false, - "ban-types": false, - "callable-types": false, - "comment-format": false, - "dt-header": false, - "eofline": false, - "export-just-namespace": false, - "import-spacing": false, - "interface-name": false, - "interface-over-type-literal": false, - "jsdoc-format": false, - "max-line-length": false, - "member-access": false, - "new-parens": false, - "no-any-union": false, - "no-boolean-literal-compare": false, - "no-conditional-assignment": false, - "no-consecutive-blank-lines": false, - "no-construct": false, - "no-declare-current-package": false, - "no-duplicate-imports": false, - "no-duplicate-variable": false, - "no-empty-interface": false, - "no-for-in-array": false, - "no-inferrable-types": false, - "no-internal-module": false, - "no-irregular-whitespace": false, - "no-mergeable-namespace": false, - "no-misused-new": false, - "no-namespace": false, - "no-object-literal-type-assertion": false, - "no-padding": false, - "no-redundant-jsdoc": false, - "no-redundant-jsdoc-2": false, - "no-redundant-undefined": false, - "no-reference-import": false, - "no-relative-import-in-test": false, - "no-self-import": false, - "no-single-declare-module": false, - "no-string-throw": false, - "no-unnecessary-callback-wrapper": false, - "no-unnecessary-class": false, - "no-unnecessary-generics": false, - "no-unnecessary-qualifier": false, - "no-unnecessary-type-assertion": false, - "no-useless-files": false, - "no-var-keyword": false, - "no-var-requires": false, - "no-void-expression": false, - "no-trailing-whitespace": false, - "object-literal-key-quotes": false, - "object-literal-shorthand": false, - "one-line": false, - "one-variable-per-declaration": false, - "only-arrow-functions": false, - "prefer-conditional-expression": false, - "prefer-const": false, - "prefer-declare-function": false, - "prefer-for-of": false, - "prefer-method-signature": false, - "prefer-template": false, - "radix": false, - "semicolon": false, - "space-before-function-paren": false, - "space-within-parens": false, - "strict-export-declare-modifiers": false, - "trim-file": false, - "triple-equals": false, - "typedef-whitespace": false, - "unified-signatures": false, - "void-return": false, - "whitespace": false - } + "extends": "dtslint/dt.json" } diff --git a/types/levelup/v1/index.d.ts b/types/levelup/v1/index.d.ts new file mode 100644 index 0000000000..d0cf3e76bd --- /dev/null +++ b/types/levelup/v1/index.d.ts @@ -0,0 +1,82 @@ +// Type definitions for levelup 1.0 +// Project: https://github.com/Level/levelup +// Definitions by: Bret Little , Thiago de Arruda +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +import * as leveldown from "leveldown"; + +export = levelup; + +declare var levelup: levelup.LevelUpConstructor; + +declare namespace levelup { + + interface CustomEncoding { + encode(val: any): Buffer| string; + decode(val: Buffer | string): any; + buffer: boolean; + type: string; + } + + type Encoding = string | CustomEncoding; + + interface Batch { + type: string; + key: any; + value?: any; + keyEncoding?: Encoding; + valueEncoding?: Encoding; + } + + interface LevelUpBase { + open(callback ?: (error : any) => any): void; + close(callback ?: (error : any) => any): void; + put(key: any, value: any, callback ?: (error: any) => any): void; + put(key: any, value: any, options?: { sync?: boolean }, callback ?: (error: any) => any): void; + get(key: any, callback ?: (error: any, value: any) => any): void; + + get(key: any, options ?: { keyEncoding?: Encoding; fillCache?: boolean }, callback ?: (error: any, value: any) => any): void; + del(key: any, callback ?: (error: any) => any): void; + del(key: any, options ?: { keyEncoding?: Encoding; sync?: boolean }, callback ?: (error: any) => any): void; + + + batch(array: BatchType[], options?: { keyEncoding?: Encoding; valueEncoding?: Encoding; sync?: boolean }, callback?: (error?: any)=>any): void; + batch(array: BatchType[], callback?: (error?: any)=>any): void; + batch():LevelUpChain; + isOpen():boolean; + isClosed():boolean; + createReadStream(options?: any): any; + createKeyStream(options?: any): any; + createValueStream(options?: any): any; + createWriteStream(options?: any): any; + destroy(location: string, callback?: Function): void; + repair(location: string, callback?: Function): void; + } + + type LevelUp = LevelUpBase + + interface LevelUpChain { + put(key: any, value: any): LevelUpChain; + put(key: any, value: any, options?: { sync?: boolean }): LevelUpChain; + del(key: any): LevelUpChain; + del(key: any, options ?: { keyEncoding?: Encoding; sync?: boolean }): LevelUpChain; + clear(): LevelUpChain; + write(callback?: (error?: any)=>any) : LevelUpChain; + } + + interface levelupOptions { + createIfMissing?: boolean; + errorIfExists?: boolean; + compression?: boolean; + cacheSize?: number; + keyEncoding?: Encoding; + valueEncoding?: Encoding; + db?: leveldown.Constructor; + } + + interface LevelUpConstructor { + (hostname: string, options?: levelupOptions): LevelUp; + } +} diff --git a/types/levelup/v1/levelup-tests.ts b/types/levelup/v1/levelup-tests.ts new file mode 100644 index 0000000000..c32c240357 --- /dev/null +++ b/types/levelup/v1/levelup-tests.ts @@ -0,0 +1,84 @@ +import levelup = require("levelup"); + +interface BufferEncoding { + encode(val: any): Buffer; + decode(val: Buffer): any; + buffer: boolean; + type: string; +} + +interface StringEncoding { + encode(val: any): string; + decode(val: string): any; + buffer: boolean; + type: string; +} + +declare const bufferEncoding: BufferEncoding; +declare const stringEncoding: StringEncoding; + +var db1 = levelup("db1", { + keyEncoding: bufferEncoding, + valueEncoding: bufferEncoding +}); +var db2 = levelup("db2", { + keyEncoding: stringEncoding, + valueEncoding: stringEncoding +}); + +var db = levelup('./mydb') +db.open(); +db.close(); +db.open((error) => { + +}); + +db.close((error) => { + +}); + + +db.put("key", {}); +db.put("key", {}, (error) => { }); +db.put("key", {}, { sync: true }, (error) => { }); + +db.get("key", { keyEncoding: "json" }, (error, val) => { }); +db.get("key", { fillCache: true }, (error, val) => { }); +db.get("key", (error, val) => { }); + +db.del("key"); +db.del("key", (error) => { }); +db.del("key", { keyEncoding: "json" }, (error) => { }); +db.del("key", { sync: true }, (error) => { }); + +db.batch([{ + type: 'put' + , key: ([1, 2, 3]) + , value: { some: 'json' } + , keyEncoding: 'binary' + , valueEncoding: 'json' +}], (error) => { }); + +db.batch() + .del('father') + .put('name', 'Yuri Irsenovich Kim') + .put('dob', '16 February 1941') + .put('spouse', 'Kim Young-sook') + .put('occupation', 'Clown') + .write(function () { console.log('Done!') }) + +var open: boolean = db.isOpen(); +var closed: boolean = db.isClosed(); +db.createReadStream() + .on('data', function (data: any) { + console.log(data.key, '=', data.value) + }) + .on('error', function (err: any) { + console.log('Oh my!', err) + }) + .on('close', function () { + console.log('Stream closed') + }) + .on('end', function () { + console.log('Stream closed') + }) diff --git a/types/levelup/v1/tsconfig.json b/types/levelup/v1/tsconfig.json new file mode 100644 index 0000000000..1529f5e8c9 --- /dev/null +++ b/types/levelup/v1/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": false, + "strictFunctionTypes": true, + "baseUrl": "../../", + "typeRoots": [ + "../../" + ], + "types": [], + "paths": { + "levelup": [ + "levelup/v1" + ], + "levelup/*": [ + "levelup/v1/*" + ], + "leveldown": [ + "leveldown/v1" + ] + }, + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "levelup-tests.ts" + ] +} diff --git a/types/levelup/v1/tslint.json b/types/levelup/v1/tslint.json new file mode 100644 index 0000000000..a41bf5d19a --- /dev/null +++ b/types/levelup/v1/tslint.json @@ -0,0 +1,79 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + "adjacent-overload-signatures": false, + "array-type": false, + "arrow-return-shorthand": false, + "ban-types": false, + "callable-types": false, + "comment-format": false, + "dt-header": false, + "eofline": false, + "export-just-namespace": false, + "import-spacing": false, + "interface-name": false, + "interface-over-type-literal": false, + "jsdoc-format": false, + "max-line-length": false, + "member-access": false, + "new-parens": false, + "no-any-union": false, + "no-boolean-literal-compare": false, + "no-conditional-assignment": false, + "no-consecutive-blank-lines": false, + "no-construct": false, + "no-declare-current-package": false, + "no-duplicate-imports": false, + "no-duplicate-variable": false, + "no-empty-interface": false, + "no-for-in-array": false, + "no-inferrable-types": false, + "no-internal-module": false, + "no-irregular-whitespace": false, + "no-mergeable-namespace": false, + "no-misused-new": false, + "no-namespace": false, + "no-object-literal-type-assertion": false, + "no-padding": false, + "no-redundant-jsdoc": false, + "no-redundant-jsdoc-2": false, + "no-redundant-undefined": false, + "no-reference-import": false, + "no-relative-import-in-test": false, + "no-self-import": false, + "no-single-declare-module": false, + "no-string-throw": false, + "no-unnecessary-callback-wrapper": false, + "no-unnecessary-class": false, + "no-unnecessary-generics": false, + "no-unnecessary-qualifier": false, + "no-unnecessary-type-assertion": false, + "no-useless-files": false, + "no-var-keyword": false, + "no-var-requires": false, + "no-void-expression": false, + "no-trailing-whitespace": false, + "object-literal-key-quotes": false, + "object-literal-shorthand": false, + "one-line": false, + "one-variable-per-declaration": false, + "only-arrow-functions": false, + "prefer-conditional-expression": false, + "prefer-const": false, + "prefer-declare-function": false, + "prefer-for-of": false, + "prefer-method-signature": false, + "prefer-template": false, + "radix": false, + "semicolon": false, + "space-before-function-paren": false, + "space-within-parens": false, + "strict-export-declare-modifiers": false, + "trim-file": false, + "triple-equals": false, + "typedef-whitespace": false, + "unified-signatures": false, + "void-return": false, + "whitespace": false + } +} diff --git a/types/lovefield/index.d.ts b/types/lovefield/index.d.ts index de02f3c914..bca0c708f1 100644 --- a/types/lovefield/index.d.ts +++ b/types/lovefield/index.d.ts @@ -1,7 +1,9 @@ // Type definitions for Lovefield 2.1 // Project: http://google.github.io/lovefield/ // Definitions by: freshp86 +// zackzeno // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 declare namespace lf { enum Order { ASC, DESC } @@ -59,10 +61,10 @@ declare namespace lf { } interface Transaction { - attach(query: query.Builder): Promise; + attach(query: query.Builder): Promise; begin(scope: schema.Table[]): Promise; commit(): Promise; - exec(queries: query.Builder[]): Promise; + exec(queries: query.Builder[]): Promise; rollback(): Promise; stats(): TransactionStats; } @@ -73,9 +75,9 @@ declare namespace lf { close(): void; createTransaction(type?: TransactionType): Transaction; delete(): query.Delete; - export(): Promise; + export(): Promise; getSchema(): schema.Database; - import(data: Object): Promise; + import(data: object): Promise; insertOrReplace(): query.Insert; insert(): query.Insert; observe(query: query.Select, callback: Function): void; @@ -87,7 +89,7 @@ declare namespace lf { namespace query { interface Builder { bind(...values: any[]): Builder; - exec(): Promise; + exec(): Promise; explain(): string; toSql(): string; } @@ -131,9 +133,9 @@ declare namespace lf { renameTableColumn( tableName: string, oldColumnName: string, newColumnName: string): Promise; - createRow(payload: Object): Row; + createRow(payload: object): Row; getVersion(): number; - dump(): Object[]; + dump(): object[]; } } // module raw @@ -166,7 +168,7 @@ declare namespace lf { interface ITable { as(name: string): Table; - createRow(value: Object): Row; + createRow(value: object): Row; getName(): string; } diff --git a/types/lovefield/lovefield-tests.ts b/types/lovefield/lovefield-tests.ts index fade4e6755..0c7203fbfc 100644 --- a/types/lovefield/lovefield-tests.ts +++ b/types/lovefield/lovefield-tests.ts @@ -1,4 +1,10 @@ import lf = require("lovefield"); +export interface IRow { + id: number; + description: string; + deadline: Date; + done: boolean; +} function main(): void { const schemaBuilder: lf.schema.Builder = lf.schema.create('todo', 1); @@ -28,11 +34,11 @@ function main(): void { }); return db.insertOrReplace().into(itemSchema).values([row]).exec(); }).then(() => { - const column = itemSchema['done']; - return todoDb.select().from(itemSchema).where(column.eq(false)).exec(); + const column = itemSchema.done; + return todoDb.select().from(itemSchema).where(column.eq(false)).exec() as Promise; }).then((results) => { results.forEach((row) => { - document.body.textContent = `${(row as any).description} before ${(row as any).deadline}`; + document.body.textContent = `${row.description} before ${row.deadline}`; }); return todoDb.delete().from(itemSchema); diff --git a/types/md5/index.d.ts b/types/md5/index.d.ts index 7cfed0ca35..071c5306fc 100644 --- a/types/md5/index.d.ts +++ b/types/md5/index.d.ts @@ -11,7 +11,7 @@ * @param {(string | Buffer)} message - a string or buffer to hash * @returns {string} the resultant MD5 hash of the given message */ -declare function md5(message: string | Buffer): string; +declare function md5(message: string | Buffer | Array): string; declare namespace md5 {} diff --git a/types/md5/md5-tests.ts b/types/md5/md5-tests.ts index 924c9b8d91..9e7cc52ef2 100644 --- a/types/md5/md5-tests.ts +++ b/types/md5/md5-tests.ts @@ -1,4 +1,3 @@ -import fs = require("fs"); import md5 = require("md5"); /** * API @@ -24,8 +23,12 @@ import md5 = require("md5"); * }); * * ************************************************** */ -console.log(md5('message')); // should print 78e731027d8fd50ed642340b7c9a63b3 +const message = 'message'; -fs.readFile('md5.d.ts', function(err: Error, buf: Buffer) { - console.log(md5(buf)); -}); \ No newline at end of file +console.log(md5(message)); // should print 78e731027d8fd50ed642340b7c9a63b3 + +const array = new Array(message.length); +for (let i = 0; i < message.length; ++i) + array[i] = message.charCodeAt(i); +const buffer = new Buffer(array); +console.log(md5(buffer)); // Should be same result as above. diff --git a/types/memory-fs/index.d.ts b/types/memory-fs/index.d.ts index 23b3f0aef9..01c6e54ca4 100644 --- a/types/memory-fs/index.d.ts +++ b/types/memory-fs/index.d.ts @@ -2,6 +2,7 @@ // Project: https://github.com/webpack/memory-fs // Definitions by: e-cloud // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 /// @@ -38,7 +39,7 @@ declare class MemoryFileSystem { unlinkSync(_path: string): void; - readlinkSync(_path: string): void; + readlinkSync(_path: string): string; writeFileSync(_path: string, content: string | Buffer, encoding?: string): void; @@ -51,11 +52,11 @@ declare class MemoryFileSystem { createWriteStream(path: string, options?: any): any; - exists(path: string, callback: (isExist: boolean) => any): any; + exists(path: string, callback: (isExist: boolean) => void): void; - writeFile(path: string, content: string | Buffer, callback: (err?: Error) => any): any; + writeFile(path: string, content: string | Buffer, callback: (err: Error | undefined) => void): void; - writeFile(path: string, content: string | Buffer, encoding: string, callback: (err?: Error) => any): any; + writeFile(path: string, content: string | Buffer, encoding: string, callback: (err: Error | undefined) => void): void; join(path: string, request: string): string; @@ -63,21 +64,23 @@ declare class MemoryFileSystem { normalize(path: string): string; - stat(path: string, callback: (err?: Error, result?: any) => any): void; + stat(path: string, callback: (err: Error | null, result?: any) => void): void; - readdir(path: string, callback: (err?: Error, result?: any) => any): void; + readdir(path: string, callback: (err: Error | null, result?: any) => void): void; - mkdirp(path: string, callback: (err?: Error, result?: any) => any): void; + mkdirp(path: string, callback: (err: Error | null, result?: any) => void): void; - rmdir(path: string, callback: (err?: Error, result?: any) => any): void; + rmdir(path: string, callback: (err: Error | null, result?: any) => void): void; - unlink(path: string, callback: (err?: Error, result?: any) => any): void; + unlink(path: string, callback: (err: Error | null, result?: any) => void): void; - readlink(path: string, callback: (err?: Error, result?: any) => any): void; + readlink(path: string, callback: (err: Error | null, result?: any) => void): void; - mkdir(path: string, optArg: {}, callback: (err?: Error, result?: any) => any): void; + mkdir(path: string, callback: (err: Error | null) => void): void; + mkdir(path: string, optArg: {}, callback: (err: Error | null, result?: any) => void): void; - readFile(path: string, optArg: {}, callback: (err?: Error, result?: any) => any): void; + readFile(path: string, callback: (err: Error | null, result?: any) => void): void; + readFile(path: string, optArg: {}, callback: (err: Error | null, result?: any) => void): void; } export = MemoryFileSystem; diff --git a/types/memory-fs/test/webpack.ts b/types/memory-fs/test/webpack.ts new file mode 100644 index 0000000000..b74e11522b --- /dev/null +++ b/types/memory-fs/test/webpack.ts @@ -0,0 +1,7 @@ +import MemoryFileSystem = require('memory-fs') +import webpack = require('webpack') + +// integration with webpack +const compiler = webpack() +compiler.inputFileSystem = new MemoryFileSystem() +compiler.outputFileSystem = new MemoryFileSystem() diff --git a/types/memory-fs/tsconfig.json b/types/memory-fs/tsconfig.json index 13eb7da317..287db4678b 100644 --- a/types/memory-fs/tsconfig.json +++ b/types/memory-fs/tsconfig.json @@ -22,6 +22,7 @@ "lib/normalize.d.ts", "test/index.ts", "test/join.ts", - "test/normalize.ts" + "test/normalize.ts", + "test/webpack.ts" ] } \ No newline at end of file diff --git a/types/micro/index.d.ts b/types/micro/index.d.ts index 7914d107bd..f3787b1010 100644 --- a/types/micro/index.d.ts +++ b/types/micro/index.d.ts @@ -19,8 +19,8 @@ export function sendError(req: IncomingMessage, res: ServerResponse, info: { sta export function createError(code: number, msg: string, orig?: Error): Error & { statusCode: number, originalError?: Error }; -export function buffer(req: IncomingMessage, info?: { limit?: string, encoding?: string }): Promise; +export function buffer(req: IncomingMessage, info?: { limit?: string | number, encoding?: string }): Promise; -export function text(req: IncomingMessage, info?: { limit?: string, encoding?: string }): Promise; +export function text(req: IncomingMessage, info?: { limit?: string | number, encoding?: string }): Promise; -export function json(req: IncomingMessage, info?: { limit?: string, encoding?: string }): Promise; +export function json(req: IncomingMessage, info?: { limit?: string | number, encoding?: string }): Promise; diff --git a/types/mongodb/index.d.ts b/types/mongodb/index.d.ts index cad52bb88a..f7156dad62 100644 --- a/types/mongodb/index.d.ts +++ b/types/mongodb/index.d.ts @@ -1483,6 +1483,9 @@ export class AggregationCursor extends Readable { geoNear(document: Object): AggregationCursor; /** http://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#group */ group(document: Object): AggregationCursor; + /** http://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#hasNext */ + hasNext(): Promise; + hasNext(callback: MongoCallback): void; /** http://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#isClosed */ isClosed(): boolean; /** http://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#limit */ diff --git a/types/mongoose/index.d.ts b/types/mongoose/index.d.ts index 3534f82f49..7a28f641f6 100644 --- a/types/mongoose/index.d.ts +++ b/types/mongoose/index.d.ts @@ -697,7 +697,9 @@ declare module "mongoose" { | "findOne" | "findOneAndRemove" | "findOneAndUpdate" - | "update", + | "update" + | "updateOne" + | "updateMany", fn: HookSyncCallback, errorCb?: HookErrorCallback ): this; @@ -730,7 +732,9 @@ declare module "mongoose" { | "findOne" | "findOneAndRemove" | "findOneAndUpdate" - | "update", + | "update" + | "updateOne" + | "updateMany", parallel: boolean, fn: HookAsyncCallback, errorCb?: HookErrorCallback @@ -1100,6 +1104,9 @@ declare module "mongoose" { /** Checks if a path is set to its default. */ $isDefault(path?: string): boolean; + /** Getter/setter around the session associated with this document. */ + $session(session?: ClientSession): ClientSession; + /** * Takes a populated field and returns it to its unpopulated state. * If the path was not populated, this is a no-op. @@ -1932,7 +1939,7 @@ declare module "mongoose" { /** * Sets the [MongoDB session](https://docs.mongodb.com/manual/reference/server-sessions/) * associated with this query. Sessions are how you mark a query as part of a - * [transaction](/docs/transactions.html). + * [transaction](/docs/transactions.html). */ session(session: mongodb.ClientSession | null): this; @@ -2701,6 +2708,7 @@ declare module "mongoose" { * Triggers the save() hook. */ create(docs: any[], callback?: (err: any, res: T[]) => void): Promise; + create(docs: any[], options?: SaveOptions, callback?: (err: any, res: T[]) => void): Promise; create(...docs: any[]): Promise; create(...docsWithCallback: any[]): Promise; @@ -2760,6 +2768,24 @@ declare module "mongoose" { select?: any; }, callback?: (err: any, res: T | null) => void): DocumentQuery; + + /** + * Issue a mongodb findOneAndDelete command by a document's _id field. + * findByIdAndDelete(id, ...) is equivalent to findByIdAndDelete({ _id: id }, ...). + * Finds a matching document, removes it, passing the found document (if any) to the callback. + * Executes immediately if callback is passed, else a Query object is returned. + * @param id value of _id to query by + */ + findByIdAndDelete(): DocumentQuery; + findByIdAndDelete(id: any | number | string, + callback?: (err: any, res: T | null) => void): DocumentQuery; + findByIdAndDelete(id: any | number | string, options: { + /** if multiple docs are found by the conditions, sets the sort order to choose which doc to update */ + sort?: any; + /** sets the document fields to return */ + select?: any; + }, callback?: (err: any, res: T | null) => void): DocumentQuery; + /** * Issues a mongodb findAndModify update command by a document's _id field. findByIdAndUpdate(id, ...) * is equivalent to findOneAndUpdate({ _id: id }, ...). @@ -2806,6 +2832,32 @@ declare module "mongoose" { /** sets the document fields to return */ select?: any; }, callback?: (err: any, res: T | null) => void): DocumentQuery; + + /** + * Issues a mongodb findOneAndDelete command. + * Finds a matching document, removes it, passing the found document (if any) to the + * callback. Executes immediately if callback is passed. + */ + findOneAndDelete(): DocumentQuery; + findOneAndDelete(conditions: any, + callback?: (err: any, res: T | null) => void): DocumentQuery; + findOneAndDelete(conditions: any, options: { + /** + * if multiple docs are found by the conditions, sets the sort order to choose + * which doc to update + */ + sort?: any; + /** puts a time limit on the query - requires mongodb >= 2.6.0 */ + maxTimeMS?: number; + /** sets the document fields to return */ + select?: any; + /** like select, it determines which fields to return */ + projection?: any; + /** if true, returns the raw result from the MongoDB driver */ + rawResult?: boolean; + /** overwrites the schema's strict mode option for this update */ + strict?: boolean|string; + }, callback?: (err: any, res: T | null) => void): DocumentQuery; /** * Issues a mongodb findAndModify update command. @@ -2970,6 +3022,7 @@ declare module "mongoose" { interface SaveOptions { safe?: boolean | WriteConcern; validateBeforeSave?: boolean; + session?: ClientSession; } interface WriteConcern { @@ -3012,7 +3065,7 @@ declare module "mongoose" { interface ModelOptions { session?: ClientSession | null; } - + interface ModelFindByIdAndUpdateOptions extends ModelOptions { /** true to return the modified document rather than the original. defaults to false */ new?: boolean; diff --git a/types/mongoose/mongoose-tests.ts b/types/mongoose/mongoose-tests.ts index dea144c279..d8f55f6f97 100644 --- a/types/mongoose/mongoose-tests.ts +++ b/types/mongoose/mongoose-tests.ts @@ -1960,4 +1960,30 @@ db.createCollection('users'). ]).session(session).exec()). then((res: any) => { session.commitTransaction(); - }); \ No newline at end of file + }); + +/** https://mongoosejs.com/docs/transactions.html */ + +const Customer = db.model('Customer', new mongoose.Schema({ name: String })); + +db.createCollection('customers'). + then(() => db.startSession()). + then(_session => { + session = _session; + // Start a transaction + session.startTransaction(); + // This `create()` is part of the transaction because of the `session` + // option. + return Customer.create([{ name: 'Test' }], { session: session }); + }). + // Transactions execute in isolation, so unless you pass a `session` + // to `findOne()` you won't see the document until the transaction + // is committed. + then((customer: mongoose.Document[]) => Customer.findOne({ name: 'Test' }).exec()). + // This `findOne()` will return the doc, because passing the `session` + // means this `findOne()` will run as part of the transaction. + then(() => Customer.findOne({ name: 'Test' }).session(session).exec()). + // Once the transaction is committed, the write operation becomes + // visible outside of the transaction. + then(() => session.commitTransaction()). + then(() => Customer.findOne({ name: 'Test' }).exec()) diff --git a/types/moonjs/moonjs-tests.ts b/types/moonjs/moonjs-tests.ts index 34d1d8d359..1fdfbf115c 100644 --- a/types/moonjs/moonjs-tests.ts +++ b/types/moonjs/moonjs-tests.ts @@ -96,13 +96,7 @@ Moon.config.keycodes({ // 'data' needs to be a function when creating components. // $ExpectError -Moon.component('broken1', { - el: testHTMLElement, - data: { - foo: 100, - bar: 200, - }, -}); +Moon.component('broken1', { el: testHTMLElement, data: { foo: 100, bar: 200 } }); // Misspelled prop Moon.component('broken2', { diff --git a/types/nedb/index.d.ts b/types/nedb/index.d.ts index 02ed81be4f..dd3035dd72 100644 --- a/types/nedb/index.d.ts +++ b/types/nedb/index.d.ts @@ -2,6 +2,7 @@ // Project: https://github.com/louischatriot/nedb // Definitions by: Stefan Steinhart // Anthony Nichols +// Alejandro Fernandez Haro // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped export = Nedb; @@ -215,6 +216,7 @@ declare namespace Nedb { fieldName: string; unique?: boolean; sparse?: boolean; + expireAfterSeconds?: number; } interface Persistence { diff --git a/types/nedb/nedb-tests.ts b/types/nedb/nedb-tests.ts index c1ba5459cd..0df7168cf1 100644 --- a/types/nedb/nedb-tests.ts +++ b/types/nedb/nedb-tests.ts @@ -496,6 +496,11 @@ db.ensureIndex({ fieldName: 'somefield', unique: true }, (err: Error) => { db.ensureIndex({ fieldName: 'somefield', unique: true, sparse: true }, (err: Error) => { }); +// Example of using expireAfterSeconds to remove documents 1 hour +// after their creation (db's timestampData option is true here) +db.ensureIndex({ fieldName: 'somefield', expireAfterSeconds: 3600 }, (err: Error) => { +}); + // Format of the error message when the unique constraint is not met db.insert({ somefield: 'nedb' }, (err: Error) => { // err is null diff --git a/types/next/app.d.ts b/types/next/app.d.ts index d077c0e95a..aef2980063 100644 --- a/types/next/app.d.ts +++ b/types/next/app.d.ts @@ -1,19 +1,46 @@ import * as React from "react"; -import { NextContext } from "."; +import { NextContext, NextComponentType } from "."; import { RouterProps, DefaultQuery } from "./router"; -export interface AppComponentProps { - Component: React.ComponentType; - router: RouterProps; - pageProps: any; -} +// Deprecated +export type AppComponentProps = AppProps; +export type AppComponentContext = NextAppContext; +// End Deprecated -export interface AppComponentContext { - Component: React.ComponentType; +/** + * Context passed to App.getInitialProps. + * Component is dynamic - cannot infer type. + * + * @template Q Query object schema. + */ +export interface NextAppContext { + Component: NextComponentType>; router: RouterProps; ctx: NextContext; } -export class Container extends React.Component { } +/** + * Props passed to the App component. + * Component and pageProps are dynamic - cannot infer type. + * + * @template Q Query object schema. + */ +export interface AppProps { + Component: NextComponentType>; + router: RouterProps; + pageProps: any; +} -export default class App extends React.Component> { } +/** + * App component type. Differs from the default type because the context it passes + * to getInitialProps and the props is passes to the component are different. + * + * @template IP Initial props returned from getInitialProps. + * @template C Context passed to getInitialProps. + */ +export type AppComponentType = NextComponentType; + +export class Container extends React.Component {} +export default class App extends React.Component { + getInitialProps(context: C): Promise | IP; +} diff --git a/types/next/document.d.ts b/types/next/document.d.ts index e6ba38b6c9..2e9880db51 100644 --- a/types/next/document.d.ts +++ b/types/next/document.d.ts @@ -1,6 +1,6 @@ import * as React from "react"; - -import { NextContext } from "."; +import { NextContext, NextComponentType } from "."; +import { DefaultQuery } from "./router"; export interface RenderPageResponse { buildManifest: { [key: string]: any }; @@ -21,16 +21,25 @@ export interface AnyPageProps extends PageProps { [key: string]: any; } -export type Enhancer = (page: React.ComponentType

) => React.ComponentType; +export type Enhancer = ( + page: React.ComponentType

+) => React.ComponentType; /** - * Context object used inside `Document` + * Context passed to Document.getInitialProps. + * + * @template Q Query object schema. */ -export interface NextDocumentContext extends NextContext { +export interface NextDocumentContext extends NextContext { /** A callback that executes the actual React rendering logic (synchronously) */ - renderPage(enhancer?: Enhancer): RenderPageResponse; // tslint:disable-line:no-unnecessary-generics + renderPage( + enhancer?: Enhancer // tslint:disable-line no-unnecessary-generics + ): RenderPageResponse; } +/** + * Props passed to the Document component. + */ export interface DocumentProps { __NEXT_DATA__?: any; dev?: boolean; @@ -45,18 +54,40 @@ export interface DocumentProps { [key: string]: any; } +/** + * Props supported by the Head component. + */ export interface HeadProps { nonce?: string; [key: string]: any; } +/** + * Props supported by the NextScript component. + */ export interface NextScriptProps { nonce?: string; + [key: string]: any; } +/** + * Document component type. Differs from the default type because the context it passes + * to getInitialProps and the props is passes to the component are different. + * + * @template IP Initial props returned from getInitialProps. + * @template C Context passed to getInitialProps. + */ +export type DocumentComponentType = NextComponentType< + IP & DocumentProps, + IP, + C +>; + export class Head extends React.Component {} export class Main extends React.Component {} export class NextScript extends React.Component {} -export default class Document extends React.Component { - static getInitialProps(ctx: NextDocumentContext): Promise | DocumentProps; +export default class Document extends React.Component< + IP & DocumentProps +> { + getInitialProps(context: C): Promise | IP; } diff --git a/types/next/index.d.ts b/types/next/index.d.ts index 399963cbd8..c66e4c82ac 100644 --- a/types/next/index.d.ts +++ b/types/next/index.d.ts @@ -16,18 +16,24 @@ import * as url from "url"; import { Response as NodeResponse } from "node-fetch"; -import { SingletonRouter } from './router'; +import { SingletonRouter, DefaultQuery } from "./router"; declare namespace next { - /** Map object used in query strings. */ - type QueryStringMapObject = Record; + // Deprecated + type QueryStringMapObject = DefaultQuery; + type ServerConfig = NextConfig; + // End Deprecated + + type UrlLike = url.UrlObject | url.Url; /** * Context object used in methods like `getInitialProps()` * https://github.com/zeit/next.js/blob/6.1.1/server/render.js#L77 * https://github.com/zeit/next.js/blob/6.1.1/readme.md#fetching-data-and-component-lifecycle + * + * @template Q Query object schema. */ - interface NextContext { + interface NextContext { /** path section of URL */ pathname: string; /** query string section of URL parsed as an object */ @@ -44,19 +50,11 @@ declare namespace next { err?: Error; } - type NextSFC = NextStatelessComponent; - interface NextStatelessComponent - extends React.StatelessComponent { - getInitialProps?: (ctx: NextContext) => Promise; - } - - type UrlLike = url.UrlObject | url.Url; - /** * Next.js config schema. * https://github.com/zeit/next.js/blob/6.1.1/server/config.js#L10 */ - interface ServerConfig { + interface NextConfig { webpack?: any; webpackDevMiddleware?: any; poweredByHeader?: boolean; @@ -83,7 +81,7 @@ declare namespace next { dev?: boolean; staticMarkup?: boolean; quiet?: boolean; - conf?: ServerConfig; + conf?: NextConfig; } /** @@ -97,7 +95,7 @@ declare namespace next { quiet: boolean; router: SingletonRouter; http: null | http.Server; - nextConfig: ServerConfig; + nextConfig: NextConfig; distDir: string; buildId: string; hotReloader: any; @@ -114,7 +112,7 @@ declare namespace next { getHotReloader( dir: string, - options: { quiet: boolean; config: ServerConfig; buildId: string } + options: { quiet: boolean; config: NextConfig; buildId: string } ): any; handleRequest( req: http.IncomingMessage, @@ -132,38 +130,34 @@ declare namespace next { close(): Promise; defineRoutes(): Promise; start(): Promise; - run( - req: http.IncomingMessage, - res: http.ServerResponse, - parsedUrl: UrlLike - ): Promise; + run(req: http.IncomingMessage, res: http.ServerResponse, parsedUrl: UrlLike): Promise; render( req: http.IncomingMessage, res: http.ServerResponse, pathname: string, - query?: QueryStringMapObject, + query?: DefaultQuery, parsedUrl?: UrlLike ): Promise; renderToHTML( req: http.IncomingMessage, res: http.ServerResponse, pathname: string, - query?: QueryStringMapObject + query?: DefaultQuery ): Promise; renderError( err: any, req: http.IncomingMessage, res: http.ServerResponse, pathname: string, - query?: QueryStringMapObject + query?: DefaultQuery ): Promise; renderErrorToHTML( err: any, req: http.IncomingMessage, res: http.ServerResponse, pathname: string, - query?: QueryStringMapObject + query?: DefaultQuery ): Promise; render404( req: http.IncomingMessage, @@ -182,6 +176,49 @@ declare namespace next { getCompilationError(): Promise; send404(res: http.ServerResponse): void; } + + /** + * Next.js counterpart of React.ComponentType. + * Specially useful in HOCs that receive Next.js components. + * + * @template P Component props. + * @template IP Initial props returned from getInitialProps. + * @template C Context passed to getInitialProps. + */ + type NextComponentType

= + | NextComponentClass + | NextStatelessComponent; + + /** + * Next.js counterpart of React.SFC/React.StatelessComponent. + * + * @template P Component props. + * @template IP Initial props returned from getInitialProps. + * @template C Context passed to getInitialProps. + */ + type NextSFC

= NextStatelessComponent; + type NextStatelessComponent

= React.StatelessComponent

& + NextStaticLifecycle; + + /** + * Next.js counterpart of React.ComponentClass. + * + * @template P Component props. + * @template IP Initial props returned from getInitialProps. + * @template C Context passed to getInitialProps. + */ + type NextComponentClass

= React.ComponentClass

& + NextStaticLifecycle; + + /** + * Next.js specific lifecycle methods. + * + * @template IP Initial props returned from getInitialProps and passed to the component. + * @template C Context passed to getInitialProps. + */ + interface NextStaticLifecycle { + getInitialProps?: (ctx: C) => Promise | IP; + } } declare function next(options?: next.ServerOptions): next.Server; diff --git a/types/next/router.d.ts b/types/next/router.d.ts index be3665e3d5..2039b213f8 100644 --- a/types/next/router.d.ts +++ b/types/next/router.d.ts @@ -26,15 +26,7 @@ export type PopStateCallback = (state: any) => boolean | undefined; export type RouterCallback = () => void; -export interface DefaultQuery { - [key: string]: - | boolean - | boolean[] - | number - | number[] - | string - | string[]; -} +export type DefaultQuery = Record; export interface RouterProps { // url property fields diff --git a/types/next/test/next-app-tests.tsx b/types/next/test/next-app-tests.tsx index 14ef737a06..331df9e92f 100644 --- a/types/next/test/next-app-tests.tsx +++ b/types/next/test/next-app-tests.tsx @@ -1,21 +1,15 @@ import * as React from "react"; -import App, { Container } from "next/app"; +import App, { Container, NextAppContext, AppProps, AppComponentType } from "next/app"; interface NextComponentProps { example: string; } -class TestApp extends App { - static async getInitialProps({ Component, router, ctx }: any) { - let pageProps = {}; - - if (Component.getInitialProps) { - pageProps = await Component.getInitialProps(ctx); - } - - return { pageProps }; - } +interface TypedQuery { + id?: string; +} +class TestApp extends App { render() { const { Component, router, pageProps } = this.props; return ( @@ -25,3 +19,78 @@ class TestApp extends App { ); } } + +class TestAppWithProps extends App { + static async getInitialProps({ Component, router, ctx }: NextAppContext) { + const pageProps = Component.getInitialProps && (await Component.getInitialProps(ctx)); + return { pageProps, example: "foobar" }; + } + + render() { + const { Component, router, pageProps, example } = this.props; + return ; + } +} + +class TestAppWithTypedQuery extends App<{}, NextAppContext> { + static async getInitialProps({ ctx }: NextAppContext) { + const { id } = ctx.query; + const processQuery = (id?: string) => id; + processQuery(id); + } +} + +interface WithExampleProps { + example: string; +} + +interface WithExampleHocProps { + test: string; +} + +interface TestProps { + ownProp: boolean; +} + +// Stateful HOC that adds props to wrapped component. Similar to what withRedux does. +// tslint:disable-next-line no-unnecessary-generics +const withExample =

(App: AppComponentType

) => + class extends React.Component

{ + test: string; + + static async getInitialProps(context: NextAppContext) { + const pageProps = App.getInitialProps && (await App.getInitialProps(context)); + + // tslint:disable-next-line prefer-object-spread + return Object.assign({}, pageProps, { test: "test" }); + } + + constructor(props: P & AppProps & WithExampleHocProps) { + super(props); + this.test = props.test; + } + + render() { + return ; + } + }; + +// Basic stateless HOC. Similar to what withAuth would do. +// tslint:disable-next-line no-unnecessary-generics +const withBasic =

(App: AppComponentType) => + class extends React.Component

{ + static async getInitialProps(context: C) { + const pageProps = App.getInitialProps && (await App.getInitialProps(context)); + + // tslint:disable-next-line prefer-object-spread + return Object.assign({}, pageProps); + } + + render() { + return ; + } + }; + +withExample(TestAppWithProps); + +withBasic(TestAppWithTypedQuery); diff --git a/types/next/test/next-component-tests.tsx b/types/next/test/next-component-tests.tsx index 55173fd25c..4ba145ee15 100644 --- a/types/next/test/next-component-tests.tsx +++ b/types/next/test/next-component-tests.tsx @@ -1,20 +1,30 @@ import * as React from "react"; -import { NextStatelessComponent, NextContext } from "next"; +import { NextStatelessComponent, NextContext, NextComponentType } from "next"; interface NextComponentProps { example: string; } +interface TypedQuery { + id?: string; +} + class ClassNext extends React.Component { static async getInitialProps(ctx: NextContext) { const { example } = ctx.query; - return { example }; + return { example: example as string }; } render() { - return ( -

I'm a class component! {this.props.example}
- ); + return
I'm a class component! {this.props.example}
; + } +} + +class ClassNextWithTypedQuery extends React.Component { + static async getInitialProps(ctx: NextContext) { + const { id } = ctx.query; + const processQuery = (id?: string) => id; + processQuery(id); } } @@ -26,3 +36,87 @@ StatelessNext.getInitialProps = async ({ query }: NextContext) => { const { example } = query; return { example: example as string }; }; + +interface WithExampleProps { + example: string; +} + +interface WithExampleHocProps { + test: string; +} + +interface TestProps { + ownProp: boolean; +} + +// Stateful HOC that adds props to wrapped component. Similar to what withRedux does. +// tslint:disable-next-line use-default-type-parameter +const withExample =

(Page: NextComponentType

) => + class extends React.Component

{ + test: string; + + static async getInitialProps(ctx: NextContext) { + const pageProps = Page.getInitialProps && (await Page.getInitialProps(ctx)); + + // tslint:disable-next-line prefer-object-spread + return Object.assign({}, pageProps, { test: "test" }); + } + + constructor(props: P & WithExampleHocProps) { + super(props); + this.test = props.test; + } + + render() { + return ; + } + }; + +// Basic stateless HOC. Similar to what withAuth would do. +// tslint:disable-next-line no-unnecessary-generics +const withBasic =

(Page: NextComponentType

) => + class extends React.Component

{ + static async getInitialProps(ctx: NextContext) { + const pageProps = Page.getInitialProps && (await Page.getInitialProps(ctx)); + + // tslint:disable-next-line prefer-object-spread + const props = Object.assign({}, pageProps); + + if (ctx.query.example === "bar") { + // Redirect + } + + return props; + } + + render() { + return ; + } + }; + +class NextWithExample extends React.Component { + static async getInitialProps(ctx: NextContext) { + const { id } = ctx.query; + const processQuery = (id?: string) => id; + processQuery(id); + return { ownProp: true }; + } + + render() { + const { ownProp, example } = this.props; + return ( +

+ I'm wrapped in a HOC that gives me an example prop! {example} {ownProp} +
+ ); + } +} + +// P template is inferred as . +withExample(NextWithExample); + +// P template inferred as . +withBasic(ClassNext); + +// P template inferred as +withBasic(withExample(NextWithExample)); diff --git a/types/node-redis-pubsub/index.d.ts b/types/node-redis-pubsub/index.d.ts new file mode 100644 index 0000000000..f4b0984f38 --- /dev/null +++ b/types/node-redis-pubsub/index.d.ts @@ -0,0 +1,32 @@ +// Type definitions for node-redis-pubsub 3.0 +// Project: https://github.com/louischatriot/node-redis-pubsub#readme +// Definitions by: Rene Keijzer +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +import * as redis from "redis"; + +declare function NRP(options: object): NRP.NodeRedisPubSub; +declare namespace NRP { + function initClient(options: object): NodeRedisPubSub; + class NodeRedisPubSub { + constructor(options: object); + getRedisClient(): redis.RedisClient; + on( + channel: string, + handler: (data: string, channel: string) => void, + callback?: () => void + ): () => void; + subscribe( + channel: string, + handler: (data: string, channel: string) => void, + callback?: () => void + ): () => void; + emit(channel: string, message: string): void; + publish(channel: string, message: string): void; + quit(): void; + end(): void; + } +} + +export = NRP; diff --git a/types/node-redis-pubsub/node-redis-pubsub-tests.ts b/types/node-redis-pubsub/node-redis-pubsub-tests.ts new file mode 100644 index 0000000000..7b131f8271 --- /dev/null +++ b/types/node-redis-pubsub/node-redis-pubsub-tests.ts @@ -0,0 +1,19 @@ +import NRP = require("node-redis-pubsub"); +import { RedisClient } from "redis"; + +const options = { + port: 6379 +}; +const nrp: NRP.NodeRedisPubSub = NRP(options); + +nrp.on("message:*", (data, channel) => {}); + +nrp.subscribe("message:*", (data, channel) => {}); + +const redis: RedisClient = nrp.getRedisClient(); + +nrp.emit("message:test", "hello world"); +nrp.publish("message:test2", "hello world2"); + +nrp.quit(); +nrp.end(); diff --git a/types/node-redis-pubsub/tsconfig.json b/types/node-redis-pubsub/tsconfig.json new file mode 100644 index 0000000000..a008af3269 --- /dev/null +++ b/types/node-redis-pubsub/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "node-redis-pubsub-tests.ts" + ] +} diff --git a/types/node-redis-pubsub/tslint.json b/types/node-redis-pubsub/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/node-redis-pubsub/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/node/index.d.ts b/types/node/index.d.ts index ea3a5e8c47..2ef587520c 100644 --- a/types/node/index.d.ts +++ b/types/node/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for Node.js 10.9.x +// Type definitions for Node.js 10.10.x // Project: http://nodejs.org/ // Definitions by: Microsoft TypeScript // DefinitelyTyped @@ -647,6 +647,14 @@ declare namespace NodeJS { system: number; } + export interface ProcessRelease { + name: string; + sourceUrl?: string; + headersUrl?: string; + libUrl?: string; + lts?: string; + } + export interface ProcessVersions { http_parser: string; node: string; @@ -785,6 +793,7 @@ declare namespace NodeJS { memoryUsage(): MemoryUsage; cpuUsage(previousValue?: CpuUsage): CpuUsage; nextTick(callback: Function, ...args: any[]): void; + release: ProcessRelease; umask(mask?: number): number; uptime(): number; hrtime(time?: [number, number]): [number, number]; @@ -795,6 +804,14 @@ declare namespace NodeJS { disconnect(): void; connected: boolean; + /** + * The `process.allowedNodeEnvironmentFlags` property is a special, + * read-only `Set` of flags allowable within the [`NODE_OPTIONS`][] + * environment variable. + */ + // TODO: This Set is readonly + allowedNodeEnvironmentFlags: Set; + /** * EventEmitter * 1. beforeExit @@ -1088,6 +1105,7 @@ declare module "http" { 'pragma'?: string; 'proxy-authenticate'?: string; 'public-key-pins'?: string; + 'referer'?: string; 'retry-after'?: string; 'set-cookie'?: string[]; 'strict-transport-security'?: string; @@ -1737,8 +1755,8 @@ declare module "os" { export function networkInterfaces(): { [index: string]: NetworkInterfaceInfo[] }; export function homedir(): string; export function userInfo(options?: { encoding: string }): { username: string, uid: number, gid: number, shell: any, homedir: string }; - export var constants: { - UV_UDP_REUSEADDR: number, + export const constants: { + UV_UDP_REUSEADDR: number; signals: { SIGHUP: number; SIGINT: number; @@ -1774,7 +1792,7 @@ declare module "os" { SIGPWR: number; SIGSYS: number; SIGUNUSED: number; - }, + }; errno: { E2BIG: number; EACCES: number; @@ -1855,13 +1873,36 @@ declare module "os" { ETXTBSY: number; EWOULDBLOCK: number; EXDEV: number; - }, + }; + priority: { + PRIORITY_LOW: number; + PRIORITY_BELOW_NORMAL: number; + PRIORITY_NORMAL: number; + PRIORITY_ABOVE_NORMAL: number; + PRIORITY_HIGH: number; + PRIORITY_HIGHEST: number; + } }; export function arch(): string; export function platform(): NodeJS.Platform; export function tmpdir(): string; export const EOL: string; export function endianness(): "BE" | "LE"; + /** + * Gets the priority of a process. + * Defaults to current process. + */ + export function getPriority(pid?: number): number; + /** + * Sets the priority of the current process. + * @param priority Must be in range of -20 to 19 + */ + export function setPriority(priority: number): void; + /** + * Sets the priority of the process specified process. + * @param priority Must be in range of -20 to 19 + */ + export function setPriority(pid: number, priority: number): void; } declare module "https" { @@ -2097,22 +2138,53 @@ declare module "readline" { declare module "vm" { export interface Context { } - export interface ScriptOptions { + export interface BaseOptions { + /** + * Specifies the filename used in stack traces produced by this script. + * Default: `''`. + */ filename?: string; + /** + * Specifies the line number offset that is displayed in stack traces produced by this script. + * Default: `0`. + */ lineOffset?: number; + /** + * Specifies the column number offset that is displayed in stack traces produced by this script. + * Default: `0` + */ columnOffset?: number; + } + export interface ScriptOptions extends BaseOptions { displayErrors?: boolean; timeout?: number; cachedData?: Buffer; produceCachedData?: boolean; } - export interface RunningScriptOptions { - filename?: string; - lineOffset?: number; - columnOffset?: number; + export interface RunningScriptOptions extends BaseOptions { displayErrors?: boolean; timeout?: number; } + export interface CompileFunctionOptions extends BaseOptions { + /** + * Provides an optional data with V8's code cache data for the supplied source. + */ + cachedData?: Buffer; + /** + * Specifies whether to produce new cache data. + * Default: `false`, + */ + produceCachedData?: boolean; + /** + * The sandbox/context in which the said function should be compiled in. + */ + parsingContext?: Context; + + /** + * An array containing a collection of context extensions (objects wrapping the current scope) to be applied while compiling + */ + contextExtensions?: Object[]; + } export class Script { constructor(code: string, options?: ScriptOptions); runInContext(contextifiedSandbox: Context, options?: RunningScriptOptions): any; @@ -2126,6 +2198,7 @@ declare module "vm" { export function runInDebugContext(code: string): any; export function runInNewContext(code: string, sandbox?: Context, options?: RunningScriptOptions | string): any; export function runInThisContext(code: string, options?: RunningScriptOptions | string): any; + export function compileFunction(code: string, params: string[], options: CompileFunctionOptions): Function; } declare module "child_process" { @@ -2360,7 +2433,7 @@ declare module "child_process" { export interface SpawnSyncOptions { argv0?: string; // Not specified in the docs cwd?: string; - input?: string | Buffer | Uint8Array; + input?: string | Buffer | NodeJS.TypedArray | DataView; stdio?: StdioOptions; env?: NodeJS.ProcessEnv; uid?: number; @@ -2423,7 +2496,7 @@ declare module "child_process" { export interface ExecFileSyncOptions { cwd?: string; - input?: string | Buffer | Uint8Array; + input?: string | Buffer | NodeJS.TypedArray | DataView; stdio?: StdioOptions; env?: NodeJS.ProcessEnv; uid?: number; @@ -3189,6 +3262,7 @@ declare module "fs" { */ export type PathLike = string | Buffer | URL; + export type BinaryData = Buffer | DataView | NodeJS.TypedArray; export class Stats { isFile(): boolean; isDirectory(): boolean; @@ -3217,6 +3291,17 @@ declare module "fs" { birthtime: Date; } + export class Dirent { + isFile(): boolean; + isDirectory(): boolean; + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isSymbolicLink(): boolean; + isFIFO(): boolean; + isSocket(): boolean; + name: string; + } + export interface FSWatcher extends events.EventEmitter { close(): void; @@ -3964,21 +4049,21 @@ declare module "fs" { * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. */ - export function readdir(path: PathLike, options: { encoding: BufferEncoding | null } | BufferEncoding | undefined | null, callback: (err: NodeJS.ErrnoException, files: string[]) => void): void; + export function readdir(path: PathLike, options: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | undefined | null, callback: (err: NodeJS.ErrnoException, files: string[]) => void): void; /** * Asynchronous readdir(3) - read a directory. * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. */ - export function readdir(path: PathLike, options: { encoding: "buffer" } | "buffer", callback: (err: NodeJS.ErrnoException, files: Buffer[]) => void): void; + export function readdir(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false } | "buffer", callback: (err: NodeJS.ErrnoException, files: Buffer[]) => void): void; /** * Asynchronous readdir(3) - read a directory. * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. */ - export function readdir(path: PathLike, options: { encoding?: string | null } | string | undefined | null, callback: (err: NodeJS.ErrnoException, files: string[] | Buffer[]) => void): void; + export function readdir(path: PathLike, options: { encoding?: string | null; withFileTypes?: false } | string | undefined | null, callback: (err: NodeJS.ErrnoException, files: string[] | Buffer[]) => void): void; /** * Asynchronous readdir(3) - read a directory. @@ -3986,6 +4071,13 @@ declare module "fs" { */ export function readdir(path: PathLike, callback: (err: NodeJS.ErrnoException, files: string[]) => void): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + export function readdir(path: PathLike, options: { withFileTypes: true }, callback: (err: NodeJS.ErrnoException, files: Dirent[]) => void): void; + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. export namespace readdir { /** @@ -3993,21 +4085,28 @@ declare module "fs" { * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. */ - export function __promisify__(path: PathLike, options?: { encoding: BufferEncoding | null } | BufferEncoding | null): Promise; + export function __promisify__(path: PathLike, options?: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | null): Promise; /** * Asynchronous readdir(3) - read a directory. * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. */ - export function __promisify__(path: PathLike, options: "buffer" | { encoding: "buffer" }): Promise; + export function __promisify__(path: PathLike, options: "buffer" | { encoding: "buffer"; withFileTypes?: false }): Promise; /** * Asynchronous readdir(3) - read a directory. * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. */ - export function __promisify__(path: PathLike, options?: { encoding?: string | null } | string | null): Promise; + export function __promisify__(path: PathLike, options?: { encoding?: string | null; withFileTypes?: false } | string | null): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent + */ + export function __promisify__(path: PathLike, options: { withFileTypes: true }): Promise; } /** @@ -4015,21 +4114,28 @@ declare module "fs" { * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. */ - export function readdirSync(path: PathLike, options?: { encoding: BufferEncoding | null } | BufferEncoding | null): string[]; + export function readdirSync(path: PathLike, options?: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | null): string[]; /** * Synchronous readdir(3) - read a directory. * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. */ - export function readdirSync(path: PathLike, options: { encoding: "buffer" } | "buffer"): Buffer[]; + export function readdirSync(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false } | "buffer"): Buffer[]; /** * Synchronous readdir(3) - read a directory. * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. */ - export function readdirSync(path: PathLike, options?: { encoding?: string | null } | string | null): string[] | Buffer[]; + export function readdirSync(path: PathLike, options?: { encoding?: string | null; withFileTypes?: false } | string | null): string[] | Buffer[]; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + export function readdirSync(path: PathLike, options: { withFileTypes: true }): Dirent[]; /** * Asynchronous close(2) - close a file descriptor. @@ -4164,7 +4270,7 @@ declare module "fs" { * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. */ - export function write(fd: number, buffer: TBuffer, offset: number | undefined | null, length: number | undefined | null, position: number | undefined | null, callback: (err: NodeJS.ErrnoException, written: number, buffer: TBuffer) => void): void; + export function write(fd: number, buffer: TBuffer, offset: number | undefined | null, length: number | undefined | null, position: number | undefined | null, callback: (err: NodeJS.ErrnoException, written: number, buffer: TBuffer) => void): void; /** * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. @@ -4172,20 +4278,20 @@ declare module "fs" { * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. */ - export function write(fd: number, buffer: TBuffer, offset: number | undefined | null, length: number | undefined | null, callback: (err: NodeJS.ErrnoException, written: number, buffer: TBuffer) => void): void; + export function write(fd: number, buffer: TBuffer, offset: number | undefined | null, length: number | undefined | null, callback: (err: NodeJS.ErrnoException, written: number, buffer: TBuffer) => void): void; /** * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. * @param fd A file descriptor. * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. */ - export function write(fd: number, buffer: TBuffer, offset: number | undefined | null, callback: (err: NodeJS.ErrnoException, written: number, buffer: TBuffer) => void): void; + export function write(fd: number, buffer: TBuffer, offset: number | undefined | null, callback: (err: NodeJS.ErrnoException, written: number, buffer: TBuffer) => void): void; /** * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. * @param fd A file descriptor. */ - export function write(fd: number, buffer: TBuffer, callback: (err: NodeJS.ErrnoException, written: number, buffer: TBuffer) => void): void; + export function write(fd: number, buffer: TBuffer, callback: (err: NodeJS.ErrnoException, written: number, buffer: TBuffer) => void): void; /** * Asynchronously writes `string` to the file referenced by the supplied file descriptor. @@ -4220,7 +4326,7 @@ declare module "fs" { * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. */ - export function __promisify__(fd: number, buffer?: TBuffer, offset?: number, length?: number, position?: number | null): Promise<{ bytesWritten: number, buffer: TBuffer }>; + export function __promisify__(fd: number, buffer?: TBuffer, offset?: number, length?: number, position?: number | null): Promise<{ bytesWritten: number, buffer: TBuffer }>; /** * Asynchronously writes `string` to the file referenced by the supplied file descriptor. @@ -4239,7 +4345,7 @@ declare module "fs" { * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. */ - export function writeSync(fd: number, buffer: Buffer | Uint8Array, offset?: number | null, length?: number | null, position?: number | null): number; + export function writeSync(fd: number, buffer: BinaryData, offset?: number | null, length?: number | null, position?: number | null): number; /** * Synchronously writes `string` to the file referenced by the supplied file descriptor, returning the number of bytes written. @@ -4258,7 +4364,7 @@ declare module "fs" { * @param length The number of bytes to read. * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. */ - export function read(fd: number, buffer: TBuffer, offset: number, length: number, position: number | null, callback?: (err: NodeJS.ErrnoException, bytesRead: number, buffer: TBuffer) => void): void; + export function read(fd: number, buffer: TBuffer, offset: number, length: number, position: number | null, callback?: (err: NodeJS.ErrnoException, bytesRead: number, buffer: TBuffer) => void): void; // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. export namespace read { @@ -4269,7 +4375,7 @@ declare module "fs" { * @param length The number of bytes to read. * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. */ - export function __promisify__(fd: number, buffer: TBuffer, offset: number, length: number, position: number | null): Promise<{ bytesRead: number, buffer: TBuffer }>; + export function __promisify__(fd: number, buffer: TBuffer, offset: number, length: number, position: number | null): Promise<{ bytesRead: number, buffer: TBuffer }>; } /** @@ -4280,7 +4386,7 @@ declare module "fs" { * @param length The number of bytes to read. * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. */ - export function readSync(fd: number, buffer: Buffer | Uint8Array, offset: number, length: number, position: number | null): number; + export function readSync(fd: number, buffer: BinaryData, offset: number, length: number, position: number | null): number; /** * Asynchronously reads the entire contents of a file. @@ -4379,6 +4485,8 @@ declare module "fs" { */ export function readFileSync(path: PathLike | number, options?: { encoding?: string | null; flag?: string; } | string | null): string | Buffer; + export type WriteFileOptions = { encoding?: string | null; mode?: number | string; flag?: string; } | string | null; + /** * Asynchronously writes data to a file, replacing the file if it already exists. * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. @@ -4391,7 +4499,7 @@ declare module "fs" { * If `mode` is a string, it is parsed as an octal integer. * If `flag` is not supplied, the default of `'w'` is used. */ - export function writeFile(path: PathLike | number, data: any, options: { encoding?: string | null; mode?: number | string; flag?: string; } | string | undefined | null, callback: (err: NodeJS.ErrnoException) => void): void; + export function writeFile(path: PathLike | number, data: any, options: WriteFileOptions, callback: (err: NodeJS.ErrnoException) => void): void; /** * Asynchronously writes data to a file, replacing the file if it already exists. @@ -4416,7 +4524,7 @@ declare module "fs" { * If `mode` is a string, it is parsed as an octal integer. * If `flag` is not supplied, the default of `'w'` is used. */ - export function __promisify__(path: PathLike | number, data: any, options?: { encoding?: string | null; mode?: number | string; flag?: string; } | string | null): Promise; + export function __promisify__(path: PathLike | number, data: any, options?: WriteFileOptions): Promise; } /** @@ -4431,7 +4539,7 @@ declare module "fs" { * If `mode` is a string, it is parsed as an octal integer. * If `flag` is not supplied, the default of `'w'` is used. */ - export function writeFileSync(path: PathLike | number, data: any, options?: { encoding?: string | null; mode?: number | string; flag?: string; } | string | null): void; + export function writeFileSync(path: PathLike | number, data: any, options?: WriteFileOptions): void; /** * Asynchronously append data to a file, creating the file if it does not exist. @@ -4445,7 +4553,7 @@ declare module "fs" { * If `mode` is a string, it is parsed as an octal integer. * If `flag` is not supplied, the default of `'a'` is used. */ - export function appendFile(file: PathLike | number, data: any, options: { encoding?: string | null, mode?: string | number, flag?: string } | string | undefined | null, callback: (err: NodeJS.ErrnoException) => void): void; + export function appendFile(file: PathLike | number, data: any, options: WriteFileOptions, callback: (err: NodeJS.ErrnoException) => void): void; /** * Asynchronously append data to a file, creating the file if it does not exist. @@ -4470,7 +4578,7 @@ declare module "fs" { * If `mode` is a string, it is parsed as an octal integer. * If `flag` is not supplied, the default of `'a'` is used. */ - export function __promisify__(file: PathLike | number, data: any, options?: { encoding?: string | null, mode?: string | number, flag?: string } | string | null): Promise; + export function __promisify__(file: PathLike | number, data: any, options?: WriteFileOptions): Promise; } /** @@ -4485,7 +4593,7 @@ declare module "fs" { * If `mode` is a string, it is parsed as an octal integer. * If `flag` is not supplied, the default of `'a'` is used. */ - export function appendFileSync(file: PathLike | number, data: any, options?: { encoding?: string | null; mode?: number | string; flag?: string; } | string | null): void; + export function appendFileSync(file: PathLike | number, data: any, options?: WriteFileOptions): void; /** * Watch for changes on `filename`. The callback `listener` will be called each time the file is accessed. @@ -6316,6 +6424,11 @@ declare module "stream" { export class PassThrough extends Transform { } + export function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback: (err?: NodeJS.ErrnoException) => void): () => void; + export namespace finished { + export function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream): Promise; + } + export function pipeline(stream1: NodeJS.ReadableStream, stream2: T, callback?: (err: NodeJS.ErrnoException) => void): T; export function pipeline(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: T, callback?: (err: NodeJS.ErrnoException) => void): T; export function pipeline(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: NodeJS.ReadWriteStream, stream4: T, callback?: (err: NodeJS.ErrnoException) => void): T; diff --git a/types/node/node-tests.ts b/types/node/node-tests.ts index 542e8111a2..3feb7a4a86 100644 --- a/types/node/node-tests.ts +++ b/types/node/node-tests.ts @@ -186,6 +186,7 @@ namespace fs_tests { fs.writeFileSync("testfile", "content", "utf8"); fs.writeFileSync("testfile", "content", { encoding: "utf8" }); + fs.writeFileSync("testfile", new DataView(new ArrayBuffer(1)), { encoding: "utf8" }); } { @@ -229,6 +230,14 @@ namespace fs_tests { fs.readFile('testfile', { flag: 'r' }, (err, data) => buffer = data); } + { + fs.read(1, new DataView(new ArrayBuffer(1)), 0, 1, 0, (err: NodeJS.ErrnoException, bytesRead: number, buffer: DataView) => {}); + } + + { + fs.readSync(1, new DataView(new ArrayBuffer(1)), 0, 1, 0); + } + { var errno: number; fs.readFile('testfile', (err, data) => { @@ -247,6 +256,8 @@ namespace fs_tests { listS = fs.readdirSync('path', 'utf8'); listS = fs.readdirSync('path', null); listS = fs.readdirSync('path', undefined); + const listDir: fs.Dirent[] = fs.readdirSync('path', { withFileTypes: true }); + const listDir2: Buffer[] = fs.readdirSync('path', { withFileTypes: false, encoding: 'buffer' }); let listB: Buffer[]; listB = fs.readdirSync('path', { encoding: 'buffer' }); @@ -255,8 +266,9 @@ namespace fs_tests { let enc = 'buffer'; fs.readdirSync('path', { encoding: enc }); // $ExpectType string[] | Buffer[] fs.readdirSync('path', { }); // $ExpectType string[] | Buffer[] - } + fs.readdir('path', { withFileTypes: true }, (err: NodeJS.ErrnoException, files: fs.Dirent[]) => {}); + } { fs.mkdtemp('/tmp/foo-', (err, folder) => { console.log(folder); @@ -864,7 +876,7 @@ namespace util_tests { var arg0NoResult: () => Promise = util.promisify((cb: (err: Error) => void): void => { }); var arg1: (arg: string) => Promise = util.promisify((arg: string, cb: (err: Error, result: number) => void): void => { }); var arg1NoResult: (arg: string) => Promise = util.promisify((arg: string, cb: (err: Error) => void): void => { }); - var cbOptionalError: () => Promise = util.promisify((cb: (err?: Error | null) => void): void => { cb(); }); + var cbOptionalError: () => Promise = util.promisify((cb: (err?: Error | null) => void): void => { cb(); }); // tslint:disable-line void-return assert(typeof util.promisify.custom === 'symbol'); // util.deprecate const foo = () => {}; @@ -1111,6 +1123,21 @@ function simplified_stream_ctor_test() { }); } +function streamPipelineFinished() { + const cancel = stream.finished(process.stdin, (err?: Error) => {}); + cancel(); + + stream.pipeline(process.stdin, process.stdout, (err?: Error) => {}); +} + +async function asyncStreamPipelineFinished() { + const finished = util.promisify(stream.finished); + await finished(process.stdin); + + const pipeline = util.promisify(stream.pipeline); + await pipeline(process.stdin, process.stdout); +} + //////////////////////////////////////////////////////// /// Crypto tests : http://nodejs.org/api/crypto.html /// //////////////////////////////////////////////////////// @@ -2421,6 +2448,8 @@ namespace child_process_tests { childProcess.spawnSync("echo test"); childProcess.spawnSync("echo test", {windowsVerbatimArguments: false}); childProcess.spawnSync("echo test", {windowsVerbatimArguments: false, argv0: "echo-test"}); + childProcess.spawnSync("echo test", {input: new Uint8Array([])}); + childProcess.spawnSync("echo test", {input: new DataView(new ArrayBuffer(1))}); } { @@ -2433,6 +2462,11 @@ namespace child_process_tests { childProcess.execFile("npm", { encoding: 'buffer' }, (stdout, stderr) => { assert(stdout instanceof Buffer); }); } + { + childProcess.execFileSync("echo test", {input: new Uint8Array([])}); + childProcess.execFileSync("echo test", {input: new DataView(new ArrayBuffer(1))}); + } + async function testPromisify() { const execFile = util.promisify(childProcess.execFile); let r: { stdout: string | Buffer, stderr: string | Buffer } = await execFile("npm"); @@ -2868,6 +2902,16 @@ namespace os_tests { result = os.constants.errno.EWOULDBLOCK; result = os.constants.errno.EXDEV; } + + { + const prio = os.getPriority(); + os.setPriority(prio + 1); + + const prio2 = os.getPriority(1); + os.setPriority(2, prio + 1); + + os.setPriority(os.constants.priority.PRIORITY_LOW); + } } //////////////////////////////////////////////////// @@ -2921,6 +2965,17 @@ namespace vm_tests { { vm.runInThisContext('console.log("hello world"', './my-file.js'); } + + { + const fn: Function = vm.compileFunction('console.log("test")', [], { + parsingContext: vm.createContext(), + contextExtensions: [{ + a: 1, + }], + produceCachedData: false, + cachedData: Buffer.from('nope'), + }); + } } ///////////////////////////////////////////////////// @@ -3036,6 +3091,9 @@ namespace process_tests { process.setUncaughtExceptionCaptureCallback(null); const b: boolean = process.hasUncaughtExceptionCaptureCallback(); } + { + process.allowedNodeEnvironmentFlags.has('asdf'); + } } /////////////////////////////////////////////////////////// diff --git a/types/node/v8/index.d.ts b/types/node/v8/index.d.ts index 4cf8dc2a78..c30c59c5c3 100644 --- a/types/node/v8/index.d.ts +++ b/types/node/v8/index.d.ts @@ -480,6 +480,14 @@ declare namespace NodeJS { system: number; } + export interface ProcessRelease { + name: string; + sourceUrl?: string; + headersUrl?: string; + libUrl?: string; + lts?: string; + } + export interface ProcessVersions { http_parser: string; node: string; @@ -613,6 +621,7 @@ declare namespace NodeJS { memoryUsage(): MemoryUsage; cpuUsage(previousValue?: CpuUsage): CpuUsage; nextTick(callback: Function, ...args: any[]): void; + release: ProcessRelease; umask(mask?: number): number; uptime(): number; hrtime(time?: [number, number]): [number, number]; diff --git a/types/obj-str/index.d.ts b/types/obj-str/index.d.ts new file mode 100644 index 0000000000..44672fbd0a --- /dev/null +++ b/types/obj-str/index.d.ts @@ -0,0 +1,8 @@ +// Type definitions for obj-str 1.0 +// Project: https://github.com/lukeed/obj-str#readme +// Definitions by: Sascha Englert +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = objstr; + +declare function objstr(obj: { [name: string]: boolean }): string; diff --git a/types/obj-str/obj-str-tests.ts b/types/obj-str/obj-str-tests.ts new file mode 100644 index 0000000000..e945aef673 --- /dev/null +++ b/types/obj-str/obj-str-tests.ts @@ -0,0 +1,6 @@ +import objstr = require('obj-str'); + +const isTrue = () => true; + +objstr({ foo: true, bar: false, baz: isTrue() }); +// => 'foo baz' diff --git a/types/obj-str/tsconfig.json b/types/obj-str/tsconfig.json new file mode 100644 index 0000000000..e2498d5707 --- /dev/null +++ b/types/obj-str/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": ["../"], + "strictFunctionTypes": true, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": ["index.d.ts", "obj-str-tests.ts"] +} diff --git a/types/obj-str/tslint.json b/types/obj-str/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/obj-str/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/office-js/index.d.ts b/types/office-js/index.d.ts index 3383d70350..ca3f7b413d 100644 --- a/types/office-js/index.d.ts +++ b/types/office-js/index.d.ts @@ -982,7 +982,7 @@ declare namespace Office { * * This method is available in the DialogApi requirement set for Word, Excel, or PowerPoint add-ins, and in the Mailbox requirement set 1.4 * for Outlook. For more on how to specify a requirement set in your manifest, see - * {@link https://docs.microsoft.com/en-us/office/dev/add-ins/develop/specify-office-hosts-and-api-requirements | Specify Office hosts and API requirements}. + * {@link https://docs.microsoft.com/office/dev/add-ins/develop/specify-office-hosts-and-api-requirements | Specify Office hosts and API requirements}. * * The initial page must be on the same domain as the parent page (the startAddress parameter). After the initial page loads, you can go to * other domains. @@ -1478,7 +1478,7 @@ declare namespace Office { * * * - * + * * * *
Office for Windows desktop
Excel Y
Outlook Y
Outlook Y (in preview)
PowerPoint Y
Word Y
@@ -1817,11 +1817,9 @@ declare namespace Office { */ ActiveViewChanged, /** - * Triggers when the appointment date or time of the selected series is changed in Outlook. + * Triggers when any date or time of the selected appointment or series is changed in Outlook. * - * [Api set: Mailbox Preview] - * - * @beta + * [Api set: Mailbox 1.7] */ AppointmentTimeChanged, /** @@ -1920,26 +1918,20 @@ declare namespace Office { * Triggers when the OfficeTheme is changed in Outlook. * * [Api set: Mailbox Preview] - * - * @beta */ OfficeThemeChanged, /** - * Triggers when the recipient list of the selected item is changed in Outlook. + * Triggers when the recipient list of the selected item or the appointment location is changed in Outlook. * - * [Api set: Mailbox Preview] - * - * @beta + * [Api set: Mailbox 1.7] */ RecipientsChanged, /** * Triggers when the recurrence pattern of the selected series is changed in Outlook. * - * [Api set: Mailbox Preview] - * - * @beta + * [Api set: Mailbox 1.7] */ - RecurrencePatternChanged, + RecurrenceChanged, /** * Triggers when a Resource selection happens in Project. */ @@ -4828,7 +4820,7 @@ declare namespace Office { * Clears formatting on the bound table. * * @remarks - * See {@link https://docs.microsoft.com/en-us/office/dev/add-ins/excel/excel-add-ins-tables#format-a-table | Format tables in add-ins for Excel} for more information. + * See {@link https://docs.microsoft.com/office/dev/add-ins/excel/excel-add-ins-tables#format-a-table | Format tables in add-ins for Excel} for more information. * * **Support details** * @@ -5121,7 +5113,7 @@ declare namespace Office { } /** * Specifies enumerated values for the `cells` property in the cellFormat parameter of - * {@link https://docs.microsoft.com/en-us/office/dev/add-ins/excel/excel-add-ins-tables#format-a-table | table formatting methods}. + * {@link https://docs.microsoft.com/office/dev/add-ins/excel/excel-add-ins-tables#format-a-table | table formatting methods}. * * @remarks * @@ -7374,14 +7366,12 @@ declare namespace Office { /** * Specifies the day of week or type of day. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
* {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode} * Compose or read
- * - * @beta */ enum Days { /** @@ -7425,6 +7415,44 @@ declare namespace Office { */ Day = "day" } + /** + * This bit mask represents a delegate's permissions on a shared folder. + * + * [Api set: Mailbox Preview] + * + * @remarks + *
+ * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode} + * Compose or read
+ * + * @beta + */ + enum DelegatePermissions { + /** + * Delegate has permission to read items. + */ + Read = 1, + /** + * Delegate has permission to create and write items. + */ + Write = 2, + /** + * Delegate has permission to delete only the items they created. + */ + DeleteOwn = 4, + /** + * Delegate has permission to delete any items. + */ + DeleteAll = 8, + /** + * Delegate has permission to edit only they items they created. + */ + EditOwn = 16, + /** + * Delegate has permission to edit any items. + */ + EditAll = 32 + } /** * Specifies an entity's type. * @@ -7512,14 +7540,12 @@ declare namespace Office { /** * Specifies the month. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
* {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode} * Compose or read
- * - * @beta */ enum Month { /** @@ -7620,14 +7646,12 @@ declare namespace Office { /** * Specifies the time zone applied to the recurrence. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
* {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode} * Compose or read
- * - * @beta */ enum RecurrenceTimeZone { /** @@ -8180,14 +8204,12 @@ declare namespace Office { /** * Specifies the type of recurrence. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
* {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode} * Compose or read
- * - * @beta */ enum RecurrenceType { /** @@ -8270,14 +8292,12 @@ declare namespace Office { /** * Specifies the week of the month. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
* {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode} * Compose or read
- * - * @beta */ enum WeekNumber { /** @@ -8539,7 +8559,7 @@ declare namespace Office { * * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read * - * In addition to the main signature, this method also has this signature: + * In addition to this signature, this method also has the following signature: * * `getAsync(coerciontype: Office.CoercionType, callback: (result: AsyncResult) => void): void;` * @@ -8606,7 +8626,7 @@ declare namespace Office { * * ErrorsDataExceedsMaximumSize - The data parameter is longer than 1,000,000 characters. * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `prependAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions): void;` * @@ -8705,7 +8725,7 @@ declare namespace Office { * * ErrorsDataExceedsMaximumSize - The data parameter is longer than 1,000,000 characters.InvalidFormatError - The options.coercionType parameter is set to Office.CoercionType.Html and the message body is in plain text. * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `setAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions): void;` * @@ -8812,7 +8832,7 @@ declare namespace Office { * * ErrorsDataExceedsMaximumSize - The data parameter is longer than 1,000,000 characters.InvalidFormatError - The options.coercionType parameter is set to Office.CoercionType.Html and the message body is in plain text. * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `setSelectedDataAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions): void;` * @@ -9205,14 +9225,12 @@ declare namespace Office { /** * Provides a method to get the from value of a message in an Outlook add-in. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose
- * - * @beta */ export interface From { /** @@ -9222,7 +9240,7 @@ declare namespace Office { * * The from value of the item is provided as an {@link Office.EmailAddressDetails} in the asyncResult.value property. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -9246,7 +9264,7 @@ declare namespace Office { * * The from value of the item is provided as an {@link Office.EmailAddressDetails} in the asyncResult.value property. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -9264,20 +9282,18 @@ declare namespace Office { * Represents the appointment organizer, even if an alias or a delegate was used to create the appointment. * This object provides a method to get the organizer value of an appointment in an Outlook add-in. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
* *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose
- * - * @beta */ export interface Organizer { /** * Gets the organizer value of an appointment as an {@link Office.EmailAddressDetails} in the asyncResult.value property. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -9421,15 +9437,13 @@ declare namespace Office { * * The organizer property returns an {@link Office.Organizer | Organizer} object that provides a method to get the organizer value. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
* *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Appointment Organizer
- * - * @beta */ organizer: Office.Organizer; /** @@ -9443,15 +9457,13 @@ declare namespace Office { * Note: If the recurrence object is null, this indicates that the object is a single appointment or a meeting request of a single * appointment and NOT a part of a series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Appointment Organizer
- * - * @beta */ recurrence: Recurrence; /** @@ -9482,15 +9494,13 @@ declare namespace Office { * The seriesId property returns null for items that do not have parent items such as single appointments, series items, or meeting requests * and returns undefined for any other items that are not meeting requests. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Appointment Organizer
- * - * @beta */ seriesId: string; /** @@ -9651,14 +9661,16 @@ declare namespace Office { * @param callback When the method completes, the function passed in the callback parameter is called with a single parameter of type asyncResult. * On success, the attachment identifier will be provided in the asyncResult.value property. * If uploading the attachment fails, the asyncResult object will contain an Error object that provides a description of the error. + * + * @beta */ addFileAttachmentFromBase64Async(base64File: string, attachmentName: string, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult) => void): void; /** * Adds an event handler for a supported event. * - * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and `Office.EventType.RecurrencePatternChanged`. + * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -9677,17 +9689,15 @@ declare namespace Office { * asyncContext: Developers can provide any object they wish to access in the callback method. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ addHandlerAsync(eventType:EventType, handler: any, options?: any, callback?: (result: AsyncResult) => void): void; /** * Adds an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -9700,8 +9710,6 @@ declare namespace Office { * The type property on the parameter will match the eventType parameter passed to addHandlerAsync. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ addHandlerAsync(eventType:EventType, handler: any, callback?: (result: AsyncResult) => void): void; /** @@ -9726,7 +9734,7 @@ declare namespace Office { * * ErrorsNumberOfAttachmentsExceeded - The message or appointment has too many attachments. * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `addItemAttachmentAsync(itemId: any, attachmentName: string): void;` * @@ -10058,9 +10066,9 @@ declare namespace Office { * Removes an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -10079,16 +10087,14 @@ declare namespace Office { * asyncContext: Developers can provide any object they wish to access in the callback method. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ removeHandlerAsync(eventType:EventType, handler: any, options?: any, callback?: (result: AsyncResult) => void): void; /** * Removes an event handler for a supported event. * - * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and `Office.EventType.RecurrencePatternChanged`. + * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -10101,8 +10107,6 @@ declare namespace Office { * The type property on the parameter will match the eventType parameter passed to removeHandlerAsync. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ removeHandlerAsync(eventType:EventType, handler: any, callback?: (result: AsyncResult) => void): void; /** @@ -10594,15 +10598,13 @@ declare namespace Office { * Note: If the recurrence object is null, this indicates that the object is a single appointment or a meeting request of a single * appointment and NOT a part of a series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Appointment Attendee
- * - * @beta */ recurrence: Recurrence; /** @@ -10649,15 +10651,13 @@ declare namespace Office { * The seriesId property returns null for items that do not have parent items such as single appointments, series items, or meeting requests * and returns undefined for any other items that are not meeting requests. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Appointment Attendee
- * - * @beta */ seriesId: string; /** @@ -10681,9 +10681,9 @@ declare namespace Office { * Adds an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -10702,8 +10702,6 @@ declare namespace Office { * asyncContext: Developers can provide any object they wish to access in the callback method. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ addHandlerAsync(eventType: Office.EventType, handler: any, options?: any, callback?: (result: AsyncResult) => void): void; @@ -10711,9 +10709,9 @@ declare namespace Office { * Adds an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -10726,8 +10724,6 @@ declare namespace Office { * The type property on the parameter will match the eventType parameter passed to addHandlerAsync. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ addHandlerAsync(eventType:EventType, handler: any, callback?: (result: AsyncResult) => void): void; /** @@ -11066,9 +11062,9 @@ declare namespace Office { * Removes an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -11087,17 +11083,15 @@ declare namespace Office { * asyncContext: Developers can provide any object they wish to access in the callback method. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ removeHandlerAsync(eventType:EventType, handler: any, options?: any, callback?: (result: AsyncResult) => void): void; /** * Removes an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -11110,8 +11104,6 @@ declare namespace Office { * The type property on the parameter will match the eventType parameter passed to removeHandlerAsync. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ removeHandlerAsync(eventType:EventType, handler: any, callback?: (result: AsyncResult) => void): void; } @@ -11207,15 +11199,13 @@ declare namespace Office { * Note: If the recurrence object is null, this indicates that the object is a single appointment or a meeting request of a single appointment * and NOT a part of a series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read
- * - * @beta */ recurrence: Office.Recurrence; @@ -11233,24 +11223,22 @@ declare namespace Office { * The seriesId property returns null for items that do not have parent items such as single appointments, series items, or meeting requests * and returns undefined for any other items that are not meeting requests. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read
- * - * @beta */ seriesId: string; /** * Adds an event handler for a supported event. * - * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and `Office.EventType.RecurrencePatternChanged`. + * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -11269,17 +11257,15 @@ declare namespace Office { * asyncContext: Developers can provide any object they wish to access in the callback method. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ addHandlerAsync(eventType: Office.EventType, handler: any, options?: any, callback?: (result: AsyncResult) => void): void; /** * Adds an event handler for a supported event. * - * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and `Office.EventType.RecurrencePatternChanged`. + * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -11292,8 +11278,6 @@ declare namespace Office { * The type property on the parameter will match the eventType parameter passed to addHandlerAsync. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ addHandlerAsync(eventType: Office.EventType, handler: any, callback?: (result: AsyncResult) => void): void; @@ -11327,6 +11311,48 @@ declare namespace Office { */ getInitializationContextAsync(options?: Office.AsyncContextOptions, callback?: (result: AsyncResult) => void): void; + /** + * Gets the properties of an appointment or message in a shared folder, calendar, or mailbox. + * + * [Api set: Mailbox Preview] + * + * @remarks + * + * + *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read
+ * + * In addition to this signature, this method also has the following signature: + * + * `getAsync(callback: (result: AsyncResult) => void): void;` + * + * @param options An object literal that contains one or more of the following properties. + * asyncContext: Developers can provide any object they wish to access in the callback method. + * @param callback When the method completes, the function passed in the callback parameter is called with a single parameter of + * type Office.AsyncResult. + * The `value` property of the result is the properties of the shared item. + * + * @beta + */ + getSharedPropertiesAsync(options: Office.AsyncContextOptions, callback: (result: AsyncResult) => void): void; + + /** + * Gets the properties of an appointment or message in a shared folder, calendar, or mailbox. + * + * [Api set: Mailbox Preview] + * + * @remarks + * + * + *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read
+ * + * @param callback When the method completes, the function passed in the callback parameter is called with a single parameter of + * type Office.AsyncResult. + * The `value` property of the result is the properties of the shared item. + * + * @beta + */ + getSharedPropertiesAsync(callback: (result: AsyncResult) => void): void; + /** * Asynchronously loads custom properties for this add-in on the selected item. * @@ -11357,9 +11383,9 @@ declare namespace Office { * Removes an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -11378,8 +11404,6 @@ declare namespace Office { * asyncContext: Developers can provide any object they wish to access in the callback method. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ removeHandlerAsync(eventType: Office.EventType, handler: any, options?: any, callback?: (result: AsyncResult) => void): void; @@ -11387,9 +11411,9 @@ declare namespace Office { * Removes an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -11402,8 +11426,6 @@ declare namespace Office { * The type property on the parameter will match the eventType parameter passed to removeHandlerAsync. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ removeHandlerAsync(eventType: Office.EventType, handler: any, callback?: (result: AsyncResult) => void): void; } @@ -11559,6 +11581,8 @@ declare namespace Office { * @param callback When the method completes, the function passed in the callback parameter is called with a single parameter of type asyncResult. * On success, the attachment identifier will be provided in the asyncResult.value property. * If uploading the attachment fails, the asyncResult object will contain an Error object that provides a description of the error. + * + * @beta */ addFileAttachmentFromBase64Async(base64File: string, attachmentName: string, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult) => void): void; @@ -11584,7 +11608,7 @@ declare namespace Office { * * ErrorsNumberOfAttachmentsExceeded - The message or appointment has too many attachments. * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `addItemAttachmentAsync(itemId: any, attachmentName: string): void;` * @@ -12702,19 +12726,17 @@ declare namespace Office { * Gets the email address of the sender of a message. * * The from and sender properties represent the same person unless the message is sent by a delegate. - * In that case, the from property represents the delegator, and the sender property represents the delegate. + * In that case, the from property represents the owner, and the sender property represents the delegate. * * The from property returns a From object that provides a method to get the from value. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Message Compose
- * - * @beta */ from: Office.From; /** @@ -12757,15 +12779,13 @@ declare namespace Office { * Note: If the recurrence object is null, this indicates that the object is a single appointment or a meeting request of a single appointment * and NOT a part of a series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Message Compose
- * - * @beta */ recurrence: Recurrence; /** @@ -12782,15 +12802,13 @@ declare namespace Office { * The seriesId property returns null for items that do not have parent items such as single appointments, series items, or meeting requests * and returns undefined for any other items that are not meeting requests. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Message Compose
- * - * @beta */ seriesId: string; /** @@ -12952,14 +12970,16 @@ declare namespace Office { * @param callback When the method completes, the function passed in the callback parameter is called with a single parameter of type asyncResult. * On success, the attachment identifier will be provided in the asyncResult.value property. * If uploading the attachment fails, the asyncResult object will contain an Error object that provides a description of the error. + * + * @beta */ addFileAttachmentFromBase64Async(base64File: string, attachmentName: string, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult) => void): void; /** * Adds an event handler for a supported event. * - * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and `Office.EventType.RecurrencePatternChanged`. + * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -12978,17 +12998,15 @@ declare namespace Office { * asyncContext: Developers can provide any object they wish to access in the callback method. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ addHandlerAsync(eventType:EventType, handler: any, options?: any, callback?: (result: AsyncResult) => void): void; /** * Adds an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -13001,8 +13019,6 @@ declare namespace Office { * The type property on the parameter will match the eventType parameter passed to addHandlerAsync. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ addHandlerAsync(eventType:EventType, handler: any, callback?: (result: AsyncResult) => void): void; /** @@ -13027,7 +13043,7 @@ declare namespace Office { * * ErrorsNumberOfAttachmentsExceeded - The message or appointment has too many attachments. * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `addItemAttachmentAsync(itemId: any, attachmentName: string): void;` * @@ -13365,9 +13381,9 @@ declare namespace Office { * Removes an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -13386,17 +13402,15 @@ declare namespace Office { * asyncContext: Developers can provide any object they wish to access in the callback method. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ removeHandlerAsync(eventType:EventType, handler: any, options?: any, callback?: (result: AsyncResult) => void): void; /** * Removes an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -13409,8 +13423,6 @@ declare namespace Office { * The type property on the parameter will match the eventType parameter passed to removeHandlerAsync. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ removeHandlerAsync(eventType:EventType, handler: any, callback?: (result: AsyncResult) => void): void; /** @@ -13915,15 +13927,13 @@ declare namespace Office { * Note: If the recurrence object is null, this indicates that the object is a single appointment or a meeting request of a single appointment * and NOT a part of a series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Message Read
- * - * @beta */ recurrence: Recurrence; /** @@ -13940,15 +13950,13 @@ declare namespace Office { * The seriesId property returns null for items that do not have parent items such as single appointments, series items, or meeting requests * and returns undefined for any other items that are not meeting requests. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Message Read
- * - * @beta */ seriesId: string; /** @@ -14005,9 +14013,9 @@ declare namespace Office { * Adds an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -14026,8 +14034,6 @@ declare namespace Office { * asyncContext: Developers can provide any object they wish to access in the callback method. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ addHandlerAsync(eventType:EventType, handler: any, options?: any, callback?: (result: AsyncResult) => void): void; @@ -14035,9 +14041,9 @@ declare namespace Office { * Adds an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -14050,8 +14056,6 @@ declare namespace Office { * The type property on the parameter will match the eventType parameter passed to addHandlerAsync. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ addHandlerAsync(eventType:EventType, handler: any, callback?: (result: AsyncResult) => void): void; /** @@ -14394,9 +14398,9 @@ declare namespace Office { * Removes an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -14415,17 +14419,15 @@ declare namespace Office { * asyncContext: Developers can provide any object they wish to access in the callback method. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ removeHandlerAsync(eventType:EventType, handler: any, options?: any, callback?: (result: AsyncResult) => void): void; /** * Removes an event handler for a supported event. * * Currently the supported event types are `Office.EventType.AppointmentTimeChanged`, `Office.EventType.RecipientsChanged`, and - * `Office.EventType.RecurrencePatternChanged`. + * `Office.EventType.RecurrenceChanged`. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -14438,8 +14440,6 @@ declare namespace Office { * The type property on the parameter will match the eventType parameter passed to removeHandlerAsync. * @param callback Optional. When the method completes, the function passed in the callback parameter is called with a single parameter, * asyncResult, which is an Office.AsyncResult object. - * - * @beta */ removeHandlerAsync(eventType:EventType, handler: any, callback?: (result: AsyncResult) => void): void; } @@ -14693,7 +14693,7 @@ declare namespace Office { * * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read * - * The ewsUrl value can be used by a remote service to make EWS calls to the user's mailbox. For example, you can create a remote service to {@link https://msdn.microsoft.com/library/office/dn148008.aspx | get attachments from the selected item}. + * The ewsUrl value can be used by a remote service to make EWS calls to the user's mailbox. For example, you can create a remote service to {@link https://docs.microsoft.com/outlook/add-ins/get-attachments-of-an-outlook-item | get attachments from the selected item}. * * Note: This member is not supported in Outlook for iOS or Outlook for Android. */ @@ -14808,7 +14808,7 @@ declare namespace Office { * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read * * Item IDs retrieved via EWS or via the itemId property use a different format than the format used by REST APIs (such as the - * {@link https://msdn.microsoft.com/office/office365/APi/mail-rest-operations | Outlook Mail API} or the {@link http://graph.microsoft.io/ | Microsoft Graph}. + * {@link https://docs.microsoft.com/previous-versions/office/office-365-api/api/version-2.0/mail-rest-operations | Outlook Mail API} or the {@link http://graph.microsoft.io/ | Microsoft Graph}. * The convertToRestId method converts an EWS-formatted ID into the proper format for REST. * * @param itemId An item ID formatted for Exchange Web Services (EWS) @@ -15077,7 +15077,7 @@ declare namespace Office { * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose and read * * The getUserIdentityTokenAsync method returns a token that you can use to identify and - * {@link https://msdn.microsoft.com/library/office/fp179828.aspx | authenticate the add-in and user with a third-party system}. + * {@link https://docs.microsoft.com/outlook/add-ins/authentication | authenticate the add-in and user with a third-party system}. * * @param callback When the method completes, the function passed in the callback parameter is called with a single parameter of * type Office.AsyncResult. @@ -15333,7 +15333,7 @@ declare namespace Office { * * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read * - * In addition to the main signature, this method also has this signature: + * In addition to this signature, this method also has the following signature: * * `getAllAsync(callback: (result: AsyncResult) => void): void;` * @@ -15367,7 +15367,7 @@ declare namespace Office { * * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `removeAsync(key: string): void;` * @@ -15437,7 +15437,7 @@ declare namespace Office { * * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `replaceAsync(key: string, JSONmessage: NotificationMessageDetails): void;` * @@ -15566,7 +15566,7 @@ declare namespace Office { * * ErrorsNumberOfRecipientsExceeded - The number of recipients exceeded 100 entries. * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `addAsync(recipients: (string | EmailUser | EmailAddressDetails)[]): void;` * @@ -15666,7 +15666,7 @@ declare namespace Office { * * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose * - * In addition to the main signature, this method also has this signature: + * In addition to this signature, this method also has the following signature: * * `getAsync(callback: (result: AsyncResult) => void): void;` * @@ -15716,7 +15716,7 @@ declare namespace Office { * * ErrorsNumberOfRecipientsExceeded - The number of recipients exceeded 100 entries. * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `setAsync(recipients: (string | EmailUser | EmailAddressDetails)[]): void;` * @@ -15822,7 +15822,7 @@ declare namespace Office { * meeting requests. * It will have a dictionary with the following keys: seriesTime, recurrenceType, recurrenceProperties, and recurrenceTimeZone (optional). * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -15869,14 +15869,12 @@ declare namespace Office { * Yes (item.recurrence) * * - * - * @beta */ export interface Recurrence { /** * Gets or sets the properties of the recurring appointment series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -15884,11 +15882,11 @@ declare namespace Office { * * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read */ - recurrenceProperties: RecurrenceProperties; + recurrenceProperties: Office.RecurrenceProperties; /** * Gets or sets the properties of the recurring appointment series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -15896,12 +15894,12 @@ declare namespace Office { * * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read */ - recurrenceTimeZone: Office.MailboxEnums.RecurrenceTimeZone; + recurrenceTimeZone: Office.RecurrenceTimeZone; /** * Gets or sets the type of the recurring appointment series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -15916,7 +15914,7 @@ declare namespace Office { * and end times of instances. **This object is not in UTC time.** * Instead, it is set in the time zone specified by the recurrenceTimeZone value or defaulted to the item's time zone. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -15931,7 +15929,7 @@ declare namespace Office { * * This method returns the entire recurrence object for the appointment series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -15939,7 +15937,7 @@ declare namespace Office { * * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read * - * In addition to the main signature, this method also has this signature: + * In addition to this signature, this method also has the following signature: * * `getAsync(callback?: (result: AsyncResult) => void): void;` * @@ -15956,7 +15954,7 @@ declare namespace Office { * * This method returns the entire recurrence object for the appointment series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -15975,7 +15973,7 @@ declare namespace Office { * * Note: setAsync should only be available for series items and not instance items. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -15985,7 +15983,7 @@ declare namespace Office { * * ErrorsInvalidEndTime - The appointment end time is before its start time. * - * In addition to the main signature, this method also has this signature: + * In addition to this signature, this method also has the following signature: * * `setAsync(recurrencePattern: Recurrence, callback?: (result: AsyncResult) => void): void;` * @@ -16002,7 +16000,7 @@ declare namespace Office { * * Note: setAsync should only be available for series items and not instance items. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -16020,17 +16018,15 @@ declare namespace Office { } /** - * Gets or sets the properties of the recurrence. + * Represents the properties of the recurrence. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read
- * - * @beta */ export interface RecurrenceProperties { /** @@ -16064,6 +16060,29 @@ declare namespace Office { firstDayOfWeek: Office.MailboxEnums.Days; } + /** + * Represents the time zone of the recurrence. + * + * [Api set: Mailbox 1.7] + * + * @remarks + * + * + * + *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read
+ */ + export interface RecurrenceTimeZone { + /** + * Represents the name of the recurrence time zone. + */ + name: Office.MailboxEnums.RecurrenceTimeZone; + + /** + * Integer value representing the difference in minutes between the local time zone and UTC at the date that the meeting series began. + */ + offset: number; + } + /** * A file or item attachment. Used when displaying a reply form. */ @@ -16206,20 +16225,18 @@ declare namespace Office { * The SeriesTime object provides methods to get and set the dates and times of appointments in a recurring series and get the dates and times of * meeting requests in a recurring series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read
- * - * @beta */ interface SeriesTime { /** * Gets the duration in minutes of a usual instance in a recurring appointment series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -16231,7 +16248,7 @@ declare namespace Office { /** * Gets the end date of a recurrence pattern in the following {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601} date format: "YYYY-MM-DD" * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
@@ -16245,7 +16262,7 @@ declare namespace Office { * add-in set the recurrence pattern using the following {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601} format: * "THH:mm:ss:mmm" * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
@@ -16257,7 +16274,7 @@ declare namespace Office { /** * Gets the start date of a recurrence pattern in the following {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601} date format: "YYYY-MM-DD" * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
@@ -16270,7 +16287,7 @@ declare namespace Office { * Gets the start time of a usual appointment instance of a recurrence pattern in whichever time zone that the user/add-in set the * recurrence pattern using the following {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601} format: "THH:mm:ss:mmm" * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
@@ -16282,7 +16299,7 @@ declare namespace Office { /** * Sets the duration of all appointments in a recurrence pattern. This will also change the end time of the recurrence pattern. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
@@ -16296,7 +16313,7 @@ declare namespace Office { /** * Sets the end date of a recurring appointment series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadWriteItem
@@ -16305,7 +16322,7 @@ declare namespace Office { * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadWriteItem
ErrorsInvalid date format - The date is not in an acceptable format.
* - * In addition to the main signature, this method also has this signature: + * In addition to this signature, this method also has the following signature: * * `setEndDate(date: string): void;` (Where date is the end date of the recurring appointment series represented in the * {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601} date format: "YYYY-MM-DD"). @@ -16318,7 +16335,7 @@ declare namespace Office { /** * Sets the end date of a recurring appointment series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -16333,7 +16350,7 @@ declare namespace Office { /** * Sets the start date of a recurring appointment series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadWriteItem
@@ -16342,7 +16359,7 @@ declare namespace Office { * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadWriteItem
ErrorsInvalid date format - The date is not in an acceptable format.
* - * In addition to the main signature, this method also has this signature: + * In addition to this signature, this method also has the following signature: * * `setStartDate(date: string): void;` (Where date is the start date of the recurring appointment series represented in the {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601} date format: "YYYY-MM-DD"). * @@ -16355,7 +16372,7 @@ declare namespace Office { /** * Sets the start date of a recurring appointment series. * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -16372,7 +16389,7 @@ declare namespace Office { * Sets the start time of all instances of a recurring appointment series in whichever time zone the recurrence pattern is set * (the item's time zone is used by default). * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadWriteItem
@@ -16381,7 +16398,7 @@ declare namespace Office { * *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadWriteItem
ErrorsInvalid time format - The time is not in an acceptable format.
* - * In addition to the main signature, this method also has this signature: + * In addition to this signature, this method also has the following signature: * * `setStartTime(time: string): void;` (Where time is the start time of all instances represented by standard datetime string format: "THH:mm:ss:mmm"). * @@ -16394,7 +16411,7 @@ declare namespace Office { * Sets the start time of all instances of a recurring appointment series in whichever time zone the recurrence pattern is set * (the item's time zone is used by default). * - * [Api set: Mailbox Preview] + * [Api set: Mailbox 1.7] * * @remarks * @@ -16408,6 +16425,33 @@ declare namespace Office { setStartTime(time: string): void; } + /** + * Represents the properties of an appointment or message in a shared folder, mailbox, or calendar. + * + * [Api set: Mailbox Preview] + * + * @remarks + *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadWriteItem
+ * + *
{@link https://docs.microsoft.com/outlook/add-ins/understanding-outlook-add-in-permissions | Minimum permission level}ReadItem
{@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose or read
+ * + * @beta + */ + interface SharedProperties { + /** + * The email address of the owner of a shared item. + */ + owner: String; + /** + * The remote REST url related to the owner’s mailbox. + */ + restUrl: String; + /** + * The permissions that the delegate has on a shared folder. + */ + delegatePermissions: Office.MailboxEnums.DelegatePermissions; + } + /** * Provides methods to get and set the subject of an appointment or message in an Outlook add-in. * @@ -16431,7 +16475,7 @@ declare namespace Office { * * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose * - * In addition to the main signature, this method also has this signature: + * In addition to this signature, this method also has the following signature: * * `getAsync(callback: (result: AsyncResult) => void): void;` * @@ -16473,7 +16517,7 @@ declare namespace Office { * * ErrorsDataExceedsMaximumSize - The subject parameter is longer than 255 characters. * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `setAsync(subject: string): void;` * @@ -16595,7 +16639,7 @@ declare namespace Office { * * {@link https://docs.microsoft.com/outlook/add-ins/#extension-points | Applicable Outlook mode}Compose * - * In addition to the main signature, this method also has this signature: + * In addition to this signature, this method also has the following signature: * * `getAsync(callback: (result: AsyncResult) => void): void;` * @@ -16639,7 +16683,7 @@ declare namespace Office { * * ErrorsInvalidEndTime - The appointment end time is before the appointment start time. * - * In addition to the main signature, this method also has these signatures: + * In addition to this signature, this method also has the following signatures: * * `setAsync(dateTime: Date): void;` * @@ -17176,12 +17220,9 @@ declare namespace OfficeExtension { //////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// ////////////////////// Begin OfficeCore //////////////////////// //////////////////////////////////////////////////////////////// @@ -17209,6 +17250,15 @@ declare namespace OfficeCore { //////////////////////////////////////////////////////////////// declare namespace Excel { + /** + * + * Creates and opens a new workbook. Optionally, the workbook can be pre-populated with a base64-encoded .xlsx file. + * + * [Api set: ExcelApi 1.8] + * + * @param base64File Optional. The base64 encoded .xlsx file. The default value is null. + */ + function createWorkbook(base64?: string): Promise; interface ThreeArrowsSet { [index: number]: Icon; redDownArrow: Icon; @@ -17575,14 +17625,14 @@ declare namespace Excel { * * Gets the range that represents the changed area of a specific worksheet. * - * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * [Api set: ExcelApi 1.8] */ getRange(ctx: Excel.RequestContext): Excel.Range; /** * * Gets the range that represents the changed area of a specific worksheet. It might return null object. * - * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * [Api set: ExcelApi 1.8] */ getRangeOrNullObject(ctx: Excel.RequestContext): Excel.Range; } @@ -17639,14 +17689,14 @@ declare namespace Excel { * * Gets the range that represents the changed area of a table on a specific worksheet. * - * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * [Api set: ExcelApi 1.8] */ getRange(ctx: Excel.RequestContext): Excel.Range; /** * * Gets the range that represents the changed area of a table on a specific worksheet. It might return null object. * - * [Api set: ExcelApi BETA (PREVIEW ONLY)] + * [Api set: ExcelApi 1.8] */ getRangeOrNullObject(ctx: Excel.RequestContext): Excel.Range; } @@ -17824,6 +17874,158 @@ declare namespace Excel { */ worksheetId: string; } + /** + * + * Provides information about the chart that raised the Added event. + * + * [Api set: ExcelApi 1.8] + */ + interface ChartAddedEventArgs { + /** + * + * Gets the id of the chart that is added to the worksheet. + * + * [Api set: ExcelApi 1.8] + */ + chartId: string; + /** + * + * Gets the source of the event. See Excel.EventSource for details. + * + * [Api set: ExcelApi 1.8] + */ + source: Excel.EventSource | "Local" | "Remote"; + /** + * + * Gets the type of the event. See Excel.EventType for details. + * + * [Api set: ExcelApi 1.8] + */ + type: "ChartAdded"; + /** + * + * Gets the id of the worksheet in which the chart is added. + * + * [Api set: ExcelApi 1.8] + */ + worksheetId: string; + } + /** + * + * Provides information about the chart that raised the Activated event. + * + * [Api set: ExcelApi 1.8] + */ + interface ChartActivatedEventArgs { + /** + * + * Gets the id of the chart that is activated. + * + * [Api set: ExcelApi 1.8] + */ + chartId: string; + /** + * + * Gets the type of the event. See Excel.EventType for details. + * + * [Api set: ExcelApi 1.8] + */ + type: "ChartActivated"; + /** + * + * Gets the id of the worksheet in which the chart is activated. + * + * [Api set: ExcelApi 1.8] + */ + worksheetId: string; + } + /** + * + * Provides information about the chart that raised the Deactivated event. + * + * [Api set: ExcelApi 1.8] + */ + interface ChartDeactivatedEventArgs { + /** + * + * Gets the id of the chart that is deactivated. + * + * [Api set: ExcelApi 1.8] + */ + chartId: string; + /** + * + * Gets the type of the event. See Excel.EventType for details. + * + * [Api set: ExcelApi 1.8] + */ + type: "ChartDeactivated"; + /** + * + * Gets the id of the worksheet in which the chart is deactivated. + * + * [Api set: ExcelApi 1.8] + */ + worksheetId: string; + } + /** + * + * Provides information about the chart that raised the Deleted event. + * + * [Api set: ExcelApi 1.8] + */ + interface ChartDeletedEventArgs { + /** + * + * Gets the id of the chart that is deleted from the worksheet. + * + * [Api set: ExcelApi 1.8] + */ + chartId: string; + /** + * + * Gets the source of the event. See Excel.EventSource for details. + * + * [Api set: ExcelApi 1.8] + */ + source: Excel.EventSource | "Local" | "Remote"; + /** + * + * Gets the type of the event. See Excel.EventType for details. + * + * [Api set: ExcelApi 1.8] + */ + type: "ChartDeleted"; + /** + * + * Gets the id of the worksheet in which the chart is deleted. + * + * [Api set: ExcelApi 1.8] + */ + worksheetId: string; + } + /** + * + * Provides information about the worksheet that raised the Calculated event. + * + * [Api set: ExcelApi 1.8] + */ + interface WorksheetCalculatedEventArgs { + /** + * + * Gets the type of the event. See Excel.EventType for details. + * + * [Api set: ExcelApi 1.8] + */ + type: "WorksheetCalculated"; + /** + * + * Gets the id of the worksheet that is calculated. + * + * [Api set: ExcelApi 1.8] + */ + worksheetId: string; + } /** * * Represents the Excel Runtime class. @@ -17831,9 +18033,49 @@ declare namespace Excel { * [Api set: ExcelApi 1.5] */ class Runtime extends OfficeExtension.ClientObject { - toJSON(): { - [key: string]: string; - }; + /** + * + * Turn on/off JavaScript events in current taskpane or content add-in. + * + * [Api set: ExcelApi 1.8] + */ + enableEvents: boolean; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.Runtime): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.RuntimeUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.Runtime): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.Runtime` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.Runtime` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.Runtime` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.RuntimeLoadOptions): Excel.Runtime; + load(option?: string | string[]): Excel.Runtime; + load(option?: { + select?: string; + expand?: string; + }): Excel.Runtime; + toJSON(): Excel.Interfaces.RuntimeData; } /** * @@ -18016,6 +18258,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ readonly name: string; + /** + * + * True if the workbook is open in Read-only mode. Read-only. + * + * [Api set: ExcelApi 1.8] + */ + readonly readOnly: boolean; /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. * * @remarks @@ -18131,6 +18380,35 @@ declare namespace Excel { }): Excel.WorkbookProtection; toJSON(): Excel.Interfaces.WorkbookProtectionData; } + /** + * + * The WorkbookCreated object is the top level object created by Application.CreateWorkbook. A WorkbookCreated object is a special Workbook object. + * + * [Api set: ExcelApi 1.8] + */ + class WorkbookCreated extends OfficeExtension.ClientObject { + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.WorkbookCreated` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.WorkbookCreated` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.WorkbookCreated` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: string | string[]): Excel.WorkbookCreated; + load(option?: { + select?: string; + expand?: string; + }): Excel.WorkbookCreated; + toJSON(): Excel.Interfaces.WorkbookCreatedData; + } /** * * An Excel worksheet is a grid of cells. It can contain data, tables, charts, etc. @@ -18204,6 +18482,22 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ position: number; + /** + * + * Gets or sets the worksheet's gridlines flag. + This flag determines whether gridlines are visible to the user. + * + * [Api set: ExcelApi 1.8] + */ + showGridlines: boolean; + /** + * + * Gets or sets the worksheet's headings flag. + This flag determines whether headings are visible to the user. + * + * [Api set: ExcelApi 1.8] + */ + showHeadings: boolean; /** * * Returns the standard (default) height of all the rows in the worksheet, in points. Read-only. @@ -18407,6 +18701,15 @@ declare namespace Excel { * @eventproperty */ readonly onActivated: OfficeExtension.EventHandlers; + /** + * + * Occurs when the worksheet is calculated. + * + * [Api set: ExcelApi 1.8] + * + * @eventproperty + */ + readonly onCalculated: OfficeExtension.EventHandlers; /** * * Occurs when data changed on a specific worksheet. @@ -18542,6 +18845,15 @@ declare namespace Excel { * @eventproperty */ readonly onAdded: OfficeExtension.EventHandlers; + /** + * + * Occurs when any worksheet in the workbook is calculated. + * + * [Api set: ExcelApi 1.8] + * + * @eventproperty + */ + readonly onCalculated: OfficeExtension.EventHandlers; /** * * Occurs when any worksheet in the workbook is deactivated. @@ -18808,6 +19120,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.6] */ readonly conditionalFormats: Excel.ConditionalFormatCollection; + /** + * + * Returns a data validation object. + * + * [Api set: ExcelApi 1.8] + */ + readonly dataValidation: Excel.DataValidation; /** * * Returns a format object, encapsulating the range's font, fill, borders, alignment, and other properties. Read-only. @@ -20327,6 +20646,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ readonly id: string; + /** + * + * Returns a numeric id. + * + * [Api set: ExcelApi 1.8] + */ + readonly legacyId: string; /** * * Name of the table. @@ -20836,6 +21162,327 @@ declare namespace Excel { }): Excel.TableRow; toJSON(): Excel.Interfaces.TableRowData; } + /** + * + * Represents the data validation applied to the current range. + * + * [Api set: ExcelApi 1.8] + */ + class DataValidation extends OfficeExtension.ClientObject { + /** + * + * Error alert when user enters invalid data. + * + * [Api set: ExcelApi 1.8] + */ + errorAlert: Excel.DataValidationErrorAlert; + /** + * + * Ignore blanks: no data validation will be performed on blank cells, it defaults to true. + * + * [Api set: ExcelApi 1.8] + */ + ignoreBlanks: boolean; + /** + * + * Prompt when users select a cell. + * + * [Api set: ExcelApi 1.8] + */ + prompt: Excel.DataValidationPrompt; + /** + * + * Data Validation rule that contains different type of data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + rule: Excel.DataValidationRule; + /** + * + * Type of the data validation, see Excel.DataValidationType for details. + * + * [Api set: ExcelApi 1.8] + */ + readonly type: Excel.DataValidationType | "None" | "WholeNumber" | "Decimal" | "List" | "Date" | "Time" | "TextLength" | "Custom" | "Inconsistent" | "MixedCriteria"; + /** + * + * Represents if all cell values are valid according to the data validation rules. + Returns true if all cell values are valid, or false if all cell values are invalid. + Returns null if there are both valid and invalid cell values within the range. + * + * [Api set: ExcelApi 1.8] + */ + readonly valid: boolean; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.DataValidation): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.DataValidationUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.DataValidation): void; + /** + * + * Clears the data validation from the current range. + * + * [Api set: ExcelApi 1.8] + */ + clear(): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.DataValidation` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.DataValidation` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.DataValidation` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.DataValidationLoadOptions): Excel.DataValidation; + load(option?: string | string[]): Excel.DataValidation; + load(option?: { + select?: string; + expand?: string; + }): Excel.DataValidation; + toJSON(): Excel.Interfaces.DataValidationData; + } + /** + * + * Data validation rule contains different types of data validation. You can only use one of them at a time according the Excel.DataValidationType. + * + * [Api set: ExcelApi 1.8] + */ + interface DataValidationRule { + /** + * + * Custom data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + custom?: Excel.CustomDataValidation; + /** + * + * Date data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + date?: Excel.DateTimeDataValidation; + /** + * + * Decimal data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + decimal?: Excel.BasicDataValidation; + /** + * + * List data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + list?: Excel.ListDataValidation; + /** + * + * TextLength data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + textLength?: Excel.BasicDataValidation; + /** + * + * Time data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + time?: Excel.DateTimeDataValidation; + /** + * + * WholeNumber data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + wholeNumber?: Excel.BasicDataValidation; + } + /** + * + * Represents the Basic Type data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + interface BasicDataValidation { + /** + * + * Gets or sets the Formula1, i.e. minimum value or value depending of the operator. + When setting the value, it can be passed in as a number, a range object, or a string formula (where the string is either a stringified number, a cell reference like "=A1", or a formula like "=MIN(A1, B1)"). + When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc. + * + * [Api set: ExcelApi 1.8] + */ + formula1: string | number | Range; + /** + * + * Gets or sets the Formula2, i.e. maximum value or value depending of the operator. + When setting the value, it can be passed in as a number, a range object, or a string formula (where the string is either a stringified number, a cell reference like "=A1", or a formula like "=MIN(A1, B1)"). + When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc. + * + * [Api set: ExcelApi 1.8] + */ + formula2?: string | number | Range; + /** + * + * The operator to use for validating the data. + * + * [Api set: ExcelApi 1.8] + */ + operator: Excel.DataValidationOperator | "Between" | "NotBetween" | "EqualTo" | "NotEqualTo" | "GreaterThan" | "LessThan" | "GreaterThanOrEqualTo" | "LessThanOrEqualTo"; + } + /** + * + * Represents the Date data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + interface DateTimeDataValidation { + /** + * + * Gets or sets the Formula1, i.e. minimum value or value depending of the operator. + When setting the value, it can be passed in as a Date, a Range object, or a string formula (where the string is either a stringified date/time in ISO8601 format, a cell reference like "=A1", or a formula like "=MIN(A1, B1)"). + When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc. + * + * [Api set: ExcelApi 1.8] + */ + formula1: string | Date | Range; + /** + * + * Gets or sets the Formula2, i.e. maximum value or value depending of the operator. + When setting the value, it can be passed in as a Date, a Range object, or a string (where the string is either a stringified date/time in ISO8601 format, a cell reference like "=A1", or a formula like "=MIN(A1, B1)"). + When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc. + * + * [Api set: ExcelApi 1.8] + */ + formula2?: string | Date | Range; + /** + * + * The operator to use for validating the data. + * + * [Api set: ExcelApi 1.8] + */ + operator: Excel.DataValidationOperator | "Between" | "NotBetween" | "EqualTo" | "NotEqualTo" | "GreaterThan" | "LessThan" | "GreaterThanOrEqualTo" | "LessThanOrEqualTo"; + } + /** + * + * Represents the List data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + interface ListDataValidation { + /** + * + * Displays the list in cell drop down or not, it defaults to true. + * + * [Api set: ExcelApi 1.8] + */ + inCellDropDown: boolean; + /** + * + * Source of the list for data validation + When setting the value, it can be passed in as a Excel Range object, or a string that contains comma separated number, boolean or date. + * + * [Api set: ExcelApi 1.8] + */ + source: string | Range; + } + /** + * + * Represents the Custom data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + interface CustomDataValidation { + /** + * + * Custom data validation formula, it is to create special rules, such as preventing duplicates, or limiting the total in a range of cells. + * + * [Api set: ExcelApi 1.8] + */ + formula: string; + } + /** + * + * Represents the error alert properties for the data validation. + * + * [Api set: ExcelApi 1.8] + */ + interface DataValidationErrorAlert { + /** + * + * Represents error alert message. + * + * [Api set: ExcelApi 1.8] + */ + message: string; + /** + * + * It determines show error alert dialog or not when users enter invalid data, it defaults to true. + * + * [Api set: ExcelApi 1.8] + */ + showAlert: boolean; + /** + * + * Represents Data validation alert type, please see Excel.DataValidationAlertStyle for details. + * + * [Api set: ExcelApi 1.8] + */ + style: Excel.DataValidationAlertStyle | "Stop" | "Warning" | "Information"; + /** + * + * Represents error alert dialog title. + * + * [Api set: ExcelApi 1.8] + */ + title: string; + } + /** + * + * Represents the user prompt properties for the data validation. + * + * [Api set: ExcelApi 1.8] + */ + interface DataValidationPrompt { + /** + * + * Represents the message of the prompt. + * + * [Api set: ExcelApi 1.8] + */ + message: string; + /** + * + * It determines showing the prompt or not when user selects a cell with the data validation. + * + * [Api set: ExcelApi 1.8] + */ + showPrompt: boolean; + /** + * + * Represents the title for the prompt. + * + * [Api set: ExcelApi 1.8] + */ + title: string; + } /** * * A format object encapsulating the range's font, fill, borders, alignment, and other properties. @@ -21360,7 +22007,7 @@ declare namespace Excel { * @param sourceData The Range object corresponding to the source data. * @param seriesBy Optional. Specifies the way columns or rows are used as data series on the chart. See Excel.ChartSeriesBy for details. */ - add(type: "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel", sourceData: Range, seriesBy?: "Auto" | "Columns" | "Rows"): Excel.Chart; + add(type: "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel", sourceData: Range, seriesBy?: "Auto" | "Columns" | "Rows"): Excel.Chart; /** * * Returns the number of charts in the worksheet. @@ -21414,6 +22061,42 @@ declare namespace Excel { load(option?: Excel.Interfaces.ChartCollectionLoadOptions & Excel.Interfaces.CollectionLoadOptions): Excel.ChartCollection; load(option?: string | string[]): Excel.ChartCollection; load(option?: OfficeExtension.LoadOption): Excel.ChartCollection; + /** + * + * Occurs when a chart is activated. + * + * [Api set: ExcelApi 1.8] + * + * @eventproperty + */ + readonly onActivated: OfficeExtension.EventHandlers; + /** + * + * Occurs when a new chart is added to the worksheet. + * + * [Api set: ExcelApi 1.8] + * + * @eventproperty + */ + readonly onAdded: OfficeExtension.EventHandlers; + /** + * + * Occurs when a chart is deactivated. + * + * [Api set: ExcelApi 1.8] + * + * @eventproperty + */ + readonly onDeactivated: OfficeExtension.EventHandlers; + /** + * + * Occurs when a chart is deleted. + * + * [Api set: ExcelApi 1.8] + * + * @eventproperty + */ + readonly onDeleted: OfficeExtension.EventHandlers; toJSON(): Excel.Interfaces.ChartCollectionData; } /** @@ -21454,6 +22137,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ readonly legend: Excel.ChartLegend; + /** + * + * Represents the plotArea for the chart. + * + * [Api set: ExcelApi 1.8] + */ + readonly plotArea: Excel.ChartPlotArea; /** * * Represents either a single series or collection of series in the chart. Read-only. @@ -21475,13 +22165,28 @@ declare namespace Excel { * [Api set: ExcelApi 1.2] */ readonly worksheet: Excel.Worksheet; + /** + * + * Returns or sets a ChartCategoryLabelLevel enumeration constant referring to + the level of where the category labels are being sourced from. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + categoryLabelLevel: number; /** * * Represents the type of the chart. See Excel.ChartType for details. * * [Api set: ExcelApi 1.7] */ - chartType: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + /** + * + * Returns or sets the way that blank cells are plotted on a chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + displayBlanksAs: Excel.ChartDisplayBlanksAs | "NotPlotted" | "Zero" | "Interplotted"; /** * * Represents the height, in points, of the chart object. @@ -21510,6 +22215,28 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ name: string; + /** + * + * Returns or sets the way columns or rows are used as data series on the chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + plotBy: Excel.ChartPlotBy | "Rows" | "Columns"; + /** + * + * True if only visible cells are plotted. False if both visible and hidden cells are plotted. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + plotVisibleOnly: boolean; + /** + * + * Returns or sets a ChartSeriesNameLevel enumeration constant referring to + the level of where the series names are being sourced from. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + seriesNameLevel: number; /** * * Represents whether to display all field buttons on a PivotChart. @@ -21517,6 +22244,22 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showAllFieldButtons: boolean; + /** + * + * Represents whether to to show the data labels when the value is greater than the maximum value on the value axis. + If value axis became smaller than the size of data points, you can use this property to set whether to show the data labels. + This property applies to 2-D charts only. + * + * [Api set: ExcelApi 1.8] + */ + showDataLabelsOverMaximum: boolean; + /** + * + * Returns or sets the chart style for the chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + style: number; /** * * Represents the distance, in points, from the top edge of the object to the top of row 1 (on a worksheet) or the top of the chart area (on a chart). @@ -21627,6 +22370,24 @@ declare namespace Excel { select?: string; expand?: string; }): Excel.Chart; + /** + * + * Occurs when the chart is activated. + * + * [Api set: ExcelApi 1.8] + * + * @eventproperty + */ + readonly onActivated: OfficeExtension.EventHandlers; + /** + * + * Occurs when the chart is deactivated. + * + * [Api set: ExcelApi 1.8] + * + * @eventproperty + */ + readonly onDeactivated: OfficeExtension.EventHandlers; toJSON(): Excel.Interfaces.ChartData; } /** @@ -21763,6 +22524,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ class ChartSeries extends OfficeExtension.ClientObject { + /** + * + * Represents a collection of all dataLabels in the series. + * + * [Api set: ExcelApi 1.8] + */ + readonly dataLabels: Excel.ChartDataLabels; /** * * Represents the formatting of a chart series, which includes fill and line formatting. Read-only. @@ -21784,13 +22552,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ readonly trendlines: Excel.ChartTrendlineCollection; + /** + * + * Returns or sets the group for the specified series. Read/Write + * + * [Api set: ExcelApi 1.8] + */ + axisGroup: Excel.ChartAxisGroup | "Primary" | "Secondary"; /** * * Represents the chart type of a series. See Excel.ChartType for details. * * [Api set: ExcelApi 1.7] */ - chartType: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; /** * * Represents the doughnut hole size of a chart series. Only valid on doughnut and doughnutExploded charts. @@ -21799,6 +22574,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ doughnutHoleSize: number; + /** + * + * Returns or sets the explosion value for a pie-chart or doughnut-chart slice. Returns 0 (zero) if there's no explosion (the tip of the slice is in the center of the pie). Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + explosion: number; /** * * Boolean value representing if the series is filtered or not. Not applicable for surface charts. @@ -21806,6 +22588,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ filtered: boolean; + /** + * + * Returns or sets the angle of the first pie-chart or doughnut-chart slice, in degrees (clockwise from vertical). Applies only to pie, 3-D pie, and doughnut charts. Can be a value from 0 through 360. Read/Write + * + * [Api set: ExcelApi 1.8] + */ + firstSliceAngle: number; /** * * Represents the gap width of a chart series. Only valid on bar and column charts, as well as @@ -21821,6 +22610,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ hasDataLabels: boolean; + /** + * + * True if Microsoft Excel inverts the pattern in the item when it corresponds to a negative number. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + invertIfNegative: boolean; /** * * Represents markers background color of a chart series. @@ -21856,6 +22652,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ name: string; + /** + * + * Specifies how bars and columns are positioned. Can be a value between – 100 and 100. Applies only to 2-D bar and 2-D column charts. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + overlap: number; /** * * Represents the plot order of a chart series within the chart group. @@ -21863,6 +22666,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ plotOrder: number; + /** + * + * Returns or sets the size of the secondary section of either a pie of pie chart or a bar of pie chart, as a percentage of the size of the primary pie. Can be a value from 5 to 200. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + secondPlotSize: number; /** * * Boolean value representing if the series has a shadow or not. @@ -21877,6 +22687,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ smooth: boolean; + /** + * + * Returns or sets the way the two sections of either a pie of pie chart or a bar of pie chart are split. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + splitType: Excel.ChartSplitStype | "SplitByPosition" | "SplitByValue" | "SplitByPercentValue" | "SplitByCustomSplit"; + /** + * + * True if Microsoft Excel assigns a different color or pattern to each data marker. The chart must contain only one series. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + varyByCategories: boolean; /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. * * @remarks @@ -22336,6 +23160,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ readonly title: Excel.ChartAxisTitle; + /** + * + * Represents the alignment for the specified axis tick label. See Excel.ChartTextHorizontalAlignment for detail. + * + * [Api set: ExcelApi 1.8] + */ + alignment: Excel.ChartTickLabelAlignment | "Center" | "Left" | "Right"; /** * * Represents the group for the specified axis. See Excel.ChartAxisGroup for details. Read-only. @@ -22378,6 +23209,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ readonly height: number; + /** + * + * Represents whether value axis crosses the category axis between categories. + * + * [Api set: ExcelApi 1.8] + */ + isBetweenCategories: boolean; /** * * Represents the distance, in points, from the left edge of the axis to the left of chart area. Null if the axis is not visible. Read-only. @@ -22448,6 +23286,41 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ minorUnit: any; + /** + * + * Represents whether an axis is multilevel or not. + * + * [Api set: ExcelApi 1.8] + */ + multiLevel: boolean; + /** + * + * Represents the format code for the axis tick label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat: string; + /** + * + * Represents the distance between the levels of labels, and the distance between the first level and the axis line. The value should be an integer from 0 to 1000. + * + * [Api set: ExcelApi 1.8] + */ + offset: number; + /** + * + * Represents the specified axis position where the other axis crosses. See Excel.ChartAxisPosition for details. + * + * [Api set: ExcelApi 1.8] + */ + position: Excel.ChartAxisPosition | "Automatic" | "Maximum" | "Minimum" | "Custom"; + /** + * + * Represents the specified axis position where the other axis crosses at. Read Only. Set to this property should use SetPositionAt(double) method. + * + * [Api set: ExcelApi 1.8] + */ + readonly positionAt: number; /** * * Represents whether Microsoft Excel plots data points from last to first. @@ -22469,6 +23342,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showDisplayUnitLabel: boolean; + /** + * + * Represents the text orientation of the axis tick label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation: any; /** * * Represents the position of tick-mark labels on the specified axis. See Excel.ChartAxisTickLabelPosition for details. @@ -22550,6 +23430,15 @@ declare namespace Excel { * @param value Custom value of the display unit. */ setCustomDisplayUnit(value: number): void; + /** + * + * Set the specified axis position where the other axis crosses at. + * + * [Api set: ExcelApi 1.8] + * + * @param value Custom value of the crosses at + */ + setPositionAt(value: number): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. * @@ -22580,6 +23469,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ class ChartAxisFormat extends OfficeExtension.ClientObject { + /** + * + * Represents chart fill formatting. Read-only. + * + * [Api set: ExcelApi 1.8] + */ + readonly fill: Excel.ChartFill; /** * * Represents the font attributes (font name, font size, color, etc.) for a chart axis element. Read-only. @@ -22673,6 +23569,15 @@ declare namespace Excel { set(properties: Interfaces.ChartAxisTitleUpdateData, options?: OfficeExtension.UpdateOptions): void; /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ set(properties: Excel.ChartAxisTitle): void; + /** + * + * A string value that represents the formula of chart axis title using A1-style notation. + * + * [Api set: ExcelApi 1.8] + * + * @param formula a string that present the formula to set + */ + setFormula(formula: string): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. * @@ -22703,6 +23608,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ class ChartAxisTitleFormat extends OfficeExtension.ClientObject { + /** + * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + readonly border: Excel.ChartBorder; + /** + * + * Represents chart fill formatting. + * + * [Api set: ExcelApi 1.8] + */ + readonly fill: Excel.ChartFill; /** * * Represents the font attributes, such as font name, font size, color, etc. of chart axis title object. Read-only. @@ -22761,6 +23680,28 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ readonly format: Excel.ChartDataLabelFormat; + /** + * + * Represents whether data labels automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText: boolean; + /** + * + * Represents the horizontal alignment for chart data label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of data label is 0. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment: Excel.ChartTextHorizontalAlignment | "Center" | "Left" | "Right" | "Justify" | "Distributed"; + /** + * + * Represents the format code for data labels. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat: string; /** * * DataLabelPosition value that represents the position of the data label. See Excel.ChartDataLabelPosition for details. @@ -22817,6 +23758,21 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ showValue: boolean; + /** + * + * Represents the text orientation of data labels. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation: number; + /** + * + * Represents the vertical alignment of chart data label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of data label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment: Excel.ChartTextVerticalAlignment | "Center" | "Bottom" | "Top" | "Justify" | "Distributed"; /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. * * @remarks @@ -22861,6 +23817,56 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ class ChartDataLabel extends OfficeExtension.ClientObject { + /** + * + * Represents the format of chart data label. + * + * [Api set: ExcelApi 1.8] + */ + readonly format: Excel.ChartDataLabelFormat; + /** + * + * Boolean value representing if data label automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText: boolean; + /** + * + * String value that represents the formula of chart data label using A1-style notation. + * + * [Api set: ExcelApi 1.8] + */ + formula: string; + /** + * + * Returns the height, in points, of the chart data label. Read-only. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + readonly height: number; + /** + * + * Represents the horizontal alignment for chart data label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of data label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment: Excel.ChartTextHorizontalAlignment | "Center" | "Left" | "Right" | "Justify" | "Distributed"; + /** + * + * Represents the distance, in points, from the left edge of chart data label to the left edge of chart area. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + left: number; + /** + * + * String value that represents the format code for data label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat: string; /** * * DataLabelPosition value that represents the position of the data label. See Excel.ChartDataLabelPosition for details. @@ -22917,6 +23923,42 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showValue: boolean; + /** + * + * String representing the text of the data label on a chart. + * + * [Api set: ExcelApi 1.8] + */ + text: string; + /** + * + * Represents the text orientation of chart data label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation: number; + /** + * + * Represents the distance, in points, from the top edge of chart data label to the top of chart area. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + top: number; + /** + * + * Represents the vertical alignment of chart data label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of data label is 0. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment: Excel.ChartTextVerticalAlignment | "Center" | "Bottom" | "Top" | "Justify" | "Distributed"; + /** + * + * Returns the width, in points, of the chart data label. Read-only. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + readonly width: number; /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. * * @remarks @@ -22961,6 +24003,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ class ChartDataLabelFormat extends OfficeExtension.ClientObject { + /** + * + * Represents the border format, which includes color, linestyle, and weight. Read-only. + * + * [Api set: ExcelApi 1.8] + */ + readonly border: Excel.ChartBorder; /** * * Represents the fill format of the current chart data label. Read-only. @@ -23242,6 +24291,34 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ class ChartLegendEntry extends OfficeExtension.ClientObject { + /** + * + * Represents the height of the legendEntry on the chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + readonly height: number; + /** + * + * Represents the index of the LegendEntry in the Chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + readonly index: number; + /** + * + * Represents the left of a chart legendEntry. + * + * [Api set: ExcelApi 1.8] + */ + readonly left: number; + /** + * + * Represents the top of a chart legendEntry. + * + * [Api set: ExcelApi 1.8] + */ + readonly top: number; /** * * Represents the visible of a chart legend entry. @@ -23249,6 +24326,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ visible: boolean; + /** + * + * Represents the width of the legendEntry on the chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + readonly width: number; /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. * * @remarks @@ -23338,6 +24422,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ class ChartLegendFormat extends OfficeExtension.ClientObject { + /** + * + * Represents the border format, which includes color, linestyle, and weight. Read-only. + * + * [Api set: ExcelApi 1.8] + */ + readonly border: Excel.ChartBorder; /** * * Represents the fill format of an object, which includes background formating information. Read-only. @@ -23732,6 +24823,13 @@ declare namespace Excel { set(properties: Interfaces.ChartBorderUpdateData, options?: OfficeExtension.UpdateOptions): void; /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ set(properties: Excel.ChartBorder): void; + /** + * + * Clear the border format of a chart element. + * + * [Api set: ExcelApi 1.8] + */ + clear(): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. * @@ -23927,6 +25025,27 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ readonly format: Excel.ChartTrendlineFormat; + /** + * + * Represents the label of a chart trendline. + * + * [Api set: ExcelApi 1.8] + */ + readonly label: Excel.ChartTrendlineLabel; + /** + * + * Represents the number of periods that the trendline extends backward. + * + * [Api set: ExcelApi 1.8] + */ + backwardPeriod: number; + /** + * + * Represents the number of periods that the trendline extends forward. + * + * [Api set: ExcelApi 1.8] + */ + forwardPeriod: number; /** * * Represents the intercept value of the trendline. Can be set to a numeric value or an empty string (for automatic values). The returned value is always a number. @@ -23955,6 +25074,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ polynomialOrder: number; + /** + * + * True if the equation for the trendline is displayed on the chart. + * + * [Api set: ExcelApi 1.8] + */ + showEquation: boolean; + /** + * + * True if the R-squared for the trendline is displayed on the chart. + * + * [Api set: ExcelApi 1.8] + */ + showRSquared: boolean; /** * * Represents the type of a chart trendline. @@ -24120,6 +25253,373 @@ declare namespace Excel { }): Excel.ChartTrendlineFormat; toJSON(): Excel.Interfaces.ChartTrendlineFormatData; } + /** + * + * This object represents the attributes for a chart trendline lable object. + * + * [Api set: ExcelApi 1.8] + */ + class ChartTrendlineLabel extends OfficeExtension.ClientObject { + /** + * + * Represents the format of chart trendline label. + * + * [Api set: ExcelApi 1.8] + */ + readonly format: Excel.ChartTrendlineLabelFormat; + /** + * + * Boolean value representing if trendline label automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText: boolean; + /** + * + * String value that represents the formula of chart trendline label using A1-style notation. + * + * [Api set: ExcelApi 1.8] + */ + formula: string; + /** + * + * Returns the height, in points, of the chart trendline label. Read-only. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + readonly height: number; + /** + * + * Represents the horizontal alignment for chart trendline label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of trendline label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment: Excel.ChartTextHorizontalAlignment | "Center" | "Left" | "Right" | "Justify" | "Distributed"; + /** + * + * Represents the distance, in points, from the left edge of chart trendline label to the left edge of chart area. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + left: number; + /** + * + * String value that represents the format code for trendline label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat: string; + /** + * + * String representing the text of the trendline label on a chart. + * + * [Api set: ExcelApi 1.8] + */ + text: string; + /** + * + * Represents the text orientation of chart trendline label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation: number; + /** + * + * Represents the distance, in points, from the top edge of chart trendline label to the top of chart area. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + top: number; + /** + * + * Represents the vertical alignment of chart trendline label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of trendline label is 0. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment: Excel.ChartTextVerticalAlignment | "Center" | "Bottom" | "Top" | "Justify" | "Distributed"; + /** + * + * Returns the width, in points, of the chart trendline label. Read-only. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + readonly width: number; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.ChartTrendlineLabel): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.ChartTrendlineLabelUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.ChartTrendlineLabel): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.ChartTrendlineLabel` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.ChartTrendlineLabel` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.ChartTrendlineLabel` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.ChartTrendlineLabelLoadOptions): Excel.ChartTrendlineLabel; + load(option?: string | string[]): Excel.ChartTrendlineLabel; + load(option?: { + select?: string; + expand?: string; + }): Excel.ChartTrendlineLabel; + toJSON(): Excel.Interfaces.ChartTrendlineLabelData; + } + /** + * + * Encapsulates the format properties for the chart trendline label. + * + * [Api set: ExcelApi 1.8] + */ + class ChartTrendlineLabelFormat extends OfficeExtension.ClientObject { + /** + * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + readonly border: Excel.ChartBorder; + /** + * + * Represents the fill format of the current chart trendline label. + * + * [Api set: ExcelApi 1.8] + */ + readonly fill: Excel.ChartFill; + /** + * + * Represents the font attributes (font name, font size, color, etc.) for a chart trendline label. + * + * [Api set: ExcelApi 1.8] + */ + readonly font: Excel.ChartFont; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.ChartTrendlineLabelFormat): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.ChartTrendlineLabelFormatUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.ChartTrendlineLabelFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.ChartTrendlineLabelFormat` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.ChartTrendlineLabelFormat` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.ChartTrendlineLabelFormat` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.ChartTrendlineLabelFormatLoadOptions): Excel.ChartTrendlineLabelFormat; + load(option?: string | string[]): Excel.ChartTrendlineLabelFormat; + load(option?: { + select?: string; + expand?: string; + }): Excel.ChartTrendlineLabelFormat; + toJSON(): Excel.Interfaces.ChartTrendlineLabelFormatData; + } + /** + * + * This object represents the attributes for a chart plotArea object. + * + * [Api set: ExcelApi 1.8] + */ + class ChartPlotArea extends OfficeExtension.ClientObject { + /** + * + * Represents the formatting of a chart plotArea. + * + * [Api set: ExcelApi 1.8] + */ + readonly format: Excel.ChartPlotAreaFormat; + /** + * + * Represents the height value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + height: number; + /** + * + * Represents the insideHeight value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideHeight: number; + /** + * + * Represents the insideLeft value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideLeft: number; + /** + * + * Represents the insideTop value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideTop: number; + /** + * + * Represents the insideWidth value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideWidth: number; + /** + * + * Represents the left value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + left: number; + /** + * + * Represents the position of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + position: Excel.ChartPlotAreaPosition | "Automatic" | "Custom"; + /** + * + * Represents the top value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + top: number; + /** + * + * Represents the width value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + width: number; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.ChartPlotArea): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.ChartPlotAreaUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.ChartPlotArea): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.ChartPlotArea` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.ChartPlotArea` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.ChartPlotArea` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.ChartPlotAreaLoadOptions): Excel.ChartPlotArea; + load(option?: string | string[]): Excel.ChartPlotArea; + load(option?: { + select?: string; + expand?: string; + }): Excel.ChartPlotArea; + toJSON(): Excel.Interfaces.ChartPlotAreaData; + } + /** + * + * Represents the format properties for chart plotArea. + * + * [Api set: ExcelApi 1.8] + */ + class ChartPlotAreaFormat extends OfficeExtension.ClientObject { + /** + * + * Represents the border attributes of a chart plotArea. + * + * [Api set: ExcelApi 1.8] + */ + readonly border: Excel.ChartBorder; + /** + * + * Represents the fill format of an object, which includes background formating information. + * + * [Api set: ExcelApi 1.8] + */ + readonly fill: Excel.ChartFill; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.ChartPlotAreaFormat): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.ChartPlotAreaFormatUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.ChartPlotAreaFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.ChartPlotAreaFormat` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.ChartPlotAreaFormat` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.ChartPlotAreaFormat` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.ChartPlotAreaFormatLoadOptions): Excel.ChartPlotAreaFormat; + load(option?: string | string[]): Excel.ChartPlotAreaFormat; + load(option?: { + select?: string; + expand?: string; + }): Excel.ChartPlotAreaFormat; + toJSON(): Excel.Interfaces.ChartPlotAreaFormatData; + } /** * * Manages sorting operations on Range objects. @@ -24792,6 +26292,18 @@ declare namespace Excel { class PivotTableCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ readonly items: Excel.PivotTable[]; + /** + * + * Add a Pivottable based on the specified source data and insert it at the top left cell of the destination range. + * + * [Api set: ExcelApi 1.8] + * + * @param name The name of the new PivotTable. + * @param source The source data for the new PivotTable, this can either be a range (or string address including the worksheet name) or a table. + * @param destination The cell in the upper-left corner of the PivotTable report's destination range (the range on the worksheet where the resulting report will be placed). + * @returns Returns the newly inserted PivotTable. + */ + add(name: string, source: Range | string | Table, destination: Range | string): Excel.PivotTable; /** * * Gets the number of pivot tables in the collection. @@ -24854,6 +26366,48 @@ declare namespace Excel { * Our {@link https://docs.microsoft.com/office/dev/add-ins/excel/excel-add-ins-pivottables | how-to guide on working with PivotTables} has detailed walkthroughs, images, and code samples. */ class PivotTable extends OfficeExtension.ClientObject { + /** + * + * The Column Pivot Hierarchies of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + readonly columnHierarchies: Excel.RowColumnPivotHierarchyCollection; + /** + * + * The Data Pivot Hierarchies of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + readonly dataHierarchies: Excel.DataPivotHierarchyCollection; + /** + * + * The Filter Pivot Hierarchies of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + readonly filterHierarchies: Excel.FilterPivotHierarchyCollection; + /** + * + * The Pivot Hierarchies of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + readonly hierarchies: Excel.PivotHierarchyCollection; + /** + * + * The PivotLayout describing the layout and visual structure of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + readonly layout: Excel.PivotLayout; + /** + * + * The Row Pivot Hierarchies of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + readonly rowHierarchies: Excel.RowColumnPivotHierarchyCollection; /** * * The worksheet containing the current PivotTable. @@ -24889,6 +26443,13 @@ declare namespace Excel { set(properties: Interfaces.PivotTableUpdateData, options?: OfficeExtension.UpdateOptions): void; /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ set(properties: Excel.PivotTable): void; + /** + * + * Deletes the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + delete(): void; /** * * Refreshes the PivotTable. @@ -24919,6 +26480,1234 @@ declare namespace Excel { }): Excel.PivotTable; toJSON(): Excel.Interfaces.PivotTableData; } + /** + * + * Represents the visual layout of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + class PivotLayout extends OfficeExtension.ClientObject { + /** + * + * This property indicates the PivotLayoutType of all fields on the PivotTable. If fields have different states, this will be null. + * + * [Api set: ExcelApi 1.8] + */ + layoutType: Excel.PivotLayoutType | "Compact" | "Tabular" | "Outline"; + /** + * + * True if the PivotTable report shows grand totals for columns. + * + * [Api set: ExcelApi 1.8] + */ + showColumnGrandTotals: boolean; + /** + * + * True if the PivotTable report shows grand totals for rows. + * + * [Api set: ExcelApi 1.8] + */ + showRowGrandTotals: boolean; + /** + * + * This property indicates the SubtotalLocationType of all fields on the PivotTable. If fields have different states, this will be null. + * + * [Api set: ExcelApi 1.8] + */ + subtotalLocation: Excel.SubtotalLocationType | "AtTop" | "AtBottom" | "Off"; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.PivotLayout): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.PivotLayoutUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.PivotLayout): void; + /** + * + * Returns the range where the PivotTable's column labels reside. + * + * [Api set: ExcelApi 1.8] + */ + getColumnLabelRange(): Excel.Range; + /** + * + * Returns the range where the PivotTable's data values reside. + * + * [Api set: ExcelApi 1.8] + */ + getDataBodyRange(): Excel.Range; + /** + * + * Returns the range of the PivotTable's filter area. + * + * [Api set: ExcelApi 1.8] + */ + getFilterAxisRange(): Excel.Range; + /** + * + * Returns the range the PivotTable exists on, excluding the filter area. + * + * [Api set: ExcelApi 1.8] + */ + getRange(): Excel.Range; + /** + * + * Returns the range where the PivotTable's row labels reside. + * + * [Api set: ExcelApi 1.8] + */ + getRowLabelRange(): Excel.Range; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.PivotLayout` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.PivotLayout` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.PivotLayout` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.PivotLayoutLoadOptions): Excel.PivotLayout; + load(option?: string | string[]): Excel.PivotLayout; + load(option?: { + select?: string; + expand?: string; + }): Excel.PivotLayout; + toJSON(): Excel.Interfaces.PivotLayoutData; + } + /** + * + * Represents a collection of all the PivotTables that are part of the workbook or worksheet. + * + * [Api set: ExcelApi 1.8] + */ + class PivotHierarchyCollection extends OfficeExtension.ClientObject { + /** Gets the loaded child items in this collection. */ + readonly items: Excel.PivotHierarchy[]; + /** + * + * Gets the number of pivot hierarchies in the collection. + * + * [Api set: ExcelApi 1.8] + */ + getCount(): OfficeExtension.ClientResult; + /** + * + * Gets a PivotHierarchy by its name or id. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the PivotTable to be retrieved. + */ + getItem(name: string): Excel.PivotHierarchy; + /** + * + * Gets a PivotHierarchy by name. If the PivotHierarchy does not exist, will return a null object. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the PivotHierarchy to be retrieved. + */ + getItemOrNullObject(name: string): Excel.PivotHierarchy; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.PivotHierarchyCollection` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.PivotHierarchyCollection` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.PivotHierarchyCollection` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.PivotHierarchyCollectionLoadOptions & Excel.Interfaces.CollectionLoadOptions): Excel.PivotHierarchyCollection; + load(option?: string | string[]): Excel.PivotHierarchyCollection; + load(option?: OfficeExtension.LoadOption): Excel.PivotHierarchyCollection; + toJSON(): Excel.Interfaces.PivotHierarchyCollectionData; + } + /** + * + * Represents the Excel PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + class PivotHierarchy extends OfficeExtension.ClientObject { + /** + * + * Returns the PivotFields associated with the PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + readonly fields: Excel.PivotFieldCollection; + /** + * + * Id of the PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + readonly id: string; + /** + * + * Name of the PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name: string; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.PivotHierarchy): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.PivotHierarchyUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.PivotHierarchy): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.PivotHierarchy` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.PivotHierarchy` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.PivotHierarchy` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.PivotHierarchyLoadOptions): Excel.PivotHierarchy; + load(option?: string | string[]): Excel.PivotHierarchy; + load(option?: { + select?: string; + expand?: string; + }): Excel.PivotHierarchy; + toJSON(): Excel.Interfaces.PivotHierarchyData; + } + /** + * + * Represents a collection of RowColumnPivotHierarchy items associated with the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + class RowColumnPivotHierarchyCollection extends OfficeExtension.ClientObject { + /** Gets the loaded child items in this collection. */ + readonly items: Excel.RowColumnPivotHierarchy[]; + /** + * + * Adds the PivotHierarchy to the current axis. If the hierarchy is present elsewhere on the row, column, + or filter axis, it will be removed from that location. + * + * [Api set: ExcelApi 1.8] + */ + add(pivotHierarchy: Excel.PivotHierarchy): Excel.RowColumnPivotHierarchy; + /** + * + * Gets the number of pivot hierarchies in the collection. + * + * [Api set: ExcelApi 1.8] + */ + getCount(): OfficeExtension.ClientResult; + /** + * + * Gets a RowColumnPivotHierarchy by its name or id. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the PivotTable to be retrieved. + */ + getItem(name: string): Excel.RowColumnPivotHierarchy; + /** + * + * Gets a RowColumnPivotHierarchy by name. If the RowColumnPivotHierarchy does not exist, will return a null object. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the RowColumnPivotHierarchy to be retrieved. + */ + getItemOrNullObject(name: string): Excel.RowColumnPivotHierarchy; + /** + * + * Removes the PivotHierarchy from the current axis. + * + * [Api set: ExcelApi 1.8] + */ + remove(rowColumnPivotHierarchy: Excel.RowColumnPivotHierarchy): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.RowColumnPivotHierarchyCollection` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.RowColumnPivotHierarchyCollection` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.RowColumnPivotHierarchyCollection` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.RowColumnPivotHierarchyCollectionLoadOptions & Excel.Interfaces.CollectionLoadOptions): Excel.RowColumnPivotHierarchyCollection; + load(option?: string | string[]): Excel.RowColumnPivotHierarchyCollection; + load(option?: OfficeExtension.LoadOption): Excel.RowColumnPivotHierarchyCollection; + toJSON(): Excel.Interfaces.RowColumnPivotHierarchyCollectionData; + } + /** + * + * Represents the Excel RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + class RowColumnPivotHierarchy extends OfficeExtension.ClientObject { + /** + * + * Returns the PivotFields associated with the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + readonly fields: Excel.PivotFieldCollection; + /** + * + * Id of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + readonly id: string; + /** + * + * Name of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name: string; + /** + * + * Position of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position: number; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.RowColumnPivotHierarchy): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.RowColumnPivotHierarchyUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.RowColumnPivotHierarchy): void; + /** + * + * Reset the RowColumnPivotHierarchy back to its default values. + * + * [Api set: ExcelApi 1.8] + */ + setToDefault(): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.RowColumnPivotHierarchy` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.RowColumnPivotHierarchy` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.RowColumnPivotHierarchy` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.RowColumnPivotHierarchyLoadOptions): Excel.RowColumnPivotHierarchy; + load(option?: string | string[]): Excel.RowColumnPivotHierarchy; + load(option?: { + select?: string; + expand?: string; + }): Excel.RowColumnPivotHierarchy; + toJSON(): Excel.Interfaces.RowColumnPivotHierarchyData; + } + /** + * + * Represents a collection of FilterPivotHierarchy items associated with the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + class FilterPivotHierarchyCollection extends OfficeExtension.ClientObject { + /** Gets the loaded child items in this collection. */ + readonly items: Excel.FilterPivotHierarchy[]; + /** + * + * Adds the PivotHierarchy to the current axis. If the hierarchy is present elsewhere on the row, column, + or filter axis, it will be removed from that location. + * + * [Api set: ExcelApi 1.8] + */ + add(pivotHierarchy: Excel.PivotHierarchy): Excel.FilterPivotHierarchy; + /** + * + * Gets the number of pivot hierarchies in the collection. + * + * [Api set: ExcelApi 1.8] + */ + getCount(): OfficeExtension.ClientResult; + /** + * + * Gets a FilterPivotHierarchy by its name or id. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the PivotTable to be retrieved. + */ + getItem(name: string): Excel.FilterPivotHierarchy; + /** + * + * Gets a FilterPivotHierarchy by name. If the FilterPivotHierarchy does not exist, will return a null object. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the FilterPivotHierarchy to be retrieved. + */ + getItemOrNullObject(name: string): Excel.FilterPivotHierarchy; + /** + * + * Removes the PivotHierarchy from the current axis. + * + * [Api set: ExcelApi 1.8] + */ + remove(filterPivotHierarchy: Excel.FilterPivotHierarchy): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.FilterPivotHierarchyCollection` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.FilterPivotHierarchyCollection` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.FilterPivotHierarchyCollection` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.FilterPivotHierarchyCollectionLoadOptions & Excel.Interfaces.CollectionLoadOptions): Excel.FilterPivotHierarchyCollection; + load(option?: string | string[]): Excel.FilterPivotHierarchyCollection; + load(option?: OfficeExtension.LoadOption): Excel.FilterPivotHierarchyCollection; + toJSON(): Excel.Interfaces.FilterPivotHierarchyCollectionData; + } + /** + * + * Represents the Excel FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + class FilterPivotHierarchy extends OfficeExtension.ClientObject { + /** + * + * Returns the PivotFields associated with the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + readonly fields: Excel.PivotFieldCollection; + /** + * + * Determines whether to allow multiple filter items. + * + * [Api set: ExcelApi 1.8] + */ + enableMultipleFilterItems: boolean; + /** + * + * Id of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + readonly id: string; + /** + * + * Name of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name: string; + /** + * + * Position of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position: number; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.FilterPivotHierarchy): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.FilterPivotHierarchyUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.FilterPivotHierarchy): void; + /** + * + * Reset the FilterPivotHierarchy back to its default values. + * + * [Api set: ExcelApi 1.8] + */ + setToDefault(): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.FilterPivotHierarchy` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.FilterPivotHierarchy` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.FilterPivotHierarchy` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.FilterPivotHierarchyLoadOptions): Excel.FilterPivotHierarchy; + load(option?: string | string[]): Excel.FilterPivotHierarchy; + load(option?: { + select?: string; + expand?: string; + }): Excel.FilterPivotHierarchy; + toJSON(): Excel.Interfaces.FilterPivotHierarchyData; + } + /** + * + * Represents a collection of DataPivotHierarchy items associated with the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + class DataPivotHierarchyCollection extends OfficeExtension.ClientObject { + /** Gets the loaded child items in this collection. */ + readonly items: Excel.DataPivotHierarchy[]; + /** + * + * Adds the PivotHierarchy to the current axis. + * + * [Api set: ExcelApi 1.8] + */ + add(pivotHierarchy: Excel.PivotHierarchy): Excel.DataPivotHierarchy; + /** + * + * Gets the number of pivot hierarchies in the collection. + * + * [Api set: ExcelApi 1.8] + */ + getCount(): OfficeExtension.ClientResult; + /** + * + * Gets a DataPivotHierarchy by its name or id. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the PivotTable to be retrieved. + */ + getItem(name: string): Excel.DataPivotHierarchy; + /** + * + * Gets a DataPivotHierarchy by name. If the DataPivotHierarchy does not exist, will return a null object. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the DataPivotHierarchy to be retrieved. + */ + getItemOrNullObject(name: string): Excel.DataPivotHierarchy; + /** + * + * Removes the PivotHierarchy from the current axis. + * + * [Api set: ExcelApi 1.8] + */ + remove(DataPivotHierarchy: Excel.DataPivotHierarchy): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.DataPivotHierarchyCollection` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.DataPivotHierarchyCollection` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.DataPivotHierarchyCollection` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.DataPivotHierarchyCollectionLoadOptions & Excel.Interfaces.CollectionLoadOptions): Excel.DataPivotHierarchyCollection; + load(option?: string | string[]): Excel.DataPivotHierarchyCollection; + load(option?: OfficeExtension.LoadOption): Excel.DataPivotHierarchyCollection; + toJSON(): Excel.Interfaces.DataPivotHierarchyCollectionData; + } + /** + * + * Represents the Excel DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + class DataPivotHierarchy extends OfficeExtension.ClientObject { + /** + * + * Returns the PivotFields associated with the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + readonly field: Excel.PivotField; + /** + * + * Id of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + readonly id: string; + /** + * + * Name of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name: string; + /** + * + * Number format of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat: string; + /** + * + * Position of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position: number; + /** + * + * Determines whether the data should be sown as a specific summary calculation or not. + * + * [Api set: ExcelApi 1.8] + */ + showAs: Excel.ShowAsRule; + /** + * + * Determines whether to show all items of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + summarizeBy: Excel.AggregationFunction | "Unknown" | "Automatic" | "Sum" | "Count" | "Average" | "Max" | "Min" | "Product" | "CountNumbers" | "StandardDeviation" | "StandardDeviationP" | "Variance" | "VarianceP"; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.DataPivotHierarchy): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.DataPivotHierarchyUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.DataPivotHierarchy): void; + /** + * + * Reset the DataPivotHierarchy back to its default values. + * + * [Api set: ExcelApi 1.8] + */ + setToDefault(): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.DataPivotHierarchy` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.DataPivotHierarchy` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.DataPivotHierarchy` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.DataPivotHierarchyLoadOptions): Excel.DataPivotHierarchy; + load(option?: string | string[]): Excel.DataPivotHierarchy; + load(option?: { + select?: string; + expand?: string; + }): Excel.DataPivotHierarchy; + toJSON(): Excel.Interfaces.DataPivotHierarchyData; + } + /** + * [Api set: ExcelApi 1.8] + */ + interface ShowAsRule { + /** + * + * The Base PivotField to base the ShowAs calculation, if applicable based on the ShowAsCalculation type, else null. + * + * [Api set: ExcelApi 1.8] + */ + baseField?: Excel.PivotField; + /** + * + * The Base Item to base the ShowAs calculation on, if applicable based on the ShowAsCalculation type, else null. + * + * [Api set: ExcelApi 1.8] + */ + baseItem?: Excel.PivotItem; + /** + * + * The ShowAs Calculation to use for the Data PivotField. See Excel.ShowAsCalculation for Details. + * + * [Api set: ExcelApi 1.8] + */ + calculation: Excel.ShowAsCalculation | "Unknown" | "None" | "PercentOfGrandTotal" | "PercentOfRowTotal" | "PercentOfColumnTotal" | "PercentOfParentRowTotal" | "PercentOfParentColumnTotal" | "PercentOfParentTotal" | "PercentOf" | "RunningTotal" | "PercentRunningTotal" | "DifferenceFrom" | "PercentDifferenceFrom" | "RankAscending" | "RankDecending" | "Index"; + } + /** + * + * Represents a collection of all the PivotTables that are part of the workbook or worksheet. + * + * [Api set: ExcelApi 1.8] + */ + class PivotFieldCollection extends OfficeExtension.ClientObject { + /** Gets the loaded child items in this collection. */ + readonly items: Excel.PivotField[]; + /** + * + * Gets the number of pivot hierarchies in the collection. + * + * [Api set: ExcelApi 1.8] + */ + getCount(): OfficeExtension.ClientResult; + /** + * + * Gets a PivotHierarchy by its name or id. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the PivotTable to be retrieved. + */ + getItem(name: string): Excel.PivotField; + /** + * + * Gets a PivotHierarchy by name. If the PivotHierarchy does not exist, will return a null object. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the PivotHierarchy to be retrieved. + */ + getItemOrNullObject(name: string): Excel.PivotField; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.PivotFieldCollection` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.PivotFieldCollection` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.PivotFieldCollection` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.PivotFieldCollectionLoadOptions & Excel.Interfaces.CollectionLoadOptions): Excel.PivotFieldCollection; + load(option?: string | string[]): Excel.PivotFieldCollection; + load(option?: OfficeExtension.LoadOption): Excel.PivotFieldCollection; + toJSON(): Excel.Interfaces.PivotFieldCollectionData; + } + /** + * + * Represents the Excel PivotField. + * + * [Api set: ExcelApi 1.8] + */ + class PivotField extends OfficeExtension.ClientObject { + /** + * + * Returns the PivotFields associated with the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + readonly items: Excel.PivotItemCollection; + /** + * + * Id of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + readonly id: string; + /** + * + * Name of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + name: string; + /** + * + * Determines whether to show all items of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + showAllItems: boolean; + /** + * + * Subtotals of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + subtotals: Excel.Subtotals; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.PivotField): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.PivotFieldUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.PivotField): void; + /** + * + * Sorts the PivotField. If a DataPivotHierarchy is specified, then sort will be applied based on it, if not sort will be based on the PivotField itself. + * + * [Api set: ExcelApi 1.8] + * + * @param sortby Represents whether the sorting is done in an ascending or descending order. + */ + sortByLabels(sortby: Excel.SortBy): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.PivotField` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.PivotField` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.PivotField` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.PivotFieldLoadOptions): Excel.PivotField; + load(option?: string | string[]): Excel.PivotField; + load(option?: { + select?: string; + expand?: string; + }): Excel.PivotField; + toJSON(): Excel.Interfaces.PivotFieldData; + } + /** + * + * Represents a collection of all the Pivot Items related to their parent PivotField. + * + * [Api set: ExcelApi 1.8] + */ + class PivotItemCollection extends OfficeExtension.ClientObject { + /** Gets the loaded child items in this collection. */ + readonly items: Excel.PivotItem[]; + /** + * + * Gets the number of pivot hierarchies in the collection. + * + * [Api set: ExcelApi 1.8] + */ + getCount(): OfficeExtension.ClientResult; + /** + * + * Gets a PivotHierarchy by its name or id. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the PivotTable to be retrieved. + */ + getItem(name: string): Excel.PivotItem; + /** + * + * Gets a PivotHierarchy by name. If the PivotHierarchy does not exist, will return a null object. + * + * [Api set: ExcelApi 1.8] + * + * @param name Name of the PivotHierarchy to be retrieved. + */ + getItemOrNullObject(name: string): Excel.PivotItem; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.PivotItemCollection` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.PivotItemCollection` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.PivotItemCollection` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.PivotItemCollectionLoadOptions & Excel.Interfaces.CollectionLoadOptions): Excel.PivotItemCollection; + load(option?: string | string[]): Excel.PivotItemCollection; + load(option?: OfficeExtension.LoadOption): Excel.PivotItemCollection; + toJSON(): Excel.Interfaces.PivotItemCollectionData; + } + /** + * + * Represents the Excel PivotItem. + * + * [Api set: ExcelApi 1.8] + */ + class PivotItem extends OfficeExtension.ClientObject { + /** + * + * Id of the PivotItem. + * + * [Api set: ExcelApi 1.8] + */ + readonly id: string; + /** + * + * Determines whether the item is expanded to show child items or if it's collapsed and child items are hidden. + * + * [Api set: ExcelApi 1.8] + */ + isExpanded: boolean; + /** + * + * Name of the PivotItem. + * + * [Api set: ExcelApi 1.8] + */ + name: string; + /** + * + * Determines whether the PivotItem is visible or not. + * + * [Api set: ExcelApi 1.8] + */ + visible: boolean; + /** Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type. + * + * @remarks + * + * This method has the following additional signature: + * + * `set(properties: Excel.PivotItem): void` + * + * @param properties A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called. + * @param options Provides an option to suppress errors if the properties object tries to set any read-only properties. + */ + set(properties: Interfaces.PivotItemUpdateData, options?: OfficeExtension.UpdateOptions): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Excel.PivotItem): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + * + * @remarks + * + * In addition to this signature, this method has the following signatures: + * + * `load(option?: string | string[]): Excel.PivotItem` - Where option is a comma-delimited string or an array of strings that specify the properties to load. + * + * `load(option?: { select?: string; expand?: string; }): Excel.PivotItem` - Where option.select is a comma-delimited string that specifies the properties to load, and options.expand is a comma-delimited string that specifies the navigation properties to load. + * + * `load(option?: { select?: string; expand?: string; top?: number; skip?: number }): Excel.PivotItem` - Only available on collection types. It is similar to the preceding signature. Option.top specifies the maximum number of collection items that can be included in the result. Option.skip specifies the number of items that are to be skipped and not included in the result. If option.top is specified, the result set will start after skipping the specified number of items. + * + * @param options Provides options for which properties of the object to load. + */ + load(option?: Excel.Interfaces.PivotItemLoadOptions): Excel.PivotItem; + load(option?: string | string[]): Excel.PivotItem; + load(option?: { + select?: string; + expand?: string; + }): Excel.PivotItem; + toJSON(): Excel.Interfaces.PivotItemData; + } + /** + * + * Subtotals for the Pivot Field. + * + * [Api set: ExcelApi 1.8] + */ + interface Subtotals { + /** + * + * If Automatic is set to true, then all other values will be ignored when setting the Subtotals. + * + * [Api set: ExcelApi 1.8] + */ + automatic?: boolean; + average?: boolean; + count?: boolean; + countNumbers?: boolean; + max?: boolean; + min?: boolean; + product?: boolean; + standardDeviation?: boolean; + standardDeviationP?: boolean; + sum?: boolean; + variance?: boolean; + varianceP?: boolean; + } + /** + * + * Represents the sort direction. + * + * [Api set: ExcelApi 1.8] + */ + enum SortBy { + /** + * + * Ascending sort. Smallest to largest or A to Z. + * + */ + ascending = "Ascending", + /** + * + * Descending sort. Largest to smallest or Z to A. + * + */ + descending = "Descending", + } + /** + * + * Aggregation Function for the Data Pivot Field. + * + * [Api set: ExcelApi 1.8] + */ + enum AggregationFunction { + /** + * + * Aggregation function is unknown or unsupported. + * + */ + unknown = "Unknown", + /** + * + * Excel will automatically select the aggregation based on the data items. + * + */ + automatic = "Automatic", + /** + * + * Aggregate using the sum of the data, equivalent to the SUM function. + * + */ + sum = "Sum", + /** + * + * Aggregate using the count of items in the data, equivalent to the COUNTA function. + * + */ + count = "Count", + /** + * + * Aggregate using the average of the data, equivalent to the AVERAGE function. + * + */ + average = "Average", + /** + * + * Aggregate using the maximum value of the data, equivalent to the MAX function. + * + */ + max = "Max", + /** + * + * Aggregate using the minimum value of the data, equivalent to the MIN function. + * + */ + min = "Min", + /** + * + * Aggregate using the product of the data, equivalent to the PRODUCT function. + * + */ + product = "Product", + /** + * + * Aggregate using the count of numbers in the data, equivalent to the COUNTA function. + * + */ + countNumbers = "CountNumbers", + /** + * + * Aggregate using the standard deviation of the data, equivalent to the STDEV function. + * + */ + standardDeviation = "StandardDeviation", + /** + * + * Aggregate using the standard deviation of the data, equivalent to the STDEVP function. + * + */ + standardDeviationP = "StandardDeviationP", + /** + * + * Aggregate using the variance of the data, equivalent to the VAR function. + * + */ + variance = "Variance", + /** + * + * Aggregate using the variance of the data, equivalent to the VARP function. + * + */ + varianceP = "VarianceP", + } + /** + * + * The ShowAs Calculation function for the Data Pivot Field. + * + * [Api set: ExcelApi 1.8] + */ + enum ShowAsCalculation { + /** + * + * Calculation is unknown or unsupported. + * + */ + unknown = "Unknown", + /** + * + * No calculation is applied. + * + */ + none = "None", + /** + * + * Percent of the grand total. + * + */ + percentOfGrandTotal = "PercentOfGrandTotal", + /** + * + * Percent of the row total. + * + */ + percentOfRowTotal = "PercentOfRowTotal", + /** + * + * Percent of the column total. + * + */ + percentOfColumnTotal = "PercentOfColumnTotal", + /** + * + * Percent of the row total for the specified Base Field. + * + */ + percentOfParentRowTotal = "PercentOfParentRowTotal", + /** + * + * Percent of the column total for the specified Base Field. + * + */ + percentOfParentColumnTotal = "PercentOfParentColumnTotal", + /** + * + * Percent of the grand total for the specified Base Field. + * + */ + percentOfParentTotal = "PercentOfParentTotal", + /** + * + * Percent of the specified Base Field and Base Item. + * + */ + percentOf = "PercentOf", + /** + * + * Running Total of the specified Base Field. + * + */ + runningTotal = "RunningTotal", + /** + * + * Percent Running Total of the specified Base Field. + * + */ + percentRunningTotal = "PercentRunningTotal", + /** + * + * Difference from the specified Base Field and Base Item. + * + */ + differenceFrom = "DifferenceFrom", + /** + * + * Difference from the specified Base Field and Base Item. + * + */ + percentDifferenceFrom = "PercentDifferenceFrom", + /** + * + * Ascending Rank of the specified Base Field. + * + */ + rankAscending = "RankAscending", + /** + * + * Descending Rank of the specified Base Field. + * + */ + rankDecending = "RankDecending", + /** + * + * Calculates the values as follows: + ((value in cell) x (Grand Total of Grand Totals)) / ((Grand Row Total) x (Grand Column Total)) + * + */ + index = "Index", + } /** * * Represents workbook properties. @@ -26815,6 +29604,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ readonly font: Excel.RangeFont; + /** + * + * Indicates if text is automatically indented when the text alignment in a cell is set to equal distribution. + * + * [Api set: ExcelApi 1.8] + */ + autoIndent: boolean; /** * * Indicates if the style is a built-in style. @@ -26927,6 +29723,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ shrinkToFit: boolean; + /** + * + * The text orientation for the style. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation: number; /** * * Represents the vertical alignment for the style. See Excel.VerticalAlignment for details. @@ -27299,6 +30102,13 @@ declare namespace Excel { plus = "Plus", picture = "Picture", } + /** + * [Api set: ExcelApi 1.8] + */ + enum ChartPlotAreaPosition { + automatic = "Automatic", + custom = "Custom", + } /** * * Specifies whether the series are by rows or by columns. On Desktop, the "auto" option will inspect the source data shape to automatically guess whether the data is by rows or columns; on Excel Online, "auto" will simply default to "columns". @@ -27341,6 +30151,14 @@ declare namespace Excel { justify = "Justify", distributed = "Distributed", } + /** + * [Api set: ExcelApi 1.8] + */ + enum ChartTickLabelAlignment { + center = "Center", + left = "Left", + right = "Right", + } /** * [Api set: ExcelApi 1.1] */ @@ -27420,8 +30238,13 @@ declare namespace Excel { doughnut = "Doughnut", radar = "Radar", histogram = "Histogram", + boxwhisker = "Boxwhisker", pareto = "Pareto", regionMap = "RegionMap", + treemap = "Treemap", + waterfall = "Waterfall", + sunburst = "Sunburst", + funnel = "Funnel", } /** * [Api set: ExcelApi 1.1] @@ -27430,6 +30253,52 @@ declare namespace Excel { none = "None", single = "Single", } + /** + * [Api set: ExcelApi 1.8] + */ + enum ChartDisplayBlanksAs { + notPlotted = "NotPlotted", + zero = "Zero", + interplotted = "Interplotted", + } + /** + * [Api set: ExcelApi 1.8] + */ + enum ChartPlotBy { + rows = "Rows", + columns = "Columns", + } + /** + * [Api set: ExcelApi 1.8] + */ + enum ChartSplitStype { + splitByPosition = "SplitByPosition", + splitByValue = "SplitByValue", + splitByPercentValue = "SplitByPercentValue", + splitByCustomSplit = "SplitByCustomSplit", + } + /** + * [Api set: ExcelApi 1.8] + */ + enum ChartColorScheme { + colorfulPalette1 = "ColorfulPalette1", + colorfulPalette2 = "ColorfulPalette2", + colorfulPalette3 = "ColorfulPalette3", + colorfulPalette4 = "ColorfulPalette4", + monochromaticPalette1 = "MonochromaticPalette1", + monochromaticPalette2 = "MonochromaticPalette2", + monochromaticPalette3 = "MonochromaticPalette3", + monochromaticPalette4 = "MonochromaticPalette4", + monochromaticPalette5 = "MonochromaticPalette5", + monochromaticPalette6 = "MonochromaticPalette6", + monochromaticPalette7 = "MonochromaticPalette7", + monochromaticPalette8 = "MonochromaticPalette8", + monochromaticPalette9 = "MonochromaticPalette9", + monochromaticPalette10 = "MonochromaticPalette10", + monochromaticPalette11 = "MonochromaticPalette11", + monochromaticPalette12 = "MonochromaticPalette12", + monochromaticPalette13 = "MonochromaticPalette13", + } /** * [Api set: ExcelApi 1.7] */ @@ -27751,6 +30620,101 @@ declare namespace Excel { single = "Single", double = "Double", } + /** + * + * Represents Data validation type enum. + * + * [Api set: ExcelApi 1.8] + */ + enum DataValidationType { + /** + * + * None means allow any value and so there is no data validation in the range. + * + */ + none = "None", + /** + * + * Whole number data validation type + * + */ + wholeNumber = "WholeNumber", + /** + * + * Decimal data validation type + * + */ + decimal = "Decimal", + /** + * + * List data validation type + * + */ + list = "List", + /** + * + * Date data validation type + * + */ + date = "Date", + /** + * + * Time data validation type + * + */ + time = "Time", + /** + * + * Text length data validation type + * + */ + textLength = "TextLength", + /** + * + * Custom data validation type + * + */ + custom = "Custom", + /** + * + * Inconsistent means that the range has inconsistent data validation (there are different rules on different cells) + * + */ + inconsistent = "Inconsistent", + /** + * + * MixedCriteria means that the range has data validation present on some but not all cells + * + */ + mixedCriteria = "MixedCriteria", + } + /** + * + * Represents Data validation operator enum. + * + * [Api set: ExcelApi 1.8] + */ + enum DataValidationOperator { + between = "Between", + notBetween = "NotBetween", + equalTo = "EqualTo", + notEqualTo = "NotEqualTo", + greaterThan = "GreaterThan", + lessThan = "LessThan", + greaterThanOrEqualTo = "GreaterThanOrEqualTo", + lessThanOrEqualTo = "LessThanOrEqualTo", + } + /** + * + * Represents Data validation error alert style. The default is "Stop". + * + * [Api set: ExcelApi 1.8] + */ + enum DataValidationAlertStyle { + stop = "Stop", + warning = "Warning", + information = "Information", + } /** * [Api set: ExcelApi 1.1] */ @@ -27975,7 +30939,6 @@ declare namespace Excel { justify = "Justify", distributed = "Distributed", } - /** * [Api set: ExcelApi 1.7] */ @@ -28162,6 +31125,18 @@ declare namespace Excel { * */ tableDeleted = "TableDeleted", + /** + * + * TableFiltered represents the type of event registered on table or TableCollection, and occurs when data of table is filtered. + * + */ + tableFiltered = "TableFiltered", + /** + * + * WorksheetFiltered represents the type of event registered on worksheet or WorksheetCollection, and occurs when data of autofilter in the worksheet is filtered. + * + */ + worksheetFiltered = "WorksheetFiltered", /** * * ShapeActivated represents the type of event that is registered on Shape, and occurs when shape activates. @@ -28174,6 +31149,12 @@ declare namespace Excel { * */ shapeDeactivated = "ShapeDeactivated", + /** + * + * VisualChange represents the type of event registered on Visual, and occurs when there is a visual change. + * + */ + visualChange = "VisualChange", } /** * [Api set: ExcelApi 1.7] @@ -28196,6 +31177,52 @@ declare namespace Excel { manager = "Manager", company = "Company", } + /** + * [Api set: ExcelApi 1.8] + */ + enum SubtotalLocationType { + /** + * + * Subtotals are at the top. + * + */ + atTop = "AtTop", + /** + * + * Subtotals are at the bottom. + * + */ + atBottom = "AtBottom", + /** + * + * Subtotals are off. + * + */ + off = "Off", + } + /** + * [Api set: ExcelApi 1.8] + */ + enum PivotLayoutType { + /** + * + * A horizontally compressed form with labels from the next field in the same column. + * + */ + compact = "Compact", + /** + * + * Inner fields' items are always on a new line relative to the outer fields' items. + * + */ + tabular = "Tabular", + /** + * + * Inner fields' items are on same row as outer fields' items and subtotals are always on the bottom. + * + */ + outline = "Outline", + } /** * [Api set: ExcelApi 1.7] */ @@ -32140,6 +35167,16 @@ declare namespace Excel { */ $skip?: number; } + /** An interface for updating data on the Runtime object, for use in "runtime.set({ ... })". */ + interface RuntimeUpdateData { + /** + * + * Turn on/off JavaScript events in current taskpane or content add-in. + * + * [Api set: ExcelApi 1.8] + */ + enableEvents?: boolean; + } /** An interface for updating data on the Application object, for use in "application.set({ ... })". */ interface ApplicationUpdateData { /** @@ -32176,6 +35213,22 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ position?: number; + /** + * + * Gets or sets the worksheet's gridlines flag. + This flag determines whether gridlines are visible to the user. + * + * [Api set: ExcelApi 1.8] + */ + showGridlines?: boolean; + /** + * + * Gets or sets the worksheet's headings flag. + This flag determines whether headings are visible to the user. + * + * [Api set: ExcelApi 1.8] + */ + showHeadings?: boolean; /** * * Returns or sets the standard (default) width of all the columns in the worksheet. @@ -32207,6 +35260,13 @@ declare namespace Excel { } /** An interface for updating data on the Range object, for use in "range.set({ ... })". */ interface RangeUpdateData { + /** + * + * Returns a data validation object. + * + * [Api set: ExcelApi 1.8] + */ + dataValidation?: Excel.Interfaces.DataValidationUpdateData; /** * * Returns a format object, encapsulating the range's font, fill, borders, alignment, and other properties. @@ -32486,6 +35546,37 @@ declare namespace Excel { */ values?: any[][]; } + /** An interface for updating data on the DataValidation object, for use in "dataValidation.set({ ... })". */ + interface DataValidationUpdateData { + /** + * + * Error alert when user enters invalid data. + * + * [Api set: ExcelApi 1.8] + */ + errorAlert?: Excel.DataValidationErrorAlert; + /** + * + * Ignore blanks: no data validation will be performed on blank cells, it defaults to true. + * + * [Api set: ExcelApi 1.8] + */ + ignoreBlanks?: boolean; + /** + * + * Prompt when users select a cell. + * + * [Api set: ExcelApi 1.8] + */ + prompt?: Excel.DataValidationPrompt; + /** + * + * Data Validation rule that contains different type of data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + rule?: Excel.DataValidationRule; + } /** An interface for updating data on the RangeFormat object, for use in "rangeFormat.set({ ... })". */ interface RangeFormatUpdateData { /** @@ -32710,18 +35801,40 @@ declare namespace Excel { legend?: Excel.Interfaces.ChartLegendUpdateData; /** * + * Represents the plotArea for the chart. + * + * [Api set: ExcelApi 1.8] + */ + plotArea?: Excel.Interfaces.ChartPlotAreaUpdateData; + /** + * * Represents the title of the specified chart, including the text, visibility, position, and formating of the title. * * [Api set: ExcelApi 1.1] */ title?: Excel.Interfaces.ChartTitleUpdateData; + /** + * + * Returns or sets a ChartCategoryLabelLevel enumeration constant referring to + the level of where the category labels are being sourced from. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + categoryLabelLevel?: number; /** * * Represents the type of the chart. See Excel.ChartType for details. * * [Api set: ExcelApi 1.7] */ - chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + /** + * + * Returns or sets the way that blank cells are plotted on a chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + displayBlanksAs?: Excel.ChartDisplayBlanksAs | "NotPlotted" | "Zero" | "Interplotted"; /** * * Represents the height, in points, of the chart object. @@ -32743,6 +35856,28 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ name?: string; + /** + * + * Returns or sets the way columns or rows are used as data series on the chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + plotBy?: Excel.ChartPlotBy | "Rows" | "Columns"; + /** + * + * True if only visible cells are plotted. False if both visible and hidden cells are plotted. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + plotVisibleOnly?: boolean; + /** + * + * Returns or sets a ChartSeriesNameLevel enumeration constant referring to + the level of where the series names are being sourced from. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + seriesNameLevel?: number; /** * * Represents whether to display all field buttons on a PivotChart. @@ -32750,6 +35885,22 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showAllFieldButtons?: boolean; + /** + * + * Represents whether to to show the data labels when the value is greater than the maximum value on the value axis. + If value axis became smaller than the size of data points, you can use this property to set whether to show the data labels. + This property applies to 2-D charts only. + * + * [Api set: ExcelApi 1.8] + */ + showDataLabelsOverMaximum?: boolean; + /** + * + * Returns or sets the chart style for the chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + style?: number; /** * * Represents the distance, in points, from the top edge of the object to the top of row 1 (on a worksheet) or the top of the chart area (on a chart). @@ -32788,6 +35939,13 @@ declare namespace Excel { } /** An interface for updating data on the ChartSeries object, for use in "chartSeries.set({ ... })". */ interface ChartSeriesUpdateData { + /** + * + * Represents a collection of all dataLabels in the series. + * + * [Api set: ExcelApi 1.8] + */ + dataLabels?: Excel.Interfaces.ChartDataLabelsUpdateData; /** * * Represents the formatting of a chart series, which includes fill and line formatting. @@ -32795,13 +35953,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ format?: Excel.Interfaces.ChartSeriesFormatUpdateData; + /** + * + * Returns or sets the group for the specified series. Read/Write + * + * [Api set: ExcelApi 1.8] + */ + axisGroup?: Excel.ChartAxisGroup | "Primary" | "Secondary"; /** * * Represents the chart type of a series. See Excel.ChartType for details. * * [Api set: ExcelApi 1.7] */ - chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; /** * * Represents the doughnut hole size of a chart series. Only valid on doughnut and doughnutExploded charts. @@ -32810,6 +35975,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ doughnutHoleSize?: number; + /** + * + * Returns or sets the explosion value for a pie-chart or doughnut-chart slice. Returns 0 (zero) if there's no explosion (the tip of the slice is in the center of the pie). Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + explosion?: number; /** * * Boolean value representing if the series is filtered or not. Not applicable for surface charts. @@ -32817,6 +35989,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ filtered?: boolean; + /** + * + * Returns or sets the angle of the first pie-chart or doughnut-chart slice, in degrees (clockwise from vertical). Applies only to pie, 3-D pie, and doughnut charts. Can be a value from 0 through 360. Read/Write + * + * [Api set: ExcelApi 1.8] + */ + firstSliceAngle?: number; /** * * Represents the gap width of a chart series. Only valid on bar and column charts, as well as @@ -32832,6 +36011,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ hasDataLabels?: boolean; + /** + * + * True if Microsoft Excel inverts the pattern in the item when it corresponds to a negative number. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + invertIfNegative?: boolean; /** * * Represents markers background color of a chart series. @@ -32867,6 +36053,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ name?: string; + /** + * + * Specifies how bars and columns are positioned. Can be a value between – 100 and 100. Applies only to 2-D bar and 2-D column charts. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + overlap?: number; /** * * Represents the plot order of a chart series within the chart group. @@ -32874,6 +36067,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ plotOrder?: number; + /** + * + * Returns or sets the size of the secondary section of either a pie of pie chart or a bar of pie chart, as a percentage of the size of the primary pie. Can be a value from 5 to 200. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + secondPlotSize?: number; /** * * Boolean value representing if the series has a shadow or not. @@ -32888,6 +36088,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ smooth?: boolean; + /** + * + * Returns or sets the way the two sections of either a pie of pie chart or a bar of pie chart are split. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + splitType?: Excel.ChartSplitStype | "SplitByPosition" | "SplitByValue" | "SplitByPercentValue" | "SplitByCustomSplit"; + /** + * + * True if Microsoft Excel assigns a different color or pattern to each data marker. The chart must contain only one series. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + varyByCategories?: boolean; } /** An interface for updating data on the ChartSeriesFormat object, for use in "chartSeriesFormat.set({ ... })". */ interface ChartSeriesFormatUpdateData { @@ -33019,6 +36233,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ title?: Excel.Interfaces.ChartAxisTitleUpdateData; + /** + * + * Represents the alignment for the specified axis tick label. See Excel.ChartTextHorizontalAlignment for detail. + * + * [Api set: ExcelApi 1.8] + */ + alignment?: Excel.ChartTickLabelAlignment | "Center" | "Left" | "Right"; /** * * Returns or sets the base unit for the specified category axis. @@ -33047,6 +36268,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ displayUnit?: Excel.ChartAxisDisplayUnit | "None" | "Hundreds" | "Thousands" | "TenThousands" | "HundredThousands" | "Millions" | "TenMillions" | "HundredMillions" | "Billions" | "Trillions" | "Custom"; + /** + * + * Represents whether value axis crosses the category axis between categories. + * + * [Api set: ExcelApi 1.8] + */ + isBetweenCategories?: boolean; /** * * Represents the base of the logarithm when using logarithmic scales. @@ -33110,6 +36338,34 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ minorUnit?: any; + /** + * + * Represents whether an axis is multilevel or not. + * + * [Api set: ExcelApi 1.8] + */ + multiLevel?: boolean; + /** + * + * Represents the format code for the axis tick label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: string; + /** + * + * Represents the distance between the levels of labels, and the distance between the first level and the axis line. The value should be an integer from 0 to 1000. + * + * [Api set: ExcelApi 1.8] + */ + offset?: number; + /** + * + * Represents the specified axis position where the other axis crosses. See Excel.ChartAxisPosition for details. + * + * [Api set: ExcelApi 1.8] + */ + position?: Excel.ChartAxisPosition | "Automatic" | "Maximum" | "Minimum" | "Custom"; /** * * Represents whether Microsoft Excel plots data points from last to first. @@ -33131,6 +36387,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showDisplayUnitLabel?: boolean; + /** + * + * Represents the text orientation of the axis tick label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: any; /** * * Represents the position of tick-mark labels on the specified axis. See Excel.ChartAxisTickLabelPosition for details. @@ -33203,6 +36466,13 @@ declare namespace Excel { } /** An interface for updating data on the ChartAxisTitleFormat object, for use in "chartAxisTitleFormat.set({ ... })". */ interface ChartAxisTitleFormatUpdateData { + /** + * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderUpdateData; /** * * Represents the font attributes, such as font name, font size, color, etc. of chart axis title object. @@ -33220,6 +36490,28 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ format?: Excel.Interfaces.ChartDataLabelFormatUpdateData; + /** + * + * Represents whether data labels automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText?: boolean; + /** + * + * Represents the horizontal alignment for chart data label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of data label is 0. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment?: Excel.ChartTextHorizontalAlignment | "Center" | "Left" | "Right" | "Justify" | "Distributed"; + /** + * + * Represents the format code for data labels. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: string; /** * * DataLabelPosition value that represents the position of the data label. See Excel.ChartDataLabelPosition for details. @@ -33276,9 +36568,67 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ showValue?: boolean; + /** + * + * Represents the text orientation of data labels. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: number; + /** + * + * Represents the vertical alignment of chart data label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of data label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment?: Excel.ChartTextVerticalAlignment | "Center" | "Bottom" | "Top" | "Justify" | "Distributed"; } /** An interface for updating data on the ChartDataLabel object, for use in "chartDataLabel.set({ ... })". */ interface ChartDataLabelUpdateData { + /** + * + * Represents the format of chart data label. + * + * [Api set: ExcelApi 1.8] + */ + format?: Excel.Interfaces.ChartDataLabelFormatUpdateData; + /** + * + * Boolean value representing if data label automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText?: boolean; + /** + * + * String value that represents the formula of chart data label using A1-style notation. + * + * [Api set: ExcelApi 1.8] + */ + formula?: string; + /** + * + * Represents the horizontal alignment for chart data label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of data label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment?: Excel.ChartTextHorizontalAlignment | "Center" | "Left" | "Right" | "Justify" | "Distributed"; + /** + * + * Represents the distance, in points, from the left edge of chart data label to the left edge of chart area. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + left?: number; + /** + * + * String value that represents the format code for data label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: string; /** * * DataLabelPosition value that represents the position of the data label. See Excel.ChartDataLabelPosition for details. @@ -33335,9 +36685,45 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showValue?: boolean; + /** + * + * String representing the text of the data label on a chart. + * + * [Api set: ExcelApi 1.8] + */ + text?: string; + /** + * + * Represents the text orientation of chart data label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: number; + /** + * + * Represents the distance, in points, from the top edge of chart data label to the top of chart area. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + top?: number; + /** + * + * Represents the vertical alignment of chart data label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of data label is 0. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment?: Excel.ChartTextVerticalAlignment | "Center" | "Bottom" | "Top" | "Justify" | "Distributed"; } /** An interface for updating data on the ChartDataLabelFormat object, for use in "chartDataLabelFormat.set({ ... })". */ interface ChartDataLabelFormatUpdateData { + /** + * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderUpdateData; /** * * Represents the font attributes (font name, font size, color, etc.) for a chart data label. @@ -33455,6 +36841,13 @@ declare namespace Excel { } /** An interface for updating data on the ChartLegendFormat object, for use in "chartLegendFormat.set({ ... })". */ interface ChartLegendFormatUpdateData { + /** + * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderUpdateData; /** * * Represents the font attributes such as font name, font size, color, etc. of a chart legend. @@ -33672,6 +37065,27 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ format?: Excel.Interfaces.ChartTrendlineFormatUpdateData; + /** + * + * Represents the label of a chart trendline. + * + * [Api set: ExcelApi 1.8] + */ + label?: Excel.Interfaces.ChartTrendlineLabelUpdateData; + /** + * + * Represents the number of periods that the trendline extends backward. + * + * [Api set: ExcelApi 1.8] + */ + backwardPeriod?: number; + /** + * + * Represents the number of periods that the trendline extends forward. + * + * [Api set: ExcelApi 1.8] + */ + forwardPeriod?: number; /** * * Represents the intercept value of the trendline. Can be set to a numeric value or an empty string (for automatic values). The returned value is always a number. @@ -33700,6 +37114,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ polynomialOrder?: number; + /** + * + * True if the equation for the trendline is displayed on the chart. + * + * [Api set: ExcelApi 1.8] + */ + showEquation?: boolean; + /** + * + * True if the R-squared for the trendline is displayed on the chart. + * + * [Api set: ExcelApi 1.8] + */ + showRSquared?: boolean; /** * * Represents the type of a chart trendline. @@ -33722,6 +37150,181 @@ declare namespace Excel { */ line?: Excel.Interfaces.ChartLineFormatUpdateData; } + /** An interface for updating data on the ChartTrendlineLabel object, for use in "chartTrendlineLabel.set({ ... })". */ + interface ChartTrendlineLabelUpdateData { + /** + * + * Represents the format of chart trendline label. + * + * [Api set: ExcelApi 1.8] + */ + format?: Excel.Interfaces.ChartTrendlineLabelFormatUpdateData; + /** + * + * Boolean value representing if trendline label automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText?: boolean; + /** + * + * String value that represents the formula of chart trendline label using A1-style notation. + * + * [Api set: ExcelApi 1.8] + */ + formula?: string; + /** + * + * Represents the horizontal alignment for chart trendline label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of trendline label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment?: Excel.ChartTextHorizontalAlignment | "Center" | "Left" | "Right" | "Justify" | "Distributed"; + /** + * + * Represents the distance, in points, from the left edge of chart trendline label to the left edge of chart area. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + left?: number; + /** + * + * String value that represents the format code for trendline label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: string; + /** + * + * String representing the text of the trendline label on a chart. + * + * [Api set: ExcelApi 1.8] + */ + text?: string; + /** + * + * Represents the text orientation of chart trendline label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: number; + /** + * + * Represents the distance, in points, from the top edge of chart trendline label to the top of chart area. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + top?: number; + /** + * + * Represents the vertical alignment of chart trendline label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of trendline label is 0. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment?: Excel.ChartTextVerticalAlignment | "Center" | "Bottom" | "Top" | "Justify" | "Distributed"; + } + /** An interface for updating data on the ChartTrendlineLabelFormat object, for use in "chartTrendlineLabelFormat.set({ ... })". */ + interface ChartTrendlineLabelFormatUpdateData { + /** + * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderUpdateData; + /** + * + * Represents the font attributes (font name, font size, color, etc.) for a chart trendline label. + * + * [Api set: ExcelApi 1.8] + */ + font?: Excel.Interfaces.ChartFontUpdateData; + } + /** An interface for updating data on the ChartPlotArea object, for use in "chartPlotArea.set({ ... })". */ + interface ChartPlotAreaUpdateData { + /** + * + * Represents the formatting of a chart plotArea. + * + * [Api set: ExcelApi 1.8] + */ + format?: Excel.Interfaces.ChartPlotAreaFormatUpdateData; + /** + * + * Represents the height value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + height?: number; + /** + * + * Represents the insideHeight value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideHeight?: number; + /** + * + * Represents the insideLeft value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideLeft?: number; + /** + * + * Represents the insideTop value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideTop?: number; + /** + * + * Represents the insideWidth value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideWidth?: number; + /** + * + * Represents the left value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + left?: number; + /** + * + * Represents the position of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + position?: Excel.ChartPlotAreaPosition | "Automatic" | "Custom"; + /** + * + * Represents the top value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + top?: number; + /** + * + * Represents the width value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + width?: number; + } + /** An interface for updating data on the ChartPlotAreaFormat object, for use in "chartPlotAreaFormat.set({ ... })". */ + interface ChartPlotAreaFormatUpdateData { + /** + * + * Represents the border attributes of a chart plotArea. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderUpdateData; + } /** An interface for updating data on the CustomXmlPartScopedCollection object, for use in "customXmlPartScopedCollection.set({ ... })". */ interface CustomXmlPartScopedCollectionUpdateData { items?: Excel.Interfaces.CustomXmlPartData[]; @@ -33744,6 +37347,205 @@ declare namespace Excel { */ name?: string; } + /** An interface for updating data on the PivotLayout object, for use in "pivotLayout.set({ ... })". */ + interface PivotLayoutUpdateData { + /** + * + * This property indicates the PivotLayoutType of all fields on the PivotTable. If fields have different states, this will be null. + * + * [Api set: ExcelApi 1.8] + */ + layoutType?: Excel.PivotLayoutType | "Compact" | "Tabular" | "Outline"; + /** + * + * True if the PivotTable report shows grand totals for columns. + * + * [Api set: ExcelApi 1.8] + */ + showColumnGrandTotals?: boolean; + /** + * + * True if the PivotTable report shows grand totals for rows. + * + * [Api set: ExcelApi 1.8] + */ + showRowGrandTotals?: boolean; + /** + * + * This property indicates the SubtotalLocationType of all fields on the PivotTable. If fields have different states, this will be null. + * + * [Api set: ExcelApi 1.8] + */ + subtotalLocation?: Excel.SubtotalLocationType | "AtTop" | "AtBottom" | "Off"; + } + /** An interface for updating data on the PivotHierarchyCollection object, for use in "pivotHierarchyCollection.set({ ... })". */ + interface PivotHierarchyCollectionUpdateData { + items?: Excel.Interfaces.PivotHierarchyData[]; + } + /** An interface for updating data on the PivotHierarchy object, for use in "pivotHierarchy.set({ ... })". */ + interface PivotHierarchyUpdateData { + /** + * + * Name of the PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + } + /** An interface for updating data on the RowColumnPivotHierarchyCollection object, for use in "rowColumnPivotHierarchyCollection.set({ ... })". */ + interface RowColumnPivotHierarchyCollectionUpdateData { + items?: Excel.Interfaces.RowColumnPivotHierarchyData[]; + } + /** An interface for updating data on the RowColumnPivotHierarchy object, for use in "rowColumnPivotHierarchy.set({ ... })". */ + interface RowColumnPivotHierarchyUpdateData { + /** + * + * Name of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + /** + * + * Position of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: number; + } + /** An interface for updating data on the FilterPivotHierarchyCollection object, for use in "filterPivotHierarchyCollection.set({ ... })". */ + interface FilterPivotHierarchyCollectionUpdateData { + items?: Excel.Interfaces.FilterPivotHierarchyData[]; + } + /** An interface for updating data on the FilterPivotHierarchy object, for use in "filterPivotHierarchy.set({ ... })". */ + interface FilterPivotHierarchyUpdateData { + /** + * + * Determines whether to allow multiple filter items. + * + * [Api set: ExcelApi 1.8] + */ + enableMultipleFilterItems?: boolean; + /** + * + * Name of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + /** + * + * Position of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: number; + } + /** An interface for updating data on the DataPivotHierarchyCollection object, for use in "dataPivotHierarchyCollection.set({ ... })". */ + interface DataPivotHierarchyCollectionUpdateData { + items?: Excel.Interfaces.DataPivotHierarchyData[]; + } + /** An interface for updating data on the DataPivotHierarchy object, for use in "dataPivotHierarchy.set({ ... })". */ + interface DataPivotHierarchyUpdateData { + /** + * + * Returns the PivotFields associated with the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + field?: Excel.Interfaces.PivotFieldUpdateData; + /** + * + * Name of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + /** + * + * Number format of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: string; + /** + * + * Position of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: number; + /** + * + * Determines whether the data should be sown as a specific summary calculation or not. + * + * [Api set: ExcelApi 1.8] + */ + showAs?: Excel.ShowAsRule; + /** + * + * Determines whether to show all items of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + summarizeBy?: Excel.AggregationFunction | "Unknown" | "Automatic" | "Sum" | "Count" | "Average" | "Max" | "Min" | "Product" | "CountNumbers" | "StandardDeviation" | "StandardDeviationP" | "Variance" | "VarianceP"; + } + /** An interface for updating data on the PivotFieldCollection object, for use in "pivotFieldCollection.set({ ... })". */ + interface PivotFieldCollectionUpdateData { + items?: Excel.Interfaces.PivotFieldData[]; + } + /** An interface for updating data on the PivotField object, for use in "pivotField.set({ ... })". */ + interface PivotFieldUpdateData { + /** + * + * Name of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + /** + * + * Determines whether to show all items of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + showAllItems?: boolean; + /** + * + * Subtotals of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + subtotals?: Excel.Subtotals; + } + /** An interface for updating data on the PivotItemCollection object, for use in "pivotItemCollection.set({ ... })". */ + interface PivotItemCollectionUpdateData { + items?: Excel.Interfaces.PivotItemData[]; + } + /** An interface for updating data on the PivotItem object, for use in "pivotItem.set({ ... })". */ + interface PivotItemUpdateData { + /** + * + * Determines whether the item is expanded to show child items or if it's collapsed and child items are hidden. + * + * [Api set: ExcelApi 1.8] + */ + isExpanded?: boolean; + /** + * + * Name of the PivotItem. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + /** + * + * Determines whether the PivotItem is visible or not. + * + * [Api set: ExcelApi 1.8] + */ + visible?: boolean; + } /** An interface for updating data on the DocumentProperties object, for use in "documentProperties.set({ ... })". */ interface DocumentPropertiesUpdateData { /** @@ -34379,6 +38181,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ font?: Excel.Interfaces.RangeFontUpdateData; + /** + * + * Indicates if text is automatically indented when the text alignment in a cell is set to equal distribution. + * + * [Api set: ExcelApi 1.8] + */ + autoIndent?: boolean; /** * * Indicates if the formula will be hidden when the worksheet is protected. @@ -34477,6 +38286,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ shrinkToFit?: boolean; + /** + * + * The text orientation for the style. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: number; /** * * Represents the vertical alignment for the style. See Excel.VerticalAlignment for details. @@ -34496,6 +38312,16 @@ declare namespace Excel { interface StyleCollectionUpdateData { items?: Excel.Interfaces.StyleData[]; } + /** An interface describing the data returned by calling "runtime.toJSON()". */ + interface RuntimeData { + /** + * + * Turn on/off JavaScript events in current taskpane or content add-in. + * + * [Api set: ExcelApi 1.8] + */ + enableEvents?: boolean; + } /** An interface describing the data returned by calling "application.toJSON()". */ interface ApplicationData { /** @@ -34592,6 +38418,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ name?: string; + /** + * + * True if the workbook is open in Read-only mode. Read-only. + * + * [Api set: ExcelApi 1.8] + */ + readOnly?: boolean; } /** An interface describing the data returned by calling "workbookProtection.toJSON()". */ interface WorkbookProtectionData { @@ -34603,6 +38436,16 @@ declare namespace Excel { */ protected?: boolean; } + /** An interface describing the data returned by calling "workbookCreated.toJSON()". */ + interface WorkbookCreatedData { + /** + * + * Returns a value that uniquely identifies the WorkbookCreated object. + * + * [Api set: ExcelApi 1.8] + */ + id?: string; + } /** An interface describing the data returned by calling "worksheet.toJSON()". */ interface WorksheetData { /** @@ -34661,6 +38504,22 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ position?: number; + /** + * + * Gets or sets the worksheet's gridlines flag. + This flag determines whether gridlines are visible to the user. + * + * [Api set: ExcelApi 1.8] + */ + showGridlines?: boolean; + /** + * + * Gets or sets the worksheet's headings flag. + This flag determines whether headings are visible to the user. + * + * [Api set: ExcelApi 1.8] + */ + showHeadings?: boolean; /** * * Returns the standard (default) height of all the rows in the worksheet, in points. Read-only. @@ -34725,6 +38584,13 @@ declare namespace Excel { conditionalFormats?: Excel.Interfaces.ConditionalFormatData[]; /** * + * Returns a data validation object. + * + * [Api set: ExcelApi 1.8] + */ + dataValidation?: Excel.Interfaces.DataValidationData; + /** + * * Returns a format object, encapsulating the range's font, fill, borders, alignment, and other properties. Read-only. * * [Api set: ExcelApi 1.1] @@ -35182,6 +39048,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ id?: string; + /** + * + * Returns a numeric id. + * + * [Api set: ExcelApi 1.8] + */ + legacyId?: string; /** * * Name of the table. @@ -35295,6 +39168,53 @@ declare namespace Excel { */ values?: any[][]; } + /** An interface describing the data returned by calling "dataValidation.toJSON()". */ + interface DataValidationData { + /** + * + * Error alert when user enters invalid data. + * + * [Api set: ExcelApi 1.8] + */ + errorAlert?: Excel.DataValidationErrorAlert; + /** + * + * Ignore blanks: no data validation will be performed on blank cells, it defaults to true. + * + * [Api set: ExcelApi 1.8] + */ + ignoreBlanks?: boolean; + /** + * + * Prompt when users select a cell. + * + * [Api set: ExcelApi 1.8] + */ + prompt?: Excel.DataValidationPrompt; + /** + * + * Data Validation rule that contains different type of data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + rule?: Excel.DataValidationRule; + /** + * + * Type of the data validation, see Excel.DataValidationType for details. + * + * [Api set: ExcelApi 1.8] + */ + type?: Excel.DataValidationType | "None" | "WholeNumber" | "Decimal" | "List" | "Date" | "Time" | "TextLength" | "Custom" | "Inconsistent" | "MixedCriteria"; + /** + * + * Represents if all cell values are valid according to the data validation rules. + Returns true if all cell values are valid, or false if all cell values are invalid. + Returns null if there are both valid and invalid cell values within the range. + * + * [Api set: ExcelApi 1.8] + */ + valid?: boolean; + } /** An interface describing the data returned by calling "rangeFormat.toJSON()". */ interface RangeFormatData { /** @@ -35533,6 +39453,13 @@ declare namespace Excel { legend?: Excel.Interfaces.ChartLegendData; /** * + * Represents the plotArea for the chart. + * + * [Api set: ExcelApi 1.8] + */ + plotArea?: Excel.Interfaces.ChartPlotAreaData; + /** + * * Represents either a single series or collection of series in the chart. Read-only. * * [Api set: ExcelApi 1.1] @@ -35552,13 +39479,28 @@ declare namespace Excel { * [Api set: ExcelApi 1.2] */ worksheet?: Excel.Interfaces.WorksheetData; + /** + * + * Returns or sets a ChartCategoryLabelLevel enumeration constant referring to + the level of where the category labels are being sourced from. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + categoryLabelLevel?: number; /** * * Represents the type of the chart. See Excel.ChartType for details. * * [Api set: ExcelApi 1.7] */ - chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + /** + * + * Returns or sets the way that blank cells are plotted on a chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + displayBlanksAs?: Excel.ChartDisplayBlanksAs | "NotPlotted" | "Zero" | "Interplotted"; /** * * Represents the height, in points, of the chart object. @@ -35587,6 +39529,28 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ name?: string; + /** + * + * Returns or sets the way columns or rows are used as data series on the chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + plotBy?: Excel.ChartPlotBy | "Rows" | "Columns"; + /** + * + * True if only visible cells are plotted. False if both visible and hidden cells are plotted. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + plotVisibleOnly?: boolean; + /** + * + * Returns or sets a ChartSeriesNameLevel enumeration constant referring to + the level of where the series names are being sourced from. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + seriesNameLevel?: number; /** * * Represents whether to display all field buttons on a PivotChart. @@ -35594,6 +39558,22 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showAllFieldButtons?: boolean; + /** + * + * Represents whether to to show the data labels when the value is greater than the maximum value on the value axis. + If value axis became smaller than the size of data points, you can use this property to set whether to show the data labels. + This property applies to 2-D charts only. + * + * [Api set: ExcelApi 1.8] + */ + showDataLabelsOverMaximum?: boolean; + /** + * + * Returns or sets the chart style for the chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + style?: number; /** * * Represents the distance, in points, from the top edge of the object to the top of row 1 (on a worksheet) or the top of the chart area (on a chart). @@ -35632,6 +39612,13 @@ declare namespace Excel { } /** An interface describing the data returned by calling "chartSeries.toJSON()". */ interface ChartSeriesData { + /** + * + * Represents a collection of all dataLabels in the series. + * + * [Api set: ExcelApi 1.8] + */ + dataLabels?: Excel.Interfaces.ChartDataLabelsData; /** * * Represents the formatting of a chart series, which includes fill and line formatting. Read-only. @@ -35653,13 +39640,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ trendlines?: Excel.Interfaces.ChartTrendlineData[]; + /** + * + * Returns or sets the group for the specified series. Read/Write + * + * [Api set: ExcelApi 1.8] + */ + axisGroup?: Excel.ChartAxisGroup | "Primary" | "Secondary"; /** * * Represents the chart type of a series. See Excel.ChartType for details. * * [Api set: ExcelApi 1.7] */ - chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; + chartType?: Excel.ChartType | "Invalid" | "ColumnClustered" | "ColumnStacked" | "ColumnStacked100" | "3DColumnClustered" | "3DColumnStacked" | "3DColumnStacked100" | "BarClustered" | "BarStacked" | "BarStacked100" | "3DBarClustered" | "3DBarStacked" | "3DBarStacked100" | "LineStacked" | "LineStacked100" | "LineMarkers" | "LineMarkersStacked" | "LineMarkersStacked100" | "PieOfPie" | "PieExploded" | "3DPieExploded" | "BarOfPie" | "XYScatterSmooth" | "XYScatterSmoothNoMarkers" | "XYScatterLines" | "XYScatterLinesNoMarkers" | "AreaStacked" | "AreaStacked100" | "3DAreaStacked" | "3DAreaStacked100" | "DoughnutExploded" | "RadarMarkers" | "RadarFilled" | "Surface" | "SurfaceWireframe" | "SurfaceTopView" | "SurfaceTopViewWireframe" | "Bubble" | "Bubble3DEffect" | "StockHLC" | "StockOHLC" | "StockVHLC" | "StockVOHLC" | "CylinderColClustered" | "CylinderColStacked" | "CylinderColStacked100" | "CylinderBarClustered" | "CylinderBarStacked" | "CylinderBarStacked100" | "CylinderCol" | "ConeColClustered" | "ConeColStacked" | "ConeColStacked100" | "ConeBarClustered" | "ConeBarStacked" | "ConeBarStacked100" | "ConeCol" | "PyramidColClustered" | "PyramidColStacked" | "PyramidColStacked100" | "PyramidBarClustered" | "PyramidBarStacked" | "PyramidBarStacked100" | "PyramidCol" | "3DColumn" | "Line" | "3DLine" | "3DPie" | "Pie" | "XYScatter" | "3DArea" | "Area" | "Doughnut" | "Radar" | "Histogram" | "Boxwhisker" | "Pareto" | "RegionMap" | "Treemap" | "Waterfall" | "Sunburst" | "Funnel"; /** * * Represents the doughnut hole size of a chart series. Only valid on doughnut and doughnutExploded charts. @@ -35668,6 +39662,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ doughnutHoleSize?: number; + /** + * + * Returns or sets the explosion value for a pie-chart or doughnut-chart slice. Returns 0 (zero) if there's no explosion (the tip of the slice is in the center of the pie). Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + explosion?: number; /** * * Boolean value representing if the series is filtered or not. Not applicable for surface charts. @@ -35675,6 +39676,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ filtered?: boolean; + /** + * + * Returns or sets the angle of the first pie-chart or doughnut-chart slice, in degrees (clockwise from vertical). Applies only to pie, 3-D pie, and doughnut charts. Can be a value from 0 through 360. Read/Write + * + * [Api set: ExcelApi 1.8] + */ + firstSliceAngle?: number; /** * * Represents the gap width of a chart series. Only valid on bar and column charts, as well as @@ -35690,6 +39698,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ hasDataLabels?: boolean; + /** + * + * True if Microsoft Excel inverts the pattern in the item when it corresponds to a negative number. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + invertIfNegative?: boolean; /** * * Represents markers background color of a chart series. @@ -35725,6 +39740,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ name?: string; + /** + * + * Specifies how bars and columns are positioned. Can be a value between – 100 and 100. Applies only to 2-D bar and 2-D column charts. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + overlap?: number; /** * * Represents the plot order of a chart series within the chart group. @@ -35732,6 +39754,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ plotOrder?: number; + /** + * + * Returns or sets the size of the secondary section of either a pie of pie chart or a bar of pie chart, as a percentage of the size of the primary pie. Can be a value from 5 to 200. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + secondPlotSize?: number; /** * * Boolean value representing if the series has a shadow or not. @@ -35746,6 +39775,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ smooth?: boolean; + /** + * + * Returns or sets the way the two sections of either a pie of pie chart or a bar of pie chart are split. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + splitType?: Excel.ChartSplitStype | "SplitByPosition" | "SplitByValue" | "SplitByPercentValue" | "SplitByCustomSplit"; + /** + * + * True if Microsoft Excel assigns a different color or pattern to each data marker. The chart must contain only one series. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + varyByCategories?: boolean; } /** An interface describing the data returned by calling "chartSeriesFormat.toJSON()". */ interface ChartSeriesFormatData { @@ -35884,6 +39927,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ title?: Excel.Interfaces.ChartAxisTitleData; + /** + * + * Represents the alignment for the specified axis tick label. See Excel.ChartTextHorizontalAlignment for detail. + * + * [Api set: ExcelApi 1.8] + */ + alignment?: Excel.ChartTickLabelAlignment | "Center" | "Left" | "Right"; /** * * Represents the group for the specified axis. See Excel.ChartAxisGroup for details. Read-only. @@ -35940,6 +39990,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ height?: number; + /** + * + * Represents whether value axis crosses the category axis between categories. + * + * [Api set: ExcelApi 1.8] + */ + isBetweenCategories?: boolean; /** * * Represents the distance, in points, from the left edge of the axis to the left of chart area. Null if the axis is not visible. Read-only. @@ -36010,6 +40067,41 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ minorUnit?: any; + /** + * + * Represents whether an axis is multilevel or not. + * + * [Api set: ExcelApi 1.8] + */ + multiLevel?: boolean; + /** + * + * Represents the format code for the axis tick label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: string; + /** + * + * Represents the distance between the levels of labels, and the distance between the first level and the axis line. The value should be an integer from 0 to 1000. + * + * [Api set: ExcelApi 1.8] + */ + offset?: number; + /** + * + * Represents the specified axis position where the other axis crosses. See Excel.ChartAxisPosition for details. + * + * [Api set: ExcelApi 1.8] + */ + position?: Excel.ChartAxisPosition | "Automatic" | "Maximum" | "Minimum" | "Custom"; + /** + * + * Represents the specified axis position where the other axis crosses at. Read Only. Set to this property should use SetPositionAt(double) method. + * + * [Api set: ExcelApi 1.8] + */ + positionAt?: number; /** * * Represents whether Microsoft Excel plots data points from last to first. @@ -36031,6 +40123,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showDisplayUnitLabel?: boolean; + /** + * + * Represents the text orientation of the axis tick label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: any; /** * * Represents the position of tick-mark labels on the specified axis. See Excel.ChartAxisTickLabelPosition for details. @@ -36124,6 +40223,13 @@ declare namespace Excel { } /** An interface describing the data returned by calling "chartAxisTitleFormat.toJSON()". */ interface ChartAxisTitleFormatData { + /** + * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderData; /** * * Represents the font attributes, such as font name, font size, color, etc. of chart axis title object. Read-only. @@ -36141,6 +40247,28 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ format?: Excel.Interfaces.ChartDataLabelFormatData; + /** + * + * Represents whether data labels automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText?: boolean; + /** + * + * Represents the horizontal alignment for chart data label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of data label is 0. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment?: Excel.ChartTextHorizontalAlignment | "Center" | "Left" | "Right" | "Justify" | "Distributed"; + /** + * + * Represents the format code for data labels. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: string; /** * * DataLabelPosition value that represents the position of the data label. See Excel.ChartDataLabelPosition for details. @@ -36197,9 +40325,74 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ showValue?: boolean; + /** + * + * Represents the text orientation of data labels. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: number; + /** + * + * Represents the vertical alignment of chart data label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of data label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment?: Excel.ChartTextVerticalAlignment | "Center" | "Bottom" | "Top" | "Justify" | "Distributed"; } /** An interface describing the data returned by calling "chartDataLabel.toJSON()". */ interface ChartDataLabelData { + /** + * + * Represents the format of chart data label. + * + * [Api set: ExcelApi 1.8] + */ + format?: Excel.Interfaces.ChartDataLabelFormatData; + /** + * + * Boolean value representing if data label automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText?: boolean; + /** + * + * String value that represents the formula of chart data label using A1-style notation. + * + * [Api set: ExcelApi 1.8] + */ + formula?: string; + /** + * + * Returns the height, in points, of the chart data label. Read-only. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + height?: number; + /** + * + * Represents the horizontal alignment for chart data label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of data label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment?: Excel.ChartTextHorizontalAlignment | "Center" | "Left" | "Right" | "Justify" | "Distributed"; + /** + * + * Represents the distance, in points, from the left edge of chart data label to the left edge of chart area. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + left?: number; + /** + * + * String value that represents the format code for data label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: string; /** * * DataLabelPosition value that represents the position of the data label. See Excel.ChartDataLabelPosition for details. @@ -36256,9 +40449,52 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showValue?: boolean; + /** + * + * String representing the text of the data label on a chart. + * + * [Api set: ExcelApi 1.8] + */ + text?: string; + /** + * + * Represents the text orientation of chart data label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: number; + /** + * + * Represents the distance, in points, from the top edge of chart data label to the top of chart area. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + top?: number; + /** + * + * Represents the vertical alignment of chart data label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of data label is 0. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment?: Excel.ChartTextVerticalAlignment | "Center" | "Bottom" | "Top" | "Justify" | "Distributed"; + /** + * + * Returns the width, in points, of the chart data label. Read-only. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + width?: number; } /** An interface describing the data returned by calling "chartDataLabelFormat.toJSON()". */ interface ChartDataLabelFormatData { + /** + * + * Represents the border format, which includes color, linestyle, and weight. Read-only. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderData; /** * * Represents the font attributes (font name, font size, color, etc.) for a chart data label. Read-only. @@ -36369,6 +40605,34 @@ declare namespace Excel { } /** An interface describing the data returned by calling "chartLegendEntry.toJSON()". */ interface ChartLegendEntryData { + /** + * + * Represents the height of the legendEntry on the chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + height?: number; + /** + * + * Represents the index of the LegendEntry in the Chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + index?: number; + /** + * + * Represents the left of a chart legendEntry. + * + * [Api set: ExcelApi 1.8] + */ + left?: number; + /** + * + * Represents the top of a chart legendEntry. + * + * [Api set: ExcelApi 1.8] + */ + top?: number; /** * * Represents the visible of a chart legend entry. @@ -36376,6 +40640,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ visible?: boolean; + /** + * + * Represents the width of the legendEntry on the chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + width?: number; } /** An interface describing the data returned by calling "chartLegendEntryCollection.toJSON()". */ interface ChartLegendEntryCollectionData { @@ -36383,6 +40654,13 @@ declare namespace Excel { } /** An interface describing the data returned by calling "chartLegendFormat.toJSON()". */ interface ChartLegendFormatData { + /** + * + * Represents the border format, which includes color, linestyle, and weight. Read-only. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderData; /** * * Represents the font attributes such as font name, font size, color, etc. of a chart legend. Read-only. @@ -36614,6 +40892,27 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ format?: Excel.Interfaces.ChartTrendlineFormatData; + /** + * + * Represents the label of a chart trendline. + * + * [Api set: ExcelApi 1.8] + */ + label?: Excel.Interfaces.ChartTrendlineLabelData; + /** + * + * Represents the number of periods that the trendline extends backward. + * + * [Api set: ExcelApi 1.8] + */ + backwardPeriod?: number; + /** + * + * Represents the number of periods that the trendline extends forward. + * + * [Api set: ExcelApi 1.8] + */ + forwardPeriod?: number; /** * * Represents the intercept value of the trendline. Can be set to a numeric value or an empty string (for automatic values). The returned value is always a number. @@ -36642,6 +40941,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ polynomialOrder?: number; + /** + * + * True if the equation for the trendline is displayed on the chart. + * + * [Api set: ExcelApi 1.8] + */ + showEquation?: boolean; + /** + * + * True if the R-squared for the trendline is displayed on the chart. + * + * [Api set: ExcelApi 1.8] + */ + showRSquared?: boolean; /** * * Represents the type of a chart trendline. @@ -36664,6 +40977,195 @@ declare namespace Excel { */ line?: Excel.Interfaces.ChartLineFormatData; } + /** An interface describing the data returned by calling "chartTrendlineLabel.toJSON()". */ + interface ChartTrendlineLabelData { + /** + * + * Represents the format of chart trendline label. + * + * [Api set: ExcelApi 1.8] + */ + format?: Excel.Interfaces.ChartTrendlineLabelFormatData; + /** + * + * Boolean value representing if trendline label automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText?: boolean; + /** + * + * String value that represents the formula of chart trendline label using A1-style notation. + * + * [Api set: ExcelApi 1.8] + */ + formula?: string; + /** + * + * Returns the height, in points, of the chart trendline label. Read-only. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + height?: number; + /** + * + * Represents the horizontal alignment for chart trendline label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of trendline label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment?: Excel.ChartTextHorizontalAlignment | "Center" | "Left" | "Right" | "Justify" | "Distributed"; + /** + * + * Represents the distance, in points, from the left edge of chart trendline label to the left edge of chart area. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + left?: number; + /** + * + * String value that represents the format code for trendline label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: string; + /** + * + * String representing the text of the trendline label on a chart. + * + * [Api set: ExcelApi 1.8] + */ + text?: string; + /** + * + * Represents the text orientation of chart trendline label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: number; + /** + * + * Represents the distance, in points, from the top edge of chart trendline label to the top of chart area. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + top?: number; + /** + * + * Represents the vertical alignment of chart trendline label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of trendline label is 0. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment?: Excel.ChartTextVerticalAlignment | "Center" | "Bottom" | "Top" | "Justify" | "Distributed"; + /** + * + * Returns the width, in points, of the chart trendline label. Read-only. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + width?: number; + } + /** An interface describing the data returned by calling "chartTrendlineLabelFormat.toJSON()". */ + interface ChartTrendlineLabelFormatData { + /** + * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderData; + /** + * + * Represents the font attributes (font name, font size, color, etc.) for a chart trendline label. + * + * [Api set: ExcelApi 1.8] + */ + font?: Excel.Interfaces.ChartFontData; + } + /** An interface describing the data returned by calling "chartPlotArea.toJSON()". */ + interface ChartPlotAreaData { + /** + * + * Represents the formatting of a chart plotArea. + * + * [Api set: ExcelApi 1.8] + */ + format?: Excel.Interfaces.ChartPlotAreaFormatData; + /** + * + * Represents the height value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + height?: number; + /** + * + * Represents the insideHeight value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideHeight?: number; + /** + * + * Represents the insideLeft value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideLeft?: number; + /** + * + * Represents the insideTop value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideTop?: number; + /** + * + * Represents the insideWidth value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideWidth?: number; + /** + * + * Represents the left value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + left?: number; + /** + * + * Represents the position of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + position?: Excel.ChartPlotAreaPosition | "Automatic" | "Custom"; + /** + * + * Represents the top value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + top?: number; + /** + * + * Represents the width value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + width?: number; + } + /** An interface describing the data returned by calling "chartPlotAreaFormat.toJSON()". */ + interface ChartPlotAreaFormatData { + /** + * + * Represents the border attributes of a chart plotArea. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderData; + } /** An interface describing the data returned by calling "tableSort.toJSON()". */ interface TableSortData { /** @@ -36729,6 +41231,48 @@ declare namespace Excel { } /** An interface describing the data returned by calling "pivotTable.toJSON()". */ interface PivotTableData { + /** + * + * The Column Pivot Hierarchies of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + columnHierarchies?: Excel.Interfaces.RowColumnPivotHierarchyData[]; + /** + * + * The Data Pivot Hierarchies of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + dataHierarchies?: Excel.Interfaces.DataPivotHierarchyData[]; + /** + * + * The Filter Pivot Hierarchies of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + filterHierarchies?: Excel.Interfaces.FilterPivotHierarchyData[]; + /** + * + * The Pivot Hierarchies of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + hierarchies?: Excel.Interfaces.PivotHierarchyData[]; + /** + * + * The PivotLayout describing the layout and visual structure of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + layout?: Excel.Interfaces.PivotLayoutData; + /** + * + * The Row Pivot Hierarchies of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + rowHierarchies?: Excel.Interfaces.RowColumnPivotHierarchyData[]; /** * * The worksheet containing the current PivotTable. @@ -36751,6 +41295,275 @@ declare namespace Excel { */ name?: string; } + /** An interface describing the data returned by calling "pivotLayout.toJSON()". */ + interface PivotLayoutData { + /** + * + * This property indicates the PivotLayoutType of all fields on the PivotTable. If fields have different states, this will be null. + * + * [Api set: ExcelApi 1.8] + */ + layoutType?: Excel.PivotLayoutType | "Compact" | "Tabular" | "Outline"; + /** + * + * True if the PivotTable report shows grand totals for columns. + * + * [Api set: ExcelApi 1.8] + */ + showColumnGrandTotals?: boolean; + /** + * + * True if the PivotTable report shows grand totals for rows. + * + * [Api set: ExcelApi 1.8] + */ + showRowGrandTotals?: boolean; + /** + * + * This property indicates the SubtotalLocationType of all fields on the PivotTable. If fields have different states, this will be null. + * + * [Api set: ExcelApi 1.8] + */ + subtotalLocation?: Excel.SubtotalLocationType | "AtTop" | "AtBottom" | "Off"; + } + /** An interface describing the data returned by calling "pivotHierarchyCollection.toJSON()". */ + interface PivotHierarchyCollectionData { + items?: Excel.Interfaces.PivotHierarchyData[]; + } + /** An interface describing the data returned by calling "pivotHierarchy.toJSON()". */ + interface PivotHierarchyData { + /** + * + * Returns the PivotFields associated with the PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + fields?: Excel.Interfaces.PivotFieldData[]; + /** + * + * Id of the PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: string; + /** + * + * Name of the PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + } + /** An interface describing the data returned by calling "rowColumnPivotHierarchyCollection.toJSON()". */ + interface RowColumnPivotHierarchyCollectionData { + items?: Excel.Interfaces.RowColumnPivotHierarchyData[]; + } + /** An interface describing the data returned by calling "rowColumnPivotHierarchy.toJSON()". */ + interface RowColumnPivotHierarchyData { + /** + * + * Returns the PivotFields associated with the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + fields?: Excel.Interfaces.PivotFieldData[]; + /** + * + * Id of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: string; + /** + * + * Name of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + /** + * + * Position of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: number; + } + /** An interface describing the data returned by calling "filterPivotHierarchyCollection.toJSON()". */ + interface FilterPivotHierarchyCollectionData { + items?: Excel.Interfaces.FilterPivotHierarchyData[]; + } + /** An interface describing the data returned by calling "filterPivotHierarchy.toJSON()". */ + interface FilterPivotHierarchyData { + /** + * + * Returns the PivotFields associated with the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + fields?: Excel.Interfaces.PivotFieldData[]; + /** + * + * Determines whether to allow multiple filter items. + * + * [Api set: ExcelApi 1.8] + */ + enableMultipleFilterItems?: boolean; + /** + * + * Id of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: string; + /** + * + * Name of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + /** + * + * Position of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: number; + } + /** An interface describing the data returned by calling "dataPivotHierarchyCollection.toJSON()". */ + interface DataPivotHierarchyCollectionData { + items?: Excel.Interfaces.DataPivotHierarchyData[]; + } + /** An interface describing the data returned by calling "dataPivotHierarchy.toJSON()". */ + interface DataPivotHierarchyData { + /** + * + * Returns the PivotFields associated with the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + field?: Excel.Interfaces.PivotFieldData; + /** + * + * Id of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: string; + /** + * + * Name of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + /** + * + * Number format of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: string; + /** + * + * Position of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: number; + /** + * + * Determines whether the data should be sown as a specific summary calculation or not. + * + * [Api set: ExcelApi 1.8] + */ + showAs?: Excel.ShowAsRule; + /** + * + * Determines whether to show all items of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + summarizeBy?: Excel.AggregationFunction | "Unknown" | "Automatic" | "Sum" | "Count" | "Average" | "Max" | "Min" | "Product" | "CountNumbers" | "StandardDeviation" | "StandardDeviationP" | "Variance" | "VarianceP"; + } + /** An interface describing the data returned by calling "pivotFieldCollection.toJSON()". */ + interface PivotFieldCollectionData { + items?: Excel.Interfaces.PivotFieldData[]; + } + /** An interface describing the data returned by calling "pivotField.toJSON()". */ + interface PivotFieldData { + /** + * + * Returns the PivotFields associated with the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + items?: Excel.Interfaces.PivotItemData[]; + /** + * + * Id of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + id?: string; + /** + * + * Name of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + /** + * + * Determines whether to show all items of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + showAllItems?: boolean; + /** + * + * Subtotals of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + subtotals?: Excel.Subtotals; + } + /** An interface describing the data returned by calling "pivotItemCollection.toJSON()". */ + interface PivotItemCollectionData { + items?: Excel.Interfaces.PivotItemData[]; + } + /** An interface describing the data returned by calling "pivotItem.toJSON()". */ + interface PivotItemData { + /** + * + * Id of the PivotItem. + * + * [Api set: ExcelApi 1.8] + */ + id?: string; + /** + * + * Determines whether the item is expanded to show child items or if it's collapsed and child items are hidden. + * + * [Api set: ExcelApi 1.8] + */ + isExpanded?: boolean; + /** + * + * Name of the PivotItem. + * + * [Api set: ExcelApi 1.8] + */ + name?: string; + /** + * + * Determines whether the PivotItem is visible or not. + * + * [Api set: ExcelApi 1.8] + */ + visible?: boolean; + } /** An interface describing the data returned by calling "documentProperties.toJSON()". */ interface DocumentPropertiesData { /** @@ -37428,6 +42241,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ font?: Excel.Interfaces.RangeFontData; + /** + * + * Indicates if text is automatically indented when the text alignment in a cell is set to equal distribution. + * + * [Api set: ExcelApi 1.8] + */ + autoIndent?: boolean; /** * * Indicates if the style is a built-in style. @@ -37540,6 +42360,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ shrinkToFit?: boolean; + /** + * + * The text orientation for the style. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: number; /** * * Represents the vertical alignment for the style. See Excel.VerticalAlignment for details. @@ -37576,6 +42403,22 @@ declare namespace Excel { */ value?: T; } + /** + * + * Represents the Excel Runtime class. + * + * [Api set: ExcelApi 1.5] + */ + interface RuntimeLoadOptions { + $all?: boolean; + /** + * + * Turn on/off JavaScript events in current taskpane or content add-in. + * + * [Api set: ExcelApi 1.8] + */ + enableEvents?: boolean; + } /** * * Represents the Excel application that manages the workbook. @@ -37642,6 +42485,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ name?: boolean; + /** + * + * True if the workbook is open in Read-only mode. Read-only. + * + * [Api set: ExcelApi 1.8] + */ + readOnly?: boolean; } /** * @@ -37709,6 +42559,22 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ position?: boolean; + /** + * + * Gets or sets the worksheet's gridlines flag. + This flag determines whether gridlines are visible to the user. + * + * [Api set: ExcelApi 1.8] + */ + showGridlines?: boolean; + /** + * + * Gets or sets the worksheet's headings flag. + This flag determines whether headings are visible to the user. + * + * [Api set: ExcelApi 1.8] + */ + showHeadings?: boolean; /** * * Returns the standard (default) height of all the rows in the worksheet, in points. Read-only. @@ -37791,6 +42657,22 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ position?: boolean; + /** + * + * For EACH ITEM in the collection: Gets or sets the worksheet's gridlines flag. + This flag determines whether gridlines are visible to the user. + * + * [Api set: ExcelApi 1.8] + */ + showGridlines?: boolean; + /** + * + * For EACH ITEM in the collection: Gets or sets the worksheet's headings flag. + This flag determines whether headings are visible to the user. + * + * [Api set: ExcelApi 1.8] + */ + showHeadings?: boolean; /** * * For EACH ITEM in the collection: Returns the standard (default) height of all the rows in the worksheet, in points. Read-only. @@ -37856,6 +42738,13 @@ declare namespace Excel { $all?: boolean; /** * + * Returns a data validation object. + * + * [Api set: ExcelApi 1.8] + */ + dataValidation?: Excel.Interfaces.DataValidationLoadOptions; + /** + * * Returns a format object, encapsulating the range's font, fill, borders, alignment, and other properties. * * [Api set: ExcelApi 1.1] @@ -38533,6 +43422,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ id?: boolean; + /** + * + * For EACH ITEM in the collection: Returns a numeric id. + * + * [Api set: ExcelApi 1.8] + */ + legacyId?: boolean; /** * * For EACH ITEM in the collection: Name of the table. @@ -38640,6 +43536,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ id?: boolean; + /** + * + * Returns a numeric id. + * + * [Api set: ExcelApi 1.8] + */ + legacyId?: boolean; /** * * Name of the table. @@ -38834,6 +43737,59 @@ declare namespace Excel { */ values?: boolean; } + /** + * + * Represents the data validation applied to the current range. + * + * [Api set: ExcelApi 1.8] + */ + interface DataValidationLoadOptions { + $all?: boolean; + /** + * + * Error alert when user enters invalid data. + * + * [Api set: ExcelApi 1.8] + */ + errorAlert?: boolean; + /** + * + * Ignore blanks: no data validation will be performed on blank cells, it defaults to true. + * + * [Api set: ExcelApi 1.8] + */ + ignoreBlanks?: boolean; + /** + * + * Prompt when users select a cell. + * + * [Api set: ExcelApi 1.8] + */ + prompt?: boolean; + /** + * + * Data Validation rule that contains different type of data validation criteria. + * + * [Api set: ExcelApi 1.8] + */ + rule?: boolean; + /** + * + * Type of the data validation, see Excel.DataValidationType for details. + * + * [Api set: ExcelApi 1.8] + */ + type?: boolean; + /** + * + * Represents if all cell values are valid according to the data validation rules. + Returns true if all cell values are valid, or false if all cell values are invalid. + Returns null if there are both valid and invalid cell values within the range. + * + * [Api set: ExcelApi 1.8] + */ + valid?: boolean; + } /** * * A format object encapsulating the range's font, fill, borders, alignment, and other properties. @@ -39137,6 +44093,13 @@ declare namespace Excel { legend?: Excel.Interfaces.ChartLegendLoadOptions; /** * + * For EACH ITEM in the collection: Represents the plotArea for the chart. + * + * [Api set: ExcelApi 1.8] + */ + plotArea?: Excel.Interfaces.ChartPlotAreaLoadOptions; + /** + * * For EACH ITEM in the collection: Represents either a single series or collection of series in the chart. * * [Api set: ExcelApi 1.1] @@ -39156,6 +44119,14 @@ declare namespace Excel { * [Api set: ExcelApi 1.2] */ worksheet?: Excel.Interfaces.WorksheetLoadOptions; + /** + * + * For EACH ITEM in the collection: Returns or sets a ChartCategoryLabelLevel enumeration constant referring to + the level of where the category labels are being sourced from. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + categoryLabelLevel?: boolean; /** * * For EACH ITEM in the collection: Represents the type of the chart. See Excel.ChartType for details. @@ -39163,6 +44134,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ chartType?: boolean; + /** + * + * For EACH ITEM in the collection: Returns or sets the way that blank cells are plotted on a chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + displayBlanksAs?: boolean; /** * * For EACH ITEM in the collection: Represents the height, in points, of the chart object. @@ -39191,6 +44169,28 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ name?: boolean; + /** + * + * For EACH ITEM in the collection: Returns or sets the way columns or rows are used as data series on the chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + plotBy?: boolean; + /** + * + * For EACH ITEM in the collection: True if only visible cells are plotted. False if both visible and hidden cells are plotted. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + plotVisibleOnly?: boolean; + /** + * + * For EACH ITEM in the collection: Returns or sets a ChartSeriesNameLevel enumeration constant referring to + the level of where the series names are being sourced from. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + seriesNameLevel?: boolean; /** * * For EACH ITEM in the collection: Represents whether to display all field buttons on a PivotChart. @@ -39198,6 +44198,22 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showAllFieldButtons?: boolean; + /** + * + * For EACH ITEM in the collection: Represents whether to to show the data labels when the value is greater than the maximum value on the value axis. + If value axis became smaller than the size of data points, you can use this property to set whether to show the data labels. + This property applies to 2-D charts only. + * + * [Api set: ExcelApi 1.8] + */ + showDataLabelsOverMaximum?: boolean; + /** + * + * For EACH ITEM in the collection: Returns or sets the chart style for the chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + style?: boolean; /** * * For EACH ITEM in the collection: Represents the distance, in points, from the top edge of the object to the top of row 1 (on a worksheet) or the top of the chart area (on a chart). @@ -39251,6 +44267,13 @@ declare namespace Excel { legend?: Excel.Interfaces.ChartLegendLoadOptions; /** * + * Represents the plotArea for the chart. + * + * [Api set: ExcelApi 1.8] + */ + plotArea?: Excel.Interfaces.ChartPlotAreaLoadOptions; + /** + * * Represents either a single series or collection of series in the chart. * * [Api set: ExcelApi 1.1] @@ -39270,6 +44293,14 @@ declare namespace Excel { * [Api set: ExcelApi 1.2] */ worksheet?: Excel.Interfaces.WorksheetLoadOptions; + /** + * + * Returns or sets a ChartCategoryLabelLevel enumeration constant referring to + the level of where the category labels are being sourced from. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + categoryLabelLevel?: boolean; /** * * Represents the type of the chart. See Excel.ChartType for details. @@ -39277,6 +44308,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ chartType?: boolean; + /** + * + * Returns or sets the way that blank cells are plotted on a chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + displayBlanksAs?: boolean; /** * * Represents the height, in points, of the chart object. @@ -39305,6 +44343,28 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ name?: boolean; + /** + * + * Returns or sets the way columns or rows are used as data series on the chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + plotBy?: boolean; + /** + * + * True if only visible cells are plotted. False if both visible and hidden cells are plotted. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + plotVisibleOnly?: boolean; + /** + * + * Returns or sets a ChartSeriesNameLevel enumeration constant referring to + the level of where the series names are being sourced from. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + seriesNameLevel?: boolean; /** * * Represents whether to display all field buttons on a PivotChart. @@ -39312,6 +44372,22 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showAllFieldButtons?: boolean; + /** + * + * Represents whether to to show the data labels when the value is greater than the maximum value on the value axis. + If value axis became smaller than the size of data points, you can use this property to set whether to show the data labels. + This property applies to 2-D charts only. + * + * [Api set: ExcelApi 1.8] + */ + showDataLabelsOverMaximum?: boolean; + /** + * + * Returns or sets the chart style for the chart. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + style?: boolean; /** * * Represents the distance, in points, from the top edge of the object to the top of row 1 (on a worksheet) or the top of the chart area (on a chart). @@ -39360,6 +44436,13 @@ declare namespace Excel { $all?: boolean; /** * + * For EACH ITEM in the collection: Represents a collection of all dataLabels in the series. + * + * [Api set: ExcelApi 1.8] + */ + dataLabels?: Excel.Interfaces.ChartDataLabelsLoadOptions; + /** + * * For EACH ITEM in the collection: Represents the formatting of a chart series, which includes fill and line formatting. * * [Api set: ExcelApi 1.1] @@ -39372,6 +44455,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ points?: Excel.Interfaces.ChartPointsCollectionLoadOptions; + /** + * + * For EACH ITEM in the collection: Returns or sets the group for the specified series. Read/Write + * + * [Api set: ExcelApi 1.8] + */ + axisGroup?: boolean; /** * * For EACH ITEM in the collection: Represents the chart type of a series. See Excel.ChartType for details. @@ -39387,6 +44477,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ doughnutHoleSize?: boolean; + /** + * + * For EACH ITEM in the collection: Returns or sets the explosion value for a pie-chart or doughnut-chart slice. Returns 0 (zero) if there's no explosion (the tip of the slice is in the center of the pie). Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + explosion?: boolean; /** * * For EACH ITEM in the collection: Boolean value representing if the series is filtered or not. Not applicable for surface charts. @@ -39394,6 +44491,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ filtered?: boolean; + /** + * + * For EACH ITEM in the collection: Returns or sets the angle of the first pie-chart or doughnut-chart slice, in degrees (clockwise from vertical). Applies only to pie, 3-D pie, and doughnut charts. Can be a value from 0 through 360. Read/Write + * + * [Api set: ExcelApi 1.8] + */ + firstSliceAngle?: boolean; /** * * For EACH ITEM in the collection: Represents the gap width of a chart series. Only valid on bar and column charts, as well as @@ -39409,6 +44513,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ hasDataLabels?: boolean; + /** + * + * For EACH ITEM in the collection: True if Microsoft Excel inverts the pattern in the item when it corresponds to a negative number. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + invertIfNegative?: boolean; /** * * For EACH ITEM in the collection: Represents markers background color of a chart series. @@ -39444,6 +44555,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ name?: boolean; + /** + * + * For EACH ITEM in the collection: Specifies how bars and columns are positioned. Can be a value between – 100 and 100. Applies only to 2-D bar and 2-D column charts. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + overlap?: boolean; /** * * For EACH ITEM in the collection: Represents the plot order of a chart series within the chart group. @@ -39451,6 +44569,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ plotOrder?: boolean; + /** + * + * For EACH ITEM in the collection: Returns or sets the size of the secondary section of either a pie of pie chart or a bar of pie chart, as a percentage of the size of the primary pie. Can be a value from 5 to 200. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + secondPlotSize?: boolean; /** * * For EACH ITEM in the collection: Boolean value representing if the series has a shadow or not. @@ -39465,6 +44590,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ smooth?: boolean; + /** + * + * For EACH ITEM in the collection: Returns or sets the way the two sections of either a pie of pie chart or a bar of pie chart are split. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + splitType?: boolean; + /** + * + * For EACH ITEM in the collection: True if Microsoft Excel assigns a different color or pattern to each data marker. The chart must contain only one series. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + varyByCategories?: boolean; } /** * @@ -39476,6 +44615,13 @@ declare namespace Excel { $all?: boolean; /** * + * Represents a collection of all dataLabels in the series. + * + * [Api set: ExcelApi 1.8] + */ + dataLabels?: Excel.Interfaces.ChartDataLabelsLoadOptions; + /** + * * Represents the formatting of a chart series, which includes fill and line formatting. * * [Api set: ExcelApi 1.1] @@ -39488,6 +44634,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ points?: Excel.Interfaces.ChartPointsCollectionLoadOptions; + /** + * + * Returns or sets the group for the specified series. Read/Write + * + * [Api set: ExcelApi 1.8] + */ + axisGroup?: boolean; /** * * Represents the chart type of a series. See Excel.ChartType for details. @@ -39503,6 +44656,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ doughnutHoleSize?: boolean; + /** + * + * Returns or sets the explosion value for a pie-chart or doughnut-chart slice. Returns 0 (zero) if there's no explosion (the tip of the slice is in the center of the pie). Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + explosion?: boolean; /** * * Boolean value representing if the series is filtered or not. Not applicable for surface charts. @@ -39510,6 +44670,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ filtered?: boolean; + /** + * + * Returns or sets the angle of the first pie-chart or doughnut-chart slice, in degrees (clockwise from vertical). Applies only to pie, 3-D pie, and doughnut charts. Can be a value from 0 through 360. Read/Write + * + * [Api set: ExcelApi 1.8] + */ + firstSliceAngle?: boolean; /** * * Represents the gap width of a chart series. Only valid on bar and column charts, as well as @@ -39525,6 +44692,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ hasDataLabels?: boolean; + /** + * + * True if Microsoft Excel inverts the pattern in the item when it corresponds to a negative number. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + invertIfNegative?: boolean; /** * * Represents markers background color of a chart series. @@ -39560,6 +44734,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ name?: boolean; + /** + * + * Specifies how bars and columns are positioned. Can be a value between – 100 and 100. Applies only to 2-D bar and 2-D column charts. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + overlap?: boolean; /** * * Represents the plot order of a chart series within the chart group. @@ -39567,6 +44748,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ plotOrder?: boolean; + /** + * + * Returns or sets the size of the secondary section of either a pie of pie chart or a bar of pie chart, as a percentage of the size of the primary pie. Can be a value from 5 to 200. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + secondPlotSize?: boolean; /** * * Boolean value representing if the series has a shadow or not. @@ -39581,6 +44769,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ smooth?: boolean; + /** + * + * Returns or sets the way the two sections of either a pie of pie chart or a bar of pie chart are split. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + splitType?: boolean; + /** + * + * True if Microsoft Excel assigns a different color or pattern to each data marker. The chart must contain only one series. Read/Write. + * + * [Api set: ExcelApi 1.8] + */ + varyByCategories?: boolean; } /** * @@ -39810,6 +45012,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ title?: Excel.Interfaces.ChartAxisTitleLoadOptions; + /** + * + * Represents the alignment for the specified axis tick label. See Excel.ChartTextHorizontalAlignment for detail. + * + * [Api set: ExcelApi 1.8] + */ + alignment?: boolean; /** * * Represents the group for the specified axis. See Excel.ChartAxisGroup for details. Read-only. @@ -39866,6 +45075,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ height?: boolean; + /** + * + * Represents whether value axis crosses the category axis between categories. + * + * [Api set: ExcelApi 1.8] + */ + isBetweenCategories?: boolean; /** * * Represents the distance, in points, from the left edge of the axis to the left of chart area. Null if the axis is not visible. Read-only. @@ -39936,6 +45152,41 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ minorUnit?: boolean; + /** + * + * Represents whether an axis is multilevel or not. + * + * [Api set: ExcelApi 1.8] + */ + multiLevel?: boolean; + /** + * + * Represents the format code for the axis tick label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: boolean; + /** + * + * Represents the distance between the levels of labels, and the distance between the first level and the axis line. The value should be an integer from 0 to 1000. + * + * [Api set: ExcelApi 1.8] + */ + offset?: boolean; + /** + * + * Represents the specified axis position where the other axis crosses. See Excel.ChartAxisPosition for details. + * + * [Api set: ExcelApi 1.8] + */ + position?: boolean; + /** + * + * Represents the specified axis position where the other axis crosses at. Read Only. Set to this property should use SetPositionAt(double) method. + * + * [Api set: ExcelApi 1.8] + */ + positionAt?: boolean; /** * * Represents whether Microsoft Excel plots data points from last to first. @@ -39957,6 +45208,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showDisplayUnitLabel?: boolean; + /** + * + * Represents the text orientation of the axis tick label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: boolean; /** * * Represents the position of tick-mark labels on the specified axis. See Excel.ChartAxisTickLabelPosition for details. @@ -40070,6 +45328,13 @@ declare namespace Excel { $all?: boolean; /** * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderLoadOptions; + /** + * * Represents the font attributes, such as font name, font size, color, etc. of chart axis title object. * * [Api set: ExcelApi 1.1] @@ -40091,6 +45356,28 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ format?: Excel.Interfaces.ChartDataLabelFormatLoadOptions; + /** + * + * Represents whether data labels automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText?: boolean; + /** + * + * Represents the horizontal alignment for chart data label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of data label is 0. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment?: boolean; + /** + * + * Represents the format code for data labels. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: boolean; /** * * DataLabelPosition value that represents the position of the data label. See Excel.ChartDataLabelPosition for details. @@ -40147,6 +45434,21 @@ declare namespace Excel { * [Api set: ExcelApi 1.1] */ showValue?: boolean; + /** + * + * Represents the text orientation of data labels. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: boolean; + /** + * + * Represents the vertical alignment of chart data label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of data label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment?: boolean; } /** * @@ -40156,6 +45458,56 @@ declare namespace Excel { */ interface ChartDataLabelLoadOptions { $all?: boolean; + /** + * + * Represents the format of chart data label. + * + * [Api set: ExcelApi 1.8] + */ + format?: Excel.Interfaces.ChartDataLabelFormatLoadOptions; + /** + * + * Boolean value representing if data label automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText?: boolean; + /** + * + * String value that represents the formula of chart data label using A1-style notation. + * + * [Api set: ExcelApi 1.8] + */ + formula?: boolean; + /** + * + * Returns the height, in points, of the chart data label. Read-only. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + height?: boolean; + /** + * + * Represents the horizontal alignment for chart data label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of data label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment?: boolean; + /** + * + * Represents the distance, in points, from the left edge of chart data label to the left edge of chart area. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + left?: boolean; + /** + * + * String value that represents the format code for data label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: boolean; /** * * DataLabelPosition value that represents the position of the data label. See Excel.ChartDataLabelPosition for details. @@ -40212,6 +45564,42 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ showValue?: boolean; + /** + * + * String representing the text of the data label on a chart. + * + * [Api set: ExcelApi 1.8] + */ + text?: boolean; + /** + * + * Represents the text orientation of chart data label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: boolean; + /** + * + * Represents the distance, in points, from the top edge of chart data label to the top of chart area. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + top?: boolean; + /** + * + * Represents the vertical alignment of chart data label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of data label is 0. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment?: boolean; + /** + * + * Returns the width, in points, of the chart data label. Read-only. Null if chart data label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + width?: boolean; } /** * @@ -40223,6 +45611,13 @@ declare namespace Excel { $all?: boolean; /** * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderLoadOptions; + /** + * * Represents the font attributes (font name, font size, color, etc.) for a chart data label. * * [Api set: ExcelApi 1.1] @@ -40348,6 +45743,34 @@ declare namespace Excel { */ interface ChartLegendEntryLoadOptions { $all?: boolean; + /** + * + * Represents the height of the legendEntry on the chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + height?: boolean; + /** + * + * Represents the index of the LegendEntry in the Chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + index?: boolean; + /** + * + * Represents the left of a chart legendEntry. + * + * [Api set: ExcelApi 1.8] + */ + left?: boolean; + /** + * + * Represents the top of a chart legendEntry. + * + * [Api set: ExcelApi 1.8] + */ + top?: boolean; /** * * Represents the visible of a chart legend entry. @@ -40355,6 +45778,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ visible?: boolean; + /** + * + * Represents the width of the legendEntry on the chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + width?: boolean; } /** * @@ -40364,6 +45794,34 @@ declare namespace Excel { */ interface ChartLegendEntryCollectionLoadOptions { $all?: boolean; + /** + * + * For EACH ITEM in the collection: Represents the height of the legendEntry on the chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + height?: boolean; + /** + * + * For EACH ITEM in the collection: Represents the index of the LegendEntry in the Chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + index?: boolean; + /** + * + * For EACH ITEM in the collection: Represents the left of a chart legendEntry. + * + * [Api set: ExcelApi 1.8] + */ + left?: boolean; + /** + * + * For EACH ITEM in the collection: Represents the top of a chart legendEntry. + * + * [Api set: ExcelApi 1.8] + */ + top?: boolean; /** * * For EACH ITEM in the collection: Represents the visible of a chart legend entry. @@ -40371,6 +45829,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ visible?: boolean; + /** + * + * For EACH ITEM in the collection: Represents the width of the legendEntry on the chart Legend. + * + * [Api set: ExcelApi 1.8] + */ + width?: boolean; } /** * @@ -40382,6 +45847,13 @@ declare namespace Excel { $all?: boolean; /** * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderLoadOptions; + /** + * * Represents the font attributes such as font name, font size, color, etc. of a chart legend. * * [Api set: ExcelApi 1.1] @@ -40653,6 +46125,27 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ format?: Excel.Interfaces.ChartTrendlineFormatLoadOptions; + /** + * + * Represents the label of a chart trendline. + * + * [Api set: ExcelApi 1.8] + */ + label?: Excel.Interfaces.ChartTrendlineLabelLoadOptions; + /** + * + * Represents the number of periods that the trendline extends backward. + * + * [Api set: ExcelApi 1.8] + */ + backwardPeriod?: boolean; + /** + * + * Represents the number of periods that the trendline extends forward. + * + * [Api set: ExcelApi 1.8] + */ + forwardPeriod?: boolean; /** * * Represents the intercept value of the trendline. Can be set to a numeric value or an empty string (for automatic values). The returned value is always a number. @@ -40681,6 +46174,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ polynomialOrder?: boolean; + /** + * + * True if the equation for the trendline is displayed on the chart. + * + * [Api set: ExcelApi 1.8] + */ + showEquation?: boolean; + /** + * + * True if the R-squared for the trendline is displayed on the chart. + * + * [Api set: ExcelApi 1.8] + */ + showRSquared?: boolean; /** * * Represents the type of a chart trendline. @@ -40704,6 +46211,27 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ format?: Excel.Interfaces.ChartTrendlineFormatLoadOptions; + /** + * + * For EACH ITEM in the collection: Represents the label of a chart trendline. + * + * [Api set: ExcelApi 1.8] + */ + label?: Excel.Interfaces.ChartTrendlineLabelLoadOptions; + /** + * + * For EACH ITEM in the collection: Represents the number of periods that the trendline extends backward. + * + * [Api set: ExcelApi 1.8] + */ + backwardPeriod?: boolean; + /** + * + * For EACH ITEM in the collection: Represents the number of periods that the trendline extends forward. + * + * [Api set: ExcelApi 1.8] + */ + forwardPeriod?: boolean; /** * * For EACH ITEM in the collection: Represents the intercept value of the trendline. Can be set to a numeric value or an empty string (for automatic values). The returned value is always a number. @@ -40732,6 +46260,20 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ polynomialOrder?: boolean; + /** + * + * For EACH ITEM in the collection: True if the equation for the trendline is displayed on the chart. + * + * [Api set: ExcelApi 1.8] + */ + showEquation?: boolean; + /** + * + * For EACH ITEM in the collection: True if the R-squared for the trendline is displayed on the chart. + * + * [Api set: ExcelApi 1.8] + */ + showRSquared?: boolean; /** * * For EACH ITEM in the collection: Represents the type of a chart trendline. @@ -40756,6 +46298,219 @@ declare namespace Excel { */ line?: Excel.Interfaces.ChartLineFormatLoadOptions; } + /** + * + * This object represents the attributes for a chart trendline lable object. + * + * [Api set: ExcelApi 1.8] + */ + interface ChartTrendlineLabelLoadOptions { + $all?: boolean; + /** + * + * Represents the format of chart trendline label. + * + * [Api set: ExcelApi 1.8] + */ + format?: Excel.Interfaces.ChartTrendlineLabelFormatLoadOptions; + /** + * + * Boolean value representing if trendline label automatically generates appropriate text based on context. + * + * [Api set: ExcelApi 1.8] + */ + autoText?: boolean; + /** + * + * String value that represents the formula of chart trendline label using A1-style notation. + * + * [Api set: ExcelApi 1.8] + */ + formula?: boolean; + /** + * + * Returns the height, in points, of the chart trendline label. Read-only. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + height?: boolean; + /** + * + * Represents the horizontal alignment for chart trendline label. See Excel.ChartTextHorizontalAlignment for details. + This property is valid only when TextOrientation of trendline label is 90, -90 or 180. + * + * [Api set: ExcelApi 1.8] + */ + horizontalAlignment?: boolean; + /** + * + * Represents the distance, in points, from the left edge of chart trendline label to the left edge of chart area. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + left?: boolean; + /** + * + * String value that represents the format code for trendline label. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: boolean; + /** + * + * String representing the text of the trendline label on a chart. + * + * [Api set: ExcelApi 1.8] + */ + text?: boolean; + /** + * + * Represents the text orientation of chart trendline label. The value should be an integer either from -90 to 90, or 180 for vertically-oriented text. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: boolean; + /** + * + * Represents the distance, in points, from the top edge of chart trendline label to the top of chart area. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + top?: boolean; + /** + * + * Represents the vertical alignment of chart trendline label. See Excel.ChartTextVerticalAlignment for details. + This property is valid only when TextOrientation of trendline label is 0. + * + * [Api set: ExcelApi 1.8] + */ + verticalAlignment?: boolean; + /** + * + * Returns the width, in points, of the chart trendline label. Read-only. Null if chart trendline label is not visible. + * + * [Api set: ExcelApi 1.8] + */ + width?: boolean; + } + /** + * + * Encapsulates the format properties for the chart trendline label. + * + * [Api set: ExcelApi 1.8] + */ + interface ChartTrendlineLabelFormatLoadOptions { + $all?: boolean; + /** + * + * Represents the border format, which includes color, linestyle, and weight. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderLoadOptions; + /** + * + * Represents the font attributes (font name, font size, color, etc.) for a chart trendline label. + * + * [Api set: ExcelApi 1.8] + */ + font?: Excel.Interfaces.ChartFontLoadOptions; + } + /** + * + * This object represents the attributes for a chart plotArea object. + * + * [Api set: ExcelApi 1.8] + */ + interface ChartPlotAreaLoadOptions { + $all?: boolean; + /** + * + * Represents the formatting of a chart plotArea. + * + * [Api set: ExcelApi 1.8] + */ + format?: Excel.Interfaces.ChartPlotAreaFormatLoadOptions; + /** + * + * Represents the height value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + height?: boolean; + /** + * + * Represents the insideHeight value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideHeight?: boolean; + /** + * + * Represents the insideLeft value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideLeft?: boolean; + /** + * + * Represents the insideTop value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideTop?: boolean; + /** + * + * Represents the insideWidth value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + insideWidth?: boolean; + /** + * + * Represents the left value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + left?: boolean; + /** + * + * Represents the position of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + position?: boolean; + /** + * + * Represents the top value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + top?: boolean; + /** + * + * Represents the width value of plotArea. + * + * [Api set: ExcelApi 1.8] + */ + width?: boolean; + } + /** + * + * Represents the format properties for chart plotArea. + * + * [Api set: ExcelApi 1.8] + */ + interface ChartPlotAreaFormatLoadOptions { + $all?: boolean; + /** + * + * Represents the border attributes of a chart plotArea. + * + * [Api set: ExcelApi 1.8] + */ + border?: Excel.Interfaces.ChartBorderLoadOptions; + } /** * * Manages sorting operations on Table objects. @@ -40883,6 +46638,13 @@ declare namespace Excel { $all?: boolean; /** * + * For EACH ITEM in the collection: The PivotLayout describing the layout and visual structure of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + layout?: Excel.Interfaces.PivotLayoutLoadOptions; + /** + * * For EACH ITEM in the collection: The worksheet containing the current PivotTable. * * [Api set: ExcelApi 1.3] @@ -40913,6 +46675,13 @@ declare namespace Excel { $all?: boolean; /** * + * The PivotLayout describing the layout and visual structure of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + layout?: Excel.Interfaces.PivotLayoutLoadOptions; + /** + * * The worksheet containing the current PivotTable. * * [Api set: ExcelApi 1.3] @@ -40933,6 +46702,487 @@ declare namespace Excel { */ name?: boolean; } + /** + * + * Represents the visual layout of the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + interface PivotLayoutLoadOptions { + $all?: boolean; + /** + * + * This property indicates the PivotLayoutType of all fields on the PivotTable. If fields have different states, this will be null. + * + * [Api set: ExcelApi 1.8] + */ + layoutType?: boolean; + /** + * + * True if the PivotTable report shows grand totals for columns. + * + * [Api set: ExcelApi 1.8] + */ + showColumnGrandTotals?: boolean; + /** + * + * True if the PivotTable report shows grand totals for rows. + * + * [Api set: ExcelApi 1.8] + */ + showRowGrandTotals?: boolean; + /** + * + * This property indicates the SubtotalLocationType of all fields on the PivotTable. If fields have different states, this will be null. + * + * [Api set: ExcelApi 1.8] + */ + subtotalLocation?: boolean; + } + /** + * + * Represents a collection of all the PivotTables that are part of the workbook or worksheet. + * + * [Api set: ExcelApi 1.8] + */ + interface PivotHierarchyCollectionLoadOptions { + $all?: boolean; + /** + * + * For EACH ITEM in the collection: Id of the PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * For EACH ITEM in the collection: Name of the PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + } + /** + * + * Represents the Excel PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + interface PivotHierarchyLoadOptions { + $all?: boolean; + /** + * + * Id of the PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * Name of the PivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + } + /** + * + * Represents a collection of RowColumnPivotHierarchy items associated with the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + interface RowColumnPivotHierarchyCollectionLoadOptions { + $all?: boolean; + /** + * + * For EACH ITEM in the collection: Id of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * For EACH ITEM in the collection: Name of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + /** + * + * For EACH ITEM in the collection: Position of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: boolean; + } + /** + * + * Represents the Excel RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + interface RowColumnPivotHierarchyLoadOptions { + $all?: boolean; + /** + * + * Id of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * Name of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + /** + * + * Position of the RowColumnPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: boolean; + } + /** + * + * Represents a collection of FilterPivotHierarchy items associated with the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + interface FilterPivotHierarchyCollectionLoadOptions { + $all?: boolean; + /** + * + * For EACH ITEM in the collection: Determines whether to allow multiple filter items. + * + * [Api set: ExcelApi 1.8] + */ + enableMultipleFilterItems?: boolean; + /** + * + * For EACH ITEM in the collection: Id of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * For EACH ITEM in the collection: Name of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + /** + * + * For EACH ITEM in the collection: Position of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: boolean; + } + /** + * + * Represents the Excel FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + interface FilterPivotHierarchyLoadOptions { + $all?: boolean; + /** + * + * Determines whether to allow multiple filter items. + * + * [Api set: ExcelApi 1.8] + */ + enableMultipleFilterItems?: boolean; + /** + * + * Id of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * Name of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + /** + * + * Position of the FilterPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: boolean; + } + /** + * + * Represents a collection of DataPivotHierarchy items associated with the PivotTable. + * + * [Api set: ExcelApi 1.8] + */ + interface DataPivotHierarchyCollectionLoadOptions { + $all?: boolean; + /** + * + * For EACH ITEM in the collection: Returns the PivotFields associated with the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + field?: Excel.Interfaces.PivotFieldLoadOptions; + /** + * + * For EACH ITEM in the collection: Id of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * For EACH ITEM in the collection: Name of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + /** + * + * For EACH ITEM in the collection: Number format of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: boolean; + /** + * + * For EACH ITEM in the collection: Position of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: boolean; + /** + * + * For EACH ITEM in the collection: Determines whether the data should be sown as a specific summary calculation or not. + * + * [Api set: ExcelApi 1.8] + */ + showAs?: boolean; + /** + * + * For EACH ITEM in the collection: Determines whether to show all items of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + summarizeBy?: boolean; + } + /** + * + * Represents the Excel DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + interface DataPivotHierarchyLoadOptions { + $all?: boolean; + /** + * + * Returns the PivotFields associated with the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + field?: Excel.Interfaces.PivotFieldLoadOptions; + /** + * + * Id of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * Name of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + /** + * + * Number format of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + numberFormat?: boolean; + /** + * + * Position of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + position?: boolean; + /** + * + * Determines whether the data should be sown as a specific summary calculation or not. + * + * [Api set: ExcelApi 1.8] + */ + showAs?: boolean; + /** + * + * Determines whether to show all items of the DataPivotHierarchy. + * + * [Api set: ExcelApi 1.8] + */ + summarizeBy?: boolean; + } + /** + * + * Represents a collection of all the PivotTables that are part of the workbook or worksheet. + * + * [Api set: ExcelApi 1.8] + */ + interface PivotFieldCollectionLoadOptions { + $all?: boolean; + /** + * + * For EACH ITEM in the collection: Id of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * For EACH ITEM in the collection: Name of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + /** + * + * For EACH ITEM in the collection: Determines whether to show all items of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + showAllItems?: boolean; + /** + * + * For EACH ITEM in the collection: Subtotals of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + subtotals?: boolean; + } + /** + * + * Represents the Excel PivotField. + * + * [Api set: ExcelApi 1.8] + */ + interface PivotFieldLoadOptions { + $all?: boolean; + /** + * + * Id of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * Name of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + /** + * + * Determines whether to show all items of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + showAllItems?: boolean; + /** + * + * Subtotals of the PivotField. + * + * [Api set: ExcelApi 1.8] + */ + subtotals?: boolean; + } + /** + * + * Represents a collection of all the Pivot Items related to their parent PivotField. + * + * [Api set: ExcelApi 1.8] + */ + interface PivotItemCollectionLoadOptions { + $all?: boolean; + /** + * + * For EACH ITEM in the collection: Id of the PivotItem. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * For EACH ITEM in the collection: Determines whether the item is expanded to show child items or if it's collapsed and child items are hidden. + * + * [Api set: ExcelApi 1.8] + */ + isExpanded?: boolean; + /** + * + * For EACH ITEM in the collection: Name of the PivotItem. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + /** + * + * For EACH ITEM in the collection: Determines whether the PivotItem is visible or not. + * + * [Api set: ExcelApi 1.8] + */ + visible?: boolean; + } + /** + * + * Represents the Excel PivotItem. + * + * [Api set: ExcelApi 1.8] + */ + interface PivotItemLoadOptions { + $all?: boolean; + /** + * + * Id of the PivotItem. + * + * [Api set: ExcelApi 1.8] + */ + id?: boolean; + /** + * + * Determines whether the item is expanded to show child items or if it's collapsed and child items are hidden. + * + * [Api set: ExcelApi 1.8] + */ + isExpanded?: boolean; + /** + * + * Name of the PivotItem. + * + * [Api set: ExcelApi 1.8] + */ + name?: boolean; + /** + * + * Determines whether the PivotItem is visible or not. + * + * [Api set: ExcelApi 1.8] + */ + visible?: boolean; + } /** * * Represents workbook properties. @@ -41925,6 +48175,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ font?: Excel.Interfaces.RangeFontLoadOptions; + /** + * + * Indicates if text is automatically indented when the text alignment in a cell is set to equal distribution. + * + * [Api set: ExcelApi 1.8] + */ + autoIndent?: boolean; /** * * Indicates if the style is a built-in style. @@ -42037,6 +48294,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ shrinkToFit?: boolean; + /** + * + * The text orientation for the style. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: boolean; /** * * Represents the vertical alignment for the style. See Excel.VerticalAlignment for details. @@ -42081,6 +48345,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ font?: Excel.Interfaces.RangeFontLoadOptions; + /** + * + * For EACH ITEM in the collection: Indicates if text is automatically indented when the text alignment in a cell is set to equal distribution. + * + * [Api set: ExcelApi 1.8] + */ + autoIndent?: boolean; /** * * For EACH ITEM in the collection: Indicates if the style is a built-in style. @@ -42193,6 +48464,13 @@ declare namespace Excel { * [Api set: ExcelApi 1.7] */ shrinkToFit?: boolean; + /** + * + * For EACH ITEM in the collection: The text orientation for the style. + * + * [Api set: ExcelApi 1.8] + */ + textOrientation?: boolean; /** * * For EACH ITEM in the collection: Represents the vertical alignment for the style. See Excel.VerticalAlignment for details. @@ -53276,13 +59554,6 @@ declare namespace Word { * Executes a batch script that performs actions on the Word object model, using the RequestContext of previously-created API objects. * @param objects - An array of previously-created API objects. The array will be validated to make sure that all of the objects share the same context. The batch will use this shared RequestContext, which means that any changes applied to these objects will be picked up by "context.sync()". * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Word application. Since the Office add-in and the Word application run in two different processes, the RequestContext is required to get access to the Word object model from the add-in. - * - * @remarks - * In addition to this signature, the method also has the following signatures: - * - * `run(batch: (context: Word.RequestContext) => Promise): Promise;` - * - * `run(objects: OfficeExtension.ClientObject[], batch: (context: Word.RequestContext) => Promise): Promise;` */ function run(objects: OfficeExtension.ClientObject[], batch: (context: Word.RequestContext) => Promise): Promise; } @@ -54917,7 +61188,7 @@ declare namespace OneNote { * * @param left The left position of the top, left corner of the Outline. * @param top The top position of the top, left corner of the Outline. - * @param html An HTML string that describes the visual presentation of the Outline. See {@link https://docs.microsoft.com/en-us/office/dev/add-ins/onenote/onenote-add-ins-page-content#supported-html | Supported HTML} for the OneNote add-ins JavaScript API. + * @param html An HTML string that describes the visual presentation of the Outline. See {@link https://docs.microsoft.com/office/dev/add-ins/onenote/onenote-add-ins-page-content#supported-html | Supported HTML} for the OneNote add-ins JavaScript API. */ addOutline(left: number, top: number, html: string): OneNote.Outline; /** @@ -55299,7 +61570,7 @@ declare namespace OneNote { * * [Api set: OneNoteApi 1.1] * - * @param html The HTML string to append. See {@link https://docs.microsoft.com/en-us/office/dev/add-ins/onenote/onenote-add-ins-page-content#supported-html | Supported HTML} for the OneNote add-ins JavaScript API. + * @param html The HTML string to append. See {@link https://docs.microsoft.com/office/dev/add-ins/onenote/onenote-add-ins-page-content#supported-html | Supported HTML} for the OneNote add-ins JavaScript API. */ appendHtml(html: string): void; /** @@ -55517,7 +61788,7 @@ declare namespace OneNote { * [Api set: OneNoteApi 1.1] * * @param insertLocation The location of new contents relative to the current Paragraph. - * @param html An HTML string that describes the visual presentation of the content. See {@link https://docs.microsoft.com/en-us/office/dev/add-ins/onenote/onenote-add-ins-page-content#supported-html | Supported HTML} for the OneNote add-ins JavaScript API. + * @param html An HTML string that describes the visual presentation of the content. See {@link https://docs.microsoft.com/office/dev/add-ins/onenote/onenote-add-ins-page-content#supported-html | Supported HTML} for the OneNote add-ins JavaScript API. */ insertHtmlAsSibling(insertLocation: OneNote.InsertLocation, html: string): void; /** @@ -55527,7 +61798,7 @@ declare namespace OneNote { * [Api set: OneNoteApi 1.1] * * @param insertLocation The location of new contents relative to the current Paragraph. - * @param html An HTML string that describes the visual presentation of the content. See {@link https://docs.microsoft.com/en-us/office/dev/add-ins/onenote/onenote-add-ins-page-content#supported-html | Supported HTML} for the OneNote add-ins JavaScript API. + * @param html An HTML string that describes the visual presentation of the content. See {@link https://docs.microsoft.com/office/dev/add-ins/onenote/onenote-add-ins-page-content#supported-html | Supported HTML} for the OneNote add-ins JavaScript API. */ insertHtmlAsSibling(insertLocation: "Before" | "After", html: string): void; /** @@ -56336,7 +62607,7 @@ declare namespace OneNote { * * [Api set: OneNoteApi 1.1] * - * @param html The HTML string to append. See {@link https://docs.microsoft.com/en-us/office/dev/add-ins/onenote/onenote-add-ins-page-content#supported-html | Supported HTML} for the OneNote add-ins JavaScript API. + * @param html The HTML string to append. See {@link https://docs.microsoft.com/office/dev/add-ins/onenote/onenote-add-ins-page-content#supported-html | Supported HTML} for the OneNote add-ins JavaScript API. */ appendHtml(html: string): void; /** @@ -59499,16 +65770,16 @@ declare namespace OneNote { * @param batch - A function that takes in an OneNote.RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the OneNote application. Since the Office add-in and the OneNote application run in two different processes, the request context is required to get access to the OneNote object model from the add-in. */ function run(batch: (context: OneNote.RequestContext) => Promise): Promise; - /** - * Executes a batch script that performs actions on the OneNote object model, using the request context of a previously-created API object. - * @param object - A previously-created API object. The batch will use the same request context as the passed-in object, which means that any changes applied to the object will be picked up by "context.sync()". - * @param batch - A function that takes in an OneNote.RequestContext and returns a promise (typically, just the result of "context.sync()"). When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. - */ - function run(object: OfficeExtension.ClientObject, batch: (context: OneNote.RequestContext) => Promise): Promise; /** * Executes a batch script that performs actions on the OneNote object model, using the request context of previously-created API objects. * @param object - An array of previously-created API objects. The array will be validated to make sure that all of the objects share the same context. The batch will use this shared request context, which means that any changes applied to these objects will be picked up by "context.sync()". * @param batch - A function that takes in an OneNote.RequestContext and returns a promise (typically, just the result of "context.sync()"). When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. + */ + function run(objects: OfficeExtension.ClientObject[], batch: (context: OneNote.RequestContext) => Promise): Promise; + /** + * Executes a batch script that performs actions on the OneNote object model, using the request context of a previously-created API object. + * @param object - A previously-created API object. The batch will use the same request context as the passed-in object, which means that any changes applied to the object will be picked up by "context.sync()". + * @param batch - A function that takes in an OneNote.RequestContext and returns a promise (typically, just the result of "context.sync()"). When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. * * @remarks * In addition to this signature, the method also has the following signatures: @@ -59517,7 +65788,7 @@ declare namespace OneNote { * * `run(objects: OfficeExtension.ClientObject[], batch: (context: OneNote.RequestContext) => Promise): Promise;` */ - function run(objects: OfficeExtension.ClientObject[], batch: (context: OneNote.RequestContext) => Promise): Promise; + function run(object: OfficeExtension.ClientObject, batch: (context: OneNote.RequestContext) => Promise): Promise; } @@ -62062,16 +68333,16 @@ declare namespace Visio { * @param batch - A function that takes in an Visio.RequestContext and returns a promise (typically, just the result of "context.sync()"). When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. */ function run(object: OfficeExtension.ClientObject | OfficeExtension.EmbeddedSession, batch: (context: Visio.RequestContext) => Promise): Promise; - /** - * Executes a batch script that performs actions on the Visio object model, using the RequestContext of a previously-created object. When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. - * @param contextObject - A previously-created Visio.RequestContext. This context will get re-used by the batch function (instead of having a new context created). This means that the batch will be able to pick up changes made to existing API objects, if those objects were derived from this same context. - * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Visio application. Since the Office add-in and the Visio application run in two different processes, the RequestContext is required to get access to the Visio object model from the add-in. - */ - function run(contextObject: OfficeExtension.ClientRequestContext, batch: (context: Visio.RequestContext) => Promise): Promise; /** * Executes a batch script that performs actions on the Visio object model, using the request context of previously-created API objects. * @param objects - An array of previously-created API objects. The array will be validated to make sure that all of the objects share the same context. The batch will use this shared request context, which means that any changes applied to these objects will be picked up by "context.sync()". * @param batch - A function that takes in a Visio.RequestContext and returns a promise (typically, just the result of "context.sync()"). When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. + */ + function run(objects: OfficeExtension.ClientObject[], batch: (context: Visio.RequestContext) => Promise): Promise; + /** + * Executes a batch script that performs actions on the Visio object model, using the RequestContext of a previously-created object. When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. + * @param contextObject - A previously-created Visio.RequestContext. This context will get re-used by the batch function (instead of having a new context created). This means that the batch will be able to pick up changes made to existing API objects, if those objects were derived from this same context. + * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Visio application. Since the Office add-in and the Visio application run in two different processes, the RequestContext is required to get access to the Visio object model from the add-in. * * @remarks * In addition to this signature, the method also has the following signatures: @@ -62082,7 +68353,7 @@ declare namespace Visio { * * `run(objects: OfficeExtension.ClientObject[], batch: (context: Visio.RequestContext) => Promise): Promise;` */ - function run(objects: OfficeExtension.ClientObject[], batch: (context: Visio.RequestContext) => Promise): Promise; + function run(contextObject: OfficeExtension.ClientRequestContext, batch: (context: Visio.RequestContext) => Promise): Promise; } @@ -62106,4 +68377,4 @@ declare namespace Visio { //////////////////////////////////////////////////////////////// ////////////////////// End PowerPoint APIs ///////////////////// -//////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/types/office-runtime/index.d.ts b/types/office-runtime/index.d.ts index ae86c01bcb..81c145784b 100644 --- a/types/office-runtime/index.d.ts +++ b/types/office-runtime/index.d.ts @@ -123,3 +123,4 @@ declare namespace OfficeRuntime { onMessage?(message: string, dialog?: Dialog): void; } } + diff --git a/types/office-runtime/office-runtime-tests.ts b/types/office-runtime/office-runtime-tests.ts index f36d50f9af..e8d15137b8 100644 --- a/types/office-runtime/office-runtime-tests.ts +++ b/types/office-runtime/office-runtime-tests.ts @@ -4,6 +4,7 @@ Copyright (c) Microsoft Corporation */ OfficeRuntime.AsyncStorage.getItem("foo", () => { + // perform an action }); OfficeRuntime.AsyncStorage.getItem("foo").then(value => console.log(value)); diff --git a/types/office-runtime/tsconfig.json b/types/office-runtime/tsconfig.json index 36d2c95261..f98f2c1d1f 100644 --- a/types/office-runtime/tsconfig.json +++ b/types/office-runtime/tsconfig.json @@ -10,9 +10,8 @@ "strictNullChecks": false, "strictFunctionTypes": true, "baseUrl": "../", - "typeRoots": [ - "../" - ], + "typeRoots": ["../"], + "types": [], "noEmit": true, "forceConsistentCasingInFileNames": true, @@ -22,4 +21,5 @@ "index.d.ts", "office-runtime-tests.ts" ] -} \ No newline at end of file +} + diff --git a/types/office-runtime/tslint.json b/types/office-runtime/tslint.json index e60c15844f..bbefc944d9 100644 --- a/types/office-runtime/tslint.json +++ b/types/office-runtime/tslint.json @@ -1,3 +1,4 @@ { "extends": "dtslint/dt.json" -} \ No newline at end of file +} + diff --git a/types/openfin/_v2/api/application/application.d.ts b/types/openfin/_v2/api/application/application.d.ts new file mode 100644 index 0000000000..616501834d --- /dev/null +++ b/types/openfin/_v2/api/application/application.d.ts @@ -0,0 +1,223 @@ +import { EmitterBase, Base, Reply, RuntimeEvent } from '../base'; +import { Identity } from '../../identity'; +import { _Window } from '../window/window'; +import { Point } from '../system/point'; +import { MonitorInfo } from '../system/monitor'; +import Transport from '../../transport/transport'; +import Bounds from '../window/bounds'; +export interface TrayIconClickReply extends Point, Reply<'application', 'tray-icon-clicked'> { + button: number; + monitorInfo: MonitorInfo; +} +export interface ApplicationInfo { + initialOptions: object; + launchMode: string; + manifest: object; + manifestUrl: string; + parentUuid?: string; + runtime: object; +} +export declare class NavigationRejectedReply extends Reply<'window-navigation-rejected', void> { + sourceName: string; + url: string; +} +export interface ConfigInterface { + desktop?: boolean; + startMenu?: boolean; + systemStartup?: boolean; +} +export interface TrayInfo { + bounds: Bounds; + monitorInfo: MonitorInfo; + x: number; + y: number; +} +export default class ApplicationModule extends Base { + /** + * Returns an Application object that represents an existing application. + * @param { Identity } indentity + * @return {Promise.} + * @tutorial Application.wrap + */ + wrap(identity: Identity): Promise; + /** + * Creates a new Application. + * @param {*} appOptions + * @return {Promise.} + * @tutorial Application.create + */ + create(appOptions: any): Promise; + /** + * Returns an Application object that represents the current application + * @return {Promise.} + * @tutorial Application.getCurrent + */ + getCurrent(): Promise; + /** + * Retrieves application's manifest and returns a wrapped application. + * @param {string} manifestUrl - The URL of app's manifest. + * @return {Promise.} + * @tutorial Application.createFromManifest + */ + createFromManifest(manifestUrl: string): Promise; +} +/** + * @classdesc An object representing an application. Allows the developer to create, + * execute, show/close an application as well as listen to application events. + * @class + */ +export declare class Application extends EmitterBase { + identity: Identity; + _manifestUrl?: string; + private window; + constructor(wire: Transport, identity: Identity); + protected runtimeEventComparator: (listener: RuntimeEvent) => boolean; + private windowListFromIdentityList; + /** + * Determines if the application is currently running. + * @return {Promise.} + * @tutorial Application.isRunning + */ + isRunning(): Promise; + /** + * Closes the application and any child windows created by the application. + * @param { boolean } [force = false] Close will be prevented from closing when force is false and + * ‘close-requested’ has been subscribed to for application’s main window. + * @return {Promise.} + * @tutorial Application.close + */ + close(force?: boolean): Promise; + /** + * Retrieves an array of wrapped fin.Windows for each of the application’s child windows. + * @return {Promise.Array.<_Window>} + * @tutorial Application.getChildWindows + */ + getChildWindows(): Promise>; + /** + * Retrieves an array of active window groups for all of the application's windows. Each group is + * represented as an array of wrapped fin.Windows. + * @return {Promise.Array.Array.<_Window>} + * @tutorial Application.getGroups + */ + getGroups(): Promise>>; + /** + * Retrieves the JSON manifest that was used to create the application. Invokes the error callback + * if the application was not created from a manifest. + * @return {Promise.} + * @tutorial Application.getManifest + */ + getManifest(): Promise; + /** + * Retrieves UUID of the application that launches this application. Invokes the error callback + * if the application was created from a manifest. + * @return {Promise.} + * @tutorial Application.getParentUuid + */ + getParentUuid(): Promise; + /** + * Retrieves current application's shortcut configuration. + * @return {Promise.} + * @tutorial Application.getShortcuts + */ + getShortcuts(): Promise; + /** + * Returns an instance of the main Window of the application + * @return {Promise.<_Window>} + * @tutorial Application.getWindow + */ + getWindow(): Promise<_Window>; + /** + * Manually registers a user with the licensing service. The only data sent by this call is userName and appName. + * @param { string } userName - username to be passed to the RVM. + * @param { string } appName - app name to be passed to the RVM. + * @return {Promise.} + * @tutorial Application.registerUser + */ + registerUser(userName: string, appName: string): Promise; + /** + * Removes the application’s icon from the tray. + * @return {Promise.} + * @tutorial Application.removeTrayIcon + */ + removeTrayIcon(): Promise; + /** + * Restarts the application. + * @return {Promise.} + * @tutorial Application.restart + */ + restart(): Promise; + /** + * Runs the application. When the application is created, run must be called. + * @return {Promise.} + * @tutorial Application.run + */ + run(): Promise; + /** + * Instructs the RVM to schedule one restart of the application. + * @return {Promise.} + * @tutorial Application.scheduleRestart + */ + scheduleRestart(): Promise; + /** + * Adds a customizable icon in the system tray and notifies the application when clicked. + * @param { string } iconUrl Image URL to be used as the icon + * @return {Promise.} + * @tutorial Application.setTrayIcon + */ + setTrayIcon(iconUrl: string): Promise; + /** + * Sets new application's shortcut configuration. + * @param { Object } config New application's shortcut configuration. + * @param {Boolean} [config.desktop] - Enable/disable desktop shortcut. + * @param {Boolean} [config.startMenu] - Enable/disable start menu shortcut. + * @param {Boolean} [config.systemStartup] - Enable/disable system startup shortcut. + * @return {Promise.} + * @tutorial Application.setShortcuts + */ + setShortcuts(config: ConfigInterface): Promise; + /** + * @summary Retrieves information about the system tray. + * @desc The only information currently returned is the position and dimensions. + * @return {Promise.} + * @tutorial Application.getTrayIconInfo + */ + getTrayIconInfo(): Promise; + /** + * Closes the application by terminating its process. + * @return {Promise.} + * @tutorial Application.terminate + */ + terminate(): Promise; + /** + * Waits for a hanging application. This method can be called in response to an application + * "not-responding" to allow the application to continue and to generate another "not-responding" + * message after a certain period of time. + * @return {Promise.} + * @ignore + */ + wait(): Promise; + /** + * Retrieves information about the application. + * @return {Promise.} + * @tutorial Application.getInfo + */ + getInfo(): Promise; +} +export interface Application { + on(type: 'closed', listener: (data: Reply<'application', 'closed'>) => void): Promise; + on(type: 'initialized', listener: (data: Reply<'application', 'initialized'>) => void): Promise; + on(type: 'connected', listener: (data: Reply<'application', 'connected'>) => void): Promise; + on(type: 'crashed', listener: (data: Reply<'application', 'crashed'>) => void): Promise; + on(type: 'error', listener: (data: Reply<'application', 'error'>) => void): Promise; + on(type: 'not-responding', listener: (data: Reply<'application', 'not-responding'>) => void): Promise; + on(type: 'out-of-memory', listener: (data: Reply<'application', 'out-of-memory'>) => void): Promise; + on(type: 'responding', listener: (data: Reply<'application', 'responding'>) => void): Promise; + on(type: 'started', listener: (data: Reply<'application', 'started'>) => void): Promise; + on(type: 'run-requested', listener: (data: Reply<'application', 'run-requested'>) => void): Promise; + on(type: 'window-navigation-rejected', listener: (data: NavigationRejectedReply) => void): Promise; + on(type: 'window-created', listener: (data: Reply<'application', 'window-created'>) => void): Promise; + on(type: 'window-closed', listener: (data: Reply<'application', 'window-closed'>) => void): Promise; + on(type: 'tray-icon-clicked', listener: (data: TrayIconClickReply) => void): Promise; + on(type: 'removeListener', listener: (eventType: string) => void): Promise; + on(type: 'newListener', listener: (eventType: string) => void): Promise; +} diff --git a/types/openfin/_v2/api/base.d.ts b/types/openfin/_v2/api/base.d.ts new file mode 100644 index 0000000000..1f17e1f24f --- /dev/null +++ b/types/openfin/_v2/api/base.d.ts @@ -0,0 +1,43 @@ +/// +import Transport, { Message } from '../transport/transport'; +import { Identity } from '../identity'; +import { EventEmitter } from 'events'; +export interface RuntimeEvent extends Identity { + topic: string; + type: string | symbol; +} +export declare class Base { + wire: Transport; + constructor(wire: Transport); + private _topic; + protected topic: string; + readonly me: Identity; + protected isNodeEnvironment: () => boolean; + protected isOpenFinEnvironment: () => boolean; + protected runtimeEventComparator: (listener: RuntimeEvent) => boolean; +} +export declare class EmitterBase extends Base { + protected identity: Identity; + protected emitter: EventEmitter; + listeners: (event: string | symbol) => Function[]; + listenerCount: (type: string | symbol) => number; + constructor(wire: Transport); + emit: (eventName: string | symbol, ...args: any[]) => void; + protected onmessage: (message: Message) => boolean; + protected registerEventListener: (listener: RuntimeEvent) => Promise>; + protected deregisterEventListener: (listener: RuntimeEvent) => Promise>; + on(eventType: string, listener: (...args: any[]) => void): Promise; + addListener: (eventType: string, listener: (...args: any[]) => void) => Promise; + once(eventType: string, listener: (...args: any[]) => void): Promise; + prependListener(eventType: string, listener: (...args: any[]) => void): Promise; + prependOnceListener(eventType: string, listener: (...args: any[]) => void): Promise; + removeListener(eventType: string, listener: (...args: any[]) => void): Promise; + protected deregisterAllListeners: (eventType: string | symbol) => Promise>; + removeAllListeners(eventType?: string): Promise; +} +export declare class Reply implements Identity { + topic: TOPIC; + type: TYPE; + uuid: string; + name?: string; +} diff --git a/types/openfin/_v2/api/clipboard/clipboard.d.ts b/types/openfin/_v2/api/clipboard/clipboard.d.ts new file mode 100644 index 0000000000..11b466dea0 --- /dev/null +++ b/types/openfin/_v2/api/clipboard/clipboard.d.ts @@ -0,0 +1,70 @@ +import { Base } from '../base'; +import { WriteRequestType, WriteAnyRequestType } from './write-request'; +/** + * WriteRequestType interface + * @typedef { Object } WriteRequestType + * @property { string } name The name of the running application + * @property { string } uuid The uuid of the running application + */ +/** + * The Clipboard API allows reading and writing to the clipboard in multiple formats. + * @namespace +*/ +export default class Clipboard extends Base { + /** + * Writes data into the clipboard as plain text + * @param { WriteRequestType } writeObj This object is described in the WriteRequestType typeof + * @return {Promise.} + * @tutorial Clipboard.writeText + */ + writeText(writeObj: WriteRequestType): Promise; + /** + * Read the content of the clipboard as plain text + * @param { string } type Clipboard Type + * @return {Promise.} + * @tutorial Clipboard.readText + */ + readText(type?: string): Promise; + /** + * Writes data into the clipboard as Html + * @param { WriteRequestType } writeObj This object is described in the WriteRequestType typedef + * @return {Promise.} + * @tutorial Clipboard.writeHtml + */ + writeHtml(writeObj: WriteRequestType): Promise; + /** + * Read the content of the clipboard as Html + * @param { string } type Clipboard Type + * @return {Promise.} + * @tutorial Clipboard.readHtml + */ + readHtml(type?: string): Promise; + /** + * Writes data into the clipboard as Rtf + * @param { WriteRequestType } writeObj This object is described in the WriteRequestType typedef + * @return {Promise.} + * @tutorial Clipboard.writeRtf + */ + writeRtf(writeObj: WriteRequestType): Promise; + /** + * Read the content of the clipboard as Rtf + * @param { string } type Clipboard Type + * @return {Promise.} + * @tutorial Clipboard.readRtf + */ + readRtf(type?: string): Promise; + /** + * Writes data into the clipboard + * @param { WriteRequestType } writeObj This object is described in the WriteRequestType typedef + * @return {Promise.} + * @tutorial Clipboard.write + */ + write(writeObj: WriteAnyRequestType): Promise; + /** + * Reads available formats for the clipboard type + * @param { string } type Clipboard Type + * @return {Promise.Array.} + * @tutorial Clipboard.getAvailableFormats + */ + getAvailableFormats(type?: string): Promise>; +} diff --git a/types/openfin/_v2/api/clipboard/write-request.d.ts b/types/openfin/_v2/api/clipboard/write-request.d.ts new file mode 100644 index 0000000000..a2fc5c333e --- /dev/null +++ b/types/openfin/_v2/api/clipboard/write-request.d.ts @@ -0,0 +1,12 @@ +export interface WriteRequestType { + data: string; + type?: string; +} +export interface WriteAnyRequestType { + data: { + text?: string; + html?: string; + rtf?: string; + }; + type?: string; +} diff --git a/types/openfin/_v2/api/external-application/external-application.d.ts b/types/openfin/_v2/api/external-application/external-application.d.ts new file mode 100644 index 0000000000..2d1f46e0f3 --- /dev/null +++ b/types/openfin/_v2/api/external-application/external-application.d.ts @@ -0,0 +1,36 @@ +import { Base, EmitterBase, Reply } from '../base'; +import { Identity } from '../../identity'; +import Transport from '../../transport/transport'; +export interface ExternalApplicationInfo { + parent: Identity; +} +export default class ExternalApplicationModule extends Base { + /** + * Returns an External Application object that represents an existing external application. + * @param {string} uuid The UUID of the external application to be wrapped + * @return {Promise.} + */ + wrap(uuid: string): Promise; +} +/** + * @classdesc An ExternalApplication object representing an application. Allows + * the developer to create, execute, show and close an external application as + * well as listen to application events. + * @class + */ +export declare class ExternalApplication extends EmitterBase { + identity: Identity; + constructor(wire: Transport, identity: Identity); + /** + * Retrieves information about the external application. + * @return {Promise.} + * @tutorial ExternalApplication.getInfo + */ + getInfo(): Promise; +} +export interface ExternalApplication { + on(type: 'connected', listener: (data: Reply<'externalapplication', 'connected'>) => void): Promise; + on(type: 'disconnected', listener: (data: Reply<'externalapplication', 'disconnected'>) => void): Promise; + on(type: 'removeListener', listener: (eventType: string) => void): Promise; + on(type: 'newListener', listener: (eventType: string) => void): Promise; +} diff --git a/types/openfin/_v2/api/fin.d.ts b/types/openfin/_v2/api/fin.d.ts new file mode 100644 index 0000000000..1bec2ffb4f --- /dev/null +++ b/types/openfin/_v2/api/fin.d.ts @@ -0,0 +1,27 @@ +/// +import Transport from '../transport/transport'; +import { EventEmitter } from 'events'; +import System from './system/system'; +import _WindowModule from './window/window'; +import Application from './application/application'; +import InterApplicationBus from './interappbus/interappbus'; +import _NotificationModule from './notification/notification'; +import Clipbpard from './clipboard/clipboard'; +import ExternalApplication from './external-application/external-application'; +import _FrameModule from './frame/frame'; +import GlobalHotkey from './global-hotkey'; +import { Identity } from '../identity'; +export default class Fin extends EventEmitter { + private wire; + System: System; + Window: _WindowModule; + Application: Application; + InterApplicationBus: InterApplicationBus; + Notification: _NotificationModule; + Clipboard: Clipbpard; + ExternalApplication: ExternalApplication; + Frame: _FrameModule; + GlobalHotkey: GlobalHotkey; + readonly me: Identity; + constructor(wire: Transport); +} diff --git a/types/openfin/_v2/api/frame/frame.d.ts b/types/openfin/_v2/api/frame/frame.d.ts new file mode 100644 index 0000000000..4a5ab971de --- /dev/null +++ b/types/openfin/_v2/api/frame/frame.d.ts @@ -0,0 +1,51 @@ +import { Base, EmitterBase } from '../base'; +import { Identity } from '../../identity'; +import Transport from '../../transport/transport'; +export declare type EntityType = 'window' | 'iframe' | 'external connection' | 'unknown'; +export interface FrameInfo { + uuid: string; + name: string; + entityType: EntityType; + parent: Identity; +} +export default class _FrameModule extends Base { + /** + * Gets a reference to the specified frame. The frame does not have to exist + * @param {string} uuid - uuid of the frame you want to wrap + * @param {string} name - name of the frame you want to wrap + * @return {Promise.<_Frame>} + */ + wrap(uuid: string, name: string): Promise<_Frame>; + /** + * Get a reference to the current frame + * @return {Promise.<_Frame>} + */ + getCurrent(): Promise<_Frame>; +} +/** + * @classdesc Represents a way to interact with `iframes`. Facilitates discovery of current context + * (iframe or main window) as well as the ability to listen for frame-specific events. + * @class + * @alias Frame + */ +export declare class _Frame extends EmitterBase { + identity: Identity; + constructor(wire: Transport, identity: Identity); + /** + * Returns a frame info object for the represented frame + * @return {Promise.} + * @tutorial Frame.getInfo + */ + getInfo(): Promise; + /** + * Returns a frame info object representing the window that the referenced iframe is + * currently embedded in + * @return {Promise.} + * @tutorial Frame.getParentWindow + */ + getParentWindow(): Promise; +} +export interface _Frame { + on(type: 'connected', listener: (eventType: string) => void): Promise; + on(type: 'disconnected', listener: (eventType: string) => void): Promise; +} diff --git a/types/openfin/_v2/api/global-hotkey/index.d.ts b/types/openfin/_v2/api/global-hotkey/index.d.ts new file mode 100644 index 0000000000..148ddff7e9 --- /dev/null +++ b/types/openfin/_v2/api/global-hotkey/index.d.ts @@ -0,0 +1,33 @@ +import { EmitterBase } from '../base'; +import Transport from '../../transport/transport'; +/** + * The GlobalHotkey module can register/unregister a global hotkeys. + * @namespace + */ +export default class GlobalHotkey extends EmitterBase { + constructor(wire: Transport); + /** + * Registers a global hotkey with the operating system. + * @return {Promise.} + * @tutorial GlobalHotkey.register + */ + register(hotkey: string, listener: (...args: any[]) => void): Promise; + /** + * Unregisters a global hotkey with the operating system. + * @return {Promise.} + * @tutorial GlobalHotkey.unregister + */ + unregister(hotkey: string): Promise; + /** + * Unregisters all global hotkeys for the current application. + * @return {Promise.} + * @tutorial GlobalHotkey.unregisterAll + */ + unregisterAll(): Promise; + /** + * Checks if a given hotkey has been registered + * @return {Promise.} + * @tutorial GlobalHotkey.isRegistered + */ + isRegistered(hotkey: string): Promise; +} diff --git a/types/openfin/_v2/api/interappbus/channel/channel.d.ts b/types/openfin/_v2/api/interappbus/channel/channel.d.ts new file mode 100644 index 0000000000..1c9a502e12 --- /dev/null +++ b/types/openfin/_v2/api/interappbus/channel/channel.d.ts @@ -0,0 +1,31 @@ +import { Identity } from '../../../identity'; +import Transport, { Message } from '../../../transport/transport'; +export interface ProviderIdentity extends Identity { + channelId: string; + isExternal?: boolean; + channelName: string; +} +export declare type Action = (() => any) | ((payload: any) => any) | ((payload: any, id: ProviderIdentity) => any); +export declare type Middleware = (() => any) | ((action: string) => any) | ((action: string, payload: any) => any) | ((action: string, payload: any, id: ProviderIdentity) => any); +export interface ChannelMessagePayload extends Identity { + action: string; + payload: any; +} +export declare class ChannelBase { + protected subscriptions: any; + defaultAction: (action?: string, payload?: any, senderIdentity?: ProviderIdentity) => any; + private preAction; + private postAction; + private errorMiddleware; + private defaultSet; + protected send: (to: Identity, action: string, payload: any) => Promise>; + protected providerIdentity: ProviderIdentity; + constructor(providerIdentity: ProviderIdentity, send: Transport['sendAction']); + processAction(action: string, payload: any, senderIdentity: ProviderIdentity): Promise; + beforeAction(func: Action): void; + onError(func: (e: any, action: string, id: Identity) => any): void; + afterAction(func: Action): void; + remove(action: string): void; + setDefaultAction(func: (action?: string, payload?: any, senderIdentity?: ProviderIdentity) => any): void; + register(topic: string, listener: Action): boolean; +} diff --git a/types/openfin/_v2/api/interappbus/channel/client.d.ts b/types/openfin/_v2/api/interappbus/channel/client.d.ts new file mode 100644 index 0000000000..d1c128a349 --- /dev/null +++ b/types/openfin/_v2/api/interappbus/channel/client.d.ts @@ -0,0 +1,6 @@ +import { ChannelBase, ProviderIdentity } from './channel'; +import Transport from '../../../transport/transport'; +export declare class ChannelClient extends ChannelBase { + constructor(providerIdentity: ProviderIdentity, send: Transport['sendAction']); + dispatch(action: string, payload?: any): Promise; +} diff --git a/types/openfin/_v2/api/interappbus/channel/index.d.ts b/types/openfin/_v2/api/interappbus/channel/index.d.ts new file mode 100644 index 0000000000..1297d2c5ea --- /dev/null +++ b/types/openfin/_v2/api/interappbus/channel/index.d.ts @@ -0,0 +1,33 @@ +import { ChannelClient } from './client'; +import { Identity } from '../../../identity'; +import { ChannelProvider } from './provider'; +import { EmitterBase } from '../../base'; +import Transport, { Message, Payload } from '../../../transport/transport'; +import { ProviderIdentity } from './channel'; +export interface Options { + wait?: boolean; + uuid: string; + name?: string; + payload?: any; +} +export interface ChannelPayload { + payload: Payload; +} +export interface ChannelMessage { + senderIdentity: Identity; + ackToSender: any; + providerIdentity: Identity; + connectAction: boolean; +} +export declare class Channel extends EmitterBase { + private channelMap; + constructor(wire: Transport); + getAllChannels(): Promise; + onChannelConnect(listener: Function): Promise; + onChannelDisconnect(listener: Function): Promise; + connect(options: Options): Promise; + create(channelName?: string): Promise; + onmessage: (msg: Message) => boolean; + private processChannelMessage; + private processChannelConnection; +} diff --git a/types/openfin/_v2/api/interappbus/channel/provider.d.ts b/types/openfin/_v2/api/interappbus/channel/provider.d.ts new file mode 100644 index 0000000000..a869928ac2 --- /dev/null +++ b/types/openfin/_v2/api/interappbus/channel/provider.d.ts @@ -0,0 +1,13 @@ +import { ChannelBase, ProviderIdentity } from './channel'; +import Transport from '../../../transport/transport'; +export declare type ConnectionListener = (adapterIdentity: ProviderIdentity, connectionMessage?: any) => any; +export declare class ChannelProvider extends ChannelBase { + private connectListener; + private disconnectListener; + connections: ProviderIdentity[]; + constructor(providerIdentity: ProviderIdentity, send: Transport['sendAction']); + dispatch(to: ProviderIdentity, action: string, payload: any): Promise; + processConnection(senderId: ProviderIdentity, payload: any): Promise; + publish(action: string, payload: any): Promise[]; + onConnection(listener: ConnectionListener): void; +} diff --git a/types/openfin/_v2/api/interappbus/interappbus.d.ts b/types/openfin/_v2/api/interappbus/interappbus.d.ts new file mode 100644 index 0000000000..48aaf7430c --- /dev/null +++ b/types/openfin/_v2/api/interappbus/interappbus.d.ts @@ -0,0 +1,80 @@ +/// +import { Base } from '../base'; +import { Identity } from '../../identity'; +import Transport, { Message } from '../../transport/transport'; +import { EventEmitter } from 'events'; +import { Channel } from './channel/index'; +/** + * A messaging bus that allows for pub/sub messaging between different applications. + * @namespace +*/ +export default class InterApplicationBus extends Base { + Channel: Channel; + events: { + subscriberAdded: string; + subscriberRemoved: string; + }; + private refCounter; + protected emitter: EventEmitter; + on: any; + removeAllListeners: any; + constructor(wire: Transport); + /** + * Publishes a message to all applications running on OpenFin Runtime that + * are subscribed to the specified topic. + * @param { string } topic The topic on which the message is sent + * @param { any } message The message to be published. Can be either a primitive + * data type (string, number, or boolean) or composite data type (object, array) + * that is composed of other primitive or composite data types + * @return {Promise.} + * @tutorial InterApplicationBus.publish + */ + publish(topic: string, message: any): Promise; + /** + * Sends a message to a specific application on a specific topic. + * @param { object } destination The uuid of the application to which the message is sent + * @param { string } topic The topic on which the message is sent + * @param { any } message The message to be sent. Can be either a primitive data + * type (string, number, or boolean) or composite data type (object, array) that + * is composed of other primitive or composite data types + * @return {Promise.} + * @tutorial InterApplicationBus.send + */ + send(destination: Identity, topic: string, message: any): Promise; + /** + * Subscribes to messages from the specified application on the specified topic. + * If the subscription is for a uuid, [name], topic combination that has already + * been published to upon subscription you will receive the last 20 missed messages + * in the order they were published. + * @param { Identity } source This object is described in the Identity in the typedef + * @param { string } topic The topic on which the message is sent + * @param { function } listener A function that is called when a message has + * been received. It is passed the message, uuid and name of the sending application. + * The message can be either a primitive data type (string, number, or boolean) or + * composite data type (object, array) that is composed of other primitive or composite + * data types + * @return {Promise.} + * @tutorial InterApplicationBus.subcribe + */ + subscribe(source: Identity, topic: string, listener: any): Promise; + /** + * Unsubscribes to messages from the specified application on the specified topic. + * @param { Identity } source This object is described in the Identity in the typedef + * @param { string } topic The topic on which the message is sent + * @param { function } listener A callback previously registered with subscribe() + * @return {Promise.} + * @tutorial InterApplicationBus.unsubscribe + */ + unsubscribe(source: Identity, topic: string, listener: any): Promise; + private processMessage; + private emitSubscriverEvent; + protected createSubscriptionKey(uuid: string, name: string, topic: string): string; + protected onmessage(message: Message): boolean; +} +export declare class InterAppPayload { + sourceUuid: string; + sourceWindowName: string; + topic: string; + destinationUuid?: string; + message?: any; +} diff --git a/types/openfin/_v2/api/notification/notification.d.ts b/types/openfin/_v2/api/notification/notification.d.ts new file mode 100644 index 0000000000..8deec180ba --- /dev/null +++ b/types/openfin/_v2/api/notification/notification.d.ts @@ -0,0 +1,71 @@ +import { Base, EmitterBase } from '../base'; +import { Identity } from '../../identity'; +import Transport from '../../transport/transport'; +export declare class NotificationOptions { + url: string; + message: string; + timeout: string | number; + notificationId: number; + uuidOfProxiedApp: string; + ignoreMouseOver: boolean; + constructor(options: any, identity: Identity, notificationId: number); +} +export interface NotificationCallback { + message?: any; +} +/** + * @classdesc A Notification object represents a window on OpenFin Runtime which + * is shown briefly to the user on the bottom-right corner of the primary monitor. + * A notification is typically used to alert the user of some important event which + * requires his or her attention. Notifications are a child or your application that + * are controlled by the runtime. + * @class + * @alias Notification + */ +export declare class _Notification extends EmitterBase { + private listenerList; + private unhookAllListeners; + private buildLocalPayload; + protected options: NotificationOptions; + protected generalListener: (msg: any) => void; + protected notificationId: number; + protected onmessage: (message: any) => boolean; + constructor(wire: Transport, options: NotificationOptions); + url: string; + timeout: number | string; + message: any; + /** + * Invoked when the notification is shown + * @return {Promise.} + * @tutorial Notification.show + */ + show(): Promise; + /** + * Sends a message to the notification. + * @param { any } message The message to be sent to the notification. + * Can be either a primitive data type (string, number, or boolean) + * or composite data type (object, array) that is composed of other + * primitive or composite data types + * @return {Promise.} + * @tutorial Notification.sendMessage + */ + sendMessage(message: any): Promise; + /** + * Closes the notification + * @return {Promise.} + * @tutorial Notification.close + */ + close(): Promise; +} +export default class _NotificationModule extends Base { + private nextNoteId; + private genNoteId; + events: { + show: string; + close: string; + error: string; + click: string; + message: string; + }; + create(options: any): _Notification; +} diff --git a/types/openfin/_v2/api/system/application.d.ts b/types/openfin/_v2/api/system/application.d.ts new file mode 100644 index 0000000000..9d7ea09b67 --- /dev/null +++ b/types/openfin/_v2/api/system/application.d.ts @@ -0,0 +1,4 @@ +export interface ApplicationInfo { + isRunning: boolean; + uuid: string; +} diff --git a/types/openfin/_v2/api/system/clearCacheOption.d.ts b/types/openfin/_v2/api/system/clearCacheOption.d.ts new file mode 100644 index 0000000000..6bae8116b7 --- /dev/null +++ b/types/openfin/_v2/api/system/clearCacheOption.d.ts @@ -0,0 +1,6 @@ +export interface ClearCacheOption { + appcache?: boolean; + cache?: boolean; + cookies?: boolean; + localStorage?: boolean; +} diff --git a/types/openfin/_v2/api/system/cookie.d.ts b/types/openfin/_v2/api/system/cookie.d.ts new file mode 100644 index 0000000000..1d229232c6 --- /dev/null +++ b/types/openfin/_v2/api/system/cookie.d.ts @@ -0,0 +1,8 @@ +export interface CookieInfo { + name: string; + domain: string; + path: string; +} +export interface CookieOption { + name: string; +} diff --git a/types/openfin/_v2/api/system/crashReporterOption.d.ts b/types/openfin/_v2/api/system/crashReporterOption.d.ts new file mode 100644 index 0000000000..7d512fdd7b --- /dev/null +++ b/types/openfin/_v2/api/system/crashReporterOption.d.ts @@ -0,0 +1,4 @@ +export interface CrashReporterOption { + diagnosticMode: boolean; + isRunning?: boolean; +} diff --git a/types/openfin/_v2/api/system/download-asset.d.ts b/types/openfin/_v2/api/system/download-asset.d.ts new file mode 100644 index 0000000000..be513f5f0e --- /dev/null +++ b/types/openfin/_v2/api/system/download-asset.d.ts @@ -0,0 +1,18 @@ +export interface AppAssetInfo { + src: string; + alias: string; + version: string; + target?: string; + args?: string; + mandatory?: boolean; +} +export interface RuntimeDownloadOptions { + version: string; +} +export interface AppAssetRequest { + alias: string; +} +export interface RuntimeDownloadProgress { + downloadedBytes: number; + totalBytes: number; +} diff --git a/types/openfin/_v2/api/system/download-preload.d.ts b/types/openfin/_v2/api/system/download-preload.d.ts new file mode 100644 index 0000000000..a7e635bcb8 --- /dev/null +++ b/types/openfin/_v2/api/system/download-preload.d.ts @@ -0,0 +1,8 @@ +export interface DownloadPreloadOption { + url: string; +} +export interface DownloadPreloadInfo { + success: boolean; + url?: string; + error: string; +} diff --git a/types/openfin/_v2/api/system/entity.d.ts b/types/openfin/_v2/api/system/entity.d.ts new file mode 100644 index 0000000000..50011a64f3 --- /dev/null +++ b/types/openfin/_v2/api/system/entity.d.ts @@ -0,0 +1,11 @@ +import { Identity } from '../../identity'; +export interface Entity { + type: string; + uuid: string; +} +export interface EntityInfo { + name: string; + uuid: string; + parent: Identity; + entityType: string; +} diff --git a/types/openfin/_v2/api/system/external-process.d.ts b/types/openfin/_v2/api/system/external-process.d.ts new file mode 100644 index 0000000000..8a68f1eae3 --- /dev/null +++ b/types/openfin/_v2/api/system/external-process.d.ts @@ -0,0 +1,22 @@ +export interface ExternalProcessRequestType { + path: string; + arguments: string; + listener: LaunchExternalProcessListener; +} +export interface ExitCode { + topic: string; + uuid: string; + exitCode: number; +} +export interface LaunchExternalProcessListener { + (code: ExitCode): void; +} +export interface TerminateExternalRequestType { + uuid: string; + timeout: number; + killTree: boolean; +} +export interface ExternalConnection { + token: string; + uuid: string; +} diff --git a/types/openfin/_v2/api/system/host-specs.d.ts b/types/openfin/_v2/api/system/host-specs.d.ts new file mode 100644 index 0000000000..2c5a134aea --- /dev/null +++ b/types/openfin/_v2/api/system/host-specs.d.ts @@ -0,0 +1,22 @@ +export interface Time { + user: number; + nice: number; + sys: number; + idle: number; + irq: number; +} +export interface CpuInfo { + model: string; + speed: number; + times: Time; +} +export interface GpuInfo { + name: string; +} +export interface HostSpecs { + cpu: CpuInfo[]; + memory: number; + arch: string; + name: string; + gpu: GpuInfo; +} diff --git a/types/openfin/_v2/api/system/log.d.ts b/types/openfin/_v2/api/system/log.d.ts new file mode 100644 index 0000000000..9b03b28c57 --- /dev/null +++ b/types/openfin/_v2/api/system/log.d.ts @@ -0,0 +1,11 @@ +export interface GetLogRequestType { + name: string; + endFile?: string; + sizeLimit?: number; +} +export interface LogInfo { + name: string; + size: number; + date: string; +} +export declare type LogLevel = 'verbose' | 'info' | 'warning' | 'error' | 'fatal'; diff --git a/types/openfin/_v2/api/system/monitor.d.ts b/types/openfin/_v2/api/system/monitor.d.ts new file mode 100644 index 0000000000..ea4aed799c --- /dev/null +++ b/types/openfin/_v2/api/system/monitor.d.ts @@ -0,0 +1,39 @@ +import { Point } from './point'; +export interface MonitorInfo { + deviceScaleFactor: number; + dpi: Point; + nonPrimaryMonitors: Array; + primaryMonitor: MonitorDetails; + reason: string; + taskBar: TaskBar; + virtualScreen: DipRect; +} +export interface MonitorDetails { + available: DipScaleRects; + availableRect: Rect; + deviceId: string; + displayDeviceActive: boolean; + deviceScaleFactor: number; + monitorRect: Rect; + name: number; + dpi: Point; + monitor: DipScaleRects; +} +export interface Rect { + bottom: number; + left: number; + right: number; + top: number; +} +export interface DipRect extends Rect { + dipRect: Rect; + scaledRect: Rect; +} +export interface DipScaleRects { + dipRect: Rect; + scaledRect: Rect; +} +export interface TaskBar extends DipScaleRects { + edge: string; + rect: Rect; +} diff --git a/types/openfin/_v2/api/system/point.d.ts b/types/openfin/_v2/api/system/point.d.ts new file mode 100644 index 0000000000..b9830ce514 --- /dev/null +++ b/types/openfin/_v2/api/system/point.d.ts @@ -0,0 +1,8 @@ +export interface Point { + x: number; + y: number; +} +export interface PointTopLeft { + top: number; + left: number; +} diff --git a/types/openfin/_v2/api/system/process.d.ts b/types/openfin/_v2/api/system/process.d.ts new file mode 100644 index 0000000000..8a513ceecd --- /dev/null +++ b/types/openfin/_v2/api/system/process.d.ts @@ -0,0 +1,15 @@ +export interface ProcessInfo { + cpuUsage: number; + name: string; + nonPagedPoolUsage: number; + pageFaultCount: number; + pagedPoolUsage: number; + pagefileUsage: number; + peakNonPagedPoolUsage: number; + peakPagedPoolUsage: number; + peakPagefileUsage: number; + peakWorkingSetSize: number; + processId: number; + uuid: string; + workingSetSize: number; +} diff --git a/types/openfin/_v2/api/system/proxy.d.ts b/types/openfin/_v2/api/system/proxy.d.ts new file mode 100644 index 0000000000..597afa6548 --- /dev/null +++ b/types/openfin/_v2/api/system/proxy.d.ts @@ -0,0 +1,14 @@ +export interface ProxyInfo { + config: ProxyConfig; + system: { + autoConfigUrl: string; + bypass: ''; + enabled: boolean; + proxy: string; + }; +} +export interface ProxyConfig { + proxyAddress: string; + proxyPort: number; + type: string; +} diff --git a/types/openfin/_v2/api/system/registry-info.d.ts b/types/openfin/_v2/api/system/registry-info.d.ts new file mode 100644 index 0000000000..a48ed34959 --- /dev/null +++ b/types/openfin/_v2/api/system/registry-info.d.ts @@ -0,0 +1,7 @@ +export interface RegistryInfo { + data: any; + rootKey: string; + subkey: string; + type: string; + value: string; +} diff --git a/types/openfin/_v2/api/system/runtime-info.d.ts b/types/openfin/_v2/api/system/runtime-info.d.ts new file mode 100644 index 0000000000..1508f87ef3 --- /dev/null +++ b/types/openfin/_v2/api/system/runtime-info.d.ts @@ -0,0 +1,7 @@ +export interface RuntimeInfo { + architecture: string; + manifestUrl: string; + port: number; + securityRealm?: string; + version: string; +} diff --git a/types/openfin/_v2/api/system/rvm.d.ts b/types/openfin/_v2/api/system/rvm.d.ts new file mode 100644 index 0000000000..42fc0b94db --- /dev/null +++ b/types/openfin/_v2/api/system/rvm.d.ts @@ -0,0 +1,5 @@ +export interface RVMInfo { + action: string; + 'start-time': string; + version: string; +} diff --git a/types/openfin/_v2/api/system/system.d.ts b/types/openfin/_v2/api/system/system.d.ts new file mode 100644 index 0000000000..8c0bc7d3b6 --- /dev/null +++ b/types/openfin/_v2/api/system/system.d.ts @@ -0,0 +1,475 @@ +import { EmitterBase } from '../base'; +import { ApplicationInfo } from './application'; +import { WindowInfo } from './window'; +import { Identity } from '../../identity'; +import { MonitorInfo } from './monitor'; +import { PointTopLeft } from './point'; +import { GetLogRequestType, LogInfo, LogLevel } from './log'; +import { ProxyInfo, ProxyConfig } from './proxy'; +import { ProcessInfo } from './process'; +import { AppAssetInfo, AppAssetRequest, RuntimeDownloadOptions, RuntimeDownloadProgress } from './download-asset'; +import { RVMInfo } from './rvm'; +import { RuntimeInfo } from './runtime-info'; +import { Entity, EntityInfo } from './entity'; +import { HostSpecs } from './host-specs'; +import { ExternalProcessRequestType, TerminateExternalRequestType, ExternalConnection } from './external-process'; +import Transport from '../../transport/transport'; +import { CookieInfo, CookieOption } from './cookie'; +import { RegistryInfo } from './registry-info'; +import { DownloadPreloadOption, DownloadPreloadInfo } from './download-preload'; +import { ClearCacheOption } from './clearCacheOption'; +import { CrashReporterOption } from './crashReporterOption'; +/** + * AppAssetInfo interface + * @typedef { Object } AppAssetInfo + * @property { string } src The URL to a zip file containing the package files (executables, dlls, etc…) + * @property { string } alias The name of the asset + * @property { string } version The version of the package + * @property { string } target Specify default executable to launch. This option can be overridden in launchExternalProcess + * @property { args } args The default command line arguments for the aforementioned target. + * @property { boolean } mandatory When set to true, the app will fail to load if the asset cannot be downloaded. + * When set to false, the app will continue to load if the asset cannot be downloaded. (Default: true) + */ +/** + * AppAssetRequest interface + * @typedef { Object } AppAssetRequest + * @property { string } alias The name of the asset + */ +/** + * CookieInfo interface + * @typedef { Object } CookieInfo + * @property { string } name The name of the cookie + * @property { string } domain The domain of the cookie + * @property { string } path The path of the cookie + */ +/** + * CookieOption interface + * @typedef { Object } CookieOption + * @property { string } name The name of the cookie + */ +/** + * ExternalConnection interface + * @typedef { Object } ExternalConnection + * @property { string } token The token to broker an external connection + * @property { string } uuid The uuid of the external connection + */ +/** +* ExternalProcessRequestType interface +* @typedef { Object } ExternalProcessRequestType +* @property { string } path The file path to where the running application resides +* @property { string } arguments The argument passed to the running application +* @property { Object } listener This is described in the {LaunchExternalProcessListner} type definition +*/ +/** + * Entity interface + * @typedef { Object } Entity + * @property { string } type The type of the entity + * @property { string } uuid The uuid of the entity + */ +/** + * EntityInfo interface + * @typedef { Object } EntityInfo + * @property { string } name The name of the entity + * @property { string } uuid The uuid of the entity + * @property { Identity } parent The parent of the entity + * @property { string } entityType The type of the entity + */ +/** +* GetLogRequestType interface +* @typedef { Object } GetLogRequestType +* @property { string } name The name of the running application +* @property { number } endFile The file length of the log file +* @property { number } sizeLimit The set size limit of the log file +*/ +/** + * Identity interface + * @typedef { Object } Identity + * @property { string } name The name of the application + * @property { string } uuid The uuid of the application + */ +/** + * @typedef { verbose | info | warning | error | fatal } LogLevel + * @summary Log verbosity levels. + * @desc Describes the minimum level (inclusive) above which logs will be written + * + * @property { string } verbose all logs written + * @property { string } info info and above + * @property { string } warning warning and above + * @property { string } error error and above + * @property { string } fatal fatal only, indicates a crash is imminent + */ +/** + * ProxyConfig interface + * @typedef { Object } ProxyConfig + * @property { numder } proxyPort The port number of the running application + * @property { string } proxyAddress The address of the running application + * @property { string } type + */ +/** + * RegistryInfo interface + * @typedef { Object } RegistryInfo + * @property { any } data The registry data + * @property { string } rootKey The registry root key + * @property { string } subkey The registry key + * @property { string } type The registry type + * @property { string } value The registry value name + */ +/** + * RuntimeDownloadOptions interface + * @typedef { Object } RuntimeDownloadOptions + * @desc These are the options object required by the downloadRuntime function. + * @property { string } version The given version to download + */ +/** + * TerminateExternalRequestType interface + * @typedef { Object } TerminateExternalRequestType + * @property { string } uuid The uuid of the running application + * @property { number } timeout Time out period before the running application terminates + * @property { boolean } killtree Value to terminate the running application + */ +/** + * DownloadPreloadOption interface + * @typedef { Object } DownloadPreloadOption + * @desc These are the options object required by the downloadPreloadScripts function + * @property { string } url url to the preload script + */ +/** + * DownloadPreloadInfo interface + * @typedef { Object } DownloadPreloadInfo + * @desc downloadPreloadScripts function return value + * @property { string } url url to the preload script + * @property { string } error error during preload script acquisition + * @property { boolean } succeess download operation success + */ +/** + * @typedef { Object } ClearCacheOption + * @summary Clear cache options. + * @desc These are the options required by the clearCache function. + * + * @property {boolean} appcache html5 application cache + * @property {boolean} cache browser data cache for html files and images + * @property {boolean} cookies browser cookies + * @property {boolean} localStorage browser data that can be used across sessions + */ +/** +* CrashReporterOption interface +* @typedef { Object } CrashReporterOption +* @property { boolean } diagnosticMode In diagnostic mode the crash reporter will send diagnostic logs to +* the OpenFin reporting service on runtime shutdown +* @property { boolean } isRunning check if it's running +*/ +/** + * An object representing the core of OpenFin Runtime. Allows the developer + * to perform system-level actions, such as accessing logs, viewing processes, + * clearing the cache and exiting the runtime. + * @namespace + */ +export default class System extends EmitterBase { + constructor(wire: Transport); + /** + * Returns the version of the runtime. The version contains the major, minor, + * build and revision numbers. + * @return {Promise.} + * @tutorial System.getVersion + */ + getVersion(): Promise; + /** + * Clears cached data containing application resource + * files (images, HTML, JavaScript files), cookies, and items stored in the + * Local Storage. + * @param { ClearCacheOption } options - See tutorial for more details. + * @return {Promise.} + * @tutorial System.clearCache + */ + clearCache(options: ClearCacheOption): Promise; + /** + * Clears all cached data when OpenFin Runtime exits. + * @return {Promise.} + * @tutorial System.deleteCacheOnExit + */ + deleteCacheOnExit(): Promise; + /** + * Exits the Runtime. + * @return {Promise.} + * @tutorial System.exit + */ + exit(): Promise; + /** + * Writes any unwritten cookies data to disk. + * @return {Promise.} + * @tutorial System.flushCookieStore + */ + flushCookieStore(): Promise; + /** + * Retrieves an array of data (name, ids, bounds) for all application windows. + * @return {Promise.Array.} + * @tutorial System.getAllWindows + */ + getAllWindows(): Promise>; + /** + * Retrieves an array of data for all applications. + * @return {Promise.Array.} + * @tutorial System.getAllApplications + */ + getAllApplications(): Promise>; + /** + * Retrieves the command line argument string that started OpenFin Runtime. + * @return {Promise.} + * @tutorial System.getCommandLineArguments + */ + getCommandLineArguments(): Promise; + /** + * Get the current state of the crash reporter. + * @return {Promise.} + * @tutorial System.getCrashReporterState + */ + getCrashReporterState(): Promise; + /** + * Returns a unique identifier (UUID) for the machine (SHA256 hash of the system's MAC address). + * This call will return the same value on subsequent calls on the same machine(host). + * The values will be different on different machines, and should be considered globally unique. + * @return {Promise.} + * @tutorial System.getDeviceId + */ + getDeviceId(): Promise; + /** + * Start the crash reporter for the browser process if not already running. + * You can optionally specify `diagnosticMode` to have the logs sent to + * OpenFin on runtime close + * + * @param { CrashReporterOption } options - configure crash reporter + * @return {Promise.} + * @tutorial System.startCrashReporter + */ + startCrashReporter(options: CrashReporterOption): Promise; + /** + * Returns a hex encoded hash of the mac address and the currently logged in user name + * @return {Promise.} + * @tutorial System.getDeviceUserId + */ + getDeviceUserId(): Promise; + /** + * Retrieves a frame info object for the uuid and name passed in + * @param { string } uuid - The UUID of the target. + * @param { string } name - The name of the target. + * @return {Promise.} + * @tutorial System.getEntityInfo + */ + getEntityInfo(uuid: string, name: string): Promise; + /** + * Gets the value of a given environment variable on the computer on which the runtime is installed + * @return {Promise.} + * @tutorial System.getEnvironmentVariable + */ + getEnvironmentVariable(envName: string): Promise; + /** + * Get current focused window. + * @return {Promise.} + * @tutorial System.getFocusedWindow + */ + getFocusedWindow(): Promise; + /** + * Retrieves the contents of the log with the specified filename. + * @param { GetLogRequestType } options A object that id defined by the GetLogRequestType interface + * @return {Promise.} + * @tutorial System.getLog + */ + getLog(options: GetLogRequestType): Promise; + /** + * Returns the minimum (inclusive) logging level that is currently being written to the log. + * @return {Promise.} + * @tutorial System.getMinLogLevel + */ + getMinLogLevel(): Promise; + /** + * Retrieves an array containing information for each log file. + * @return {Promise.Array} + * @tutorial System.getLogList + */ + getLogList(): Promise>; + /** + * Retrieves an object that contains data about the monitor setup of the + * computer that the runtime is running on. + * @return {Promise.} + * @tutorial System.getMonitorInfo + */ + getMonitorInfo(): Promise; + /** + * Returns the mouse in virtual screen coordinates (left, top). + * @return {Promise.} + * @tutorial System.getMousePosition + */ + getMousePosition(): Promise; + /** + * Retrieves an array of all of the runtime processes that are currently + * running. Each element in the array is an object containing the uuid + * and the name of the application to which the process belongs. + * @return {Promise.Array.} + * @tutorial System.getProcessList + */ + getProcessList(): Promise>; + /** + * Retrieves the Proxy settings. + * @return {Promise.} + * @tutorial System.getProxySettings + */ + getProxySettings(): Promise; + /** + * Returns information about the running Runtime in an object. + * @return {Promise.} + * @tutorial System.getRuntimeInfo + */ + getRuntimeInfo(): Promise; + /** + * Returns information about the running RVM in an object. + * @return {Promise.} + * @tutorial System.getRvmInfo + */ + getRvmInfo(): Promise; + /** + * Retrieves system information. + * @return {Promise.} + * @tutorial System.getHostSpecs + */ + getHostSpecs(): Promise; + /** + * Runs an executable or batch file. + * @param { ExternalProcessRequestType } options A object that is defined in the ExternalProcessRequestType interface + * @return {Promise.} + * @tutorial System.launchExternalProcess + */ + launchExternalProcess(options: ExternalProcessRequestType): Promise; + /** + * Monitors a running process. + * @param { number } pid See tutorial for more details + * @return {Promise.} + * @tutorial System.monitorExternalProcess + */ + monitorExternalProcess(pid: number): Promise; + /** + * Writes the passed message into both the log file and the console. + * @param { string } level The log level for the entry. Can be either "info", "warning" or "error" + * @param { string } message The log message text + * @return {Promise.} + * @tutorial System.log + */ + log(level: string, message: string): Promise; + /** + * Opens the passed URL in the default web browser. + * @param { string } url The URL to open + * @return {Promise.} + * @tutorial System.openUrlWithBrowser + */ + openUrlWithBrowser(url: string): Promise; + /** + * Removes the process entry for the passed UUID obtained from a prior call + * of fin.System.launchExternalProcess(). + * @param { string } uuid The UUID for a process obtained from a prior call to fin.desktop.System.launchExternalProcess() + * @return {Promise.} + * @tutorial System.releaseExternalProcess + */ + releaseExternalProcess(uuid: string): Promise; + /** + * Shows the Chromium Developer Tools for the specified window + * @param { Identity } identity This is a object that is defined by the Identity interface + * @return {Promise.} + * @tutorial System.showDeveloperTools + */ + showDeveloperTools(identity: Identity): Promise; + /** + * Attempt to close an external process. The process will be terminated if it + * has not closed after the elapsed timeout in milliseconds. + * @param { TerminateExternalRequestType } options A object defined in the TerminateExternalRequestType interface + * @return {Promise.} + * @tutorial System.terminateExternalProcess + */ + terminateExternalProcess(options: TerminateExternalRequestType): Promise; + /** + * Update the OpenFin Runtime Proxy settings. + * @param { ProxyConfig } options A config object defined in the ProxyConfig interface + * @return {Promise.} + * @tutorial System.updateProxySettings + */ + updateProxySettings(options: ProxyConfig): Promise; + /** + * Downloads the given application asset + * @param { AppAssetInfo } appAsset App asset object + * @return {Promise.} + * @tutorial System.downloadAsset + */ + downloadAsset(appAsset: AppAssetInfo, progressListener: (progress: RuntimeDownloadProgress) => void): Promise; + /** + * Downloads a version of the runtime. + * @param { RuntimeDownloadOptions } options - Download options. + * @param {Function} [progressListener] - called as the runtime is downloaded with progress information. + * @return {Promise.} + * @tutorial System.downloadRuntime + */ + downloadRuntime(options: RuntimeDownloadOptions, progressListener: (progress: RuntimeDownloadProgress) => void): Promise; + /** + * Download preload scripts from given URLs + * @param {DownloadPreloadOption[]} scripts - URLs of preload scripts. See tutorial for more details. + * @return {Promise.Array} + * @tutorial System.downloadPreloadScripts + */ + downloadPreloadScripts(scripts: Array): Promise>; + /** + * Retrieves an array of data (name, ids, bounds) for all application windows. + * @return {Promise.Array.} + * @tutorial System.getAllExternalApplications + */ + getAllExternalApplications(): Promise>; + /** + * Retrieves app asset information. + * @param { AppAssetRequest } options + * @return {Promise.} + * @tutorial System.getAppAssetInfo + */ + getAppAssetInfo(options: AppAssetRequest): Promise; + /** + * Get additional info of cookies. + * @param { CookieOption } options - See tutorial for more details. + * @return {Promise.Array.} + * @tutorial System.getCookies + */ + getCookies(options: CookieOption): Promise>; + /** + * Set the minimum log level above which logs will be written to the OpenFin log + * @param { LogLevel } The minimum level (inclusive) above which all calls to log will be written + * @return {Promise.} + * @tutorial System.setMinLogLevel + */ + setMinLogLevel(level: LogLevel): Promise; + /** + * Retrieves the UUID of the computer on which the runtime is installed + * @param { string } uuid The uuid of the running application + * @return {Promise.} + * @tutorial System.resolveUuid + */ + resolveUuid(uuid: string): Promise; + /** + * Retrieves an array of data for all external applications + * @param { Identity } requestingIdentity This object is described in the Identity typedef + * @param { any } data Any data type to pass to the method + * @return {Promise.} + * @ignore + */ + executeOnRemote(requestingIdentity: Identity, data: any): Promise; + /** + * Reads the specifed value from the registry. + * @param { string } rootKey - The registry root key. + * @param { string } subkey - The registry key. + * @param { string } value - The registry value name. + * @return {Promise.} + * @tutorial System.readRegistryValue + */ + readRegistryValue(rootKey: string, subkey: string, value: string): Promise; + /** + * This function call will register a unique id and produce a token. + * The token can be used to broker an external connection. + * @param { string } uuid - A UUID for the remote connection. + * @return {Promise.} + * @tutorial System.registerExternalConnection + */ + registerExternalConnection(uuid: string): Promise; +} diff --git a/types/openfin/_v2/api/system/window.d.ts b/types/openfin/_v2/api/system/window.d.ts new file mode 100644 index 0000000000..886084fad6 --- /dev/null +++ b/types/openfin/_v2/api/system/window.d.ts @@ -0,0 +1,14 @@ +export interface WindowInfo { + uuid: string; + mainWindow: WindowDetail; + childWindows: Array; +} +export interface WindowDetail { + name: string; + top: number; + right: number; + bottom: number; + height: number; + width: number; + left: number; +} diff --git a/types/openfin/_v2/api/window/bounds-changed.d.ts b/types/openfin/_v2/api/window/bounds-changed.d.ts new file mode 100644 index 0000000000..f7801da3fc --- /dev/null +++ b/types/openfin/_v2/api/window/bounds-changed.d.ts @@ -0,0 +1,14 @@ +import { Reply } from '../base'; +export default class BoundsChangedReply extends Reply<'window', 'bounds-changed'> { + changeType: BoundsChangeType; + deferred: boolean; + height: number; + width: number; + top: number; + left: number; +} +export declare const enum BoundsChangeType { + POSITION = 0, + SIZE = 1, + POSITION_AND_SIZE = 2 +} diff --git a/types/openfin/_v2/api/window/bounds.d.ts b/types/openfin/_v2/api/window/bounds.d.ts new file mode 100644 index 0000000000..40822c4aa3 --- /dev/null +++ b/types/openfin/_v2/api/window/bounds.d.ts @@ -0,0 +1,9 @@ +interface Bounds { + height: number; + width: number; + top: number; + left: number; + right?: number; + bottom?: number; +} +export default Bounds; diff --git a/types/openfin/_v2/api/window/transition.d.ts b/types/openfin/_v2/api/window/transition.d.ts new file mode 100644 index 0000000000..c16440c80d --- /dev/null +++ b/types/openfin/_v2/api/window/transition.d.ts @@ -0,0 +1,24 @@ +export interface TransitionBase { + duration: number; + relative?: boolean; +} +export interface Opacity extends TransitionBase { + opacity: number; +} +export interface Position extends TransitionBase { + left: number; + top: number; +} +export interface Size extends TransitionBase { + width: number; + height: number; +} +export interface TransitionOptions { + interrupt: boolean; + tween?: string; +} +export interface Transition { + opacity?: Opacity; + position?: Position; + size?: Size; +} diff --git a/types/openfin/_v2/api/window/window.d.ts b/types/openfin/_v2/api/window/window.d.ts new file mode 100644 index 0000000000..8d597a6446 --- /dev/null +++ b/types/openfin/_v2/api/window/window.d.ts @@ -0,0 +1,759 @@ +import { Base, EmitterBase, RuntimeEvent } from '../base'; +import { Identity } from '../../identity'; +import Bounds from './bounds'; +import BoundsChangedReply from './bounds-changed'; +import { Transition, TransitionOptions } from './transition'; +import { Application } from '../application/application'; +import Transport from '../../transport/transport'; +export default class _WindowModule extends Base { + private instance; + /** + * Returns a Window object that represents an existing window. + * @param { Identity } indentity + * @return {Promise.<_Window>} + * @tutorial Window.wrap + */ + wrap(identity: Identity): Promise<_Window>; + /** + * Creates a new Window. + * @param { * } options - Window creation options + * @return {Promise.<_Window>} + * @tutorial Window.create + */ + create(options: any): Promise<_Window>; + /** + * Returns a Window object that represents the current window + * @return {Promise.} + * @tutorial window.getCurrent + */ + getCurrent(): Promise<_Window>; +} +export interface CloseEventShape { + name: string; + uuid: string; + type: string; + topic: string; +} +export interface WindowInfo { + canNavigateBack: boolean; + canNavigateForward: boolean; + preloadScripts: Array; + title: string; + url: string; +} +export interface FrameInfo { + name: string; + uuid: string; + entityType: string; + parent?: Identity; +} +/** + * @typedef {object} Transition + * @property {Opacity} opacity - The Opacity transition + * @property {Position} position - The Position transition + * @property {Size} size - The Size transition +*/ +/** + * @typedef {object} TransitionOptions + * @property {boolean} interrupt - This option interrupts the current animation. When false it pushes +this animation onto the end of the animation queue. + * @property {boolean} relative - Treat 'opacity' as absolute or as a delta. Defaults to false. + */ +/** + * @typedef {object} Size + * @property {number} duration - The total time in milliseconds this transition should take. + * @property {boolean} relative - Treat 'opacity' as absolute or as a delta. Defaults to false. + * @property {number} width - Optional if height is present. Defaults to the window's current width. + * @property {number} height - Optional if width is present. Defaults to the window's current height. + */ +/** + * @typedef {object} Position + * @property {number} duration - The total time in milliseconds this transition should take. + * @property {boolean} relative - Treat 'opacity' as absolute or as a delta. Defaults to false. + * @property {number} left - Defaults to the window's current left position in virtual screen coordinates. + * @property {number} top - Defaults to the window's current top position in virtual screen coordinates. + */ +/** + * @typedef {object} Opacity + * @property {number} duration - The total time in milliseconds this transition should take. + * @property {boolean} relative - Treat 'opacity' as absolute or as a delta. Defaults to false. + * @property {number} opacity - This value is clamped from 0.0 to 1.0. +*/ +/** + * Bounds is a interface that has the properties of height, + * width, left, top which are all numbers + * @typedef { Object } Bounds + * @property { number } height Get the application height bound + * @property { number } width Get the application width bound + * @property { number } top Get the application top bound + * @property { number } left Get the application left bound + * @property { number } right Get the application right bound + * @property { number } bottom Get the application bottom bound + */ +/** + * @classdesc A basic window that wraps a native HTML window. Provides more fine-grained + * control over the window state such as the ability to minimize, maximize, restore, etc. + * By default a window does not show upon instantiation; instead the window's show() method + * must be invoked manually. The new window appears in the same process as the parent window. + * @class + * @alias Window +*/ +export declare class _Window extends EmitterBase { + identity: Identity; + /** + * Raised when a window within this application requires credentials from the user. + * + * @event Window#auth-requested + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {object} authInfo + * @property {string} authInfo.host - Host server. + * @property {boolean} authInfo.isProxy - Indicates if the request involves a proxy. + * @property {number} authInfo.port - Port number. + * @property {string} authInfo.realm - Authentication request realm. + * @property {string} authInfo.scheme - Authentication scheme. + */ + /** + * Raised when a window loses focus. + * + * @event Window#blurred + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised after changes in a window's size and/or position. + * + * @event Window#bounds-changed + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {number} changeType - Describes what kind of change occurred. + 0 means a change in position. + 1 means a change in size. + 2 means a change in position and size. + * @property {string} deferred - Indicated whether pending changes have been applied. + * @property {number} height - New height of the window. + * @property {number} left - New left most coordinate of the window. + * @property {number} top - New top most coordinate of the window. + * @property {number} width - New width of the window. + */ + /** + * Raised when a window has been prevented from closing. A window will be prevented from closing by default, + either through the API or by a user when ‘close-requested’ has been subscribed to and the Window.close(force) flag is false. + * + * @event Window#close-requested + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised when a window has closed. + * + * @event Window#closed + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised when a window has crashed. + * + * @event Window#crashed + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised when the frame is disabled after all prevent user changes in window's size and/or position have completed. + * + * @event Window#disabled-frame-bounds-changed + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {number} changeType - Describes what kind of change occurred. + 0 means a change in position. + 1 means a change in size. + 2 means a change in position and size. + * @property {string} deferred - Indicated whether pending changes have been applied. + * @property {number} height - New height of the window. + * @property {number} left - New left most coordinate of the window. + * @property {number} top - New top most coordinate of the window. + * @property {number} width - New width of the window. + */ + /** + * Raised when the frame is disabled during prevented user changes to a window's size and/or position. + * + * @event Window#disabled-frame-bounds-changing + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {number} changeType - Describes what kind of change occurred. + 0 means a change in position. + 1 means a change in size. + 2 means a change in position and size. + * @property {string} deferred - Indicated whether pending changes have been applied. + * @property {number} height - New height of the window. + * @property {number} left - New left most coordinate of the window. + * @property {number} top - New top most coordinate of the window. + * @property {number} width - New width of the window. + */ + /** + * Raised when the window has been embedded. + * + * @event Window#embedded + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised when an external process has exited. + * + * @event Window#external-process-exited + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {string} processUuid - The process handle UUID. + * @property {number} exitCode - The process exit code + */ + /** + * Raised when an external process has started. + * + * @event Window#external-process-started + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {string} processUuid - The process handle UUID. + */ + /** + * Raised when a window's frame becomes disabled. + * + * @event Window#frame-disabled + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised when a window's frame becomes enabled. + * + * @event Window#frame-enabled + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised when a window joins/leaves a group and/or when the group a window is a member of changes. + * + * @event Window#group-changed + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {string} source - Which group array the window that the event listener was registered on is included in: + 'source' The window is included in sourceGroup. + 'target' The window is included in targetGroup. + 'nothing' The window is not included in sourceGroup nor targetGroup. + * @property {string} reason - The reason this event was triggered. + 'leave' A window has left the group due to a leave or merge with group. + 'join' A window has joined the group. + 'merge' Two groups have been merged together. + 'disband' There are no other windows in the group. + * @property {string} name - Name of the window. + * @property {legacyWindowIdentity[]} sourceGroup - All the windows in the group the sourceWindow originated from. + * @property {string} sourceWindowAppUuid - UUID of the application the sourceWindow belongs to the + source window is the window in which (merge/join/leave)group(s) was called. + * @property {string} sourceWindowName - Name of the sourcewindow. + The source window is the window in which (merge/join/leave)group(s) was called. + * @property {legacyWindowIdentity[]} targetGroup - All the windows in the group the targetWindow orginated from. + * @property {string} targetWindowAppUuid - UUID of the application the targetWindow belongs to. + The target window is the window that was passed into (merge/join)group(s). + * @property {string} targetWindowName - Name of the targetWindow. + The target window is the window that was passed into (merge/join)group(s). + */ + /** + * Raised when a window has been hidden. + * + * @event Window#hidden + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {string} reason - Action prompted the close The reasons are: + "hide" + "hide-on-close" + */ + /** + * Raised when a window is initialized. + * + * @event Window#initialized + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised when a window is maximized. + * + * @event Window#maximized + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised when a window is minimized. + * + * @event Window#minimized + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised when window navigation is rejected as per ContentNavigation whitelist/blacklist rules. + * + * @event Window#navigation-rejected + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {string} sourceName - source of navigation window name. + * @property {string} url - Blocked content url. + */ + /** + * Raised when a window is out of memory. + * + * @event Window#out-of-memory + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised after the execution of all of a window's preload scripts. Contains + information about all window's preload scripts' final states. + * + * @event Window#preload-scripts-state-changed + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {preloadScriptState[]} preloadState - An array of all final preload scripts' states + */ + /** + * Raised during the execution of a window's preload script. Contains information + about a single window's preload script's state, for which the event has been raised. + * + * @event Window#preload-scripts-state-changing + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {preloadScriptState[]} preloadState - An array of all final preload scripts' states + */ + /** + * Raised when an HTTP load was cancelled or failed. + * + * @event Window#resource-load-failed + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {number} errorCode - The Chromium error code. + * @property {string} errorDescription - The Chromium error description. + * @property {string} validatedURL - The url attempted. + * @property {boolean} isMainFrame - Was the attempt made from the main frame. + */ + /** + * Raised when an HTTP resource request has received response details. + * + * @event Window#resource-response-received + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {boolean} status - Status of the request. + * @property {string} newUrl - The URL of the responded resource. + * @property {string} originalUrl - The requested URL. + * @property {number} httpResponseCode - The HTTP Response code. + * @property {string} requestMethod - The HTTP request method. + * @property {string} referrer - The HTTP referrer. + * @property {object} headers - The HTTP headers. + * @property {string} resourceType - Resource type: + "mainFrame", "subFrame", + "styleSheet", "script", "image", + "object", "xhr", or "other" + */ + /** + * Raised when a window has reloaded. + * + * @event Window#reloaded + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + * @property {string} url - Url has has been reloaded. + */ + /** + * Raised when a window is displayed after having been minimized or + when a window leaves the maximize state without minimizing. + * + * @event Window#restored + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised when a window has been prevented from showing. + A window will be prevented from showing by default, either through the API or by a user when + ‘show-requested’ has been subscribed to on the window or 'window-show-requested' + on the parent application and the Window.show(force) flag is false. + * + * @event Window#show-requested + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * Raised when a window been shown. + * + * @event Window#shown + * @type {object} + * @property {string} name - Name of the window. + * @property {string} uuid - UUID of the application that the window belongs to. + */ + /** + * @typedef {object} legacyWindowIdentity + * @summary Object summary + * @desc Object description + * @property {string} appUuid - The UUID of the application this window entry belongs to. + * @property {string} windowName - The name of this window entry. + */ + /** + * @typedef {object} preloadScriptState + * @summary Object summary + * @desc Object description + * @property {string} url - The url of the preload script. + * @property {string} state - The preload script state: + "load-failed", "failed", "succeeded" + */ + private nativeWindow; + constructor(wire: Transport, identity: Identity); + createWindow(options: any): Promise<_Window>; + protected runtimeEventComparator: (listener: RuntimeEvent) => boolean; + private windowListFromNameList; + /** + * Retrieves an array of frame info objects representing the main frame and any + * iframes that are currently on the page. + * @return {Promise.>} + * @tutorial Window.getAllFrames + */ + getAllFrames(): Promise>; + /** + * Gets the current bounds (top, left, width, height) of the window. + * @return {Promise.} + * @tutorial Window.getBounds + */ + getBounds(): Promise; + /** + * Returns the native JavaScript "window" object for the window. + * @return {Promise.} + * @tutorial Window.getNativeWindow + */ + getNativeWindow(): Promise; + /** + * Gives focus to the window. + * @return {Promise.} + * @emits _Window#focused + * @tutorial Window.focus + */ + focus(): Promise; + /** + * Removes focus from the window. + * @return {Promise.} + * @tutorial Window.blur + */ + blur(): Promise; + /** + * Brings the window to the front of the window stack. + * @return {Promise.} + * @tutorial Window.bringToFront + */ + bringToFront(): Promise; + /** + * Performs the specified window transitions. + * @param {Transition} transitions - Describes the animations to perform. See the tutorial. + * @param {TransitionOptions} options - Options for the animation. See the tutorial. + * @return {Promise.} + * @tutorial Window.animate + */ + animate(transitions: Transition, options: TransitionOptions): Promise; + /** + * Hides the window. + * @return {Promise.} + * @tutorial Window.hide + */ + hide(): Promise; + /** + * closes the window application + * @param { boolean } [force = false] Close will be prevented from closing when force is false and + * ‘close-requested’ has been subscribed to for application’s main window. + * @return {Promise.} + * @tutorial Window.close + */ + close(force?: boolean): Promise; + /** + * Returns then running applications uuid + * @return {Promise.} + * @tutorial Window.getNativeId + */ + getNativeId(): Promise; + /** + * Prevents a user from changing a window's size/position when using the window's frame. + * @return {Promise.} + * @tutorial Window.disableFrame + */ + disableFrame(): Promise; + /** + * Re-enables user changes to a window's size/position when using the window's frame. + * @return {Promise.} + * @tutorial Window.enableFrame + */ + enableFrame(): Promise; + /** + * Executes Javascript on the window, restricted to windows you own or windows owned by + * applications you have created. + * @param { string } code JavaScript code to be executed on the window. + * @return {Promise.} + * @tutorial Window.executeJavaScript + */ + executeJavaScript(code: string): Promise; + /** + * Flashes the window’s frame and taskbar icon until stopFlashing is called. + * @return {Promise.} + * @tutorial Window.flash + */ + flash(): Promise; + /** + * Stops the taskbar icon from flashing. + * @return {Promise.} + * @tutorial Window.stopFlashing + */ + stopFlashing(): Promise; + /** + * Retrieves an array containing wrapped fin.desktop.Windows that are grouped with this + * window. If a window is not in a group an empty array is returned. Please note that + * calling window is included in the result array. + * @return {Promise.>} + * @tutorial Window.getGroup + */ + getGroup(): Promise>; + /** + * Gets an information object for the window. + * @return {Promise.} + * @tutorial Window.getInfo + */ + getInfo(): Promise; + /** + * Gets the current settings of the window. + * @return {Promise.} + * @tutorial Window.getOptions + */ + getOptions(): Promise; + /** + * Gets the parent application. + * @return {Promise.} + * @tutorial Window.getParentApplication + */ + getParentApplication(): Promise; + /** + * Gets the parent window. + * @return {Promise.<_Window>} + * @tutorial Window.getParentWindow + */ + getParentWindow(): Promise<_Window>; + /** + * Gets a base64 encoded PNG snapshot of the window. + * @return {Promise.} + * @tutorial Window.getSnapshot + */ + getSnapshot(): Promise; + /** + * Gets the current state ("minimized", "maximized", or "restored") of the window. + * @return {Promise.} + * @tutorial Window.getState + */ + getState(): Promise; + /** + * Determines if the window is currently showing. + * @return {Promise.} + * @tutorial Window.isShowing + */ + isShowing(): Promise; + /** + * Joins the same window group as the specified window. + * @param { class } target The window whose group is to be joined + * @return {Promise.} + * @tutorial Window.joinGroup + */ + joinGroup(target: _Window): Promise; + /** + * Reloads the window current page + * @return {Promise.} + * @tutorial Window.reload + */ + reload(ignoreCache?: boolean): Promise; + /** + * Leaves the current window group so that the window can be move independently of those in the group. + * @return {Promise.} + * @tutorial Window.leaveGroup + */ + leaveGroup(): Promise; + /** + * Maximizes the window + * @return {Promise.} + * @tutorial Window.maximize + */ + maximize(): Promise; + /** + * Merges the instance's window group with the same window group as the specified window + * @param { class } target The window whose group is to be merged with + * @return {Promise.} + * @tutorial Window.mergeGroups + */ + mergeGroups(target: _Window): Promise; + /** + * Minimizes the window. + * @return {Promise.} + * @tutorial Window.minimize + */ + minimize(): Promise; + /** + * Moves the window by a specified amount. + * @param { number } deltaLeft The change in the left position of the window + * @param { number } deltaTop The change in the top position of the window + * @return {Promise.} + * @tutorial Window.moveBy + */ + moveBy(deltaLeft: number, deltaTop: number): Promise; + /** + * Moves the window to a specified location. + * @param { number } left The left position of the window + * @param { number } top The top position of the window + * @return {Promise.} + * @tutorial Window.moveTo + */ + moveTo(left: number, top: number): Promise; + /** + * Resizes the window by a specified amount. + * @param { number } deltaWidth The change in the width of the window + * @param { number } deltaHeight The change in the height of the window + * @param { string } anchor Specifies a corner to remain fixed during the resize. + * Can take the values: "top-left", "top-right", "bottom-left", or "bottom-right." + * If undefined, the default is "top-left" + * @return {Promise.} + * @tutorial Window.resizeBy + */ + resizeBy(deltaWidth: number, deltaHeight: number, anchor: string): Promise; + /** + * Resizes the window to the specified dimensions. + * @param { number } width The change in the width of the window + * @param { number } height The change in the height of the window + * @param { string } anchor Specifies a corner to remain fixed during the resize. + * Can take the values: "top-left", "top-right", "bottom-left", or "bottom-right." + * If undefined, the default is "top-left" + * @return {Promise.} + * @tutorial Window.resizeTo + */ + resizeTo(width: number, height: number, anchor: string): Promise; + /** + * Restores the window to its normal state (i.e., unminimized, unmaximized). + * @return {Promise.} + * @tutorial Window.restore + */ + restore(): Promise; + /** + * Will bring the window to the front of the entire stack and give it focus. + * @return {Promise.} + * @tutorial Window.setAsForeground + */ + setAsForeground(): Promise; + /** + * Sets the window's size and position. + * @property { Bounds } bounds This is a * @type {string} name - name of the window.object that holds the propertys of + * @return {Promise.} + * @tutorial Window.setBounds + */ + setBounds(bounds: Bounds): Promise; + /** + * Shows the window if it is hidden. + * @param { boolean } [force = false] Show will be prevented from showing when force is false and + * ‘show-requested’ has been subscribed to for application’s main window. + * @return {Promise.} + * @tutorial Window.show + */ + show(force?: boolean): Promise; + /** + * Shows the window if it is hidden at the specified location. + * If the toggle parameter is set to true, the window will + * alternate between showing and hiding. + * @param { number } left The left position of the window + * @param { number } top The right position of the window + * @param { boolean } force Show will be prevented from closing when force is false and + * ‘show-requested’ has been subscribed to for application’s main window + * @return {Promise.} + * @tutorial Window.showAt + */ + showAt(left: number, top: number, force?: boolean): Promise; + /** + * Shows the Chromium Developer Tools + * @return {Promise.} + * @tutorial Window.showDeveloperTools + */ + showDeveloperTools(): Promise; + /** + * Updates the window using the passed options + * @param {*} options Changes a window's options that were defined upon creation. See tutorial + * @return {Promise.} + * @tutorial Window.updateOptions + */ + updateOptions(options: any): Promise; + /** + * Provides credentials to authentication requests + * @param { string } userName userName to provide to the authentication challange + * @param { string } password password to provide to the authentication challange + * @return {Promise.} + * @tutorial Window.authenticate + */ + authenticate(userName: string, password: string): Promise; + /** + * Returns the zoom level of the window. + * @return {Promise.} + * @tutorial Window.getZoomLevel + */ + getZoomLevel(): Promise; + /** + * Sets the zoom level of the window. + * @param { number } level The zoom level + * @return {Promise.} + * @tutorial Window.setZoomLevel + */ + setZoomLevel(level: number): Promise; + /** + * Navigates the window to a specified URL. + * @param {string} url - The URL to navigate the window to. + * @return {Promise.} + * @tutorial Window.navigate + */ + navigate(url: string): Promise; + /** + * Navigates the window back one page. + * @return {Promise.} + * @tutorial Window.navigateBack + */ + navigateBack(): Promise; + /** + * Stops any current navigation the window is performing. + * @return {Promise.} + * @tutorial Window.stopNavigation + */ + stopNavigation(): Promise; +} +export interface _Window { + on(type: 'focused', listener: Function): Promise; + on(type: 'initialized', listener: Function): Promise; + on(type: 'bounds-changed', listener: (data: BoundsChangedReply) => void): Promise; + on(type: 'hidden', listener: Function): Promise; + on(type: 'removeListener', listener: (eventType: string | symbol) => void): Promise; + on(type: 'newListener', listener: (eventType: string | symbol) => void): Promise; + on(type: 'closed', listener: (eventType: CloseEventShape) => void): Promise; + on(type: 'fire-constructor-callback', listener: Function): Promise; +} diff --git a/types/openfin/_v2/environment/environment.d.ts b/types/openfin/_v2/environment/environment.d.ts new file mode 100644 index 0000000000..0b0f1571f2 --- /dev/null +++ b/types/openfin/_v2/environment/environment.d.ts @@ -0,0 +1,10 @@ +import { NewConnectConfig } from '../transport/wire'; +export interface Environment { + writeToken(path: string, token: string): Promise; + retrievePort(config: NewConnectConfig): Promise; + getNextMessageId(): any; + getRandomId(): string; + createChildWindow(options: any): Promise; + isWindowExists(uuid: string, name: string): boolean; +} +export declare const notImplementedEnvErrorMsg = "Not implemented in this environment"; diff --git a/types/openfin/_v2/environment/node-env.d.ts b/types/openfin/_v2/environment/node-env.d.ts new file mode 100644 index 0000000000..03e0faeede --- /dev/null +++ b/types/openfin/_v2/environment/node-env.d.ts @@ -0,0 +1,11 @@ +import { Environment } from './environment'; +import { NewConnectConfig } from '../transport/wire'; +export default class NodeEnvironment implements Environment { + private messageCounter; + writeToken: (path: string, token: string) => Promise; + retrievePort: (config: NewConnectConfig) => Promise; + getNextMessageId: () => any; + createChildWindow: (options: any) => Promise; + getRandomId: () => string; + isWindowExists: (uuid: string, name: string) => boolean; +} diff --git a/types/openfin/_v2/environment/openfin-env.d.ts b/types/openfin/_v2/environment/openfin-env.d.ts new file mode 100644 index 0000000000..456e2f8caf --- /dev/null +++ b/types/openfin/_v2/environment/openfin-env.d.ts @@ -0,0 +1,11 @@ +import { Environment } from './environment'; +import { NewConnectConfig } from '../transport/wire'; +export default class OpenFinEnvironment implements Environment { + writeToken: (path: string, token: string) => Promise; + retrievePort: (config: NewConnectConfig) => Promise; + getNextMessageId: () => any; + createChildWindow: (options: any) => Promise; + getRandomId: () => string; + private resolveUrl; + isWindowExists: (uuid: string, name: string) => boolean; +} diff --git a/types/openfin/_v2/environment/openfin-renderer-api.d.ts b/types/openfin/_v2/environment/openfin-renderer-api.d.ts new file mode 100644 index 0000000000..82822c3111 --- /dev/null +++ b/types/openfin/_v2/environment/openfin-renderer-api.d.ts @@ -0,0 +1,6 @@ +export declare const ipc: any; +export declare const routingId: any; +export declare const CORE_MESSAGE_CHANNEL: any; +export declare const outboundTopic = "of-window-message"; +export declare const inboundTopic: string; +export declare const currentWindowIdentity: any; diff --git a/types/openfin/_v2/identity.d.ts b/types/openfin/_v2/identity.d.ts new file mode 100644 index 0000000000..f10f030248 --- /dev/null +++ b/types/openfin/_v2/identity.d.ts @@ -0,0 +1,4 @@ +export interface Identity { + uuid: string; + name?: string; +} diff --git a/types/openfin/_v2/launcher/launcher.d.ts b/types/openfin/_v2/launcher/launcher.d.ts new file mode 100644 index 0000000000..d0ffc16989 --- /dev/null +++ b/types/openfin/_v2/launcher/launcher.d.ts @@ -0,0 +1,15 @@ +/// +import { ChildProcess } from 'child_process'; +import { ConfigWithRuntime } from '../transport/wire'; +export default class Launcher { + private os; + OpenFin_Installer: string; + Installer_Work_Dir: string; + Security_Realm_Config_Key: string; + nixConfig?: any; + constructor(); + launch(config: ConfigWithRuntime, manifestLocation: string, namedPipeName: string): Promise; + static IS_SUPPORTED(): boolean; + private macLaunch; + private winLaunch; +} diff --git a/types/openfin/_v2/launcher/nix-launch.d.ts b/types/openfin/_v2/launcher/nix-launch.d.ts new file mode 100644 index 0000000000..02b0da4fbb --- /dev/null +++ b/types/openfin/_v2/launcher/nix-launch.d.ts @@ -0,0 +1,14 @@ +/// +import { ChildProcess } from 'child_process'; +import { ConfigWithRuntime } from '../transport/wire'; +export declare function getUrl(version: string, urlPath: string): string; +export declare function download(version: string, folder: string, osConfig: OsConfig): Promise; +export declare function getRuntimePath(version: string): Promise; +export declare function install(versionOrChannel: string, osConfig: OsConfig): Promise; +export interface OsConfig { + manifestLocation: string; + namedPipeName: string; + urlPath: string; + executablePath: string; +} +export default function launch(config: ConfigWithRuntime, osConfig: OsConfig): Promise; diff --git a/types/openfin/_v2/launcher/util.d.ts b/types/openfin/_v2/launcher/util.d.ts new file mode 100644 index 0000000000..808ad015ea --- /dev/null +++ b/types/openfin/_v2/launcher/util.d.ts @@ -0,0 +1,8 @@ +export declare function exists(path: string): Promise; +export declare function get(url: string): Promise; +export declare function unzip(file: string, dest: string): Promise; +export declare function rmDir(dirPath: string, removeSelf?: boolean): Promise; +export declare function downloadFile(url: string, writeLocation: string): Promise<{}>; +export declare function resolveRuntimeVersion(versionOrChannel: string): Promise; +export declare function first(arr: T[], func: (x: T, i: number, r: T[]) => boolean): T | null; +export declare function resolveDir(base: string, paths: string[]): Promise; diff --git a/types/openfin/_v2/launcher/win-launch.d.ts b/types/openfin/_v2/launcher/win-launch.d.ts new file mode 100644 index 0000000000..b08fac3f8a --- /dev/null +++ b/types/openfin/_v2/launcher/win-launch.d.ts @@ -0,0 +1,4 @@ +/// +import { ChildProcess } from 'child_process'; +import { ConfigWithRuntime } from '../transport/wire'; +export default function launch(config: ConfigWithRuntime, manifestLocation: string, namedPipeName: string, Installer_Work_Dir: string): Promise; diff --git a/types/openfin/_v2/main.d.ts b/types/openfin/_v2/main.d.ts new file mode 100644 index 0000000000..2f4a3d8730 --- /dev/null +++ b/types/openfin/_v2/main.d.ts @@ -0,0 +1,11 @@ +import Fin from './api/fin'; +import { Application } from './api/application/application'; +import { _Window as Window } from './api/window/window'; +import { _Frame as Frame } from './api/frame/frame'; +import { _Notification as Notification } from './api/notification/notification'; +import System from './api/system/system'; +import { ConnectConfig } from './transport/wire'; +export declare function connect(config: ConnectConfig): Promise; +export declare function launch(config: ConnectConfig): Promise; +export { Identity } from './identity'; +export { Fin, Application, Window, System, Frame, Notification }; diff --git a/types/openfin/_v2/of-main.d.ts b/types/openfin/_v2/of-main.d.ts new file mode 100644 index 0000000000..cb0ff5c3b5 --- /dev/null +++ b/types/openfin/_v2/of-main.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/types/openfin/_v2/transport/elipc.d.ts b/types/openfin/_v2/transport/elipc.d.ts new file mode 100644 index 0000000000..94c398cba5 --- /dev/null +++ b/types/openfin/_v2/transport/elipc.d.ts @@ -0,0 +1,13 @@ +/// +import { EventEmitter } from 'events'; +import { Wire, READY_STATE } from './wire'; +export default class ElIPCTransport extends EventEmitter implements Wire { + protected wire: any; + onmessage: (data: any) => void; + constructor(onmessage: (data: any) => void); + connectSync: () => any; + connect: (address: string) => Promise; + send(data: any, flags?: any): Promise; + shutdown(): Promise; + static READY_STATE: typeof READY_STATE; +} diff --git a/types/openfin/_v2/transport/port-discovery.d.ts b/types/openfin/_v2/transport/port-discovery.d.ts new file mode 100644 index 0000000000..d8ea25934d --- /dev/null +++ b/types/openfin/_v2/transport/port-discovery.d.ts @@ -0,0 +1,17 @@ +import { PortDiscoveryConfig } from './wire'; +import { Environment } from '../environment/environment'; +export declare class PortDiscovery { + private savedConfig; + private namedPipeName; + private manifestLocation; + private namedPipeServer; + private pipeConnection; + private timeoutTimer; + private environment; + constructor(config: PortDiscoveryConfig, environment: Environment); + retrievePort(): Promise; + private createDiscoveryNamedPipe; + private listenDiscoveryMessage; + private createManifest; + private cleanup; +} diff --git a/types/openfin/_v2/transport/transport-errors.d.ts b/types/openfin/_v2/transport/transport-errors.d.ts new file mode 100644 index 0000000000..90f9d10f55 --- /dev/null +++ b/types/openfin/_v2/transport/transport-errors.d.ts @@ -0,0 +1,17 @@ +export declare class DisconnectedError extends Error { + constructor(readyState: number); + readyState: number; +} +export declare class UnexpectedActionError extends Error { +} +export declare class DuplicateCorrelationError extends Error { +} +export declare class NoAckError extends Error { +} +export declare class NotImplementedError extends Error { +} +export declare class NotSupportedError extends Error { +} +export declare class RuntimeError extends Error { + constructor(data: any); +} diff --git a/types/openfin/_v2/transport/transport.d.ts b/types/openfin/_v2/transport/transport.d.ts new file mode 100644 index 0000000000..fb7b967240 --- /dev/null +++ b/types/openfin/_v2/transport/transport.d.ts @@ -0,0 +1,48 @@ +/// +import { Wire, WireConstructor, READY_STATE, ExistingConnectConfig, ConnectConfig, InternalConnectConfig } from './wire'; +import { Identity } from '../identity'; +import { EventEmitter } from 'events'; +import { Environment } from '../environment/environment'; +export declare type MessageHandler = (data: any) => boolean; +declare class Transport extends EventEmitter { + protected wireListeners: Map; + protected uncorrelatedListener: Function; + protected messageHandlers: MessageHandler[]; + me: Identity; + protected wire: Wire; + environment: Environment; + topicRefMap: Map; + sendRaw: Wire['send']; + constructor(wireType: WireConstructor, environment: Environment); + connectSync: (config: ConnectConfig) => any; + connect(config: InternalConnectConfig): Promise; + connectByPort(config: ExistingConnectConfig): Promise; + READY_STATE: typeof READY_STATE; + ferryAction(data: any): Promise>; + registerMessageHandler(handler: MessageHandler): void; + protected addWireListener(id: number, resolve: Function, reject: Function, uncorrelated: boolean): void; + protected onmessage(data: Message): void; + protected handleMessage(data: Message): boolean; +} +export default Transport; +interface Transport { + sendAction(action: 'request-external-authorization', payload: {}, uncorrelated: true): Promise>; + sendAction(action: string, payload: {}, uncorrelated: boolean): Promise>; + topicRefMap: Map; +} +export declare class Message { + action: string; + payload: T; + correlationId?: number; +} +export declare class Payload { + success: boolean; + data: any; +} +export declare class AuthorizationPayload { + token: string; + file: string; +} diff --git a/types/openfin/_v2/transport/websocket.d.ts b/types/openfin/_v2/transport/websocket.d.ts new file mode 100644 index 0000000000..5617afa8e3 --- /dev/null +++ b/types/openfin/_v2/transport/websocket.d.ts @@ -0,0 +1,14 @@ +/// +import { EventEmitter } from 'events'; +import * as WebSocket from 'ws'; +import { Wire, READY_STATE } from './wire'; +export default class WebSocketTransport extends EventEmitter implements Wire { + protected wire: WebSocket; + onmessage: (data: any) => void; + constructor(onmessage: (data: any) => void); + connect: (address: string) => Promise; + connectSync: () => any; + send(data: any, flags?: any): Promise; + shutdown(): Promise; + static READY_STATE: typeof READY_STATE; +} diff --git a/types/openfin/_v2/transport/wire.d.ts b/types/openfin/_v2/transport/wire.d.ts new file mode 100644 index 0000000000..227c6d4d72 --- /dev/null +++ b/types/openfin/_v2/transport/wire.d.ts @@ -0,0 +1,71 @@ +/// +import { EventEmitter } from 'events'; +export interface Wire extends EventEmitter { + connect(address: string): Promise; + connectSync(): any; + send(data: any): Promise; + shutdown(): Promise; +} +export interface WireConstructor { + new (onmessage: (data: any) => void): Wire; +} +export interface RuntimeConfig { + version: string; + fallbackVersion?: string; + securityRealm?: string; + verboseLogging?: boolean; + arguments?: string; + rvmDir?: string; +} +export interface BaseConfig { + uuid?: string; + address?: string; + name?: string; + nonPersistent?: boolean; + runtimeClient?: boolean; + licenseKey?: string; + client?: any; + manifestUrl?: string; + startupApp?: any; + lrsUrl?: string; + assetsUrl?: string; + devToolsPort?: number; + installerUI?: boolean; + runtime?: RuntimeConfig; + appAssets?: [{ + src: string; + alias: string; + target: string; + version: string; + args: string; + }]; + customItems?: [any]; + timeout?: number; +} +export interface ConfigWithUuid extends BaseConfig { + uuid: string; +} +export interface ExistingConnectConfig extends ConfigWithUuid { + address: string; +} +export interface ConfigWithRuntime extends BaseConfig { + runtime: RuntimeConfig; +} +export interface ExternalConfig extends BaseConfig { + manifestUrl: string; +} +export declare type NewConnectConfig = ConfigWithUuid & ConfigWithRuntime; +export declare type PortDiscoveryConfig = (ExternalConfig & ConfigWithRuntime) | NewConnectConfig; +export declare type ConnectConfig = ExistingConnectConfig | NewConnectConfig | ExternalConfig; +export declare type InternalConnectConfig = ExistingConnectConfig | NewConnectConfig; +export declare function isExternalConfig(config: ConnectConfig): config is ExternalConfig; +export declare function isExistingConnectConfig(config: any): config is ExistingConnectConfig; +export declare function isNewConnectConfig(config: any): config is NewConnectConfig; +export declare function isPortDiscoveryConfig(config: any): config is PortDiscoveryConfig; +export declare function isInternalConnectConfig(config: any): config is InternalConnectConfig; +export declare enum READY_STATE { + CONNECTING = 0, + OPEN = 1, + CLOSING = 2, + CLOSED = 3 +} diff --git a/types/openfin/_v2/util/normalize-config.d.ts b/types/openfin/_v2/util/normalize-config.d.ts new file mode 100644 index 0000000000..ed322d30ec --- /dev/null +++ b/types/openfin/_v2/util/normalize-config.d.ts @@ -0,0 +1,3 @@ +import { ConnectConfig, InternalConnectConfig, ExternalConfig } from '../transport/wire'; +export declare function normalizeConfig(config: ConnectConfig): Promise; +export declare function validateConfig(config: ConnectConfig): Promise; diff --git a/types/openfin/_v2/util/promises.d.ts b/types/openfin/_v2/util/promises.d.ts new file mode 100644 index 0000000000..8e7bf9efe9 --- /dev/null +++ b/types/openfin/_v2/util/promises.d.ts @@ -0,0 +1,5 @@ +export declare function promisify(func: Function): (...args: any[]) => Promise; +export declare function promiseMap(arr: T[], asyncF: (x: T, i: number, r: T[]) => Promise): Promise; +export declare type asyncF = (...args: any[]) => Promise; +export declare function serial(arr: asyncF[]): Promise; +export declare function promiseMapSerial(arr: any[], func: asyncF): Promise; diff --git a/types/openfin/_v2/util/ref-counter.d.ts b/types/openfin/_v2/util/ref-counter.d.ts new file mode 100644 index 0000000000..8184e09079 --- /dev/null +++ b/types/openfin/_v2/util/ref-counter.d.ts @@ -0,0 +1,7 @@ +export default class RefCoutner { + topicRefMap: Map; + incRefCount(key: string): number; + decRefCount(key: string): number; + actOnFirst(key: string, firstAction: () => any, nonFirstAction?: () => void): any; + actOnLast(key: string, lastAction: () => any, nonLastAction?: () => void): any; +} diff --git a/types/openfin/index.d.ts b/types/openfin/index.d.ts index 275effa162..fe34f0b630 100644 --- a/types/openfin/index.d.ts +++ b/types/openfin/index.d.ts @@ -1,10 +1,12 @@ -// Type definitions for OpenFin API 29.0 +// Type definitions for OpenFin API 34.0 // Project: https://openfin.co/ // Definitions by: Chris Barker // Ricardo de Pena +// Roma // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.9 -// based on v8.56.29.51 +// based on v9.61.34.22 // see https://openfin.co/support/technical-faq/#what-do-the-numbers-in-the-runtime-version-mean /** @@ -22,6 +24,16 @@ * without the need to include additional source files. You can treat the "fin" namespace as you would the "window", "navigator" or "documennt" objects. */ declare namespace fin { + var Application: import('./_v2/api/application/application').default + var Clipboard: import('./_v2/api/clipboard/clipboard').default + var ExternalApplication: import('./_v2/api/external-application/external-application').default + var Frame: import('./_v2/api/frame/frame').default + var GlobalHotkey: import('./_v2/api/global-hotkey/index').default + var InterApplicationBus: import('./_v2/api/interappbus/interappbus').default + var Notification: import('./_v2/api/notification/notification').default + var System: import('./_v2/api/system/system').default + var Window: import('./_v2/api/window/window').default + const desktop: OpenFinDesktop; interface OpenFinDesktop { diff --git a/types/openfin/tsconfig.json b/types/openfin/tsconfig.json index 5299a11917..2a2c9d108b 100644 --- a/types/openfin/tsconfig.json +++ b/types/openfin/tsconfig.json @@ -19,6 +19,63 @@ }, "files": [ "index.d.ts", - "openfin-tests.ts" + "openfin-tests.ts", + "_v2/api/application/application.d.ts", + "_v2/api/base.d.ts", + "_v2/api/clipboard/clipboard.d.ts", + "_v2/api/clipboard/write-request.d.ts", + "_v2/api/external-application/external-application.d.ts", + "_v2/api/fin.d.ts", + "_v2/api/frame/frame.d.ts", + "_v2/api/global-hotkey/index.d.ts", + "_v2/api/interappbus/channel/channel.d.ts", + "_v2/api/interappbus/channel/client.d.ts", + "_v2/api/interappbus/channel/index.d.ts", + "_v2/api/interappbus/channel/provider.d.ts", + "_v2/api/interappbus/interappbus.d.ts", + "_v2/api/notification/notification.d.ts", + "_v2/api/system/application.d.ts", + "_v2/api/system/clearCacheOption.d.ts", + "_v2/api/system/cookie.d.ts", + "_v2/api/system/crashReporterOption.d.ts", + "_v2/api/system/download-asset.d.ts", + "_v2/api/system/download-preload.d.ts", + "_v2/api/system/entity.d.ts", + "_v2/api/system/external-process.d.ts", + "_v2/api/system/host-specs.d.ts", + "_v2/api/system/log.d.ts", + "_v2/api/system/monitor.d.ts", + "_v2/api/system/point.d.ts", + "_v2/api/system/process.d.ts", + "_v2/api/system/proxy.d.ts", + "_v2/api/system/registry-info.d.ts", + "_v2/api/system/runtime-info.d.ts", + "_v2/api/system/rvm.d.ts", + "_v2/api/system/system.d.ts", + "_v2/api/system/window.d.ts", + "_v2/api/window/bounds-changed.d.ts", + "_v2/api/window/bounds.d.ts", + "_v2/api/window/transition.d.ts", + "_v2/api/window/window.d.ts", + "_v2/environment/environment.d.ts", + "_v2/environment/node-env.d.ts", + "_v2/environment/openfin-env.d.ts", + "_v2/environment/openfin-renderer-api.d.ts", + "_v2/identity.d.ts", + "_v2/launcher/launcher.d.ts", + "_v2/launcher/nix-launch.d.ts", + "_v2/launcher/util.d.ts", + "_v2/launcher/win-launch.d.ts", + "_v2/main.d.ts", + "_v2/of-main.d.ts", + "_v2/transport/elipc.d.ts", + "_v2/transport/port-discovery.d.ts", + "_v2/transport/transport-errors.d.ts", + "_v2/transport/transport.d.ts", + "_v2/transport/websocket.d.ts", + "_v2/transport/wire.d.ts", + "_v2/util/normalize-config.d.ts", + "_v2/util/promises.d.ts", + "_v2/util/ref-counter.d.ts" ] } diff --git a/types/openfin/tslint.json b/types/openfin/tslint.json index f93cf8562a..f95a4974aa 100644 --- a/types/openfin/tslint.json +++ b/types/openfin/tslint.json @@ -1,3 +1,18 @@ { - "extends": "dtslint/dt.json" + "extends": "dtslint/dt.json", + "rules": { + "max-line-length": false, + "no-redundant-jsdoc-2": false, + "jsdoc-format": false, + "no-var-keyword": false, + "whitespace": false, + "semicolon": false, + "strict-export-declare-modifiers": false, + "array-type": false, + "unified-signatures": false, + "void-return": false, + "ban-types": false, + "callable-types": false, + "no-const-enum": false + } } diff --git a/types/openfin/v29/index.d.ts b/types/openfin/v29/index.d.ts new file mode 100644 index 0000000000..275effa162 --- /dev/null +++ b/types/openfin/v29/index.d.ts @@ -0,0 +1,1895 @@ +// Type definitions for OpenFin API 29.0 +// Project: https://openfin.co/ +// Definitions by: Chris Barker +// Ricardo de Pena +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +// based on v8.56.29.51 +// see https://openfin.co/support/technical-faq/#what-do-the-numbers-in-the-runtime-version-mean + +/** + * JavaScript API + * The JavaScript API allows you to create an HTML/JavaScript application that has access to the native windowing environment, + * can communicate with other applications and has access to sandboxed system-level features. + * + * API Ready + * When using the OpenFin API, it is important to ensure that it has been fully loaded before making any API calls. To verify + * that the API is in fact ready, be sure to make any API calls either from within the fin.desktop.main() method or explicitly + * after it has returned. This avoids the situation of trying to access methods that are not yet fully injected. + * + * Overview + * When running within the OpenFin Runtime your web applications have access to the "fin" namespace and all the modules within the API + * without the need to include additional source files. You can treat the "fin" namespace as you would the "window", "navigator" or "documennt" objects. + */ +declare namespace fin { + const desktop: OpenFinDesktop; + + interface OpenFinDesktop { + main(f: () => any): void; + Application: OpenFinApplicationStatic; + ExternalApp: OpenFinExternalApplicationStatic; + InterApplicationBus: OpenFinInterApplicationBus; + Notification: OpenFinNotificationStatic; + System: OpenFinSystem; + Window: OpenFinWindowStatic; + Frame: OpenFinFrameStatic; + } + + interface OpenFinApplicationStatic { + /** + * Creates a new Application. + * An object representing an application. Allows the developer to create, execute, show/close an application as well as listen to application events. + */ + new ( + options: ApplicationOptions, + callback?: (successObj: { httpResponseCode: number }) => void, + errorCallback?: (reason: string, errorObj: NetworkErrorInfo) => void): OpenFinApplication; + /** + * Launches the given Application manifest. + */ + createFromManifest(manifestUrl: string, callback?: (app: OpenFinApplication) => void, errorCallback?: (reason: string, error: ErrorInfo) => void): void; + /** + * Returns an Application object that represents an existing application. + */ + getCurrent(): OpenFinApplication; + /** + * Returns an Application object that represents an existing application. + */ + wrap(uuid: string): OpenFinApplication; + } + + /** + * Application + * An object representing an application.Allows the developer to create, execute, show / close an application as well as listen to application events. + */ + interface OpenFinApplication { + /** + * Returns an instance of the main Window of the application + */ + getWindow(): OpenFinWindow; + /** + * Registers an event listener on the specified event. + */ + addEventListener( + type: OpenFinApplicationEventType, + listener: (event: ApplicationBaseEvent + | TrayIconClickedEvent + | WindowEvent + | WindowAlertRequestedEvent + | WindowAuthRequested + | WindowNavigationRejectedEvent + | WindowEndLoadEvent) => void, + callback?: () => void, + errorCallback?: (reason: string) => void): void; + /** + * Closes the application and any child windows created by the application. + */ + close(force?: boolean, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves an array of wrapped fin.desktop.Windows for each of the application's child windows. + */ + getChildWindows(callback?: (children: OpenFinWindow[]) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves an array of active window groups for all of the application's windows. Each group is represented as an array of wrapped fin.desktop.Windows. + */ + getGroups(callback?: (groups: OpenFinWindow[][]) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves the JSON manifest that was used to create the application. Invokes the error callback if the application was not created from a manifest. + */ + getManifest(callback?: (manifest: any) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves UUID of the application that launches this application. Invokes the error callback if the application was created from a manifest. + */ + getParentUuid(callback?: (uuid: string) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves current configuration of application's shortcuts. + */ + getShortcuts(callback?: (config: ShortCutConfig) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves information about the application. + */ + getInfo(callback?: (info: LaunchInfo) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves information about the system tray. + */ + getTrayIconInfo(callback?: (trayInfo: TrayIconInfo) => void, errorCallback?: (reason: string) => void): void; + /** + * Determines if the application is currently running. + */ + isRunning(callback?: (running: boolean) => void, errorCallback?: (reason: string) => void): void; + /** + * Registers a username and an app name for licensing purposes. + */ + registerUser(userName: string, appName: string, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Removes a previously registered event listener from the specified event. + */ + removeEventListener( + type: OpenFinApplicationEventType, + previouslyRegisteredListener: (event: ApplicationBaseEvent + | TrayIconClickedEvent + | WindowEvent + | WindowAlertRequestedEvent + | WindowAuthRequested + | WindowNavigationRejectedEvent + | WindowEndLoadEvent) => any, + callback?: () => void, + errorCallback?: (reason: string) => void): void; + /** + * Removes the application's icon from the tray. + */ + removeTrayIcon(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Restarts the application. + */ + restart(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Runs the application. When the application is created, run must be called. + */ + run(callback?: (successObj: SuccessObj) => void, errorCallback?: (reason: string, errorObj: NetworkErrorInfo) => void): void; + /** + * Tells the rvm to relaunch the main application once upon a complete shutdown + */ + scheduleRestart(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Sets new shortcut configuration for current application. + * Application has to be launched with a manifest and has to have shortcut configuration (icon url, name, etc.) in its manifest to + * be able to change shortcut states. + */ + setShortcuts(config: ShortCutConfig, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Adds a customizable icon in the system tray and notifies the application when clicked. + */ + setTrayIcon(iconUrl: string, listener: (clickInfo: TrayIconClickedEvent) => void, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Closes the application by terminating its process. + */ + terminate(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Waits for a hanging application. This method can be called in response to an application "not-responding" to allow the application + * to continue and to generate another "not-responding" message after a certain period of time. + */ + wait(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * The Application's uuid + */ + uuid: string; + } + + interface ShortCutConfig { + /** + * application has a shortcut on the desktop + */ + desktop?: boolean; + /** + * application has no shortcut in the start menu + */ + startMenu?: boolean; + /** + * application will be launched on system startup + */ + systemStartup?: boolean; + } + + interface SuccessObj { + httpResponseCode: number; + } + + interface NetworkErrorInfo extends ErrorInfo { + networkErrorCode: number; + } + + interface ErrorInfo { + stack: string; + message: string; + } + + interface ApplicationOptions { + /** + * The name of the application. + */ + name?: string; + /** + * The url to the application. + */ + url?: string; + /** + * The UUID of the application, unique within the set of all other applications running in the OpenFin Runtime. name and uuid must match. + */ + uuid?: string; + /** + * Enable Flash at the application level. Default: false. + */ + plugins?: boolean; + /** + * The options of the main window of the application. + */ + mainWindowOptions?: WindowOptions; + } + + interface WindowOptions { + /** + * Enable keyboard shortcuts for devtools and zoom. Default: false for both. + */ + accelerator?: { + devtools?: boolean, + zoom?: boolean, + reload?: boolean, + reloadIgnoreCache?: boolean, + }; + /** + * A flag to always position the window at the top of the window stack. Default: false. + * Updatable + */ + alwaysOnTop?: boolean; + /** + * A flag to automatically show the Window when it is created. Default: false. + */ + autoShow?: boolean; + /** + * A flag to show the context menu when right-clicking on a window. Gives access to the Developer Console for the Window. Default: true + * Updatable + */ + contextMenu?: boolean; + /** + * This defines and applies rounded corners for a frameless window. Default for both width and height: 0. + * Updatable + */ + cornerRounding?: { + width?: number; + height?: number; + }; + /** + * A field that the user can attach serializable data to to be ferried around with the window options. Default: ''. + */ + customData?: any; + /** + * Specifies that the window will be positioned in the center of the primary monitor when loaded for the first time on a machine. + * When the window corresponding to that id is loaded again, the position from before the window was closed is used. + * This option overrides defaultLeft and defaultTop. Default: false. + */ + defaultCentered?: boolean; + /** + * The default height of the window. Specifies the height of the window when loaded for the first time on a machine. + * When the window corresponding to that id is loaded again, the height is taken to be the last height of the window before it was closed. Default: 500. + */ + defaultHeight?: number; + /** + * The default left position of the window. Specifies the position of the left of the window when loaded for the first time on a machine. + * When the window corresponding to that id is loaded again, the value of left is taken to be the last value before the window was closed. Default: 100. + */ + defaultWidth?: number; + /** + * The default top position of the window. Specifies the position of the top of the window when loaded for the first time on a machine. + * When the window corresponding to that id is loaded again, the value of top is taken to be the last value before the window was closed. Default: 100. + */ + defaultTop?: number; + /** + * The default width of the window. Specifies the width of the window when loaded for the first time on a machine. + * When the window corresponding to that id is loaded again, the width is taken to be the last width of the window before it was closed. Default: 800. + */ + defaultLeft?: number; + /** + * A flag to show the frame. Default: true. + * Updatable + */ + frame?: boolean; + /** + * A flag to allow a window to be hidden when the close button is clicked.Default: false. + * Updatable + */ + hideOnClose?: boolean; + /** + * A URL for the icon to be shown in the window title bar and the taskbar.Default: The parent application's applicationIcon. + * Updatable + */ + icon?: string; + /** + * The maximum height of a window.Will default to the OS defined value if set to - 1. Default: -1. + * Updatable + */ + maxHeight?: number; + /** + * A flag that lets the window be maximized.Default: true. + * Updatable + */ + maximizable?: boolean; + /** + * The maximum width of a window.Will default to the OS defined value if set to - 1. Default: -1. + * Updatable + */ + maxWidth?: number; + /** + * The minimum height of a window.Default: 0. + * Updatable + */ + minHeight?: number; + /** + * A flag that lets the window be minimized.Default: true. + */ + minimizable?: boolean; + /** + * The minimum width of a window.Default: 0. + */ + minWidth?: number; + /** + * The name for the window which must be unique within the context of the invoking Application. + */ + name?: string; + /** + * A flag that specifies how transparent the window will be.This value is clamped between 0.0 and 1.0.Default: 1.0. + * Updatable + */ + opacity?: number; + /** + * A flag to drop to allow the user to resize the window.Default: true. + * Updatable + */ + resizable?: boolean; + /** + * Defines a region in pixels that will respond to user mouse interaction for resizing a frameless window. + * Updatable + */ + resizeRegion?: { + /** + * The size in pixels (Default: 2), + */ + size?: number; + /** + * The size in pixels of an additional + * square resizable region located at the + * bottom right corner of a + * frameless window. (Default: 4) + */ + bottomRightCorner?: number; + }; + /** + * A flag to show the Window's icon in the taskbar. Default: true. + */ + showTaskbarIcon?: boolean; + /** + * A flag to cache the location of the window or not. Default: true. + */ + saveWindowState?: boolean; + /** + * Specify a taskbar group for the window. Default: app's uuid. + */ + taskbarIconGroup?: string; + /** + * A string that sets the window to be "minimized", "maximized", or "normal" on creation. Default: "normal". + */ + state?: string; + /** + * The URL of the window. Default: "about:blank". + */ + url?: string; + /** + * When set to false, the window will render before the "load" event is fired on the content's window. + * Caution, when false you will see an initial empty white window. Default: true. + */ + waitForPageLoad?: boolean; + } + + /** + * Clipboard + * Clipboard API allows reading and writting to the clipboard in multiple formats. + */ + interface OpenFinClipboard { + /** + * Reads available formats for the clipboard type + */ + availableFormats(type: string | null, callback?: (formats: string[]) => void, errorCallback?: (reason: string, error: ErrorInfo) => void): void; + /** + * Reads available formats for the clipboard type + */ + readHtml(type: string | null, callback?: (html: string) => void, errorCallback?: (reason: string, error: ErrorInfo) => void): void; + /** + * Read the content of the clipboard as Rtf + */ + readRtf(type: string | null, callback?: (rtf: string) => void, errorCallback?: (reason: string, error: ErrorInfo) => void): void; + /** + * Read the content of the clipboard as plain text + */ + readText(type: string | null, callback?: (text: string) => void, errorCallback?: (reason: string, error: ErrorInfo) => void): void; + /** + * Writes data into the clipboard + */ + write(data: any, type: string | null, callback?: () => void, errorCallback?: (reason: string, error: ErrorInfo) => void): void; + /** + * Writes data into the clipboard as Html + */ + writeHtml(data: string, type: string | null, callback?: () => void, errorCallback?: (reason: string, error: ErrorInfo) => void): void; + /** + * Writes data into the clipboard as Rtf + */ + writeRtf(data: string, type: string | null, callback?: () => void, errorCallback?: (reason: string, error: ErrorInfo) => void): void; + /** + * Writes data into the clipboard as plain text + */ + writeText(data: string, type: string | null, callback?: () => void, errorCallback?: (reason: string, error: ErrorInfo) => void): void; + } + + interface OpenFinExternalApplicationStatic { + /** + * Returns an External Application object that represents an existing external application. + */ + wrap(uuid: string): OpenFinExternalApplication; + } + /** + * ExternalApplication + * An object representing an application. Allows the developer to create, execute, show and close an application, as well as listen to application events. + */ + interface OpenFinExternalApplication { + /** + * Retrieves information about the application. + */ + getInfo(callback?: (info: ExternalApplicationInfo) => void, + errorCallback?: (reason: string, error: ErrorInfo) => void): void; + /** + * Registers an event listener on the specified event. + */ + addEventListener( + type: OpenFinExternalApplicationEventType, + listener: () => void, + callback?: () => void, + errorCallback?: (reason: string, error: ErrorInfo) => void): void; + /** + * Removes a previously registered event listener from the specified event. + */ + removeEventListener( + type: OpenFinExternalApplicationEventType, + listener: () => void, + callback?: () => void, + errorCallback?: (reason: string, error: ErrorInfo) => void): void; + } + + /** + * InterApplicationBus + * A messaging bus that allows for pub/sub messaging between different applications. + */ + interface OpenFinInterApplicationBus { + /** + * Adds a listener that gets called when applications subscribe to the current application's messages. + */ + addSubscribeListener(listener: (uuid: string, topic: string, name: string) => void): void; + /** + * Adds a listener that gets called when applications unsubscribe to the current application's messages. + */ + addUnsubscribeListener(listener: (uuid: string, topic: string, name: string) => void): void; + /** + * Removes a previously registered subscribe listener. + */ + removeSubscribeListener(listener: (uuid: string, topic: string, name: string) => void): void; + /** + * Removes a previously registered unsubscribe listener. + */ + removeUnsubscribeListener(listener: (uuid: string, topic: string, name: string) => void): void; + /** + * Publishes a message to all applications running on OpenFin Runtime that are subscribed to the specified topic. + */ + publish(topic: string, message: any, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Sends a message to a specific application on a specific topic. + */ + send(destinationUuid: string, name: string, topic: string, message: any, callback?: () => void, errorCallback?: (reason: string) => void): void; + send(destinationUuid: string, topic: string, message: any, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Subscribes to messages from the specified application on the specified topic. If the subscription is for a uuid, [name], + * topic combination that has already been published to upon subscription you will receive the last 20 missed messages in the order they were published. + */ + subscribe( + senderUuid: string, + name: string, + topic: string, + listener: (message: any, uuid: string, name: string) => void, + callback?: () => void, + errorCallback?: (reason: string) => void): void; + subscribe( + senderUuid: string, + topic: string, + listener: (message: any, uuid: string, name: string) => void, + callback?: () => void, + errorCallback?: (reason: string) => void): void; + /** + * Unsubscribes to messages from the specified application on the specified topic. + */ + unsubscribe( + senderUuid: string, + name: string, + topic: string, + listener: (message: any, uuid: string, name: string) => void, + callback?: () => void, + errorCallback?: (reason: string) => void): void; + unsubscribe( + senderUuid: string, + topic: string, + listener: (message: any, uuid: string, name: string) => void, + callback?: () => void, + errorCallback?: (reason: string) => void): void; + } + + interface OpenFinNotificationStatic { + /** + * ctor + */ + new (options: NotificationOptions, callback?: () => void, errorCallback?: (reason: string, errorObj: NetworkErrorInfo) => void): OpenFinNotification; + /** + * Gets an instance of the current notification. For use within a notification window to close the window or send a message back to its parent application. + */ + getCurrent(): OpenFinNotification; + } + + /** + * Notification + * Notification represents a window on OpenFin Runtime which is shown briefly to the user on the bottom-right corner of the primary monitor. + * A notification is typically used to alert the user of some important event which requires his or her attention. + * Notifications are a child or your application that are controlled by the runtime. + */ + interface OpenFinNotification { + /** + * Closes the notification. + */ + close(callback?: () => void): void; + /** + * Sends a message to the notification. + */ + sendMessage(message: any, callback?: () => void): void; + /** + * Sends a message from the notification to the application that created the notification. The message is handled by the notification's onMessage callback. + */ + sendMessageToApplication(message: any, callback?: () => void): void; + } + + interface NotificationOptions { + /** + * A boolean that will force dismissal even if the mouse is hovering over the notification + */ + ignoreMouseOver?: boolean; + /** + * A message of any primitive or composite-primitive type to be passed to the notification upon creation. + */ + message?: any; + /** + * The timeout for displaying a notification.Can be in milliseconds or "never". + */ + duration?: number | "never"; + /** + * The url of the notification + */ + url?: string; + /** + * A function that is called when a notification is clicked. + */ + onClick?(callback: () => void): void; + /** + * Invoked when the notification is closed via .close() method on the created notification instance + * or the by the notification itself via fin.desktop.Notification.getCurrent().close(). + * NOTE: this is not invoked when the notification is dismissed via a swipe. For the swipe dismissal callback see onDismiss + */ + onClose?(callback: () => void): void; + /** + * Invoked when a the notification is dismissed by swiping it off the screen to the right. NOTE: this is no fired on a programmatic close. + */ + onDismiss?(callback: () => void): void; + /** + * A function that is called when an error occurs.The reason for the error is passed as an argument. + */ + onError?(errorCallback: (reason: string, errorObj: NetworkErrorInfo) => void): void; + /** + * The onMessage function will respond to messages sent from notification.sendMessageToApplication. + * The function is passed the message, which can be of any primitive or composite-primitive type. + */ + onMessage?(callback: (message: any) => void): void; + /** + * A function that is called when a notification is shown. + */ + onShow?(callback: (successObj: SuccessObj) => void): void; + } + + /** + * System + * An object representing the core of OpenFin Runtime. + * Allows the developer to perform system-level actions, such as accessing logs, viewing processes, clearing the cache and exiting the runtime. + */ + interface OpenFinSystem { + Clipboard: OpenFinClipboard; + /** + * Registers an event listener on the specified event. + */ + addEventListener( + type: OpenFinSystemEventType, + listener: (event: SystemBaseEvent | DesktopIconClickedEvent | IdleStateChangedEvent | MonitorInfoChangedEvent | SessionChangedEvent) => void, + callback?: () => void, + errorCallback?: (reason: string) => void): void; + /** + * Clears cached data containing window state/positions, + * application resource files (images, HTML, JavaScript files), cookies, and items stored in the Local Storage. + */ + clearCache(options: CacheOptions, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Clears all cached data when OpenFin Runtime exits. + */ + deleteCacheOnExit(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Downloads the given application asset + */ + downloadAsset( + assetObj: AppAssetInfo, + progressListener?: (progress: { downloadedBytes: number, totalBytes: number }) => void, + callback?: (successObj: { path: string }) => void, + errorCallback?: (reason: string, errorObj: NetworkErrorInfo) => void): void; + + /** + * Download preload scripts from given URLs + */ + downloadPreloadScripts(scripts: DownloadPreloadOption[], callback?: (downloadInfo: DownloadPreloadInfo[]) => void, + errorCallback?: (reason: string) => void): void; + /** + * Downloads the given OpenFin Runtime. + */ + downloadRuntime(options: RuntimeDownloadOptions, onProgress?: (progress: RuntimeDownloadProgress) => void, onComplete?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Exits the Runtime. + */ + exit(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Writes any unwritten cookies data to disk. + */ + flushCookieStore(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves an array of data for all applications. + */ + getAllApplications(callback?: (applicationInfoList: ApplicationInfo[]) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves an array of data for all external applications. + */ + getAllExternalApplications(callback?: (applicationInfoList: ApplicationInfo[]) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves an array of data (name, ids, bounds) for all application windows. + */ + getAllWindows(callback?: (windowInfoList: WindowDetails[]) => void, errorCallback?: (reason: string) => void): void; + /** + * Returns information about the app asset. + */ + getAppAssetInfo(options: AppAssetOptions, callback?: (appAssetInfo: AppAssetInfo) => void, errorCallback?: (reason: string) => void): void; + /** + * Get additional info of cookies. + */ + getCookies(option: CookieOption, callback?: (info: CookieInfo[]) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves the command line argument string that started OpenFin Runtime. + */ + getCommandLineArguments(callback?: (args: string) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves the configuration object that started the OpenFin Runtime. + */ + getDeviceId(callback?: (uuid: string) => void, errorCallback?: (reason: string) => void): void; + /** + * Returns a hex encoded hash of the mac address and the currently logged in user name + */ + getDeviceUserId(callback?: (id: string) => void, errorCallback?: (reason: string) => void): void; + /** + * Returns an Entity info object relating to the entity specified by the uuid and name passed in. The possible types are 'window', 'iframe', 'external connection' or 'unknown'. + */ + getEntityInfo(uuid: string, name: string, callback?: (info: EntityInfo) => void, errorCallback?: (reason: string) => void): void; + /** + * Gets the value of a given environment variable on the computer on which the runtime is installed. + */ + getEnvironmentVariable(envVar: string, callback?: (variable: string) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves currently focused window identity. + */ + getFocusedWindow(callback?: (focusedWindowIdentity: Identity) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves system information. + */ + getHostSpecs(callback?: (info: HostSpecInfo) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves the contents of the log with the specified filename. + */ + getLog(logFileName: string, callback?: (variable: string) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves an array containing information for each log file. + */ + getLogList(callback?: (logInfoList: LogInfo[]) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves the minimum (inclusive) logging level that is currently being written to the logs. + */ + getMinLogLevel(callback?: (logLevel: string) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves an object that contains data about the about the monitor setup of the computer that the runtime is running on. + */ + getMonitorInfo(callback?: (monitorInfo: MonitorInfo) => void, errorCallback?: (reason: string) => void): void; + /** + * Returns the mouse in virtual screen coordinates (left, top). + */ + getMousePosition(callback?: (mousePosition: VirtualScreenCoordinates) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves an array of all of the runtime processes that are currently running. + * Each element in the array is an object containing the uuid and the name of the application to which the process belongs. + */ + getProcessList(callback?: (processInfoList: ProcessInfo[]) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves the Proxy settings. + */ + getProxySettings(callback?: (proxy: ProxyInfo) => void, errorCallback?: (reason: string) => void): void; + /** + * Returns information about the running RVM in an object. + */ + getRvmInfo(callback?: (rvmInfo: RvmInfo) => void, errorCallback?: (reason: string) => void): void; + /** + * Returns the version of the runtime. The version contains the major, minor, build and revision numbers. + */ + getVersion(callback?: (version: string) => void, errorCallback?: (reason: string) => void): void; + /** + * Runs an executable or batch file. + */ + launchExternalProcess(options: ExternalProcessLaunchInfo, callback?: (payload: { uuid: string }) => void, errorCallback?: (reason: string) => void): void; + /** + * Writes the passed message into both the log file and the console. + */ + log(level: "debug" | "info" | "warn" | "error", message: string, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Monitors a running process. + */ + monitorExternalProcess(options: ExternalProcessInfo, callback?: (payload: { uuid: string }) => void, errorCallback?: (reason: string) => void): void; + /** + * Opens the passed URL in the default web browser. + */ + openUrlWithBrowser(url: string, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Opens the passed URL in the default web browser. + */ + readRegistryValue(rootKey: string, subkey: string, value: string, callback?: (info: RegistryInfo) => void, + errorCallback?: (reason: string) => void): void; + /** + * This function call will register a unique id and produce a token. The token can be used to broker an external connection. + */ + registerExternalConnection( + uuid: string, + callback?: (detail: { + /** + * this will be unique each time + */ + token: string; + /** + * "remote-connection-uuid" + */ + uuid: string; + }) => void, + errorCallback?: (reason: string) => void): void; + /** + * Removes the process entry for the passed UUID obtained from a prior call of fin.desktop.System.launchExternalProcess(). + */ + releaseExternalProcess(processUuid: string, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Removes a previously registered event listener from the specified event. + */ + removeEventListener( + type: OpenFinSystemEventType, + listener: (event: SystemBaseEvent | DesktopIconClickedEvent | IdleStateChangedEvent | MonitorInfoChangedEvent | SessionChangedEvent) => void, + callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Set the minimum log level above which logs will be written to the OpenFin log + */ + setMinLogLevel(logLevel: string, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Shows the Chrome Developer Tools for the specified window. + */ + showDeveloperTools(uuid: string, name: string, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Attempt to close an external process. The process will be terminated if it has not closed after the elapsed timeout in milliseconds. + */ + terminateExternalProcess( + processUuid: string, + timeout: number, + killTree: boolean, + callback?: (info: { result: "clean" | "terminated" | "failed" }) => void, + errorCallback?: (reason: string) => void): void; + terminateExternalProcess( + processUuid: string, + timeout: number, + callback?: (info: { result: "clean" | "terminated" | "failed" }) => void, + errorCallback?: (reason: string) => void): void; + /** + * Update the OpenFin Runtime Proxy settings. + */ + updateProxySettings(type: string, address: string, port: number, callback?: () => void, errorCallback?: (reason: string) => void): void; + } + + interface CacheOptions { + cache?: boolean; + cookies?: boolean; + localStorage?: boolean; + appcache?: boolean; + userData?: boolean; + } + + interface AppAssetInfo { + src?: string; + alias?: string; + version?: string; + target?: string; + args?: string; + mandatory?: boolean; + } + + interface AppAssetOptions { + alias: string; + } + + interface ApplicationInfo { + /** + * true when the application is running. + */ + isRunning?: boolean; + /** + * uuid of the application. + */ + uuid?: string; + /** + * uuid of the application that launches this application. + */ + parentUuid?: string; + } + + interface Identity { + uuid: string; + name: string; + } + + interface EntityInfo { + name: string; + uuid: string; + parent: Identity; + entityType: string; + } + + interface DownloadPreloadOption { + url: string; + } + + interface DownloadPreloadInfo { + success: boolean; + url?: string; + error: string; + } + + interface CookieInfo { + name: string; + // expirationDate: Date; + domain: string; + path: string; + } + + interface CookieOption { + name: string; + } + + interface RegistryInfo { + data: any; + rootKey: string; + subkey: string; + type: string; + value: string; + } + + interface RuntimeDownloadOptions { + version: string; + } + + interface RuntimeDownloadProgress { + downloadedBytes: number; + totalBytes: number; + } + + interface WindowDetails { + uuid?: string; + mainWindow?: WindowInfo; + childWindows?: WindowInfo[]; + } + + interface WindowInfo { + /** + * name of the child window + */ + name?: string; + /** + * top-most coordinate of the child window + */ + top?: number; + /** + * right-most coordinate of the child window + */ + right?: number; + /** + * bottom-most coordinate of the child window + */ + bottom?: number; + /** + * left-most coordinate of the child window + */ + left?: number; + } + + interface HostSpecInfo { + /** + * "x86" for 32-bit or "x86_64" for 64-bit + */ + arch: string; + /** + * Same payload as Node's os.cpus() + */ + cpus: NodeCpuInfo[]; + gpu: { + /** + * Graphics card name + */ + name: string; + }; + /** + * Same payload as Node's os.totalmem() + */ + memory: number; + /** + * OS name and version/edition + */ + name: string; + } + + interface NodeCpuInfo { + model: string; + /** + * in MHz + */ + speed: number; + times: { + /** + * The number of milliseconds the CPU has spent in user mode. + */ + user: number; + /** + * The number of milliseconds the CPU has spent in nice mode. + */ + nice: number; + /** + * The number of milliseconds the CPU has spent in sys mode. + */ + sys: number; + /** + * The number of milliseconds the CPU has spent in idle mode. + */ + idle: number; + /** + * The number of milliseconds the CPU has spent in irq mode. + */ + irq: number; + }; + } + + interface LogInfo { + /** + * the filename of the log + */ + name?: string; + /** + * the size of the log in bytes + */ + size?: number; + /** + * the unix time at which the log was created "Thu Jan 08 2015 14:40:30 GMT-0500 (Eastern Standard Time)" + */ + date?: string; + } + + interface ProcessInfo { + /** + * the percentage of total CPU usage + */ + cpuUsage?: number; + /** + * the application name + */ + name?: string; + /** + * the current nonpaged pool usage in bytes + */ + nonPagedPoolUsage?: number; + /** + * the number of page faults + */ + pageFaultCount?: number; + /** + * the current paged pool usage in bytes + */ + pagedPoolUsage?: number; + /** + * the total amount of memory in bytes that the memory manager has committed + */ + pagefileUsage?: number; + /** + * the peak nonpaged pool usage in bytes + */ + peakNonPagedPoolUsage?: number; + /** + * the peak paged pool usage in bytes + */ + peakPagedPoolUsage?: number; + /** + * the peak value in bytes of pagefileUsage during the lifetime of this process + */ + peakPagefileUsage?: number; + /** + * the peak working set size in bytes + */ + peakWorkingSetSize?: number; + /** + * the native process identifier + */ + processId?: number; + /** + * the application UUID + */ + uuid?: string; + /** + * the current working set size (both shared and private data) in bytes + */ + workingSetSize?: number; + } + + interface ProxyInfo { + /** + * the configured Proxy Address + */ + proxyAddress?: string; + /** + * the configured Proxy port + */ + proxyPort?: number; + /** + * Proxy Type + */ + type?: string; + } + + interface RvmInfo { + version?: string; + "start-time"?: string; + } + + interface ExternalProcessLaunchInfo { + path?: string; + /** + * Additionally note that the executable found in the zip file specified in appAssets + * will default to the one mentioned by appAssets.target + * If the the path below refers to a specific path it will override this default + */ + alias?: string; + /** + * When using alias; if no arguments are passed then the arguments (if any) + * are taken from the 'app.json' file, from the 'args' parameter + * of the 'appAssets' Object with the relevant 'alias'. + * If 'arguments' is passed as a parameter it takes precedence + * over any 'args' set in the 'app.json'. + */ + arguments?: string; + listener?(result: { + /** + * "Exited" Or "released" on a call to releaseExternalProcess + */ + topic?: string; + /** + * The mapped UUID which identifies the launched process + */ + uuid?: string; + /* + * Process exit code + */ + exitCode?: number; + }): void; + certificate?: CertificationInfo; + } + + interface CertificationInfo { + /** + * A hex string with or without spaces + */ + serial?: string; + /** + * An internally tokenized and comma delimited string allowing partial or full checks of the subject fields + */ + subject?: string; + /** + * A hex string with or without spaces + */ + publickey?: string; + /** + * A hex string with or without spaces + */ + thumbprint?: string; + /** + * A boolean indicating that the certificate is trusted and not revoked + */ + trusted?: boolean; + } + + interface ExternalProcessInfo { + pid?: number; + listener?(result: { + /** + * "Exited" Or "released" on a call to releaseExternalProcess + */ + topic?: string; + /** + * The mapped UUID which identifies the launched process + */ + uuid?: string; + /* + * Process exit code + */ + exitCode?: number; + }): void; + } + + interface OpenFinWindowStatic { + /** + * Class: Window + * + * new Window(options, callbackopt, errorCallbackopt) + * + * Creates a new OpenFin Window + * + * A basic window that wraps a native HTML window. Provides more fine-grained control over the window state such as the ability to minimize, + * maximize, restore, etc. By default a window does not show upon instantiation; instead the window's show() method must be invoked manually. + * The new window appears in the same process as the parent window. + * @param options - The options of the window + * @param [callback] - Called if the window creation was successful + * @param [callback.successObj] - httpResponseCode + */ + new ( + options: WindowOptions, + callback?: (successObj: { httpResponseCode: number }) => void, + errorCallback?: (reason: string, errorObj: NetworkErrorInfo) => void): OpenFinWindow; + /** + * Returns an instance of the current window. + * @returns Current window + */ + getCurrent(): OpenFinWindow; + /** + * Returns a Window object that wraps an existing window. + */ + wrap(appUuid: string, windowName: string): OpenFinWindow; + } + + /** + * Window + * A basic window that wraps a native HTML window. Provides more fine-grained control over the window state such as the ability to minimize, + * maximize, restore, etc. By default a window does not show upon instantiation; instead the window's show() method must be invoked manually. + * The new window appears in the same process as the parent window. + */ + interface OpenFinWindow { + /** + * uuid of the application that the window belongs to. + */ + uuid: string; + /** + * Name of window + */ + name: string; + /** + * Returns the native JavaScript "window" object for the window. This method can only be used by the parent application or the window itself, + * otherwise it will return undefined. The same Single-Origin-Policy (SOP) rules apply for child windows created by window.open(url) in that the + * contents of the window object are only accessible if the URL has the same origin as the invoking window. See example below. + * Also, will not work with fin.desktop.Window objects created with fin.desktop.Window.wrap(). + * @returns Native window + */ + getNativeWindow(): Window; + /** + * Gets the parent application. + * @returns Parent application + */ + getParentApplication(): OpenFinApplication; + /** + * Gets the parent window. + */ + getParentWindow(): OpenFinWindow; + /** + * Registers an event listener on the specified event. + */ + addEventListener( + type: OpenFinWindowEventType, + listener: (event: WindowBaseEvent + | WindowAuthRequestedEvent + | WindowBoundsEvent + | WindowExternalProcessStartedEvent + | WindowExternalProcessExited + | WindowGroupChangedEvent + | WindowHiddenEvent + | Window_NavigationRejectedEvent) => void, + callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Performs the specified window transitions + */ + animate(transitions: AnimationTransition, options: AnimationOptions, callback?: (event: any) => void, errorCallback?: (reason: string) => void): void; + /** + * Provides credentials to authentication requests + */ + authenticate(userName: string, password: string, callback?: () => void, errorCallback?: (reason: string, error: ErrorInfo) => void): void; + /** + * Removes focus from the window. + */ + blur(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Brings the window to the front of the OpenFin window stack. + */ + bringToFront(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Closes the window. + * @param Close will be prevented from closing when force is false and 'close-requested' has been subscribed to for application's main window. + */ + close(force?: boolean, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Prevents a user from changing a window's size/position when using the window's frame. + * 'disabled-frame-bounds-changing' is generated at the start of and during a user move/size operation. + * 'disabled-frame-bounds-changed' is generated after a user move/size operation. + * The events provide the bounds that would have been applied if the frame was enabled. + * 'frame-disabled' is generated when an enabled frame becomes disabled. + */ + disableFrame(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Re-enables user changes to a window's size/position when using the window's frame. + * 'disabled-frame-bounds-changing' is generated at the start of and during a user move/size operation. + * 'disabled-frame-bounds-changed' is generated after a user move/size operation. + * The events provide the bounds that would have been applied if the frame was enabled. + * 'frame-enabled' is generated when a disabled frame has becomes enabled. + */ + enableFrame(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Flashes the window's frame and taskbar icon until the window is activated. + */ + flash(options?: any, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Gives focus to the window. + */ + focus(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Gets the current bounds (top, left, width, height) of the window. + */ + getBounds(callback?: (bounds: WindowBounds) => void, errorCallback?: (reason: string) => void): void; + /** + * Retrieves an array containing wrapped fin.desktop.Windows that are grouped with this window. If a window is not in a group an empty array is returned. + * Please note that calling window is included in the result array. + */ + getGroup(callback?: (group: OpenFinWindow[]) => void, errorCallback?: (reason: string) => void): void; + /** + * Gets the current settings of the window. + */ + getOptions(callback?: (options: WindowOptions) => void, errorCallback?: (reason: string) => void): void; + /** + * Gets a base64 encoded PNG snapshot of the window. + */ + getSnapshot(callback?: (base64Snapshot: string) => void, errorCallback?: (reason: string) => void): void; + /** + * Gets the current state ("minimized", "maximized", or "restored") of the window. + */ + getState(callback?: (state: "minimized" | "maximized" | "restored") => void, errorCallback?: (reason: string) => void): void; + /** + * Returns the zoom level of the window. + */ + getZoomLevel(callback?: (level: number) => void, errorCallback?: (reason: string) => void): void; + /** + * Hides the window. + */ + hide(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Determines if the window is currently showing. + */ + isShowing(callback?: (showing: boolean) => void, errorCallback?: (reason: string) => void): void; + /** + * Joins the same window group as the specified window. + */ + joinGroup(target: OpenFinWindow, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Leaves the current window group so that the window can be move independently of those in the group. + */ + leaveGroup(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Maximizes the window. + */ + maximize(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Merges the instance's window group with the same window group as the specified window + */ + mergeGroups(target: OpenFinWindow, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Minimizes the window. + */ + minimize(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Moves the window by a specified amount. + */ + moveBy(deltaLeft: number, deltaTop: number, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Moves the window to a specified location. + */ + moveTo(left: number, top: number, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Removes a previously registered event listener from the specified event. + */ + removeEventListener( + type: OpenFinWindowEventType, + listener: (event: WindowBaseEvent + | WindowAuthRequestedEvent + | WindowBoundsEvent + | WindowExternalProcessStartedEvent + | WindowExternalProcessExited + | WindowGroupChangedEvent + | WindowHiddenEvent + | Window_NavigationRejectedEvent) => void, + callback?: () => void, + errorCallback?: (reason: string) => void): void; + /** + * Resizes the window by a specified amount. + */ + resizeBy(deltaWidth: number, deltaHeight: number, anchor: OpenFinAnchor, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Resizes the window by a specified amount. + */ + resizeTo(width: number, height: number, anchor: OpenFinAnchor, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Restores the window to its normal state (i.e., unminimized, unmaximized). + */ + restore(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Will bring the window to the front of the entire stack and give it focus. + */ + setAsForeground(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Sets the window's size and position + */ + setBounds(left: number, top: number, width: number, height: number, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Sets the zoom level of the window. + */ + setZoomLevel(level: number, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Shows the window if it is hidden. + * @param Show will be prevented from closing when force is false and 'show-requested' has been subscribed to for application's main window. + */ + show(force?: boolean, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Shows the window if it is hidden at the specified location. If the toggle parameter is set to true, the window will alternate between showing and hiding. + */ + showAt(left: number, top: number, force?: boolean, callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Stops the taskbar icon from flashing. + */ + stopFlashing(callback?: () => void, errorCallback?: (reason: string) => void): void; + /** + * Updates the window using the passed options + */ + updateOptions(options: WindowOptions, callback?: () => void, errorCallback?: (reason: string) => void): void; + } + + interface OpenFinFrameStatic { + wrap(uuid: string, name: string): OpenFinFrame; + + getCurrent(): OpenFinFrame; + } + + interface OpenFinFrame { + name: string; + uuid: string; + + addEventListener(type: string, listener: () => void, callback?: () => void, errorCallback?: (reason: string) => void): void; + + getParentWindow(callback?: (entityInfo: EntityInfo) => void, errorCallback?: (reason: string) => void): void; + + getInfo(callback?: (entityInfo: EntityInfo) => void, errorCallback?: (reason: string) => void): void; + + removeEventListener(type: string, listener: () => void, callback?: () => void, errorCallback?: (reason: string) => void): void; + } + + interface ApplicationBaseEvent { + topic: string; + type: OpenFinApplicationEventType; + uuid: string; + } + + interface TrayIconClickedEvent extends ApplicationBaseEvent { + button: number; // 0 for left, 1 for middle, 2 for right + monitorInfo: MonitorInfo; + x: number; // the cursor x coordinate + y: number; // the cursor y coordinate + } + + interface WindowEvent extends ApplicationBaseEvent { + name: string; + } + + interface WindowAlertRequestedEvent extends WindowEvent { + message: string; + url: string; + } + + interface WindowAuthRequested extends WindowEvent { + authInfo: { + host: string; + isProxy: boolean; + port: number; + realm: string; + scheme: string; + }; + } + + interface WindowNavigationRejectedEvent extends WindowEvent { + sourceName: string; + url: string; + } + + interface WindowEndLoadEvent extends WindowEvent { + documentName: string; + isMain: boolean; + } + + interface MonitorInfoChangedEvent extends MonitorInfo { + topic: "system"; + type: "monitor-info-changed"; + } + + interface MonitorInfo { + nonPrimaryMonitors: MonitorInfoDetail[]; + primaryMonitor: MonitorInfoDetail; + reason: string; + taskbar: { + edge: "left" | "right" | "top" | "bottom", + rect: MontiorCoordinates + }; + topic: "system"; + type: "monitor-info-changed"; + virtualScreen: MontiorCoordinates; + } + + interface TrayIconInfo { + x: number; + y: number; + bounds: { + x: number; + y: number; + width: number; + height: number; + }; + monitorInfo: MonitorInfo; + } + + interface MonitorInfoDetail { + availableRect: MontiorCoordinates; + deviceId: string; + displayDeviceActive: boolean; + monitorRect: MontiorCoordinates; + name: string; + } + + interface MontiorCoordinates { + bottom: number; + left: number; + right: number; + top: number; + } + + interface VirtualScreenCoordinates { + left: number; + top: number; + } + + interface SystemBaseEvent { + topic: string; + type: OpenFinSystemEventType; + uuid: string; + } + + interface DesktopIconClickedEvent { + mouse: { + /** + * the left virtual screen coordinate of the mouse + */ + left: number, + /** + * the top virtual screen coordinate of the mouse + */ + top: number + }; + /** + * the number of milliseconds that have elapsed since the system was started, + */ + tickCount: number; + topic: "system"; + type: "desktop-icon-clicked"; + } + + interface IdleStateChangedEvent { + /** + * How long in milliseconds since the user has been idle. + */ + elapsedTime: number; + /** + * true when the user is idle,false when the user has returned; + */ + isIdle: boolean; + topic: "system"; + type: "idle-state-changed"; + } + + interface WindowBaseEvent { + /** + * the name of the window + */ + name: string; + /** + * always window + */ + topic: "window"; + /** + * window event type + */ + type: OpenFinWindowEventType; + /** + * the UUID of the application the window belongs to + */ + uuid: string; + } + + interface WindowAuthRequestedEvent extends WindowBaseEvent { + authInfo: { + host: string; + isProxy: boolean; + port: number; + realm: string; + scheme: string; + }; + } + + interface WindowBoundsEvent extends WindowBaseEvent { + /** + * describes what kind of change occurred. + * 0 means a change in position. + * 1 means a change in size. + * 2 means a change in position and size. + */ + changeType: number; + /** + * true when pending changes have been applied to the window. + */ + deferred: boolean; + /** + * the new height of the window. + */ + height: number; + /** + * the left-most coordinate of the window. + */ + left: number; + /** + * the top-most coordinate of the window. + */ + top: number; + + type: "bounds-changed" | "bounds-changing" | "disabled-frame-bounds-changed" | "disabled-frame-bounds-changing"; + /** + * the new width of the window. + */ + width: number; + } + + interface WindowExternalProcessStartedEvent extends WindowBaseEvent { + /** + * the process handle uuid + */ + processUuid: string; + type: "external-process-started"; + } + + interface WindowExternalProcessExited extends WindowBaseEvent { + /** + * the process exit code + */ + exitCode: number; + /** + * the process handle uuid + */ + processUuid: string; + type: "external-process-exited"; + } + + interface WindowGroupChangedEvent extends WindowBaseEvent { + /** + * Which group array the window that the event listener was registered on is included in: + * 'source' The window is included in sourceGroup. + * 'target' The window is included in targetGroup. + * 'nothing' The window is not included in sourceGroup nor targetGroup. + */ + memberOf: "source" | "target" | "nothing"; + /** + * The reason this event was triggered. + * 'leave' A window has left the group due to a leave or merge with group. + * 'join' A window has joined the group. + * 'merge' Two groups have been merged together. + * 'disband' There are no other windows in the group. + */ + reason: "leave" | "join" | "merge" | "disband"; + /** + * All the windows in the group the sourceWindow originated from. + */ + sourceGroup: WindowOfGroupInfo[]; + /** + * The UUID of the application the sourceWindow belongs to The source window is the window in which (merge/join/leave)group(s) was called. + */ + sourceWindowAppUuid: string; + /** + * the name of the sourcewindow.The source window is the window in which(merge / join / leave) group(s) was called. + */ + sourceWindowName: string; + /** + * All the windows in the group the targetWindow orginated from + */ + targetGroup: WindowOfGroupInfo[]; + /** + * The UUID of the application the targetWindow belongs to. The target window is the window that was passed into (merge/join) group(s). + */ + targetWindowAppUuid: string; + /** + * The name of the targetWindow. The target window is the window that was passed into (merge/join) group(s). + */ + targetWindowName: string; + type: "group-changed"; + } + + interface WindowOfGroupInfo { + /** + * The UUID of the application this window entry belongs to. + */ + appUuid: string; + /** + * The name of this window entry. + */ + windowName: string; + } + + interface WindowHiddenEvent extends WindowBaseEvent { + /** + * What action prompted the close. + * The reasons are: "hide", "hide-on-close" + */ + reason: "hide" | "hide-on-close"; + type: "hidden"; + } + + interface Window_NavigationRejectedEvent { + name: string; + /** + * source of navigation window name + */ + sourceName: string; + topic: "navigation-rejected"; + /** + * Url that was not reached "http://blocked-content.url" + */ + url: string; + /** + * the UUID of the application the window belongs to. + */ + uuid: string; + } + + interface AnimationTransition { + opacity?: { + /** + * This value is clamped from 0.0 to 1.0 + */ + opacity?: number; + /** + * The total time in milliseconds this transition should take. + */ + duration?: number; + /** + * Treat 'opacity' as absolute or as a delta. Defaults to false. + */ + relative?: boolean; + }; + position?: { + /** + * Defaults to the window's current left position in virtual screen coordinates. + */ + left?: number; + /** + * Defaults to the window's current top position in virtual screen coordinates. + */ + top?: number; + /** + * The total time in milliseconds this transition should take. + */ + duration?: number; + /** + * Treat 'left' and 'top' as absolute or as deltas. Defaults to false. + */ + relative?: boolean; + }; + size?: { + /** + * Optional if height is present. Defaults to the window's current width. + */ + width?: number; + /** + * Optional if width is present. Defaults to the window's current height. + */ + height?: number; + /** + * The total time in milliseconds this transition should take. + */ + duration?: number; + /** + * Treat 'width' and 'height' as absolute or as deltas. Defaults to false. + */ + relative?: boolean; + }; + } + + interface AnimationOptions { + /** + * This option interrupts the current animation. When false it pushes this animation onto the end of the animation queue. + */ + interrupt?: boolean; + /** + * Transition effect. Defaults to 'ease-in-out'. + */ + tween?: OpenFinTweenType; + } + + interface WindowBounds { + /** + * the height of the window. + */ + height?: number; + /** + * left-most coordinate of the window. + */ + left?: number; + /** + * top-most coordinate of the window. + */ + top?: number; + /** + * the width of the window. + */ + width?: number; + } + + interface ExternalApplicationInfo { + parent: { + uuid: string; + name: string; + }; + } + + interface SessionChangedEvent { + /** + * the action that triggered this event: + */ + reason: "lock" + | "unlock" + | "remote-connect" + | "remote-disconnect" + | "unknown"; + topic: "system"; + type: "session-changed"; + } + + interface LaunchInfo { + launchMode: "fin-protocol" + | "fins-protocol" + | "shortcut" + | "command-line" + | "adapter" + | "other" + | string; + } + + type OpenFinTweenType = "linear" + | "ease-in" + | "ease-out" + | "ease-in-out" + | "ease-in-quad" + | "ease-out-quad" + | "ease-in-out-quad" + | "ease-in-cubic" + | "ease-out-cubic" + | "ease-in-out-cubic" + | "ease-out-bounce" + | "ease-in-back" + | "ease-out-back" + | "ease-in-out-back" + | "ease-in-elastic" + | "ease-out-elastic" + | "ease-in-out-elastic"; + + type OpenFinApplicationEventType = "closed" + | "connected" + | "crashed" + | "initialized" + | "manifest-changed" + | "not-responding" + | "out-of-memory" + | "responding" + | "run-requested" + | "started" + | "tray-icon-clicked" + | "window-alert-requested" + | "window-auth-requested" + | "window-closed" + | "window-created" + | "window-end-load" + | "window-navigation-rejected" + | "window-show-requested" + | "window-start-load"; + + type OpenFinExternalApplicationEventType = "connected" + | "disconnected"; + + type OpenFinSystemEventType = "application-closed" + | "application-crashed" + | "application-created" + | "application-started" + | "desktop-icon-clicked" + | "idle-state-changed" + | "monitor-info-changed" + | "session-changed"; + + type OpenFinWindowEventType = "auth-requested" + | "blurred" + | "bounds-changed" + | "bounds-changing" + | "close-requested" + | "closed" + | "disabled-frame-bounds-changed" + | "disabled-frame-bounds-changing" + | "embedded" + | "external-process-exited" + | "external-process-started" + | "focused" + | "frame-disabled" + | "frame-enabled" + | "group-changed" + | "hidden" + | "initialized" + | "maximized" + | "minimized" + | "navigation-rejected" + | "restored" + | "show-requested" + | "shown"; + + type OpenFinAnchor = "top-left" + | "top-right" + | "bottom-left" + | "bottom-right"; +} diff --git a/types/openfin/v29/openfin-tests.ts b/types/openfin/v29/openfin-tests.ts new file mode 100644 index 0000000000..6059f54de7 --- /dev/null +++ b/types/openfin/v29/openfin-tests.ts @@ -0,0 +1,800 @@ +function test_application() { + let application: fin.OpenFinApplication; + // constructor + application = new fin.desktop.Application({ + url: "application.html", + uuid: "74BED629-2D8E-4141-8582-73E364BDFA74", + name: "Application Name", + plugins: false, + mainWindowOptions: { + defaultHeight: 600, + defaultWidth: 800, + defaultTop: 300, + defaultLeft: 300, + autoShow: true + } + }, (successObj) => { + console.log("Application successfully created, HTTP response code:", successObj); + application.run(); + }, (error) => { + console.log("Error creating application:", error); + }); + // createFromManifest + fin.desktop.Application.createFromManifest("http://stuf.com/app.json", (app) => { + console.log(app.uuid); + }, err => console.log(err)); + // getCurrent + application = fin.desktop.Application.getCurrent(); + // wrap + application = fin.desktop.Application.wrap("454C7F31-A915-4EA2-83F2-CFA655453C52"); + // getWindow + application.getWindow(); + // addEventListener + application.addEventListener("closed", (event) => { + console.log("The application has closed"); + }, () => { + console.log("The registration was successful"); + }, reason => { + console.log("failure: " + reason); + }); + // close + application.close(); + // getChildWindows + application.getChildWindows(children => { + children.forEach(childWindow => { + console.log("Showing child: " + childWindow.name); + childWindow.show(); + }); + }); + // getGroups + application.getGroups(allGroups => { + console.log(`There are a total of ${allGroups.length} groups.`); + + let groupCounter = 1; + allGroups.forEach(windowGroup => { + console.log(`Group ${groupCounter} contains ${windowGroup.length} windows.`); + ++groupCounter; + }); + }); + // getManifest + application.getManifest(manifest => { + console.log("Application manifest:"); + console.log(manifest); + }); + // getParentUuid + application.getParentUuid(parentUuid => { + console.log("UUID of parent application:"); + console.log(parentUuid); + }); + // getShortcuts + application.getShortcuts(config => { + console.log("Desktop shortcut is enabled: ", config.desktop); + console.log("Start Menu shortcut is enabled: ", config.startMenu); + console.log("System Startup shortcut is enabled: ", config.systemStartup); + }); + // getInfo + application.getInfo(info => { + console.log(`Launch mode: ${info.launchMode}`); + }); + // getTrayIconInfo + application.getTrayIconInfo(info => { + console.log(info.x, info.y, info.bounds.x, info.bounds.y, info.bounds.height, info.bounds.width, + info.monitorInfo.type, info.monitorInfo.reason); + }); + // isRunning + application.isRunning(running => { + console.log("the application is", running ? "running" : "not running"); + }); + // registerCustomData + application.registerUser("a", "b", () => console.log("done"), err => console.log(err)); + // removeEventListener + application.removeEventListener("closed", (event: any) => { + console.log(event); + }, () => { + console.log("The unregistration was successful"); + }, err => { + console.log("failure:", err); + }); + // removeTrayIcon + application.removeTrayIcon(() => { + console.log("Removed the tray icon."); + }, err => { + console.log("failure:", err); + }); + // restart + application.restart(() => { + console.log("You will not read this."); + }, err => { + console.log("failure:", err); + }); + // schedule restart + application.scheduleRestart(() => { + console.log("You will not read this."); + }, err => { + console.log("failure:", err); + }); + // setShortcuts + application.setShortcuts({ + desktop: true, + startMenu: false, + systemStartup: true + }, () => { + console.log("Successfully set new shortcut states"); + }, error => { + console.log("Failed to set new shortcut states. Error: ", error); + }); + // setTrayIcon + application.setTrayIcon("https://developer.openf.in/download/openfin.png", clickInfo => { + console.log(`The mouse has clicked at (${clickInfo.x}, ${clickInfo.y})`); + }); + // terminate + application.terminate(); + // wait + application.addEventListener("not-responding", () => { + console.log("waiting for hung application"); + application.wait(); + }); + // uuid + const hasUuid = application.uuid; +} + +function test_external_application() { + let externalApp: fin.OpenFinExternalApplication; + // wrap + externalApp = fin.desktop.ExternalApp.wrap('my-uuid'); + // addEventListener + externalApp.addEventListener('connected', () => { + console.log('external app connected'); + }, () => { + console.log('The registration was successful'); + }, (reason, err) => { + console.log(`Error Message: ${err.message} Error Stack: ${err.stack}`); + }); + // removeEventListener + const previousCallback = () => { }; + externalApp.removeEventListener('connected', previousCallback, () => { + console.log('The unregistration was successful'); + }, (reason, err) => { + console.log(`Error Message: ${err.message} Error Stack: ${err.stack}`); + }); + + // getInfo + externalApp.getInfo(info => { + console.log(info.parent.uuid, info.parent.name); + }, err => console.log(err)); +} + +function test_inter_application_bus() { + // addSubscribeListener + fin.desktop.InterApplicationBus.addSubscribeListener((uuid, topic, name) => { + console.log(`The application ${uuid} has subscribed to ${topic}`); + }); + // addUnsubscribeListener + fin.desktop.InterApplicationBus.addUnsubscribeListener((uuid, topic, name) => { + console.log(`The application ${uuid} has unsubscribed to ${topic}`); + }); + // removeSubscribeListener + const aRegisteredListener = (uuid: string, topic: string, name: string) => { }; + fin.desktop.InterApplicationBus.removeSubscribeListener(aRegisteredListener); + // removeUnsubscribeListener + fin.desktop.InterApplicationBus.removeUnsubscribeListener(aRegisteredListener); + // publish + fin.desktop.InterApplicationBus.publish("a topic", { + field1: "value1", + field2: "value2" + }); + // send + fin.desktop.InterApplicationBus.send("an application's uuid", "a topic", { + field1: "value1", + field2: "value2" + }); + // subscribe + fin.desktop.InterApplicationBus.subscribe("*", "a topic", (message, uuid, name) => { + console.log(`The application ${uuid} sent this message: ${message}`); + }); + // unsubscribe + const aRegisteredMessageListener = (message: any, senderUuid: string) => { + console.log(message, senderUuid); + }; + fin.desktop.InterApplicationBus.unsubscribe("*", "a topic", aRegisteredMessageListener); +} + +function test_notification() { + let notification: fin.OpenFinNotification; + // getCurrent + notification = fin.desktop.Notification.getCurrent(); + // close + notification.close(); + // sendMessage + notification = new fin.desktop.Notification({ + duration: 10, + url: "http://localhost:5000/Account/Register", + message: "Hello", + onShow: () => { }, + // onClose: () => { }, + onDismiss: () => { }, + // onClick: () => { }, + onMessage: () => { }, + onError: () => { } + }); + // sendMessageToApplication + notification.sendMessageToApplication("some message"); +} + +function test_system() { + // addEventListener + fin.desktop.System.addEventListener('monitor-info-changed', event => { + console.log("The monitor information has changed to: ", event); + }, () => { + console.log("The registration was successful"); + }, err => { + console.log("failure: " + err); + }); + // clearCache + fin.desktop.System.clearCache({ + cache: true, + cookies: true, + localStorage: true, + appcache: true, + userData: true + }); + // deleteCacheOnExit + fin.desktop.System.deleteCacheOnExit(() => { + console.log("successful"); + }, err => { + console.log("failure: " + err); + }); + // downloadAsset + const dirAppAsset = { + src: 'http://local:8000/dir.zip', + alias: 'dirApp', + version: '1.23.24', + target: 'dir.bat', + args: '' + }; + fin.desktop.System.downloadAsset(dirAppAsset, progress => { + const downloadedPercent = Math.floor((progress.downloadedBytes / progress.totalBytes) * 100); + console.log(`Downloaded ${downloadedPercent}%`); + }, p => { + console.log(`Downlod complete, can be found on ${p.path}`); + // lets launch our application asset. + // launchDirApp(); + }, (reason, err) => { + console.log(reason, err); + }); + // downloadRuntime + fin.desktop.System.downloadRuntime({ version: '9.61.31.56' }, progress => { + console.log(progress.downloadedBytes, progress.downloadedBytes); + }, () => console.log('download complete'), err => console.error(err)); + // downloadPreloadScript + const preloadScripts = [ + { url: 'http://whatever.com/script.js' } + ]; + fin.desktop.System.downloadPreloadScripts(preloadScripts, info => { + const downloadInfo = info[0]; + console.log(downloadInfo.success, downloadInfo.url, downloadInfo.error); + }, err => { + console.log(err); + }); + // exit + fin.desktop.System.exit(() => { + console.log("successful"); + }, err => { + console.log("failure: " + err); + }); + // flushCookieStore + fin.desktop.System.flushCookieStore(() => { + console.log('successful'); + }, err => { + console.log('failure', err); + }); + // getAllApplications + fin.desktop.System.getAllApplications(applicationInfoList => { + applicationInfoList.forEach(applicationInfo => { + console.log("Showing information for application with uuid: " + + applicationInfo.uuid); + console.log("isRunning: ", applicationInfo.isRunning); + }); + }); + // getAllExternalApplications + fin.desktop.System.getAllExternalApplications(externalAppsInfoList => { + externalAppsInfoList.forEach(appInfo => { + console.log(`External app connected to the runtime with UUID ${appInfo.uuid}`); + }); + }); + // getAllWindows + fin.desktop.System.getAllWindows(windowInfoList => { + windowInfoList.forEach(windowInfo => { + console.log("Showing information for application with uuid: ", windowInfo.uuid); + console.log("Main window: ", windowInfo.mainWindow); + console.log("Child windows: ", windowInfo.childWindows); + }); + }); + // getAppAssetInfo + fin.desktop.System.getAppAssetInfo({ alias: 'myAppAsset' }, info => { + console.log(info.alias, info.args, info.mandatory, info.src, info.target, info.version); + }, err => console.log(err)); + // getCommandLineArguments + fin.desktop.System.getCommandLineArguments(args => { + console.log("The command line arguments are " + args); + }); + // getCookieInfo + fin.desktop.System.getCookies({ name: 'myCookie1'}, cookies => { + const cookie1 = cookies[0]; + console.log(cookie1.name, cookie1.domain, cookie1.path); + }, err => console.log(err)); + // getDeviceId + fin.desktop.System.getDeviceId(id => { + console.log("The id of the device is: " + id); + }); + // getDeviceUserId + fin.desktop.System.getDeviceUserId(id => console.log(id), err => console.error(err)); + // getEntityInfo + fin.desktop.System.getEntityInfo('uuid', 'name', info => { + console.log(info.entityType, info.name, info.uuid, info.parent.name, info.parent.uuid); + }, err => console.log(err)); + // getEnvironmentVariable + fin.desktop.System.getEnvironmentVariable("APPDATA", variable => { + console.log("this is the APPDATA value", variable); + }); + // getFocusedWindow + fin.desktop.System.getFocusedWindow(win => { + console.log(win.uuid, win.name); + }, err => console.log(err)); + // getHostSpecs + fin.desktop.System.getHostSpecs(info => { + console.log(info); + }, error => { + console.log('There was an error:', error); + }); + // getLog + fin.desktop.System.getLog('debug-2015-01-08-22-27-53.log', log => { + console.log(log); + }); + // getLogList + fin.desktop.System.getLogList(logList => { + logList.forEach(logInfo => { + console.log(`The filename of the log is ${logInfo.name}, the size is ${logInfo.size}, and the date of creation is ${logInfo.date}`); + }); + }); + // getMinLogLevel + fin.desktop.System.getMinLogLevel(level => console.log(level), err => console.log(err)); + // getMonitorInfo + fin.desktop.System.getMonitorInfo(monitorInfo => { + console.log("This object contains information about all monitors: ", monitorInfo); + }); + // getMousePosition + fin.desktop.System.getMousePosition(mousePosition => { + console.log(`The mouse is located at left: ${mousePosition.left}, top: ${mousePosition.top}`); + }); + // getProcessList + fin.desktop.System.getProcessList(list => { + list.forEach(process => { + console.log(`UUID: ${process.uuid}, Application Name: ${process.name}`); + }); + }); + // getProxySettings + fin.desktop.System.getProxySettings(proxy => { + console.log(proxy); + }); + // getRvmInfo + fin.desktop.System.getRvmInfo(rvmInfoObject => { + console.log("RVM version:", rvmInfoObject.version); + console.log("RVM has been running since:", rvmInfoObject["start-time"]); + }, err => { + console.log("Failed to get rvm info, error message:", err); + }); + // getVersion + fin.desktop.System.getVersion(version => { + console.log("The version is " + version); + }); + // launchExternalProcess + fin.desktop.System.launchExternalProcess({ + path: "notepad", + arguments: "", + listener(result) { + console.log('the exit code', result.exitCode); + } + }, payload => { + console.log('Success:', payload.uuid); + }, error => { + console.log('Error:', error); + }); + // launch external process with an alias + fin.desktop.System.launchExternalProcess({ + // Additionally note that the executable found in the zip file specified in appAssets + // will default to the one mentioned by appAssets.target + // If the the path below refers to a specific path it will override this default + alias: "myApp", + listener(result) { + console.log('the exit code', result.exitCode); + } + }, payload => { + console.log('Success:', payload.uuid); + }, error => { + console.log('Error:', error); + }); + // + fin.desktop.System.launchExternalProcess({ + alias: "myApp", + arguments: "e f g", + listener(result) { + console.log('the exit code', result.exitCode); + } + }, payload => { + console.log('Success:', payload.uuid); + }, error => { + console.log('Error:', error); + }); + // + fin.desktop.System.launchExternalProcess({ + path: "C:\Users\ExampleUser\AppData\Local\OpenFin\OpenFinRVM.exe", + arguments: "--version", + certificate: { + trusted: true, + subject: 'O=OpenFin INC., L=New York, S=NY, C=US', + thumbprint: '3c a5 28 19 83 05 fe 69 88 e6 8f 4b 3a af c5 c5 1b 07 80 5b' + }, + listener(result) { + console.log('the exit code', result.exitCode); + } + }, payload => { + console.log('Success:', payload.uuid); + }, error => { + console.log('Error:', error); + }); + // log + fin.desktop.System.log("info", "An example log message", () => { + console.log("message successfully logged"); + }, err => { + console.log(err); + }); + // monitorExternalProcess + fin.desktop.System.monitorExternalProcess({ + pid: 2508, + listener(result) { + console.log('the exit code', result.exitCode); + } + }, payload => { + console.log("The process is now being monitored: ", payload.uuid); + }, error => { + console.log("Error:", error); + }); + // openUrlWithBrowser + fin.desktop.System.openUrlWithBrowser("https://developer.openf.in/", () => { + console.log("successful"); + }, err => { + console.log("failure: " + err); + }); + // readRegistryValue + fin.desktop.System.readRegistryValue('HKEY_SOMETHING', 'HARDWARE\\SOMETHING', 'BootSomething', info => { + console.log(info.data, info.rootKey, info.subkey, info.type, info.value); + }, err => console.log(err)); + // registerExternalConnection + fin.desktop.System.registerExternalConnection("remote-connection-uuid", (...args: any[]) => { + console.log(args); + }); + // releaseExternalProcess + fin.desktop.System.launchExternalProcess({ + path: "notepad", + arguments: "", + listener(result) { + console.log("The exit code", result.exitCode); + } + }, result => { + console.log("Result UUID is " + result.uuid); + + // release it. + fin.desktop.System.releaseExternalProcess(result.uuid, () => { + console.log("Process has been unmapped!"); + }, reason => { + console.log("failure: " + reason); + }); + }); + // removeEventListener + fin.desktop.System.removeEventListener("monitor-info-changed", (event) => { + console.log(event); + }, () => { + console.log("successful"); + }, (err: any) => { + console.log("failure: " + err); + }); + // setMinLogLevel + fin.desktop.System.setMinLogLevel("log level", () => console.log('Success'), (err: any) => console.error(err)); + // showDeveloperTools + fin.desktop.System.showDeveloperTools("uuid", "name", () => { + console.log("successful"); + }, err => { + console.log("failure: " + err); + }); + // terminateExternalProcess + fin.desktop.System.launchExternalProcess({ + // notepad is in the system's PATH + path: "notepad", + arguments: "", + listener(result) { + console.log("The exit code", result.exitCode); + } + }, result => { + console.log("Result UUID is " + result.uuid); + + // Attempt to close the process. Terminate after 4 seconds if it + // has not done so. + fin.desktop.System.terminateExternalProcess(result.uuid, 4000, info => { + console.log("Termination result " + info.result); + }, reason => { + console.log("failure: " + reason); + }); + }); + // updateProxySettings + fin.desktop.System.updateProxySettings("type", "proxyAddress", 8080, () => { + console.log('success'); + }, err => { + console.log(err); + }); +} + +function test_system_clipboard() { + // availableFormats + fin.desktop.System.Clipboard.availableFormats(null, formats => { + formats.forEach(format => console.log(`The format ${format} is available to read`)); + }, (reason, err) => { + console.log(`Error while reading the clipboard Message: ${err.message}, Stack: ${err.stack}`); + }); + // readHtml + fin.desktop.System.Clipboard.readHtml(null, html => { + console.log(`This is the html from the clipboard: ${html}`); + }, (reason, err) => { + console.log(`Error while reading the clipboard Message: ${err.message}, Stack: ${err.stack}`); + }); + // readRtf + fin.desktop.System.Clipboard.readRtf(null, rtf => { + console.log(`This is the rtf from the clipboard: ${rtf}`); + }, (reason, err) => { + console.log(`Error while reading the clipboard Message: ${err.message}, Stack: ${err.stack}`); + }); + // readText + fin.desktop.System.Clipboard.readText(null, text => { + console.log(`This is the text from the clipboard: ${text}`); + }, (reason, err) => { + console.log(`Error while reading the clipboard Message: ${err.message}, Stack: ${err.stack}`); + }); + // write + fin.desktop.System.Clipboard.write({ + text: 'Hello Text!', + html: '

Hello Html

', + rtf: 'Hello Rtf' + }, null, () => { + console.log('Success!!'); + }, (reason, err) => { + console.log(`Error while reading the clipboard Message: ${err.message}, Stack: ${err.stack}`); + }); + // writeHtml + fin.desktop.System.Clipboard.writeHtml('

Hello World

', null, () => { + console.log('Success!!'); + }, (reason, err) => { + console.log(`Error while reading the clipboard Message: ${err.message}, Stack: ${err.stack}`); + }); + // writeRtf + fin.desktop.System.Clipboard.writeRtf('Hello World!', null, () => { + console.log('Success!!'); + }, (reason, err) => { + console.log(`Error while reading the clipboard Message: ${err.message}, Stack: ${err.stack}`); + }); + // writeText + fin.desktop.System.Clipboard.writeText('Hello World', null, () => { + console.log('Success!!'); + }, (reason, err) => { + console.log(`Error while reading the clipboard Message: ${err.message}, Stack: ${err.stack}`); + }); +} + +function test_window() { + let finWindow: fin.OpenFinWindow; + // constructor + finWindow = new fin.desktop.Window({ + name: "childWindow", + url: "child.html", + defaultWidth: 320, + defaultHeight: 320, + defaultTop: 10, + defaultLeft: 300, + frame: false, + resizable: false, + state: "normal" + }, () => { + const _win = finWindow.getNativeWindow(); + _win.addEventListener("DOMContentLoaded", () => { finWindow.show(); }); + }, error => { + console.log("Error creating window:", error); + }); + // getCurrent + finWindow = fin.desktop.Window.getCurrent(); + // getNativeWindow + let nativeWindow: Window; + nativeWindow = finWindow.getNativeWindow(); + // getParentApplication + let parentApp: fin.OpenFinApplication; + parentApp = finWindow.getParentApplication(); + // getParentWindow + let parentFinWindow: fin.OpenFinWindow; + parentFinWindow = finWindow.getParentWindow(); + // wrap + finWindow = fin.desktop.Window.wrap("uuid", "name"); + // addEventListener + finWindow.addEventListener("bounds-changed", event => { + console.log("The window has been moved or resized"); + }, () => { + console.log("The registration was successful"); + }, reason => { + console.log("failure:" + reason); + }); + // animate + finWindow.animate({ + opacity: { + opacity: 0.15, + duration: 1000 + }, + position: { + left: 10, + top: 10, + duration: 3000 + } + }, { + interrupt: false + }, evt => { + // Callback will only fire after both "opacity" and "position" have finished animating. + }); + // authenticate + finWindow.addEventListener('auth-requested', evt => { + finWindow.authenticate('userName', 'P@assw0rd', () => { }, (reason, err) => { + console.log("failure:", err); + }); + }); + // blur + finWindow.blur(); + // bringToFront + finWindow.bringToFront(); + // close + finWindow.close(); + // disableFrame + finWindow.disableFrame(); + // enableFrame + finWindow.enableFrame(); + // flash + finWindow.flash(); + // focus + finWindow.focus(); + // getBounds + finWindow.getBounds(bounds => { + console.log(`top: ${bounds.top} left: ${bounds.left} height: ${bounds.height} width: ${bounds.width}`); + }); + // getOptions + finWindow.getOptions(options => { + console.log(options); + }); + // getSnapshot + finWindow.getSnapshot(base64Snapshot => { + console.log("data:image/png;base64," + base64Snapshot); + }); + // getState + finWindow.getState(state => { + console.log("state: " + state); + }); + // getZoomLevel + finWindow.getZoomLevel(level => { + console.log("zoom level: " + level); + }, error => { + console.log('error:', error); + }); + // hide + finWindow.hide(); + // isShowing + finWindow.isShowing(showing => { + console.log("the window is " + (showing ? "showing" : "hidden")); + }); + // joinGroup + let secondWindow = new fin.desktop.Window({ + url: "http://www.openfin.co", + name: "secondWindow", + autoShow: true + }, () => { + // When mainWindow moves or is moved, secondWindow moves by the same amount + secondWindow.joinGroup(finWindow); + }); + // leaveGroup + secondWindow = new fin.desktop.Window({ + url: "http://www.openfin.co", + name: "secondWindow", + autoShow: true + }, () => { + // When finWindow moves or is moved, secondWindow moves by the same amount + secondWindow.joinGroup(finWindow, () => { + // once we are in the group, lets leave it. + secondWindow.leaveGroup(); + }); + }); + // maximize + finWindow.maximize(); + // mergeGroups + { + const finWindowOne = new fin.desktop.Window({ + url: "http://www.openfin.co", + name: "finWindowOne", + autoShow: true + }); + const finWindowTwo = new fin.desktop.Window({ + url: "http://www.openfin.co", + name: "finWindowTwo", + autoShow: true + }); + const finWindowThree = new fin.desktop.Window({ + url: "http://www.openfin.co", + name: "finWindowThree", + autoShow: true + }); + const finWindowFour = new fin.desktop.Window({ + url: "http://www.openfin.co", + name: "finWindowFour", + autoShow: true + }); + // When finWindowOne moves or is moved, finWindowTwo moves by the same amount + finWindowOne.joinGroup(finWindowTwo); + // When finWindowThree moves or is moved, finWindowFour moves by the same amount + finWindowThree.joinGroup(finWindowFour); + // finWindowOne, finWindowTwo, finWindowThree, and finWindowFour now move together in the same group + finWindowOne.mergeGroups(finWindowThree); + } + // minimize + finWindow.minimize(); + // moveBy + finWindow.moveBy(10, 10); + // moveTo + finWindow.moveTo(100, 200); + // removeEventListener + finWindow.removeEventListener("bounds-changed", event => { + console.log(event); + }); + // resizeBy + finWindow.resizeBy(10, 10, "top-right"); + // resizeTo + finWindow.resizeTo(10, 10, "top-right"); + // restore + finWindow.restore(); + // setAsForeground + finWindow.setAsForeground(); + // setBounds + finWindow.setBounds(100, 200, 400, 400); + // setZoomLevel + finWindow.setZoomLevel(10); + // show + finWindow.show(); + // showAt + finWindow.showAt(10, 10, false); + // stopFlashing + finWindow.stopFlashing(); + // updateOptions + finWindow.updateOptions({ + frame: false, + maxWidth: 500 + }); +} + +function test_frame() { + // wrap + const frame = fin.desktop.Frame.wrap('uuid', 'name'); + // getCurrent + const currentFrame = fin.desktop.Frame.getCurrent(); + // addEventlistener + frame.addEventListener('event', () => console.log('on event'), () => console.log('success'), err => console.error(err)); + // removeEventListener + frame.removeEventListener('event', () => console.log('on event'), () => console.log('success'), err => console.error(err)); + // getInfo + frame.getInfo(info => { + console.log(info.uuid, info.name, info.entityType, info.parent.uuid, info.parent.name); + }, err => console.error(err)); + // getParentWindow + frame.getParentWindow(parent => { + console.log(parent.uuid, parent.name, parent.entityType, parent.parent.uuid, parent.parent.name); + }, err => console.error(err)); +} diff --git a/types/openfin/v29/tsconfig.json b/types/openfin/v29/tsconfig.json new file mode 100644 index 0000000000..ca56a4fc21 --- /dev/null +++ b/types/openfin/v29/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../../", + "typeRoots": [ + "../../" + ], + "types": [], + "paths": { + "openfin": [ + "openfin/v29" + ] + }, + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "openfin-tests.ts" + ] +} diff --git a/types/openfin/v29/tslint.json b/types/openfin/v29/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/openfin/v29/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} diff --git a/types/papaparse/index.d.ts b/types/papaparse/index.d.ts index de820c771f..4e52dd66a4 100644 --- a/types/papaparse/index.d.ts +++ b/types/papaparse/index.d.ts @@ -50,7 +50,8 @@ export const UNIT_SEP: string; export const WORKERS_SUPPORTED: boolean; // The relative path to Papa Parse. This is automatically detected when Papa Parse is loaded synchronously. -export const SCRIPT_PATH: string; +// Assign it a value to override auto-detected path. +export let SCRIPT_PATH: string; // When passed to Papa Parse a Readable stream is returned. export const NODE_STREAM_INPUT = 1; diff --git a/types/parse/index.d.ts b/types/parse/index.d.ts index 80bd1d7c46..63bc16d17a 100644 --- a/types/parse/index.d.ts +++ b/types/parse/index.d.ts @@ -1169,6 +1169,12 @@ declare namespace Parse { */ function initialize(applicationId: string, javaScriptKey?: string, masterKey?: string): void; + /** + * Additionally on React-Native / Expo environments, add AsyncStorage from 'react-native' package + * @param AsyncStorage AsyncStorage from 'react-native' package + */ + function setAsyncStorage(AsyncStorage: any): void; + } declare module "parse/node" { @@ -1179,3 +1185,8 @@ declare module "parse" { import * as parse from "parse/node"; export = parse } + +declare module "parse/react-native" { + import * as parse from "parse/node"; + export = parse +} diff --git a/types/passport-oauth2/index.d.ts b/types/passport-oauth2/index.d.ts index 323d39853d..7d7f3de21d 100644 --- a/types/passport-oauth2/index.d.ts +++ b/types/passport-oauth2/index.d.ts @@ -45,7 +45,7 @@ declare namespace OAuth2Strategy { tokenURL: string; clientID: string; clientSecret: string; - callbackURL: string; + callbackURL?: string; } interface StrategyOptions extends _StrategyOptionsBase { passReqToCallback?: false; diff --git a/types/passport-oauth2/passport-oauth2-tests.ts b/types/passport-oauth2/passport-oauth2-tests.ts index 133bf5ec4e..6a5d09ef27 100644 --- a/types/passport-oauth2/passport-oauth2-tests.ts +++ b/types/passport-oauth2/passport-oauth2-tests.ts @@ -33,7 +33,6 @@ function verifyFunction4(_req: Request, _accessToken: string, _refreshToken: str const strategyOptions2: StrategyOptionsWithRequest = { authorizationURL: 'http://www.example.com/auth', - callbackURL: 'http://www.example.com/callback', clientID: 'dummy', clientSecret: 'secret', tokenURL: 'http://www.example.com/token', diff --git a/types/physijs/index.d.ts b/types/physijs/index.d.ts index 79698c4697..6c28bb1048 100644 --- a/types/physijs/index.d.ts +++ b/types/physijs/index.d.ts @@ -2,6 +2,7 @@ // Project: http://chandlerprall.github.io/Physijs/ // Definitions by: Satoru Kimura // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 /// diff --git a/types/pikaday/index.d.ts b/types/pikaday/index.d.ts index 9dc370054f..883473e07e 100644 --- a/types/pikaday/index.d.ts +++ b/types/pikaday/index.d.ts @@ -54,7 +54,7 @@ declare class Pikaday { /** * Set the current selection with a Moment.js object (see setDate). */ - setMoment(moment: any): void; + setMoment(moment: any, preventOnSelect?: boolean): void; /** * Change the current view to see a specific date. diff --git a/types/pikaday/pikaday-tests.ts b/types/pikaday/pikaday-tests.ts index e61cb635e3..c1be63f5b4 100644 --- a/types/pikaday/pikaday-tests.ts +++ b/types/pikaday/pikaday-tests.ts @@ -32,6 +32,7 @@ new Pikaday({field: $('#datepicker')[0]}); picker.setDate('2015-01-01'); picker.getMoment(); picker.setMoment(moment('14th February 2014', 'DDo MMMM YYYY')); + picker.setMoment(moment('14th February 2014', 'DDo MMMM YYYY'), true); picker.gotoDate(new Date(2014, 1)); picker.gotoToday(); picker.gotoMonth(2); diff --git a/types/pino/index.d.ts b/types/pino/index.d.ts index 42d7a4d1f6..71cb957643 100644 --- a/types/pino/index.d.ts +++ b/types/pino/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for pino 5.20 +// Type definitions for pino 5.6 // Project: https://github.com/pinojs/pino.git // Definitions by: Peter Snider // BendingBender @@ -150,6 +150,17 @@ declare namespace P { * Outputs the level as a string instead of integer. Default: `false`. */ useLevelLabels?: boolean; + /** + * Use this option to define additional logging levels. + * The keys of the object correspond the namespace of the log level, and the values should be the numerical value of the level. + */ + customLevels?: { [key: string]: number }; + /** + * Use this option to only use defined `customLevels` and omit Pino's levels. + * Logger's default `level` must be changed to a value in `customLevels` in order to use `useOnlyCustomLevels` + * Warning: this option may not be supported by downstream transports. + */ + useOnlyCustomLevels?: boolean; /** * When defining a custom log level via level, set to an integer value to define the new level. Default: `undefined`. */ @@ -277,6 +288,14 @@ declare namespace P { * Outputs the level as a string instead of integer. */ useLevelLabels: boolean; + /** + * Define additional logging levels. + */ + customLevels: { [key: string]: number }; + /** + * Use only defined `customLevels` and omit Pino's levels. + */ + useOnlyCustomLevels: boolean; /** * Returns the integer value for the logger instance's logging level. */ diff --git a/types/pixi.js/index.d.ts b/types/pixi.js/index.d.ts index 5e1ca464e2..17913f4903 100644 --- a/types/pixi.js/index.d.ts +++ b/types/pixi.js/index.d.ts @@ -290,8 +290,7 @@ declare namespace PIXI { protected onChildrenChange: (...args: any[]) => void; addChild( - child: T, - ...additionalChildren: DisplayObject[] + ...children: T[] ): T; addChildAt(child: T, index: number): T; swapChildren(child: DisplayObject, child2: DisplayObject): void; diff --git a/types/postmark/index.d.ts b/types/postmark/index.d.ts index 24810299a7..b2b7ac0cfc 100644 --- a/types/postmark/index.d.ts +++ b/types/postmark/index.d.ts @@ -1,12 +1,10 @@ // Type definitions for postmark 1.4 // Project: http://wildbit.github.io/postmark.js -// Definitions by: Ben Bayard +// Definitions by: Ben Bayard +// Jinesh Shah // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.4 -export = postmark; - -declare const postmark: Postmark.Postmark; declare namespace Postmark { const defaults: Options; @@ -87,7 +85,9 @@ declare namespace Postmark { InlineCssForHtmlTestRender?: boolean; } - type PostmarkCallback = ((e: PostmarkError, ret: T) => undefined) | undefined; + type PostmarkCallback = + | ((e: PostmarkError, ret: T) => undefined) + | undefined; interface SimpleOptions { ssl: boolean; @@ -109,36 +109,64 @@ declare namespace Postmark { constructor(serverKey: string, options?: Partial); send(message: PostmarkMessage): Promise; - send(message: PostmarkMessage, callback: PostmarkCallback): undefined; + send( + message: PostmarkMessage, + callback: PostmarkCallback + ): undefined; - sendEmailWithTemplate(message: PostmarkMessageWithTemplate): Promise; - sendEmailWithTemplate(message: PostmarkMessageWithTemplate, callback: PostmarkCallback): undefined; + sendEmailWithTemplate( + message: PostmarkMessageWithTemplate + ): Promise; + sendEmailWithTemplate( + message: PostmarkMessageWithTemplate, + callback: PostmarkCallback + ): undefined; batch(message: PostmarkMessage[]): Promise; - batch(message: PostmarkMessage[], callback: PostmarkCallback): undefined; + batch( + message: PostmarkMessage[], + callback: PostmarkCallback + ): undefined; sendEmail(message: PostmarkMessage): Promise; - sendEmail(message: PostmarkMessage, callback: PostmarkCallback): undefined; + sendEmail( + message: PostmarkMessage, + callback: PostmarkCallback + ): undefined; sendEmailBatch(message: PostmarkMessage[]): Promise; - sendEmailBatch(message: PostmarkMessage[], callback: PostmarkCallback): undefined; + sendEmailBatch( + message: PostmarkMessage[], + callback: PostmarkCallback + ): undefined; // stats getDeliveryStatistics(): Promise; - getDeliveryStatistics(callback: PostmarkCallback): undefined; + getDeliveryStatistics( + callback: PostmarkCallback + ): undefined; // bounces getBounces(filter: BounceFilter): Promise; - getBounces(filter: BounceFilter, callback?: PostmarkCallback): undefined; + getBounces( + filter: BounceFilter, + callback?: PostmarkCallback + ): undefined; getBounce(id: number): Promise; getBounce(id: number, callback?: PostmarkCallback): undefined; getBounceDump(id: number): Promise; - getBounceDump(id: number, callback?: PostmarkCallback): undefined; + getBounceDump( + id: number, + callback?: PostmarkCallback + ): undefined; activateBounce(id: number): Promise; - activateBounce(id: number, callback?: PostmarkCallback): undefined; + activateBounce( + id: number, + callback?: PostmarkCallback + ): undefined; getBounceTags(): Promise; getBounceTags(callback?: PostmarkCallback): undefined; @@ -148,54 +176,112 @@ declare namespace Postmark { getServer(callback?: PostmarkCallback): undefined; editServer(server: Partial): Promise; - editServer(server: Partial, callback?: PostmarkCallback): undefined; + editServer( + server: Partial, + callback?: PostmarkCallback + ): undefined; // message info - getOutboundMessages(filter: OutboundMessageFilter): Promise; - getOutboundMessages(filter: OutboundMessageFilter, callback?: PostmarkCallback): undefined; + getOutboundMessages( + filter: OutboundMessageFilter + ): Promise; + getOutboundMessages( + filter: OutboundMessageFilter, + callback?: PostmarkCallback + ): undefined; getOutboundMessageDetails(id: number): Promise; - getOutboundMessageDetails(id: number, callback?: PostmarkCallback): undefined; + getOutboundMessageDetails( + id: number, + callback?: PostmarkCallback + ): undefined; getMessageOpens(filter: OpenMessageFilter): Promise; - getMessageOpens(filter: OpenMessageFilter, callback?: PostmarkCallback): undefined; + getMessageOpens( + filter: OpenMessageFilter, + callback?: PostmarkCallback + ): undefined; - getMessageOpensForSingleMessage(id: number, filter: Filter): Promise; - getMessageOpensForSingleMessage(id: number, filter: Filter, callback?: PostmarkCallback): undefined; + getMessageOpensForSingleMessage( + id: number, + filter: Filter + ): Promise; + getMessageOpensForSingleMessage( + id: number, + filter: Filter, + callback?: PostmarkCallback + ): undefined; - getInboundMessages(filter: InboundMessageFilter): Promise; - getInboundMessages(filter: InboundMessageFilter, callback?: PostmarkCallback): undefined; + getInboundMessages( + filter: InboundMessageFilter + ): Promise; + getInboundMessages( + filter: InboundMessageFilter, + callback?: PostmarkCallback + ): undefined; getInboundMessageDetails(id: number): Promise; - getInboundMessageDetails(id: number, callback?: PostmarkCallback): undefined; + getInboundMessageDetails( + id: number, + callback?: PostmarkCallback + ): undefined; bypassBlockedInboundMessage(id: number): Promise; - bypassBlockedInboundMessage(id: number, callback?: PostmarkCallback): undefined; + bypassBlockedInboundMessage( + id: number, + callback?: PostmarkCallback + ): undefined; getOuboundOverview(filter: BaseFilter): Promise; - getOuboundOverview(filter: BaseFilter, callback?: PostmarkCallback): undefined; + getOuboundOverview( + filter: BaseFilter, + callback?: PostmarkCallback + ): undefined; retryInboundHookForMessage(id: number): Promise; - retryInboundHookForMessage(id: number, callback?: PostmarkCallback): undefined; + retryInboundHookForMessage( + id: number, + callback?: PostmarkCallback + ): undefined; // templates getTemplate(id: number): Promise